Skill.php 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. <?php
  2. namespace app\admin\controller\store;
  3. use app\common\controller\AdminController;
  4. use app\http\IResponse;
  5. class Skill 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. $taxi = model('common/Skill');
  20. return IResponse::paginate($taxi->where($where)->with(['user'])
  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/Skill")->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. $skill = model('common/Skill')->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. $skill->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/Skill')->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/Skill')->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. public function users()
  120. {
  121. $where = [];
  122. //组合搜索
  123. $user = model('common/SkillUser');
  124. return IResponse::paginate($user->where($where)
  125. ->paginate(input('limit'),false));
  126. }
  127. public function createUser()
  128. {
  129. // 接收数据
  130. $params = $this->request->param();
  131. // 数据校验
  132. $valid = $this->validate($params, [
  133. 'uname|师傅名称' => 'require',
  134. 'id_card|身份证号' => 'require',
  135. 'id_card_img|身份证件照片' => 'require',
  136. 'mobile|手机号码' => 'require',
  137. 'address|师傅住址' => 'require'
  138. ]);
  139. // 错误返回
  140. (true !== $valid) && IResponse::failure($valid);
  141. // 保存数据
  142. $userId = model('common/SkillUser')->storeBy($params);
  143. return $userId ? IResponse::success([],'新增师傅成功'):
  144. IResponse::failure('新增师傅异常');
  145. }
  146. /**
  147. * @param $id
  148. *
  149. * @return mixed
  150. */
  151. public function updateUser($id)
  152. {
  153. // 接收数据
  154. $params = $this->request->param();
  155. // 查询用户
  156. $driver = model('common/SkillUser')->findBy($id);
  157. // 是否更改状态操作
  158. if (isset($params['status']) && $params['status'] != '') {
  159. $valid = $this->validate($params, [
  160. 'status|配置状态' => 'require|integer'
  161. ]);
  162. }else {
  163. // 数据校验
  164. $valid = $this->validate($params, [
  165. 'uname|师傅名称' => 'require',
  166. 'id_card|身份证号' => 'require',
  167. 'id_card_img|身份证件照片' => 'require',
  168. 'mobile|手机号码' => 'require',
  169. 'address|师傅住址' => 'require'
  170. ]);
  171. }
  172. // 错误返回
  173. (true !== $valid) && IResponse::failure($valid);
  174. // 更新用户信息
  175. $driver->updateBy($id, $params);
  176. return IResponse::success('更新师傅信息成功');
  177. }
  178. /**
  179. * 删除师傅
  180. *
  181. * @param $id
  182. *
  183. * @return mixed
  184. */
  185. public function deleteUser($id)
  186. {
  187. model('common/SkillUser')->deleteBy($id);
  188. return IResponse::success([],'删除师傅成功');
  189. }
  190. /**
  191. * 批量操作
  192. *
  193. * @author 许祖兴 < zuxing.xu@lettered.cn>
  194. * @date 2020/3/23 11:38
  195. *
  196. * @return mixed
  197. */
  198. public function plectronUser(){
  199. // 收参数
  200. $params = $this->request->param();
  201. foreach (str2arr($params['ids']) as $id){
  202. $seller = model('common/SkillUser')->getBy($id);
  203. if ($this->request->isDelete()){
  204. $seller->deleteBy($id);
  205. return IResponse::success([],'删除师傅成功');
  206. }
  207. $seller->allowField(true)->updateBy($id, $params);
  208. }
  209. return IResponse::success([],'操作成功');
  210. }
  211. /******************** 订单 *********************/
  212. /**
  213. * @return mixed
  214. * @throws \think\exception\DbException
  215. */
  216. public function orders()
  217. {
  218. /*1 . 下单未支付 unpay
  219. 2 . 支付待服务 wait
  220. 3 . 服务中 serve
  221. 4 . 服务结束 */
  222. $where = [];
  223. //组合搜索
  224. $user = model('common/SkillOrder');
  225. return IResponse::paginate($user->where($where)->with(['skill','user','service'])
  226. ->order(['created_at' => 'desc'])
  227. ->paginate(input('limit'),false));
  228. }
  229. /**
  230. * @return mixed
  231. */
  232. public function exportOrder()
  233. {
  234. return IResponse::success([],'等待开发...');
  235. }
  236. /**
  237. * @param $id
  238. *
  239. * @return mixed
  240. */
  241. public function deleteOrder($id)
  242. {
  243. model('common/SkillOrder')->deleteBy($id);
  244. return IResponse::success([],'删除订单成功');
  245. }
  246. /**
  247. * 订单操作
  248. *
  249. * @param $id
  250. * @return \think\response\Json
  251. */
  252. public function actionOrder($id)
  253. {
  254. $param = $this->request->param();
  255. $valid = $this->validate($param, [
  256. 'action|操作状态' => 'require'
  257. ]);
  258. // 错误返回
  259. (true !== $valid) && IResponse::failure($valid);
  260. $model = model('common/SkillOrder');
  261. $msg = "操作";
  262. /*1 . 下单未支付 unpay
  263. 2 . 支付待服务 wait
  264. 3 . 服务中 serve
  265. 4 . 服务结束 */
  266. $serve = $model->findBy($id);
  267. switch ($param['action']){
  268. case "dispense":
  269. $msg = "指派师傅";
  270. // 状态以及时间
  271. $model->updateBy($id,[
  272. 'status' => 3
  273. ]);
  274. break;
  275. case "complete":
  276. $msg = "结束服务";
  277. // 系统帮助用户自主确认订单
  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([],$msg . '成功');
  300. }
  301. }