| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- namespace App\Module\UrsPromotion\AdminControllers\Actions;
- use App\Module\UrsPromotion\Models\UrsUserTalent;
- use App\Module\UrsPromotion\Services\UrsTalentService;
- use App\Module\UrsPromotion\Enums\UrsTalentLevel;
- use Illuminate\Http\Request;
- use UCore\DcatAdmin\RowActionHandler;
- /**
- * 更新用户达人等级操作
- *
- * 提供单个用户达人等级的快速更新功能
- */
- class UpdateTalentAction extends RowActionHandler
- {
- /**
- * 操作按钮标题
- *
- * @var string
- */
- public $title = '更新等级';
- /**
- * 检查是否允许显示此操作
- *
- * @return bool
- */
- public function allowed()
- {
- // 所有记录都允许更新等级
- return true;
- }
- /**
- * 处理请求
- *
- * @param Request $request
- * @return mixed
- */
- public function handle(Request $request)
- {
- $id = $this->getKey();
- $talent = UrsUserTalent::find($id);
-
- if (!$talent) {
- return $this->response()->error('用户达人记录不存在');
- }
- try {
- // 获取更新前的等级
- $oldLevel = $talent->talent_level;
- // 更新达人等级
- $result = UrsTalentService::updateTalentLevel($talent->user_id);
- // 获取更新后的等级
- $newLevel = $result->talentLevel;
- $message = "达人等级更新成功!";
- if ($oldLevel !== $newLevel) {
- $oldLevelName = UrsTalentLevel::getLevelName($oldLevel);
- $newLevelName = UrsTalentLevel::getLevelName($newLevel);
- $message .= " 从 {$oldLevelName} 升级到 {$newLevelName}";
- } else {
- $newLevelName = UrsTalentLevel::getLevelName($newLevel);
- $message .= " 等级保持为 {$newLevelName}";
- }
- return $this->response()
- ->success($message)
- ->refresh();
- } catch (\Exception $e) {
- return $this->response()->error('更新失败:' . $e->getMessage());
- }
- }
- }
|