| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- namespace addons\Achievement\common\logic;
- use addons\Achievement\common\models\AchievementAwardLog;
- use addons\Achievement\common\models\AchievementGrantLog;
- use addons\Achievement\common\models\AchievementUser;
- use common\enums\StatusEnum;
- use common\models\user\UserPartitionRelationship;
- /**
- * 团长被删后,修正上级和下级们的业绩
- *
- */
- class AchievementUserDelLogic
- {
- /**
- * 处理开始入口
- *
- * @param $mall_id
- * @param $user_id
- * @return true|void
- */
- public static function handle($id)
- {
- $t = \Yii::$app->db->beginTransaction();
- try {
- $del_achievement_user = AchievementUser::findOne($id);//被删除的团长
- $grant = AchievementGrantLog::findOne(['mall_id' => $del_achievement_user['mall_id'], 'status' => StatusEnum::ENABLED, 'is_wait' => 0, 'is_create' => 0]);
- if (empty($grant)) {
- throw new \Exception('无须修改业绩');
- }
- $achievement_award_log = AchievementAwardLog::find()->where(['grant_id' => $grant['id'], 'user_id' => $del_achievement_user['user_id'],
- 'status' => StatusEnum::ENABLED
- ])->orderBy('id desc')->one();
- $parent_team = $achievement_award_log['parent_team'];
- AchievementAwardLog::updateAll(['parent_team' => $parent_team], ['parent_team' => $del_achievement_user['user_id']]);
- $achievement_award_log->status = StatusEnum::DELETE;
- $achievement_award_log->save();
- if (!empty($parent_team)) {
- $grant->award_proportion = json_decode($grant['award_proportion'], true);
- AchievementLogic::fixParentAchievement($grant, $parent_team);
- $grant['award_proportion'] = json_encode($grant['award_proportion']);
- AchievementOrderLogic::updateGrant($grant);
- }
- $t->commit();
- return true;
- } catch (\Exception $e) {
- $t->rollBack();
- var_dump($e->getMessage() . $e->getFile() . $e->getLine());
- return true;
- }
- }
- }
|