ConfigPickupNodeController.php 8.7 KB

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