45], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'mall_id' => 'Mall ID', 'store_id' => 'store_id', 'level' => 'Level', 'name' => 'Name', 'is_auto_upgrade' => 'Is Auto Upgrade', 'detail' => 'Detail', 'price' => '平级奖', 'extra_price' => '渠道奖', 'created_at' => 'Created At', 'updated_at' => 'Updated At', 'is_delete' => 'Is Delete', 'checked_condition_values' => '升级条件', 'is_enable' => '是否启用', 'checked_condition_keys' => '升级条件选中的key集合', 'condition_type' => '0 未选择、1满足其一 2、满足所有', 'upgrade_type_goods' => 'Upgrade Type Goods', 'upgrade_type_condition' => 'Upgrade Type Condition', 'goods_warehouse_ids' => '商品仓库的ID', 'goods_list' => '商品列表', 'goods_type' => '商品升级类型', 'buy_goods_type' => '0订单完成 1下单 完成', 'extra_limit_price' => '额外奖励上限金额', 'extra_type' => '存在额外奖励的条件 1 购物 2 条件 3 任意', 'is_extra' => '是否存在额外奖励', 'extra_is_limit' => '额外奖励是否存在上限', ]; } /** * 获取可升级的等级列表 * @Author bing * @DateTime 2020-11-07 09:59:33 * @copyright: Copyright (c) 2020 广东七件事集团 * @param integer $level * @param integer $mall_id * @param integer $store_id * @param string $order * @return void|mixed */ public static function getCanLevelList($level,$mall_id = 0,$store_id = 0,$order = 'desc'){ $mall_id = Yii::$app->mall->id ?? $mall_id; return self::find() ->where(['mall_id' => $mall_id,'store_id' => $store_id, 'is_enable' => 1, 'is_delete' => 0]) ->andWhere(['>', 'level', $level]) ->orderBy("level $order") ->all(); } public function getList($mall_id,$store_id) { $levelList = StoreBossLevel::find()->where([ 'mall_id' => $mall_id,'store_id' => $store_id, 'is_delete' => 0, 'is_enable' => 1, ])->select(['id', 'level', 'name'])->orderBy(['level' => SORT_ASC])->asArray()->all(); // array_unshift($levelList, [ //// 'id' => 0, //// 'level' => 0, //// 'name' => '默认等级' //// ]); return $levelList; } public function setData() { $store = Yii::$app->session->get('o2o'); try { if ($this->equal_price_type == 1) { if ($this->price > 100) { throw new \Exception('平级奖佣金百分比不能大于100%'); } } $level = StoreBossLevel::findOne(['is_delete' => 0, 'mall_id' => $store['mall_id'], 'store_id' => $store['id'], 'level' => $this->level]); if ($level) { if ($level->id != $this->id) { return [ 'code' => 1, 'msg' => '选中的权重已经存在对应的记录' ]; } } $level = StoreBossLevel::findOne(['is_delete' => 0, 'mall_id' => $store['mall_id'],'store_id' => $store['id'], 'id' => $this->id]); if ($level) { if ($level->level != $this->level) { $boss = StoreBoss::find()->where(['status' => 1, 'mall_id' =>$store['mall_id'],'store_id' => $store['id'], 'level' => $level->level])->asArray()->one(); if ($boss) { return [ 'code' =>1, 'msg' => '当前等级下已存在股东,不可变更等级权重!' ]; } } } if (!$level) { $level = new StoreBossLevel(); $level->is_delete = 0; $level->store_id = $store['id']; $level->mall_id = $store['mall_id']; } $level->attributes=$this-> attributes; $level->checked_condition_keys = Json::encode($this->checked_condition_keys); $level->checked_condition_values = Json::encode($this->checked_condition_values); $level->goods_list = Json::encode($this->goods_list); $level->goods_warehouse_ids = Json::encode($this->goods_warehouse_ids); if (!$level->save()) { throw new \Exception($level->getErrorMessage()); // throw new \Exception($this->responseErrorMsg($level)); } else { return [ 'code' => 0, 'msg' => '保存成功' ]; } } catch (\Exception $exception) { // $this->error($exception->getMessage()); return [ 'code' => 1, 'msg' => $exception->getMessage() ]; } } public function getDetail() { $weights = (new StoreBossLevelCommon)->getLevelWeights(); $level = self::findOne(['id' => $this->id, 'is_delete' => 0]); if ($level) { if ($level->checked_condition_values) { $level->checked_condition_values = Json::decode($level->checked_condition_values); } if ($level->checked_condition_keys) { $level->checked_condition_keys = Json::decode($level->checked_condition_keys); } if ($level->goods_warehouse_ids) { $level->goods_warehouse_ids = Json::decode($level->goods_warehouse_ids); } else { $level->goods_warehouse_ids = []; } if ($level->goods_list) { $level->goods_list = Json::decode($level->goods_list); } else { $level->goods_list = []; } return [ 'code' => 0, 'msg' => '', 'data' => [ 'detail' => $level, 'weights' => $weights['newList'] ] ]; } } }