CargoConsignAction.java 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. package com.fuzamei.web;
  2. import java.util.List;
  3. import java.util.Map;
  4. import javax.servlet.http.HttpServletRequest;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.web.bind.annotation.RequestBody;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RequestMethod;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import com.fuzamei.constant.HintMSG;
  11. import com.fuzamei.constant.RegexConstant;
  12. import com.fuzamei.constant.Role;
  13. import com.fuzamei.constant.Statuses;
  14. import com.fuzamei.entity.Orders;
  15. import com.fuzamei.entity.Params;
  16. import com.fuzamei.entity.Status;
  17. import com.fuzamei.entity.UserDetail;
  18. import com.fuzamei.service.CargoConsignService;
  19. import com.fuzamei.service.OrderService;
  20. import com.fuzamei.service.StatusService;
  21. import com.fuzamei.service.UserAuthoricationService;
  22. import com.fuzamei.util.JSONUtil;
  23. import com.fuzamei.util.PageDTO;
  24. import com.fuzamei.util.ReadConfUtil;
  25. import com.fuzamei.util.ValidationUtil;
  26. @RestController
  27. @RequestMapping(path="/cargoConsign")
  28. public class CargoConsignAction {
  29. @Autowired
  30. private CargoConsignService cargoConsignService;
  31. @Autowired
  32. private UserAuthoricationService userAuthoricationService;
  33. @Autowired
  34. private OrderService orderService;
  35. @Autowired
  36. private StatusService statusService;
  37. @Autowired
  38. private HttpServletRequest req;
  39. private static final String CARNO_PATTERN =RegexConstant.CAR_NO;
  40. /**
  41. *
  42. * @Title: queryOrdersBySupplier
  43. * @Description: TODO(供应商查询订单信息)
  44. {
  45. "tokenId":"xx",
  46. "page":"1",
  47. "orderId":"",
  48. "boxNo":"",
  49. "statusId":"",
  50. "startTime":"",
  51. "endTime":""
  52. }
  53. * @param @return 设定文件
  54. * @return Map<String,Object> 返回类型
  55. * @author ylx
  56. * @date 2018年1月26日 上午11:35:13
  57. * @throws
  58. */
  59. @RequestMapping(value="/queryOrdersBySupplier",method=RequestMethod.POST)
  60. public Map<String, Object> queryOrdersBySupplier(@RequestBody Params params){
  61. try {
  62. String userId = req.getHeader("Authorization").split("&")[1];
  63. userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(userId), Role.SUPPLIER);
  64. params.setUserId(Integer.parseInt(userId));
  65. int page = ValidationUtil.checkMinAndAssignInt(params.getPage(), 1);
  66. int rowNum=ValidationUtil.checkMinAndAssignInt(params.getRowNum(), 1);
  67. Long startTime=ValidationUtil.checkAndAssignDefaultLong(params.getStartTime(), 0L);
  68. Long endTime=ValidationUtil.checkAndAssignDefaultLong(params.getEndTime(), Long.MAX_VALUE);
  69. params.setStartTime(startTime);
  70. if(startTime<=endTime) params.setEndTime(endTime);
  71. else params.setEndTime(Long.MAX_VALUE);
  72. params.setStartPage((page - 1) * rowNum);
  73. params.setRowNum(rowNum);
  74. PageDTO pageDto = cargoConsignService.queryOrdersBySupplier(params);
  75. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, pageDto);
  76. } catch (Exception e) {
  77. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  78. }
  79. }
  80. /**
  81. *
  82. * @Title: queryOrdersByCarrier
  83. * @Description: TODO(承运商查看订单信息)
  84. {
  85. "tokenId":"",
  86. "page":"1",
  87. "orderId":"",
  88. "boxNo":"",
  89. "statusId":"",
  90. "startTime":"",
  91. "endTime":""
  92. }
  93. * @param @return 设定文件
  94. * @return Map<String,Object> 返回类型
  95. * @author ylx
  96. * @date 2018年1月26日 下午1:03:33
  97. * @throws
  98. */
  99. @RequestMapping(value="/queryOrdersByCarrier",method=RequestMethod.POST)
  100. public Map<String, Object> queryOrdersByCarrier(@RequestBody Params params){
  101. try {
  102. String userId = req.getHeader("Authorization").split("&")[1];
  103. userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(userId), Role.CARRIER);
  104. params.setUserId(Integer.parseInt(userId));
  105. int page = ValidationUtil.checkMinAndAssignInt(params.getPage(), 1);
  106. int rowNum=ValidationUtil.checkMinAndAssignInt(params.getRowNum(), 1);
  107. Long startTime=ValidationUtil.checkAndAssignDefaultLong(params.getStartTime(), 0L);
  108. Long endTime=ValidationUtil.checkAndAssignDefaultLong(params.getEndTime(), Long.MAX_VALUE);
  109. params.setStartTime(startTime);
  110. if(startTime<=endTime) params.setEndTime(endTime);
  111. else params.setEndTime(Long.MAX_VALUE);
  112. params.setStartPage((page - 1) * rowNum);
  113. params.setRowNum(rowNum);
  114. PageDTO pageDto = cargoConsignService.queryOrdersByCarrier(params);
  115. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, pageDto);
  116. } catch (Exception e) {
  117. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  118. }
  119. }
  120. /**
  121. *
  122. * @Title: doCarry
  123. * @Description: TODO(承运商点击承运按钮后对订单表进行更新)
  124. {
  125. "tokenId":"",
  126. "orderId":"",
  127. "carNo":""
  128. }
  129. * @param @return 设定文件
  130. * @return Map<String,Object> 返回类型
  131. * @author ylx
  132. * @date 2018年1月26日 下午1:14:26
  133. * @throws
  134. */
  135. @RequestMapping(value="/doCarry",method=RequestMethod.POST)
  136. public Map<String, Object> doCarry(@RequestBody Params params){
  137. try {
  138. String userId = req.getHeader("Authorization").split("&")[1];
  139. userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(userId), Role.CARRIER);
  140. params.setUserId(Integer.parseInt(userId));
  141. Orders order = orderService.queryFullOrderByOrderId(ValidationUtil.checkAndAssignInt(params.getOrderId()));
  142. ValidationUtil.checkBlankAndAssignString(params.getCarNo(),CARNO_PATTERN);//车牌号校验
  143. if(order==null) throw new RuntimeException("订单不存在");
  144. if(!Statuses.UNDELIVER.equals(order.getStatusId())) throw new RuntimeException("非法操作");
  145. if(!params.getUserId().equals(order.getCarrierId())) throw new RuntimeException("无权操作");
  146. cargoConsignService.doCarry(params);
  147. return JSONUtil.getJsonMap(200, true, HintMSG.OPERATION_SUCCESS, null);
  148. } catch (Exception e) {
  149. return JSONUtil.getJsonMap(500, false, HintMSG.OPERATION_FAIL+":"+e.getMessage(), null);
  150. }
  151. }
  152. /**
  153. *
  154. * @Title: showAllCarriersUnderSupplier
  155. * @Description: TODO(当供应商点击发货时候,跳出的弹框中承运商下拉框中显示所有承运商)
  156. {
  157. "tokenId":"xxx"
  158. }
  159. * @param @return 设定文件
  160. * @return Map<String,Object> 返回类型
  161. * @author ylx
  162. * @date 2018年1月26日 下午12:03:48
  163. * @throws
  164. */
  165. @RequestMapping(value="/showAllCarriersUnderSupplier",method=RequestMethod.POST)
  166. public Map<String, Object> showAllCarriersUnderSupplier(){
  167. try {
  168. String userId = req.getHeader("Authorization").split("&")[1];
  169. userAuthoricationService.queryUserDetail(ValidationUtil.checkAndAssignInt(userId), Role.SUPPLIER);
  170. List<UserDetail> carrierList = userAuthoricationService.showAllCarriersUnderSupplier();
  171. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, carrierList);
  172. } catch (Exception e) {
  173. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  174. }
  175. }
  176. /**
  177. *
  178. * @Title: showAllStatus
  179. * @Description: TODO(返回给前端所有状态的id和状态名称)
  180. * @param @return 设定文件
  181. * @return Map<String,Object> 返回类型
  182. * @author ylx
  183. * @date 2018年1月31日 下午4:16:11
  184. * @throws
  185. */
  186. @RequestMapping(value="/showAllStatus",method=RequestMethod.POST)
  187. public Map<String, Object> showAllStatus(){
  188. try {
  189. String userId = req.getHeader("Authorization").split("&")[1];
  190. userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(userId), Role.PLANNER,Role.SUPPLIER,Role.CARRIER);//检测当前操作用户权限
  191. List<Status> statusList = statusService.queryAllStatusInformation();
  192. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, statusList);
  193. } catch (Exception e) {
  194. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  195. }
  196. }
  197. /**
  198. *
  199. * @Title: orderTracking
  200. * @Description: TODO(供应商和承运商的订单查询)
  201. {
  202. "tokenId":"xxx",
  203. "orderId":""
  204. }
  205. * @param @return 设定文件
  206. * @return Map<String,Object> 返回类型
  207. * @author ylx
  208. * @date 2018年1月26日 下午1:47:45
  209. * @throws
  210. */
  211. @RequestMapping(value="/orderTracking",method=RequestMethod.POST)
  212. public Map<String, Object> orderTracking(@RequestBody Params params){
  213. try {
  214. String userId = req.getHeader("Authorization").split("&")[1];
  215. params.setUserId(Integer.parseInt(userId));
  216. UserDetail userDetail = userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(userId),Role.CARRIER,Role.SUPPLIER);//检测当前操作用户权限
  217. Orders order = orderService.queryFullOrderByOrderId(ValidationUtil.checkAndAssignInt(params.getOrderId()));
  218. if(Role.SUPPLIER.equals(userDetail.getRoleName())){
  219. if(!params.getUserId().equals(order.getSupplierId())) throw new RuntimeException("无权查看");
  220. }
  221. if(Role.CARRIER.equals(userDetail.getRoleName())){
  222. if(!params.getUserId().equals(order.getCarrierId())) throw new RuntimeException("无权查看");
  223. }
  224. params.setOrder(order);
  225. List<Object> list = cargoConsignService.orderTracking(params);
  226. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, list);
  227. } catch (Exception e) {
  228. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  229. }
  230. }
  231. }