Task.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace app\controller\api;
  3. use app\extra\basic\Base;
  4. use app\extra\service\blue\TaskService;
  5. use app\middleware\WxMiddleware;
  6. use app\model\blue\BlueExpertPlatform;
  7. use app\model\blue\BlueTask;
  8. use app\model\blue\BlueTaskUser;
  9. use DI\Attribute\Inject;
  10. use LinFly\Annotation\Route\Controller;
  11. use LinFly\Annotation\Route\Middleware;
  12. use LinFly\Annotation\Route\Route;
  13. use support\Request;
  14. use support\Response;
  15. #[Controller(prefix: "/wx_api/task"),Middleware(WxMiddleware::class)]
  16. class Task extends Base
  17. {
  18. protected array $noNeedLogin = [];
  19. #[Inject]
  20. protected TaskService $service;
  21. #[Inject]
  22. protected BlueTask $model;
  23. /**
  24. * 任务列表
  25. * @param Request $request
  26. * @return Response
  27. */
  28. #[Route(path: "portal",methods: "get")]
  29. public function getTaskList(Request $request): Response
  30. {
  31. try {
  32. } catch (\Throwable $throwable) {
  33. return error($throwable->getMessage());
  34. }
  35. }
  36. /**
  37. * 任务详情
  38. * @param Request $request
  39. * @return Response
  40. */
  41. #[Route(path: "detail",methods: "get")]
  42. public function getTaskDetail(Request $request): Response
  43. {
  44. try {
  45. $param = $this->_valid([
  46. "task_sn.require" => trans("empty.require"),
  47. "id.require" => trans("empty.require"),
  48. ],$request->method());
  49. if (!is_array($param)) return error($param);
  50. $data = $this->service->getTaskDetail($param);
  51. if (empty($data)) return errorTrans("empty.data");
  52. return success("ok",$data->toArray());
  53. } catch (\Throwable $throwable) {
  54. return error($throwable->getMessage());
  55. }
  56. }
  57. #[Route(path: "sign",methods: "post")]
  58. public function taskUserReg(Request $request): Response
  59. {
  60. try {
  61. $param = $this->_valid([
  62. "task_sn.require" => trans("empty.require"),
  63. "task_id.require" => trans("empty.require"),
  64. "url.require" => trans("empty.require"),
  65. "image.require" => trans("empty.require"),
  66. ],$request->method());
  67. if (!is_array($param)) return error($param);
  68. $task = $this->model->where(['task_sn' => $param['task_sn'],'id' => $param['task_id']])->findOrEmpty();
  69. if ($task->isEmpty()) return errorTrans("empty.data");
  70. $platformUser = (new BlueExpertPlatform)->where(['openid' => $request->user['openid'],"source" => $task['category'],"status" => 1])->findOrEmpty();
  71. if ($platformUser->isEmpty()) return error("请先完成平台绑定");
  72. $taskUser = (new BlueTaskUser)->where(['openid' => $request->user['openid'],'task_sn' => $param['task_sn'],'id' => $param['task_id']])->findOrEmpty();
  73. if (!$taskUser->isEmpty()) return error("请勿重复提交");
  74. $state = $taskUser->insertGetId([
  75. "openid" => $request->user['openid'],
  76. "task_id" => $param['task_id'],
  77. "task_sn" => $param['task_sn'],
  78. "source" => $task['category'],
  79. "platform" => json_encode($platformUser->toArray()),
  80. "url" => $task['category'],
  81. "image" => $task['image'],
  82. ]);
  83. if (!$state) return errorTrans("error.data");
  84. return successTrans("success.data");
  85. } catch (\Throwable $throwable) {
  86. return error($throwable->getMessage());
  87. }
  88. }
  89. }