Address.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace app\controller\v2;
  3. use app\extra\basic\Base;
  4. use app\extra\service\blue\AddressService;
  5. use app\middleware\WxMiddleware;
  6. use app\model\blue\BlueAddress;
  7. use DI\Attribute\Inject;
  8. use LinFly\Annotation\Route\Controller;
  9. use LinFly\Annotation\Route\Middleware;
  10. use LinFly\Annotation\Route\Route;
  11. use support\Request;
  12. use support\Response;
  13. #[Controller(prefix: "/wx_v2/address"),Middleware(WxMiddleware::class)]
  14. class Address extends Base
  15. {
  16. protected array $noNeedLogin = [];
  17. #[Inject]
  18. protected BlueAddress $model;
  19. #[Inject]
  20. protected AddressService $service;
  21. /**
  22. * 地址列表
  23. * @param Request $request
  24. * @return Response
  25. */
  26. #[Route(path: "list",methods: "get")]
  27. public function getAddressList(Request $request): Response
  28. {
  29. try {
  30. $param = $this->_valid([
  31. "size.default" => 10,
  32. "page.default" => 1,
  33. ],$request->method());
  34. $list = $this->service->getList(['openid' => $request->user['openid'],'pageSize' => $param['size'],'page' => $param['page']]);
  35. return success("ok",pageFormat($list));
  36. } catch (\Throwable $throwable) {
  37. return error($throwable->getMessage());
  38. }
  39. }
  40. /**
  41. * 编辑信息
  42. * @param Request $request
  43. * @return Response
  44. */
  45. #[Route(path: "save",methods: "post")]
  46. public function setListData(Request $request): Response
  47. {
  48. try {
  49. $param = $request->post();
  50. if (isset($param['id'])) {
  51. $factory = $this->model->where("id",$param['id'])->findOrEmpty();
  52. if ($factory->isEmpty()) return errorTrans("error.data");
  53. }
  54. $param['city_path'] = empty($param['city_path']) ? [] : json_encode($param['city_path']);
  55. $param['openid'] = $request->user['openid'];
  56. $state = $this->model->setAutoData($param);
  57. if (!$state) return errorTrans("error.data");
  58. return successTrans("success.data");
  59. } catch (\Throwable $throwable) {
  60. return error($throwable->getMessage());
  61. }
  62. }
  63. /**
  64. * 删除
  65. * @param Request $request
  66. * @return Response
  67. */
  68. #[Route(path: "del",methods: "post")]
  69. public function delData(Request $request): Response
  70. {
  71. try {
  72. $param = $this->_valid([
  73. "id.require" => "参数错误",
  74. ],"post");
  75. if (!is_array($param)) return error($param);
  76. $data = $this->model->where(['id' => $param['id'], 'openid' => $request->user['openid'] ])->findOrEmpty();
  77. if ($data->isEmpty()) return errorTrans("empty.data");
  78. $state = $data->delete();
  79. if (!$state) return errorTrans("error.data");
  80. return successTrans("success.data");
  81. } catch (\Throwable $throwable) {
  82. return error($throwable->getMessage());
  83. }
  84. }
  85. }