ChannelAdminHandler.java 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  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. channelPrice.setChannelPriceStatus(1);
  72. List<ChannelPrice> channelPriceList = channelPriceService.getChannelProductList(channelPrice);
  73. List<Product> productList = new ArrayList<>();
  74. for (ChannelPrice cp : channelPriceList){
  75. Product product = productService.selectProductByProductId(cp.getProductId());
  76. product.setColorId(cp.getColorId());
  77. product.setProductDiscount(cp.getChannelPriceOffer());
  78. product.setProductPrice(cp.getChannelOriginalPrice());
  79. productList.add(product);
  80. }
  81. msg = ResultMsg.getSuccess();
  82. msg.setData(productList);
  83. return msg;
  84. }
  85. /**
  86. * 获取提货列表
  87. * 主渠道下面所有的提货
  88. * 主渠道下面所有子渠道的
  89. * @param request
  90. * @return
  91. * @throws Exception
  92. */
  93. @ResponseBody
  94. @RequestMapping(value = "/getChannelList")
  95. public ResultMsg getChannelList(HttpServletRequest request,Order order,
  96. @RequestParam(value= "pageSize",defaultValue= "10" ,required=false) Integer pageSize,
  97. @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO,
  98. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum
  99. ) throws Exception {
  100. ResultMsg msg = ResultMsg.getError();
  101. Integer status = order.getSalesStatus();
  102. // 用户信息
  103. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  104. ChannelAdmin channelAdmin = new ChannelAdmin();
  105. channelAdmin.setChannelAdminOpenId(openId);
  106. channelAdmin.setChannelAdminStatus(1);
  107. channelAdmin.setChannelType(1); //主渠道
  108. List<ChannelAdmin> channelAdminList = channelAdminService.getChannelAdminList(channelAdmin);
  109. if(channelAdminList == null || channelAdminList.size() < 1){
  110. logger.info("====="+openId+"不是主渠道的管理员!");
  111. msg.setMessage("您还不是主渠道的管理员,请联系上朵!");
  112. return msg;
  113. }
  114. List<Integer> ids = new ArrayList<>();
  115. for (int i=0;i<channelAdminList.size();i++){
  116. ids.add(channelAdminList.get(i).getChannelId());
  117. }
  118. order.setChannelIds(ids);
  119. if(order.getSalesStatus() == 99){
  120. order.setSalesStatus(null);
  121. order.setSalesTransportationType(null);
  122. }else{
  123. order.setSalesTransportationType(2);
  124. }
  125. // 封装请求数据
  126. PageRequest<Order> pageRequest = new PageRequest<>(order, pageNO, pageSize, totalNum == 0);
  127. // 查询订单列表
  128. PagedResult<Order> result = channelAdminService.listOrderPage(pageRequest);
  129. Boolean lastPage = StitchAttrUtil.getSa().getLastPage(result);
  130. List<Order> orderList = result.getDataList();
  131. for (Order or :orderList) {
  132. if(status == 99 && or.getSalesTransportationType() == 1){
  133. String name = or.getSalesAddressName();
  134. name = name.substring(0,1) + "**";
  135. String tel = or.getSalesAddressTel();
  136. tel = tel.substring(0,3) + "****" + tel.substring(7,11) ;
  137. or.setSalesAddressName(name);
  138. or.setSalesAddressTel(tel);
  139. }
  140. List<OrderItem>orderItemList = adminOrderService.getShopOrderItemByOrderId(or.getSalesOrderid());
  141. or.setOrderItemList(orderItemList);
  142. }
  143. Order or = new Order();
  144. or.setChannelIds(ids);
  145. or.setSalesTransportationType(2);
  146. or.setSalesStatus(2);
  147. Integer dfStatus = channelAdminService.listOrderCount(or);
  148. or.setSalesStatus(5);
  149. Integer yfStatus = channelAdminService.listOrderCount(or);
  150. or.setSalesStatus(null);
  151. or.setSalesTransportationType(null);
  152. Integer allStatus = channelAdminService.listOrderCount(or);
  153. Map<String,Object> map = new HashMap<>();
  154. map.put("orderList",orderList);
  155. map.put("lastPage",lastPage);
  156. map.put("dfStatus",dfStatus);
  157. map.put("yfStatus",yfStatus);
  158. map.put("allStatus",allStatus);
  159. msg = ResultMsg.getSuccess();
  160. msg.setData(map);
  161. return msg;
  162. }
  163. /**
  164. * 修改订单状态为已提货
  165. * 订单状态: 已付款 --> 已发货
  166. * @param request
  167. * @return
  168. * @throws Exception
  169. */
  170. @ResponseBody
  171. @RequestMapping(value = "/updateStatus")
  172. public ResultMsg updateStatus(HttpServletRequest request,String salesOrderid) throws Exception {
  173. ResultMsg msg = ResultMsg.getError();
  174. if(salesOrderid == null || "".equals(salesOrderid)){
  175. msg.setMessage("订单号不能为空");
  176. return msg;
  177. }
  178. Order order = adminOrderService.getShopOrderByOrderId(salesOrderid);
  179. if(order.getSalesStatus() != 2){
  180. msg.setMessage("该订单无法修改为已提货");
  181. return msg;
  182. }
  183. order = new Order();
  184. order.setSalesOrderid(salesOrderid);
  185. order.setSalesStatus(5);
  186. order.setOldStatus(2);
  187. boolean flag = adminOrderService.updateOrderStatusByOrderId(order);
  188. if(flag){
  189. msg = ResultMsg.getSuccess();
  190. return msg;
  191. }else{
  192. msg.setMessage("修改订单状态失败!");
  193. return msg;
  194. }
  195. }
  196. }