|
|
@@ -0,0 +1,100 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace app\controller\api;
|
|
|
+
|
|
|
+use app\extra\basic\Base;
|
|
|
+use app\extra\service\blue\BlueTaskUserService;
|
|
|
+use app\middleware\WxMiddleware;
|
|
|
+use app\model\blue\BlueTaskUser;
|
|
|
+use DI\Attribute\Inject;
|
|
|
+use LinFly\Annotation\Route\Controller;
|
|
|
+use LinFly\Annotation\Route\Middleware;
|
|
|
+use LinFly\Annotation\Route\Route;
|
|
|
+use support\Request;
|
|
|
+use support\Response;
|
|
|
+
|
|
|
+
|
|
|
+#[Controller(prefix: "/wx_api/task/user"),Middleware(WxMiddleware::class)]
|
|
|
+class TaskUser extends Base
|
|
|
+{
|
|
|
+ protected array $noNeedLogin = ["getTaskUserDetail"];
|
|
|
+
|
|
|
+ #[Inject]
|
|
|
+ protected BlueTaskUser $model;
|
|
|
+
|
|
|
+ #[Inject]
|
|
|
+ protected BlueTaskUserService $service;
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 已接任务列表
|
|
|
+ * @param Request $request
|
|
|
+ * @return Response
|
|
|
+ */
|
|
|
+ #[Route(path: "list",methods: "get")]
|
|
|
+ public function getTaskUserList(Request $request): Response
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $param = $this->_valid([
|
|
|
+ "size.default" => 10,
|
|
|
+ "page.default" => 1,
|
|
|
+ ],$request->method());
|
|
|
+ $list = $this->service->getHomeList(['openid' => $request->user['openid'],'pageSize' => $param['size'],'page' => $param['page']]);
|
|
|
+ return success("ok",pageFormat($list));
|
|
|
+ } catch (\Throwable $throwable) {
|
|
|
+ return error($throwable->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 已接任务详情
|
|
|
+ * @param Request $request
|
|
|
+ * @return Response
|
|
|
+ */
|
|
|
+ #[Route(path: "detail",methods: "get")]
|
|
|
+ public function getTaskUserDetail(Request $request): Response
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $param = $this->_valid([
|
|
|
+ "id.require" => trans("empty.require"),
|
|
|
+ "task_sn.require" => trans("empty.require"),
|
|
|
+ ],$request->method());
|
|
|
+ if (!is_array($param)) return error($param);
|
|
|
+ $task = $this->model->where(['id' => $param['id'],'task_sn' => $param['task_sn'],'openid' => '123' ])->with(['task' => function ($query) {
|
|
|
+ $query->field("id,title,task_sn,product_cover_url,total_budget,sign_number,need_number,category,level,sys_level,product_price")->append(['progress','total_budget_format'])->withAttr(['progress' => function ($data,$resp) {
|
|
|
+ if ($resp['sign_number'] == 0) return $resp['sign_number'];
|
|
|
+ return ceil($resp['sign_number']/$resp['need_number'] * 100);
|
|
|
+ },'total_budget_format' => function($data,$resp) {
|
|
|
+ return formatMoneyKw($resp['total_budget']/100);
|
|
|
+ }]);
|
|
|
+ }])->findOrEmpty();
|
|
|
+ if ($task->isEmpty()) return errorTrans("empty.data");
|
|
|
+ return success("ok",$task->toArray());
|
|
|
+ } catch (\Throwable $throwable) {
|
|
|
+ return error($throwable->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 任务收益记录
|
|
|
+ * @param Request $request
|
|
|
+ * @return Response
|
|
|
+ */
|
|
|
+ public function getTaskRevenue(Request $request): Response
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $param = $this->_valid([
|
|
|
+ "id.require" => trans("empty.require"),
|
|
|
+ "task_sn.require" => trans("empty.require"),
|
|
|
+ "date.default" => date("Y-m-d",strtotime("-1 day")),
|
|
|
+ ],$request->method());
|
|
|
+ if (!is_array($param)) return error($param);
|
|
|
+
|
|
|
+ return success("ok");
|
|
|
+ } catch (\Throwable $throwable) {
|
|
|
+ return error($throwable->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|