Mission.php 10.0 KB

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