ConfigPickupNodeController.php 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\ApiHelper;
  4. use Illuminate\Http\Request;
  5. use App\Models\ConfigPickupNode;
  6. use App\Transformers\PickupNodeTransformer;
  7. use Illuminate\Support\Facades\Validator;
  8. /**
  9. * Created by PhpStorm.
  10. * User: qinyaer
  11. * Date: 2019/4/24
  12. * Time: 上午10:51
  13. */
  14. class ConfigPickupNodeController extends BaseController
  15. {
  16. /**
  17. * @api {get} /pickupNode/index 自提点列表
  18. * @apiVersion 0.1
  19. * @apiName ConfigPickupNode index
  20. * @apiGroup ConfigPickupNode
  21. * @apiPermission none
  22. * @apiSuccessExample 成功响应:
  23. {
  24. "data": [],
  25. "extra": {
  26. "filters": [
  27. "筛选字段1",
  28. "筛选字段2"
  29. ],
  30. "columns": [
  31. "id",
  32. "name"
  33. ]
  34. },
  35. "meta": {
  36. "pagination": {
  37. "total": 2,
  38. "count": 2,
  39. "per_page": 15,
  40. "current_page": 1,
  41. "total_pages": 1,
  42. "links": []
  43. }
  44. }
  45. */
  46. public function index()
  47. {
  48. $ConfigPickupNode = ConfigPickupNode::orderBy('id', 'desc')
  49. ->paginate();
  50. if (count($ConfigPickupNode)>0) {
  51. foreach ($ConfigPickupNode as $k => $v) {
  52. $ConfigPickupNode[$k]->receive_type = $v->receive_type == 0 ? '信任交付' : '手动确认接货';
  53. $ConfigPickupNode[$k]->status = $v->status == 0 ? '启用' : '禁用';
  54. $ConfigPickupNode[$k]->store_ids = $v->getStoreNameAttribute();
  55. }
  56. }
  57. return $this->response->paginator($ConfigPickupNode, new PickupNodeTransformer());
  58. }
  59. /**
  60. * @api {get} /pickupNode/add 新建自提点
  61. * @apiVersion 0.1
  62. * @apiName ConfigPickupNode add
  63. * @apiGroup ConfigPickupNode
  64. * @apiPermission none
  65. * @apiSuccessExample 成功响应:
  66. {
  67. "meta": {
  68. "message": "Success.",
  69. "status_code": 200
  70. }
  71. }
  72. */
  73. public function add(Request $request)
  74. {
  75. $name = $request->input('name') ? $request->input('name') : '';
  76. $pickup_group_id = $request->input('pickup_group_id') ? $request->input('pickup_group_id') : 0;
  77. $city_id = $request->input('city_id') ? $request->input('city_id') : 0;
  78. $city_name = $request->input('city_name') ? $request->input('city_name') : '';
  79. $address = $request->input('address') ? $request->input('address') : '';
  80. $longitude = $request->input('longitude') ? $request->input('longitude') : '';
  81. $latitude = $request->input('latitude') ? $request->input('latitude') : '';
  82. $pickup_code = $request->input('pickup_code') ? $request->input('pickup_code') : '';
  83. $work_time = $request->input('work_time') ? $request->input('work_time') : '';
  84. $manager_name = $request->input('manager_name') ? $request->input('manager_name') : '';
  85. $manager_mobile = $request->input('manager_mobile') ? $request->input('manager_mobile') : '';
  86. $store_ids = $request->input('store_ids') ? $request->input('store_ids') : 0;
  87. $receive_type = $request->input('receive_type') ? $request->input('receive_type') : '';
  88. $data = array(
  89. 'name' => $name,
  90. 'pickup_group_id' => $pickup_group_id,
  91. 'city_id' => $city_id,
  92. 'city_name' => $city_name,
  93. 'address' => $address,
  94. 'longitude' => $longitude,
  95. 'latitude' => $latitude,
  96. 'pickup_code' => $pickup_code,
  97. 'work_time' => $work_time,
  98. 'manager_name' => $manager_name,
  99. 'manager_mobile' => $manager_mobile,
  100. 'store_ids' => $store_ids,
  101. 'receive_type' => $receive_type,
  102. );
  103. $rules = [
  104. 'name' => 'required|max:20',
  105. 'manager_mobile' => ['required', 'regex:/^1(3[0-9]|4[57]|5[0-35-9]|6[56]|7[0135678]|8[0-9]|9[89])\\d{8}$/'],
  106. 'address' => 'required|max:200',
  107. 'pickup_group_id' => 'required',
  108. 'city_id' => 'required',
  109. 'city_name' => 'required',
  110. 'longitude' => 'required',
  111. 'latitude' => 'required',
  112. 'pickup_code' => 'required',
  113. 'work_time' => 'required',
  114. ];
  115. $massage = [
  116. 'name.required' => '自提点名称不能为空',
  117. 'name.max' => '自提点名称不能超过20个字符',
  118. 'manager_mobile.required' => '负责人电话不能为空',
  119. 'manager_mobile.regex' => '负责人手机号格式不正确',
  120. 'address.required' => '自提点详细地址不能为空',
  121. 'address.max' => '自提点详细地址不能超过200个字符',
  122. 'pickup_group_id.required' => '自提点分组ID不能为空',
  123. 'city_id.required' => '城市不能为空',
  124. 'city_name.required' => '城市名称不能为空',
  125. 'longitude.required' => '经度不能为空',
  126. 'latitude.required' => '纬度不能为空',
  127. 'pickup_code.required' => '自提点编码不能为空',
  128. 'work_time.required' => '自提时间不能为空',
  129. ];
  130. $validator = Validator::make($data, $rules, $massage);
  131. if ($validator->fails()) {
  132. return $this->response->array(ApiHelper::error('请求参数格式不正确!', 412));
  133. }
  134. $pickup_node = ConfigPickupNode::create($data);
  135. if(!$pickup_node) {
  136. return $this->response->array(ApiHelper::error('新建自提点失败!', 500));
  137. }
  138. return $this->response->array(ApiHelper::success());
  139. }
  140. /**
  141. * @api {get} /pickupNode/edit 编辑自提点
  142. * @apiVersion 0.1
  143. * @apiName ConfigPickupNode edit
  144. * @apiGroup ConfigPickupNode
  145. * @apiPermission none
  146. * @apiSuccessExample 成功响应:
  147. {
  148. "data": [],
  149. "extra": {
  150. "filters": [
  151. "筛选字段1",
  152. "筛选字段2"
  153. ],
  154. "columns": [
  155. "id",
  156. "name"
  157. ]
  158. },
  159. "meta": {
  160. "pagination": {
  161. "total": 2,
  162. "count": 2,
  163. "per_page": 15,
  164. "current_page": 1,
  165. "total_pages": 1,
  166. "links": []
  167. }
  168. }
  169. */
  170. public function edit(Request $request)
  171. {
  172. $id = $request->input('id');
  173. $pickup_node = ConfigPickupNode::where('id',$id)->first();
  174. if (!$pickup_node) {
  175. return $this->response->array(ApiHelper::error('该自提点不存在!', 402));
  176. }
  177. $data = $request->all();
  178. $data['id'] = $request->input('id');
  179. $rules = [
  180. 'name' => 'required|max:20',
  181. 'manager_mobile' => ['required', 'regex:/^1(3[0-9]|4[57]|5[0-35-9]|6[56]|7[0135678]|8[0-9]|9[89])\\d{8}$/'],
  182. 'address' => 'required|max:200',
  183. 'pickup_group_id' => 'required',
  184. 'city_id' => 'required',
  185. 'city_name' => 'required',
  186. 'longitude' => 'required',
  187. 'latitude' => 'required',
  188. 'pickup_code' => 'required',
  189. 'work_time' => 'required',
  190. ];
  191. $validator = Validator::make($data, $rules);
  192. if ($validator->fails()) {
  193. return $this->response->array(ApiHelper::error('请求参数格式不正确!', 412));
  194. }
  195. $pickup_node_update = $pickup_node->update($data);
  196. if (!$pickup_node_update){
  197. return $this->response->array(ApiHelper::error('修改失败,请重试!', 412));
  198. }
  199. return $this->response->array(ApiHelper::success());
  200. }
  201. /**
  202. * @api {get} /pickupNode/view 查看自提点
  203. * @apiVersion 0.1
  204. * @apiName ConfigPickupNode view
  205. * @apiGroup ConfigPickupNode
  206. * @apiPermission none
  207. * @apiSuccessExample 成功响应:
  208. {
  209. "data": {
  210. "id": 2,
  211. "city_id": 1,
  212. "city_name": "dd",
  213. "name": "ff",
  214. "address": "dd",
  215. "work_time": "2019-04-24 11:35:00",
  216. "manager_name": "4ed",
  217. "manager_mobile": "555",
  218. "receive_type": "信任交付",
  219. "longitude": "2",
  220. "latitude": "2",
  221. "store_ids": "冷冻",
  222. "status": "启用"
  223. },
  224. "meta": {
  225. "message": "Success.",
  226. "status_code": 200
  227. }
  228. }
  229. */
  230. public function view(Request $request)
  231. {
  232. $id = $request->input('id');
  233. $pickup_node = ConfigPickupNode::where('id',$id)->first();
  234. if (!$pickup_node) {
  235. return $this->response->array(ApiHelper::error('没有找到该自提点!', 402));
  236. }
  237. $pickup_node->receive_type = $pickup_node->receive_type == 0 ? '信任交付':'手动确认接货';
  238. $pickup_node->status = $pickup_node->status == 0 ? '启用':'禁用';
  239. $pickup_node->store_ids = $pickup_node->getStoreNameAttribute();
  240. return $this->response->item($pickup_node, new PickupNodeTransformer)->setMeta(ApiHelper::meta());
  241. }
  242. }