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; } } }