shop; $reduceDay = $shop->reduceDay ?? 30; $memberLevelSet = $shop->memberLevelSet ?? 0; $shopId = $this->shopId; if ($memberLevelSet == 1) { $list = MemberLevelClass::getAllByCondition(['shopId' => $shopId], 'level ASC', '*', null); $member = []; if (!empty($list)) { foreach ($list as $k => $val) { $name = $val['name'] ?? '会员'; $levelSn = $val['levelSn'] ?? 'general'; $level = $val['level'] ?? 1; $amount = $val['amount'] ?? 0; $amount = floatval($amount); $it = [ 'name' => $name, 'levelSn' => $levelSn, 'level' => $level, 'amount' => $amount, ]; $member[] = $it; } } } else { $member = dict::getDict('memberLevelMap'); } util::success(['member' => $member, 'reduceDay' => $reduceDay, 'memberLevelSet' => $memberLevelSet]); } public function actionModify() { $post = Yii::$app->request->post(); $shopId = $this->shopId; $mainId = $this->mainId; $connection = Yii::$app->db; $transaction = $connection->beginTransaction(); try { $data = $post['data'] ?? []; if (empty($data)) { util::fail('请填写会员信息'); } // 验证值递增 $prevAmount = -1; foreach ($data as $item) { $currentAmount = floatval($item['amount'] ?? 0); if ($currentAmount <= $prevAmount) { util::fail('消费金额必须递增'); } $prevAmount = $currentAmount; } foreach ($data as $k => $v) { $levelSn = $v['levelSn'] ?? 'general'; $level = $v['level'] ?? 1; $name = $v['name'] ?? '会员'; $amount = $v['amount'] ?? 0; $it = [ 'mainId' => $mainId, 'shopId' => $shopId, 'level' => $level, 'levelSn' => $levelSn, 'name' => $name, 'amount' => $amount, ]; $has = MemberLevelClass::getByCondition(['mainId' => $mainId, 'level' => $level], true); if (!empty($has)) { $has->amount = $amount; $has->save(); } else { MemberLevelClass::add($it, true); } } $transaction->commit(); // 客户消费等级变更 $producer = Yii::$app->rabbitmq->getProducer('customProducer'); $msg = serialize(['type' => 'hd_change_custom_expense_level', 'mainId' => $mainId, 'shopId' => $shopId]); $producer->publish($msg, 'customExchange', 'customRoute', ['delivery_mode' => 2, 'content_type' => 'application/octet-stream']); util::complete('设置成功'); } catch (\Exception $e) { $transaction->rollBack(); Yii::info("失败原因:" . $e->getMessage()); util::fail('设置失败'); } } }