ChannelAdminHandler.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. package com.iamberry.wechat.handles.channel;
  2. import com.iamberry.wechat.core.entity.ResultMsg;
  3. import com.iamberry.wechat.core.entity.WechatUtils;
  4. import com.iamberry.wechat.core.entity.channel.ChannelAdmin;
  5. import com.iamberry.wechat.core.entity.channel.ChannelPrice;
  6. import com.iamberry.wechat.core.entity.channel.ChildChannel;
  7. import com.iamberry.wechat.core.entity.member.Member;
  8. import com.iamberry.wechat.core.entity.order.Order;
  9. import com.iamberry.wechat.core.entity.order.OrderItem;
  10. import com.iamberry.wechat.core.entity.page.PageRequest;
  11. import com.iamberry.wechat.core.entity.page.PagedResult;
  12. import com.iamberry.wechat.core.entity.product.Product;
  13. import com.iamberry.wechat.core.entity.receive.ChargerReceive;
  14. import com.iamberry.wechat.face.channel.ChannelAdminService;
  15. import com.iamberry.wechat.face.channel.ChannelPriceService;
  16. import com.iamberry.wechat.face.channel.MainChannelService;
  17. import com.iamberry.wechat.face.member.MemberService;
  18. import com.iamberry.wechat.face.order.AdminOrderService;
  19. import com.iamberry.wechat.face.porduct.ProductService;
  20. import com.iamberry.wechat.tools.ResultInfo;
  21. import com.iamberry.wechat.utils.StitchAttrUtil;
  22. import com.sun.org.apache.xpath.internal.operations.Bool;
  23. import org.slf4j.Logger;
  24. import org.slf4j.LoggerFactory;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Controller;
  27. import org.springframework.web.bind.annotation.RequestMapping;
  28. import org.springframework.web.bind.annotation.RequestParam;
  29. import org.springframework.web.bind.annotation.ResponseBody;
  30. import javax.servlet.http.HttpServletRequest;
  31. import java.util.ArrayList;
  32. import java.util.HashMap;
  33. import java.util.List;
  34. import java.util.Map;
  35. @Controller
  36. @RequestMapping("/wechat/channelAdmin")
  37. public class ChannelAdminHandler {
  38. private Logger logger = LoggerFactory.getLogger(ChannelAdminHandler.class);
  39. @Autowired
  40. private MemberService memberService;
  41. @Autowired
  42. private ChannelAdminService channelAdminService;
  43. @Autowired
  44. private MainChannelService mainChannelService;
  45. @Autowired
  46. private AdminOrderService adminOrderService;
  47. @Autowired
  48. private ChannelPriceService channelPriceService;
  49. @Autowired
  50. private ProductService productService;
  51. /**
  52. * 获取当前渠道管理员下面的代理产品-以产品展示
  53. * @param request
  54. * @return
  55. * @throws Exception
  56. */
  57. @ResponseBody
  58. @RequestMapping(value = "/getProductList")
  59. public ResultMsg getProductList(HttpServletRequest request,
  60. @RequestParam(value= "channelType",defaultValue= "0" ,required=false) Integer channelType,
  61. @RequestParam(value= "channelId",defaultValue= "0" ,required=false) Integer channelId
  62. ) throws Exception {
  63. ResultMsg msg = ResultMsg.getError();
  64. if(channelType == 0 || channelId == 0){
  65. msg.setMessage("网络错误,请重试!");
  66. return msg;
  67. }
  68. ChannelPrice channelPrice = new ChannelPrice();
  69. channelPrice.setChannelType(channelType);
  70. channelPrice.setChannelId(channelId);
  71. List<ChannelPrice> channelPriceList = channelPriceService.getChannelProductList(channelPrice);
  72. List<Product> productList = new ArrayList<>();
  73. for (ChannelPrice cp : channelPriceList){
  74. Product product = productService.selectProductByProductId(cp.getProductId());
  75. product.setColorId(cp.getColorId());
  76. productList.add(product);
  77. }
  78. msg = ResultMsg.getSuccess();
  79. msg.setData(productList);
  80. return msg;
  81. }
  82. /**
  83. * 获取提货列表
  84. * 主渠道下面所有的提货
  85. * 主渠道下面所有子渠道的
  86. * @param request
  87. * @return
  88. * @throws Exception
  89. */
  90. @ResponseBody
  91. @RequestMapping(value = "/getChannelList")
  92. public ResultMsg getChannelList(HttpServletRequest request,Order order,
  93. @RequestParam(value= "pageSize",defaultValue= "10" ,required=false) Integer pageSize,
  94. @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO,
  95. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum
  96. ) throws Exception {
  97. ResultMsg msg = ResultMsg.getError();
  98. Integer status = order.getSalesStatus();
  99. // 用户信息
  100. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  101. ChannelAdmin channelAdmin = new ChannelAdmin();
  102. channelAdmin.setChannelAdminOpenId(openId);
  103. channelAdmin.setChannelAdminStatus(1);
  104. channelAdmin.setChannelType(1); //主渠道
  105. List<ChannelAdmin> channelAdminList = channelAdminService.getChannelAdminList(channelAdmin);
  106. if(channelAdminList == null || channelAdminList.size() < 1){
  107. logger.info("====="+openId+"不是主渠道的管理员!");
  108. msg.setMessage("您还不是主渠道的管理员,请联系上朵!");
  109. return msg;
  110. }
  111. List<Integer> ids = new ArrayList<>();
  112. for (int i=0;i<channelAdminList.size();i++){
  113. ids.add(channelAdminList.get(i).getChannelId());
  114. }
  115. order.setChannelIds(ids);
  116. if(order.getSalesStatus() == 99){
  117. order.setSalesStatus(null);
  118. order.setSalesTransportationType(null);
  119. }else{
  120. order.setSalesTransportationType(2);
  121. }
  122. // 封装请求数据
  123. PageRequest<Order> pageRequest = new PageRequest<>(order, pageNO, pageSize, totalNum == 0);
  124. // 查询订单列表
  125. PagedResult<Order> result = channelAdminService.listOrderPage(pageRequest);
  126. Boolean lastPage = StitchAttrUtil.getSa().getLastPage(result);
  127. List<Order> orderList = result.getDataList();
  128. for (Order or :orderList) {
  129. if(status == 99 && or.getSalesTransportationType() == 1){
  130. String name = or.getSalesAddressName();
  131. name = name.substring(0,1) + "**";
  132. String tel = or.getSalesAddressTel();
  133. tel = tel.substring(0,3) + "****" + tel.substring(7,11) ;
  134. or.setSalesAddressName(name);
  135. or.setSalesAddressTel(tel);
  136. }
  137. List<OrderItem>orderItemList = adminOrderService.getShopOrderItemByOrderId(or.getSalesOrderid());
  138. or.setOrderItemList(orderItemList);
  139. }
  140. Order or = new Order();
  141. or.setChannelIds(ids);
  142. or.setSalesTransportationType(2);
  143. or.setSalesStatus(2);
  144. Integer dfStatus = channelAdminService.listOrderCount(or);
  145. or.setSalesStatus(5);
  146. Integer yfStatus = channelAdminService.listOrderCount(or);
  147. or.setSalesStatus(null);
  148. or.setSalesTransportationType(null);
  149. Integer allStatus = channelAdminService.listOrderCount(or);
  150. Map<String,Object> map = new HashMap<>();
  151. map.put("orderList",orderList);
  152. map.put("lastPage",lastPage);
  153. map.put("dfStatus",dfStatus);
  154. map.put("yfStatus",yfStatus);
  155. map.put("allStatus",allStatus);
  156. msg = ResultMsg.getSuccess();
  157. msg.setData(map);
  158. return msg;
  159. }
  160. /**
  161. * 修改订单状态为已提货
  162. * 订单状态: 已付款 --> 已发货
  163. * @param request
  164. * @return
  165. * @throws Exception
  166. */
  167. @ResponseBody
  168. @RequestMapping(value = "/updateStatus")
  169. public ResultMsg updateStatus(HttpServletRequest request,String salesOrderid) throws Exception {
  170. ResultMsg msg = ResultMsg.getError();
  171. if(salesOrderid == null || "".equals(salesOrderid)){
  172. msg.setMessage("订单号不能为空");
  173. return msg;
  174. }
  175. Order order = adminOrderService.getShopOrderByOrderId(salesOrderid);
  176. if(order.getSalesStatus() != 2){
  177. msg.setMessage("该订单无法修改为已提货");
  178. return msg;
  179. }
  180. order = new Order();
  181. order.setSalesOrderid(salesOrderid);
  182. order.setSalesStatus(5);
  183. order.setOldStatus(2);
  184. boolean flag = adminOrderService.updateOrderStatusByOrderId(order);
  185. if(flag){
  186. msg = ResultMsg.getSuccess();
  187. return msg;
  188. }else{
  189. msg.setMessage("修改订单状态失败!");
  190. return msg;
  191. }
  192. }
  193. }