UserAction.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. <?php
  2. namespace app\api\controller;
  3. use app\api\service\UserActionService;
  4. use app\api\validate\BaseApiValidate;
  5. use app\common\controller\Api;
  6. use redis\RedisClient;
  7. use think\Request;
  8. class UserAction extends Api
  9. {
  10. private $service;
  11. protected $noNeedLogin = [
  12. "applyBeMassager",
  13. "applyBeAgency"
  14. ];
  15. public function __construct(Request $request = null)
  16. {
  17. $this->service = new UserActionService();
  18. parent::__construct($request);
  19. }
  20. function modify()
  21. {
  22. $user = $this->auth->getUser();
  23. $params = (new BaseApiValidate([]))->checkBody();
  24. $user = $this->service->modify($user->id, $params);
  25. if (null === $user)
  26. $this->error("用户不存在!");
  27. $user['token'] = $this->auth->getToken();
  28. $this->success($user);
  29. }
  30. public function scanCode($invite_store_id)
  31. {
  32. $user = $this->auth->getUser();
  33. if ($invite_store_id == null) {
  34. $this->error("扫描的球房不存在");
  35. }
  36. if ($invite_store_id) {
  37. RedisClient::of()->set("scan:qr:codes:{$user["id"]}", $invite_store_id, 60 * 10);
  38. }
  39. $this->success();
  40. }
  41. public function colletMassager()
  42. {
  43. $params = (new BaseApiValidate([
  44. 'massager_id' => 'require|number'
  45. ]))->checkBody();
  46. $user = $this->auth->getUser();
  47. $r = $this->service->colletMassager($user->id, $params['massager_id']);
  48. $r->code() ? $this->success($r->data()) : $this->error($r->msg());
  49. }
  50. public function cancelColletMassager()
  51. {
  52. $params = (new BaseApiValidate([
  53. 'massager_id' => 'require|number'
  54. ]))->checkBody();
  55. $user = $this->auth->getUser();
  56. $r = $this->service->cancelColletMassager($user->id, $params['massager_id']);
  57. $r->code() ? $this->success($r->data()) : $this->error($r->msg());
  58. }
  59. public function commentMassager()
  60. {
  61. $params = (new BaseApiValidate([
  62. "massager_id" => "require|number",
  63. "is_anonymity" => "require|between:0,1",
  64. "star" => "between:0,5",
  65. "content" => "require|length:5,1000"
  66. ]))->checkBody();
  67. $user = $this->auth->getUser();
  68. $params['user_id'] = $user->id;
  69. $r = $this->service->commentMassager($params);
  70. $r->code() ? $this->success($r->data()) : $this->error($r->msg());
  71. }
  72. /**
  73. * 添加地址
  74. */
  75. public function addArea()
  76. {
  77. $user = $this->auth->getUser();
  78. $params = (new BaseApiValidate([
  79. 'name' => 'require',
  80. 'mobile' => 'require|length:11',
  81. 'address' => 'require',
  82. // 'door_no' => 'require',
  83. 'city_code' => "require|number",
  84. "lng" => "require|number",
  85. "lat" => "require|number",
  86. ]))->checkBody();
  87. $area = $this->service->addArea($user->id, $params);
  88. $this->success($area);
  89. }
  90. /**
  91. * 删除地址
  92. */
  93. public function delArea()
  94. {
  95. $user = $this->auth->getUser();
  96. $params = (new BaseApiValidate([
  97. 'area_id' => "require|number"
  98. ]))->checkBody();
  99. $area = $this->service->delArea($user->id, $params['area_id']);
  100. $this->success($area);
  101. }
  102. /**
  103. * 获取默认地址
  104. */
  105. public function getEnableArea()
  106. {
  107. $user = $this->auth->getUser();
  108. $r = $this->service->getEnableArea($user->id);
  109. $r ? $this->success($r) : $this->error("未设置默认地址");
  110. }
  111. /**
  112. * 获取地址列表
  113. */
  114. public function fetchArea()
  115. {
  116. $user = $this->auth->getUser();
  117. $r = $this->service->fetchArea($user->id);
  118. $this->success($r);
  119. }
  120. public function changeAreaEnable()
  121. {
  122. $user = $this->auth->getUser();
  123. $params = (new BaseApiValidate([
  124. 'area_id' => "require|number"
  125. ]))->checkBody();
  126. $r = $this->service->changeAreaEnable($user->id, $params['area_id']);
  127. $r->code() ? $this->success($r->data()) : $this->error($r->msg());
  128. }
  129. public function applyBeMassager()
  130. {
  131. $user = $this->auth->getUser();
  132. $params = (new BaseApiValidate([
  133. "name" => "require|length:2,10",
  134. "gender" => "require",
  135. "mobile" => "require|length:11",
  136. "date_of_birth" => "require|date",
  137. "photo_images" => "require",
  138. "city_code" => "require|number",
  139. "parent_id" => "number"
  140. ]))->checkBody();
  141. if (!in_array($params["gender"], [\E_GENDER_TYPE::Man, \E_GENDER_TYPE::Woman]))
  142. $this->error("gender error");
  143. $r = $this->service->applyBeMassager($user ? $user->id : null, $params);
  144. $r->code() ? $this->success($r->data()) : $this->error($r->msg());
  145. }
  146. public function applyBeAgency()
  147. {
  148. $params = (new BaseApiValidate([
  149. "name" => "require|length:2,10",
  150. "mobile" => "require|length:11",
  151. // "id_card" => "require",
  152. "budget" => "require",
  153. // "license_images" => "require",
  154. "area_ids" => "require"
  155. ]))->checkBody();
  156. $r = $this->service->applyBeAgency($params);
  157. $r->code() ? $this->success($r->data()) : $this->error($r->msg());
  158. }
  159. // 反馈
  160. public function feedback()
  161. {
  162. $user = $this->auth->getUser();
  163. $params = (new BaseApiValidate([
  164. "type" => "require",
  165. "reason" => "require",
  166. "mobile" => "require",
  167. "content" => "require",
  168. "relation_type" => "require",
  169. ]))->checkBody();
  170. if (!in_array($params["type"], ['feedback', 'complaint']))
  171. $this->error("type error");
  172. if (!in_array($params["relation_type"], ['platform', 'agency', 'store', 'massager', 'user', 'other']))
  173. $this->error("relation_type");
  174. $r = $this->service->feedback(
  175. $user->id,
  176. $params["type"],
  177. $params["content"],
  178. isset($params["images"]) ? $params["images"] : null,
  179. $params["reason"],
  180. $params["mobile"],
  181. isset($params["relation_type"]) ? $params["relation_type"] : null,
  182. isset($params["relation_id"]) ? $params["relation_id"] : null,
  183. isset($params["relation_name"]) ? $params["relation_name"] : null
  184. );
  185. $this->success($r);
  186. }
  187. public function fetchGrantVoucher()
  188. {
  189. $user = $this->auth->getUser();
  190. $r = $this->service->fetchGrantVoucher($user->id);
  191. $this->success($r);
  192. }
  193. public function grantVoucher()
  194. {
  195. $params = (new BaseApiValidate([
  196. "id" => "require|number"
  197. ]))->checkBody();
  198. $user = $this->auth->getUser();
  199. $r = $this->service->grantVoucher($user->id, $params["id"]);
  200. $r->code() ? $this->success($r->data()) : $this->error($r->msg());
  201. }
  202. public function delete_order($order_id = null)
  203. {
  204. if ($order_id > 0)
  205. (new \app\api\model\order\Order())->update(["is_delete" => 1], ["id" => $order_id]);
  206. $this->success();
  207. }
  208. public function cancel($sms_code = null)
  209. {
  210. $user = $this->auth->getUser();
  211. if (!$user || !$user['mobile'])
  212. $this->error("登录信息错误");
  213. $check = \app\common\library\Sms::check($user["mobile"], $sms_code, "user_cancel");
  214. if (!$check)
  215. $this->error("短信验证码不正确!");
  216. $this->service->cancel($user["id"]);
  217. $this->success();
  218. }
  219. }