Mission.php 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. <?php
  2. namespace app\admin\controller\store;
  3. use app\common\controller\AdminController;
  4. use app\http\IResponse;
  5. class Mission extends AdminController
  6. {
  7. /**
  8. *
  9. * @author 许祖兴 < zuxing.xu@lettered.cn>
  10. * @date 2020/7/3 17:06
  11. *
  12. * @return mixed
  13. * @throws \think\exception\DbException
  14. */
  15. public function index()
  16. {
  17. $where = [];
  18. //组合搜索
  19. $taxi = model('common/Mission');
  20. return IResponse::paginate($taxi->where($where)->order(['created_at' => 'desc'])
  21. ->paginate(input('limit'),false));
  22. }
  23. /**
  24. * 新增
  25. *
  26. * @author 许祖兴 < zuxing.xu@lettered.cn>
  27. * @date 2020/06/07 23:59
  28. *
  29. * @return mixed
  30. */
  31. public function save()
  32. {
  33. // 接收数据
  34. $params = $this->request->param();
  35. // 数据校验
  36. $valid = $this->validate($params, [
  37. 'name|技能名称' => 'require',
  38. 'cover_img|展示图片' => 'require',
  39. 'content|服务内容' => 'require',
  40. 'price|服务价格' => 'require',
  41. 'time_slot|服务时段' => 'require'
  42. ]);
  43. // 错误返回
  44. (true !== $valid) && IResponse::failure($valid);
  45. // 保存数据
  46. $skillId = model("common/Mission")->storeBy($params);
  47. return $skillId ? IResponse::success([],'新增技能信息成功'):
  48. IResponse::failure('新增技能信息异常');
  49. }
  50. /**
  51. * 更新数据
  52. *
  53. * @author 许祖兴 < zuxing.xu@lettered.cn>
  54. * @date 2020/06/07 14:24
  55. *
  56. * @param $id
  57. * @return \think\response\Json
  58. */
  59. public function update($id)
  60. {
  61. // 接收数据
  62. $params = $this->request->param();
  63. // 查询用户
  64. $mission = model('common/Mission')->findBy($id);
  65. // 是否更改状态操作
  66. if (isset($params['status']) && $params['status'] != '') {
  67. $valid = $this->validate($params, [
  68. 'status|配置状态' => 'require|integer'
  69. ]);
  70. }else {
  71. // 数据校验
  72. $valid = $this->validate($params, [
  73. 'name|技能名称' => 'require',
  74. 'cover_img|展示图片' => 'require',
  75. 'content|服务内容' => 'require',
  76. 'price|服务价格' => 'require',
  77. 'time_slot|服务时段' => 'require'
  78. ]);
  79. }
  80. // 错误返回
  81. (true !== $valid) && IResponse::failure($valid);
  82. // 更新信息
  83. $mission->updateBy($id, $params);
  84. return IResponse::success('更新技能信息成功');
  85. }
  86. /**
  87. * 删除
  88. *
  89. * @author 许祖兴 < zuxing.xu@lettered.cn>
  90. * @date 2020/3/16 14:22
  91. *
  92. * @param $id
  93. * @return \think\response\Json
  94. */
  95. public function delete($id)
  96. {
  97. model('common/Mission')->deleteBy($id);
  98. return IResponse::success([],'删除技能成功');
  99. }
  100. /**
  101. * 批量操作
  102. *
  103. * @return mixed
  104. */
  105. public function plectron(){
  106. // 收参数
  107. $params = $this->request->param();
  108. foreach (str2arr($params['ids']) as $id){
  109. $skills = model('common/Mission')->getBy($id);
  110. if ($this->request->isDelete()){
  111. $skills->deleteBy($id);
  112. return IResponse::success([],'删除技能服务成功');
  113. }
  114. $skills->allowField(true)->updateBy($id, $params);
  115. }
  116. return IResponse::success([],'操作成功');
  117. }
  118. /******************** 配送员 *********************/
  119. /**
  120. * 配送员列表
  121. * @return mixed
  122. * @throws \think\exception\DbException
  123. */
  124. public function users()
  125. {
  126. $where = [];
  127. //组合搜索
  128. !empty(input('uname')) && $where[]
  129. = ['uname', 'like', '%' . input('uname') . '%'];
  130. !empty(input('mobile')) && $where[]
  131. = ['mobile', 'like', '%' . input('mobile') .'%'];
  132. $user = model('common/MissionUser');
  133. return IResponse::paginate($user->where($where)
  134. ->paginate(input('limit'),false));
  135. }
  136. public function createUser()
  137. {
  138. // 接收数据
  139. $params = $this->request->param();
  140. // 数据校验
  141. $valid = $this->validate($params, [
  142. 'uname|配送员名称' => 'require',
  143. 'id_card|身份证号' => 'require',
  144. 'id_card_img|身份证件照片' => 'require',
  145. 'mobile|手机号码' => 'require',
  146. 'address|配送员住址' => 'require',
  147. 'dr_license|驾驶证' => 'require'
  148. ]);
  149. // 错误返回
  150. (true !== $valid) && IResponse::failure($valid);
  151. // 保存数据
  152. $userId = model('common/MissionUser')->storeBy($params);
  153. return $userId ? IResponse::success([],'新增配送员成功'):
  154. IResponse::failure('新增配送员异常');
  155. }
  156. /**
  157. * @param $id
  158. *
  159. * @return mixed
  160. */
  161. public function updateUser($id)
  162. {
  163. // 接收数据
  164. $params = $this->request->param();
  165. // 查询用户
  166. $driver = model('common/MissionUser')->findBy($id);
  167. // 是否更改状态操作
  168. if (isset($params['status']) && $params['status'] != '') {
  169. $valid = $this->validate($params, [
  170. 'status|配置状态' => 'require|integer'
  171. ]);
  172. }else {
  173. // 数据校验
  174. $valid = $this->validate($params, [
  175. 'uname|配送员名称' => 'require',
  176. 'id_card|身份证号' => 'require',
  177. 'id_card_img|身份证件照片' => 'require',
  178. 'mobile|手机号码' => 'require',
  179. 'address|配送员住址' => 'require',
  180. 'dr_license|驾驶证' => 'require'
  181. ]);
  182. }
  183. // 错误返回
  184. (true !== $valid) && IResponse::failure($valid);
  185. // 更新用户信息
  186. $driver->updateBy($id, $params);
  187. return IResponse::success('更新配送员信息成功');
  188. }
  189. /**
  190. * 删除
  191. *
  192. * @param $id
  193. *
  194. * @return mixed
  195. */
  196. public function deleteUser($id)
  197. {
  198. model('common/MissionUser')->deleteBy($id);
  199. return IResponse::success([],'删除配送员成功');
  200. }
  201. /**
  202. * 批量操作
  203. *
  204. * @author 许祖兴 < zuxing.xu@lettered.cn>
  205. * @date 2020/3/23 11:38
  206. *
  207. * @return mixed
  208. */
  209. public function plectronUser(){
  210. // 收参数
  211. $params = $this->request->param();
  212. foreach (str2arr($params['ids']) as $id){
  213. $seller = model('common/MissionUser')->getBy($id);
  214. if ($this->request->isDelete()){
  215. $seller->deleteBy($id);
  216. return IResponse::success([],'删除配送员成功');
  217. }
  218. $seller->allowField(true)->updateBy($id, $params);
  219. }
  220. return IResponse::success([],'操作成功');
  221. }
  222. /******************** 订单 *********************/
  223. /**
  224. * @return mixed
  225. * @throws \think\exception\DbException
  226. */
  227. public function orders()
  228. {
  229. $where = [];
  230. //组合搜索
  231. $user = model('common/MissionOrder');
  232. return IResponse::paginate($user->where($where)->with(['mission','user','service'])->order(['created_at' => 'desc'])
  233. ->paginate(input('limit'),false));
  234. }
  235. /**
  236. * @return mixed
  237. */
  238. public function exportOrder()
  239. {
  240. return IResponse::success([],'等待开发...');
  241. }
  242. /**
  243. * 订单操作
  244. *
  245. * @param $id
  246. * @return \think\response\Json
  247. */
  248. public function actionOrder($id)
  249. {
  250. $param = $this->request->param();
  251. $valid = $this->validate($param, [
  252. 'action|操作状态' => 'require'
  253. ]);
  254. // 错误返回
  255. (true !== $valid) && IResponse::failure($valid);
  256. $model = model('common/MissionOrder');
  257. $msg = "操作";
  258. /*1 . 下单未支付 unpay
  259. 2 . 支付待服务 wait
  260. 3 . 服务中 serve
  261. 4 . 服务结束 */
  262. $serve = $model->findBy($id);
  263. switch ($param['action']){
  264. case "dispense":
  265. $msg = "指派配送";
  266. // 状态以及时间
  267. $model->updateBy($id,[
  268. 'status' => 3
  269. ]);
  270. break;
  271. case "complete":
  272. $msg = "结束配送";
  273. $model->updateBy($id,[
  274. 'status' => 4
  275. ]);
  276. break;
  277. case "closed":
  278. $msg = "关闭服务";
  279. $model->updateBy($id,[
  280. 'status' => 0
  281. ]);
  282. // 已支付的数据要返还金额
  283. if($serve['status'] == 2){
  284. // 先返款
  285. model('common/Users')->changeBalance(
  286. $serve['user_id'],
  287. round($serve['price'], 2),
  288. '接单服务关闭,退还【' . $serve['price'] . '】',
  289. true
  290. );
  291. }
  292. break;
  293. }
  294. return IResponse::success($serve,$msg . '成功');
  295. }
  296. /**
  297. * @param $id
  298. *
  299. * @return mixed
  300. */
  301. public function deleteOrder($id)
  302. {
  303. model('common/MissionOrder')->deleteBy($id);
  304. return IResponse::success([],'删除订单成功');
  305. }
  306. }