Rescue.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <?php
  2. namespace app\admin\controller\store;
  3. use app\common\controller\AdminController;
  4. use app\http\IResponse;
  5. class Rescue extends AdminController
  6. {
  7. /**
  8. *
  9. * @author 许祖兴 < zuxing.xu@lettered.cn>
  10. * @date 2020/7/15 18:20
  11. *
  12. * @return mixed
  13. * @throws \think\exception\DbException
  14. */
  15. public function index()
  16. {
  17. $where = [];
  18. //组合搜索
  19. $rescue = model('common/Rescue');
  20. return IResponse::paginate($rescue->where($where)
  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/Rescue")->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. $rescue = model('common/Rescue')->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. $rescue->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/Rescue')->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/Rescue')->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. * @return mixed
  121. * @throws \think\exception\DbException
  122. */
  123. public function orders()
  124. {
  125. /*1 . 下单未支付 unpay
  126. 2 . 支付待服务 wait
  127. 3 . 服务中 serve
  128. 4 . 服务结束 */
  129. $where = [];
  130. //组合搜索
  131. $user = model('common/RescueOrder');
  132. return IResponse::paginate($user->where($where)->with(['rescue','user'])
  133. ->order(['created_at' => 'desc'])
  134. ->paginate(input('limit'),false));
  135. }
  136. /**
  137. * @return mixed
  138. */
  139. public function exportOrder()
  140. {
  141. return IResponse::success([],'等待开发...');
  142. }
  143. /**
  144. * @param $id
  145. *
  146. * @return mixed
  147. */
  148. public function deleteOrder($id)
  149. {
  150. model('common/RescueOrder')->deleteBy($id);
  151. return IResponse::success([],'删除订单成功');
  152. }
  153. /**
  154. * 订单操作
  155. *
  156. * @param $id
  157. * @return \think\response\Json
  158. */
  159. public function actionOrder($id)
  160. {
  161. $param = $this->request->param();
  162. $valid = $this->validate($param, [
  163. 'action|操作状态' => 'require'
  164. ]);
  165. // 错误返回
  166. (true !== $valid) && IResponse::failure($valid);
  167. $model = model('common/RescueOrder');
  168. $msg = "操作";
  169. /*1 . 下单未支付 unpay
  170. 2 . 支付待服务 wait
  171. 3 . 服务中 serve
  172. 4 . 服务结束 */
  173. $serve = $model->findBy($id);
  174. switch ($param['action']){
  175. case "dispense":
  176. $msg = "指派师傅";
  177. // 状态以及时间
  178. $model->updateBy($id,[
  179. 'status' => 3
  180. ]);
  181. break;
  182. case "complete":
  183. $msg = "结束服务";
  184. // 系统帮助用户自主确认订单
  185. $model->updateBy($id,[
  186. 'status' => 4
  187. ]);
  188. break;
  189. case "closed":
  190. $msg = "关闭服务";
  191. $model->updateBy($id,[
  192. 'status' => 0
  193. ]);
  194. // 已支付的数据要返还金额
  195. if($serve['status'] == 2){
  196. // 先返款
  197. model('common/Users')->changeBalance(
  198. $serve['user_id'],
  199. round($serve['price'], 2),
  200. '救援服务关闭,退还【' . $serve['price'] . '】',
  201. true
  202. );
  203. }
  204. break;
  205. }
  206. return IResponse::success([],$msg . '成功');
  207. }
  208. }