'ID', 'mall_id' => '商城ID', 'user_id' => '用户ID', 'level' => '等级(权重)', 'pool_income' => '分红池总收益,单位:元', 'upgrade_status' => '1条件升级,2购买指定商品升级,3手动升级', 'upgrade_level_at' => '等级升级时间', 'status' => '状态[-1:删除;0:禁用;1启用]', 'created_at' => '创建时间', 'updated_at' => '更新时间', ]; } /** * 关联用户表 * @Author: lun * @DateTime: 2022/9/16 0016 16:50 * @Copyright: copyright (c) 2021 广东七件事集团 * @return \yii\db\ActiveQuery */ public function getUser() { return $this->hasOne(User::class, ['id' => 'user_id'])->select('id,mobile,nickname,avatar_url,parent_id'); } /** * 生成用户数据 * @Author: lun * @DateTime: 2022/9/16 0016 11:26 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $params * @return array|bool */ public static function create($params) { try { $model = self::findOne(['user_id' => $params['user_id'], 'status' => StatusEnum::ENABLED]); if (empty($model)) { $model = new self(); $model->loadDefaultValues(); } else { // 如果非升级情况则不做任何保存或处理 if ($model->level >= $params['level']) return $model->toArray(); } if (!$model->load($params, '') || !$model->save()) throw new Exception($model->getErrorMessage()); return $model->toArray(); } catch (\Exception $e) { self::setStaticError($e->getMessage()); return false; } } /** * 删除分红池用户 * @Author: lun * @DateTime: 2023/7/19 0019 9:26 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $mall_id * @param $user_id * @return bool */ public static function deleteUser($mall_id, $user_id) { $trans = Yii::$app->db->beginTransaction(); try { // 删除用户 $model = self::findOne(['mall_id' => $mall_id, 'user_id' => $user_id, 'status' => StatusEnum::ENABLED]); if (empty($model)) throw new \Exception('查无此用户'); $model->status = StatusEnum::DELETE; if (!$model->save()) throw new Exception('分红池用户删除失败:'.$model->getErrorMessage()); // 删除当前用户的分红记录,避免此用户再次升级导致分红记录叠加 DoubleCopyPoolLog::updateAll(['status' => StatusEnum::DELETE], ['user_id' => $user_id, 'status' => StatusEnum::ENABLED]); $trans->commit(); return true; } catch (\Exception $e) { $trans->rollBack(); return false; } } }