26], [['type'], 'string', 'max' => 20], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'mall_id' => 'Mall ID', 'user_id' => 'User ID', 'status' => 'Status', 'created_at' => 'Created At', 'updated_at' => 'Updated At', 'goods_id' => 'Goods ID', 'order_id' => 'Order ID', 'order_no' => 'Order No', 'commission_rate' => 'Commission Rate', 'commission' => 'Commission', 'commission_status' => 'Commission Status', 'area_level' => 'Area Level', ]; } public function getUser() { return $this->hasOne(User::class, ['id' => 'user_id'])->select('id, username, mobile, nickname, avatar_url'); } public function getOrder() { return $this->hasOne(Order::class, ['id' => 'order_id']); } public function getGoods() { return $this->hasOne(Goods::class, ['id' => 'goods_id']); } /** * @param array $wallet * @param array $order_detail * @param int $is_fixed * @param $rate * @param int $level * @return mixed|string|true|null */ public static function setData(array $wallet, array $order_detail, int $is_fixed, $rate, int $level) { $model = new AreaCommissionLog(); $model->mall_id = $wallet['mall_id']; $model->user_id = $wallet['user_id']; $model->goods_id = $order_detail['goods_id']; $model->order_id = $order_detail['order_id']; $model->order_no = $order_detail['order_no']; $model->commission = bcmul($wallet['money'], 100); $model->commission_status = $wallet['is_frozen'] == StatusEnum::ENABLED ? StatusEnum::DISABLED : StatusEnum::ENABLED; $model->commission_rate = $rate; // 通过商品与等级获取 $model->is_fixed = $is_fixed; // 通过商品与等级获取 $model->area_level = $level; $model->type = $wallet['wallet_type']; $model->order_detail_id = $wallet['source_table_id']; $model->direction = StatusEnum::ENABLED; $model->loadDefaultValues(); if (!$model->save()) return $model->getErrorMessage(); return true; } /** * 解冻 * @param array $ids * @return void */ public static function unfrozon(array $ids) { AreaCommissionLog::updateAll(['commission_status' => StatusEnum::ENABLED], ['and', ['order_detail_id' => $ids], ['commission_status' => StatusEnum::DISABLED], ['status' => StatusEnum::ENABLED]]); } /** * @param int $order_detail_id * @return void */ public static function close(int $order_detail_id) { AreaCommissionLog::updateAll(['status' => StatusEnum::DELETE, 'direction' => StatusEnum::DISABLED], ['and', ['order_detail_id' => $order_detail_id], ['direction' => StatusEnum::DISABLED], ['status' => StatusEnum::ENABLED]]); } /** * @param array $order_detail_id * @return void */ public static function closeAll(array $order_detail_id) { AreaCommissionLog::updateAll(['status' => StatusEnum::DELETE, 'direction' => StatusEnum::DISABLED], ['and', ['order_detail_id' => $order_detail_id], ['direction' => StatusEnum::DISABLED], ['status' => StatusEnum::ENABLED]]); } }