diff --git a/app/Models/AgentUpgradeLog.php b/app/Models/AgentUpgradeLog.php index ea76a47c..9c7a9101 100644 --- a/app/Models/AgentUpgradeLog.php +++ b/app/Models/AgentUpgradeLog.php @@ -13,5 +13,6 @@ class AgentUpgradeLog extends Model 'user_id', 'before_agent_level', 'change_agent_level', + 'remark', ]; } diff --git a/app/Models/Dealer.php b/app/Models/Dealer.php index bd49ecc2..c1ddd06a 100644 --- a/app/Models/Dealer.php +++ b/app/Models/Dealer.php @@ -354,8 +354,7 @@ class Dealer extends Model $mapAgentLvl = $this->lvl->agentLvl(); if ($this->userInfo->agent_level < $mapAgentLvl) { - $this->userInfo->agent_level = $mapAgentLvl; - $this->userInfo->save(); + $this->userInfo->changeAgentLvl($mapAgentLvl, '经销商享商城权益'); } } diff --git a/app/Models/UserInfo.php b/app/Models/UserInfo.php index 5c1eb6f9..425f166e 100644 --- a/app/Models/UserInfo.php +++ b/app/Models/UserInfo.php @@ -349,18 +349,33 @@ class UserInfo extends Model } } - if ($this->agent_level !== $lvl) { - $beforeAgentLevel = $this->agent_level; + $this->changeAgentLvl($lvl, '达到升级条件'); + } - $this->update([ - 'agent_level' => $lvl, - ]); - - $this->agentUpgradeLogs()->create([ - 'before_agent_level' => $beforeAgentLevel, - 'change_agent_level' => $lvl, - ]); + /** + * 变更代理等级 + * + * @param int $lvl + * @param string|null $remark + * @return void + */ + public function changeAgentLvl(int $lvl, ?string $remark = null) + { + if ($this->agent_level === $lvl) { + return $lvl; } + + $beforeAgentLevel = $this->agent_level; + + $this->update([ + 'agent_level' => $lvl, + ]); + + $this->agentUpgradeLogs()->create([ + 'before_agent_level' => $beforeAgentLevel, + 'change_agent_level' => $lvl, + 'remark' => $remark, + ]); } /** diff --git a/database/migrations/2022_01_26_221103_add_remark_to_agent_upgrade_logs_table.php b/database/migrations/2022_01_26_221103_add_remark_to_agent_upgrade_logs_table.php new file mode 100644 index 00000000..ac061760 --- /dev/null +++ b/database/migrations/2022_01_26_221103_add_remark_to_agent_upgrade_logs_table.php @@ -0,0 +1,32 @@ +string('remark')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('agent_upgrade_logs', function (Blueprint $table) { + $table->dropColumn(['remark']); + }); + } +}