Star.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?php
  2. namespace app\controller\merchant;
  3. use app\extra\basic\Base;
  4. use app\extra\tools\LifeWeb;
  5. use app\middleware\AuthMiddleware;
  6. use app\model\saas\SaasStar;
  7. use app\service\saas\StarService;
  8. use DI\Attribute\Inject;
  9. use LinFly\Annotation\Attributes\Route\Controller;
  10. use LinFly\Annotation\Attributes\Route\GetMapping;
  11. use LinFly\Annotation\Attributes\Route\Middleware;
  12. use LinFly\Annotation\Attributes\Route\PostMapping;
  13. use support\Request;
  14. use support\Response;
  15. use yzh52521\EasyHttp\Http;
  16. #[Controller("/api/merchant/star"),Middleware(AuthMiddleware::class)]
  17. class Star extends Base
  18. {
  19. #[Inject]
  20. protected StarService $service;
  21. #[Inject]
  22. protected SaasStar $model;
  23. #[GetMapping('list')]
  24. public function getDataList(Request $request): Response
  25. {
  26. try {
  27. $param = $request->all();
  28. $param['poi_id'] = $request->user['store_id'];
  29. $data = $this->service->setModel()->getList($param);
  30. return successTrans(100010,pageFormat($data),200);
  31. } catch (\Throwable $th) {
  32. return error($th->getMessage());
  33. }
  34. }
  35. #[PostMapping('save')]
  36. public function getStarData(Request $request): Response
  37. {
  38. try {
  39. [$state,$msg] = $this->checkDeposit($request->user['store_id']);
  40. if (!$state) return error($msg);
  41. $param = $this->_valid([
  42. "name.require" => trans("empty.require"),
  43. "status.require" => trans("empty.status"),
  44. ],$request->method());
  45. if (!is_array($param)) return error($param);
  46. $param['poi_id'] = $request->user['store_id'];
  47. $star = $this->model->where(['poi_id' => $param['poi_id'],'unique_id' => $param['name']])->findOrEmpty();
  48. if (!$star->isEmpty()) return error("达人已绑定,请勿重复操作");
  49. [$state,$starData] = (new LifeWeb)->token()->getStarData($param['name']);
  50. if (!$state) return error($starData);
  51. unset($param['name']);
  52. $param['nick_name'] = removeEmoji2($starData['nick_name']);
  53. $param['show_nickname'] = emojiToUnicode($starData['nick_name']);
  54. $param['gender'] = $starData['gender'];
  55. $param['unique_id'] = $starData['unique_id'];
  56. $param['avatar_url'] = $starData['avatar_url'];
  57. $param['city_name'] = $starData['city_name'];
  58. $param['uid'] = $starData['uid'];
  59. $param['fans_count'] = $starData['fans_count'];
  60. $param['fans_tag_list'] = json_encode($starData['fans_tag_list']);
  61. $param['local_fans_count'] = $starData['local_fans_count'];
  62. $param['talent_level_display'] = $starData['talent_display_info']['talent_level_display']['statistice_value']['value']??'';
  63. $param['talent_item_level_display'] = $starData['talent_display_info']['talent_item_level_display']['statistice_value']['value']??'';
  64. $param['talent_live_level_display'] = $starData['talent_display_info']['talent_live_level_display']['statistice_value']['value']??'';
  65. $param['content_level_display'] = $starData['talent_display_info']['content_level_display']['statistice_value']['value']??'';
  66. $param['credit_score_display'] = $starData['talent_display_info']['credit_score_display']['statistice_value']['value']??'';
  67. $param['rank_display'] = $starData['talent_display_info']['rank_display']['statistice_value']['digit_value']??'';
  68. $param['aweme_url'] = $starData['aweme_url'];
  69. $status = $star->insertGetId($param);
  70. if (!$status) return errorTrans('error.data');
  71. return successTrans('success.data');
  72. } catch (\Throwable $throwable) {
  73. return error($throwable->getMessage());
  74. }
  75. }
  76. #[PostMapping('update')]
  77. public function updateStar(Request $request): Response
  78. {
  79. try {
  80. $param = $this->_valid([
  81. "id.require" => trans("empty.require"),
  82. ],$request->method());
  83. if (!is_array($param)) return error($param);
  84. $data = $this->model->where("id",$param["id"])->findOrEmpty();
  85. if ($data->isEmpty()) return errorTrans("empty.data");
  86. if ($data['poi_id'] <> $request->user['store_id'] && $request->user['is_super'] == 0) return errorTrans("empty.data");
  87. [$state,$starData] = (new LifeWeb)->token()->getStarData($data['unique_id']);
  88. if (!$state) return error($starData);
  89. $state = $data->save([
  90. 'nick_name' => removeEmoji2($starData['nick_name']),
  91. 'show_nickname' => emojiToUnicode($starData['nick_name']),
  92. 'gender' => $starData['gender'],
  93. 'avatar_url' => $starData['avatar_url'],
  94. 'city_name' => $starData['city_name'],
  95. 'fans_count' => $starData['fans_count'],
  96. 'fans_tag_list' => json_encode($starData['fans_tag_list']),
  97. 'local_fans_count'=> $starData['local_fans_count'],
  98. 'talent_level_display' => $starData['talent_display_info']['talent_level_display']['statistice_value']['value']??'',
  99. 'talent_item_level_display' => $starData['talent_display_info']['talent_item_level_display']['statistice_value']['value']??'',
  100. 'talent_live_level_display' => $starData['talent_display_info']['talent_live_level_display']['statistice_value']['value']??'',
  101. 'content_level_display' => $starData['talent_display_info']['content_level_display']['statistice_value']['value']??'',
  102. 'credit_score_display' => $starData['talent_display_info']['credit_score_display']['statistice_value']['value']??'',
  103. 'rank_display' => $starData['talent_display_info']['rank_display']['statistice_value']['digit_value']??'',
  104. ]);
  105. if (!$state) return errorTrans('error.data');
  106. return successTrans('success.data');
  107. } catch (\Throwable $throwable) {
  108. return error($throwable->getMessage());
  109. }
  110. }
  111. /**
  112. * 删除达人
  113. * @param Request $request
  114. * @return Response
  115. */
  116. #[PostMapping('del')]
  117. public function delStarData(Request $request): Response
  118. {
  119. try {
  120. $param = $this->_valid([
  121. "id.require" => trans("empty.require"),
  122. ],$request->method());
  123. if (!is_array($param)) return error($param);
  124. $data = $this->model->where("id",$param["id"])->findOrEmpty();
  125. if ($data->isEmpty()) return errorTrans("empty.data");
  126. if ($data['poi_id'] <> $request->user['store_id']) return errorTrans("empty.data");
  127. $state = $data->delete();
  128. if (!$state) return errorTrans("error.data");
  129. return successTrans("success.data");
  130. } catch (\Throwable $throwable) {
  131. return error($throwable->getMessage());
  132. }
  133. }
  134. }