AgentPurchaseOrderServiceImpl.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package com.iamberry.wechat.service.agentInfo;
  2. import com.iamberry.wechat.core.entity.OrderUtil;
  3. import com.iamberry.wechat.core.entity.agentInfo.AgentConfig;
  4. import com.iamberry.wechat.core.entity.agentInfo.AgentOrder;
  5. import com.iamberry.wechat.core.entity.agentInfo.AgentOrderItem;
  6. import com.iamberry.wechat.core.entity.product.Product;
  7. import com.iamberry.wechat.core.entity.product.ProductColor;
  8. import com.iamberry.wechat.face.agentInfo.AgentPurchaseOrderService;
  9. import com.iamberry.wechat.service.mapper.AgentInfoMapper;
  10. import com.iamberry.wechat.service.mapper.AgentPurchaseOrderMapper;
  11. import com.iamberry.wechat.service.mapper.ProductInfoMapper;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import java.util.HashMap;
  16. import java.util.List;
  17. import java.util.Map;
  18. /**
  19. * Created by liuzhiwei on 2017/10/11.
  20. */
  21. @Service
  22. public class AgentPurchaseOrderServiceImpl implements AgentPurchaseOrderService {
  23. @Autowired
  24. private AgentPurchaseOrderMapper agentPurchaseOrderMapper;
  25. @Autowired
  26. private ProductInfoMapper productInfoMapper;
  27. @Autowired
  28. private AgentInfoMapper agentInfoMapper;
  29. @Override
  30. @Transactional
  31. public Map<String,Object> addAgentOrder(AgentOrder agentOrder, List<AgentOrderItem> agentOrderItemList) {
  32. Map<String,Object> map = new HashMap<String,Object>();
  33. map.put("status",400);
  34. agentOrder.setAgentStatus(OrderUtil.ORDERSTAUTS_TOBEPAID); //设置状态为:未支付
  35. int amount = 0; //订单总金额
  36. for(AgentOrderItem agentOrderItem : agentOrderItemList){
  37. ProductColor productColor = new ProductColor();
  38. productColor.setColorId(agentOrderItem.getColorId());
  39. productColor.setColorProductId(agentOrderItem.getProductId());
  40. productColor = productInfoMapper.getProductColor(productColor);
  41. Product product = productInfoMapper.getProductByProductId(agentOrderItem.getProductId(),agentOrderItem.getColorId());
  42. if(productColor == null || product == null){
  43. map.put("msg","查询产品出错!");
  44. return map;
  45. }
  46. agentOrderItem.setAgentOrderid(agentOrder.getAgentOrderid()); //订单id
  47. agentOrderItem.setProductId(product.getProductId()); //产品id
  48. agentOrderItem.setItemProductName(product.getProductName()); //产品名称
  49. agentOrderItem.setColorId(productColor.getColorId()); //颜色id
  50. agentOrderItem.setItemColorName(productColor.getColorName()); //颜色名称
  51. agentOrderItem.setProductType(product.getProductType().getTypeId()); //产品类型id
  52. agentOrderItem.setProductRentType(product.getProductRentType()); //销售类型
  53. agentOrderItem.setItemProductPrice(productColor.getColorPrice()); //商品原价
  54. agentOrderItem.setItemProductPic(product.getProductIntroduceImg()); //介绍图
  55. // -------- 计算金额 ---------
  56. Integer discount = 0; //优惠价
  57. AgentConfig agentConfig = new AgentConfig();
  58. agentConfig.setColorId(productColor.getColorId());
  59. agentConfig.setAgentId(agentOrder.getAgentId());
  60. agentConfig = agentInfoMapper.getAgentConfig(agentConfig);
  61. if(agentConfig != null){
  62. discount = agentConfig.getConfigAmount();
  63. }else{
  64. discount = productColor.getColorDiscount();
  65. }
  66. agentOrderItem.setItemProductDiscount(discount); //商品优惠价
  67. Integer itemSummary = 0;
  68. if(agentOrderItem.getItemNum() == null || agentOrderItem.getItemNum() < 1){
  69. map.put("msg","产品数量不能小于1!");
  70. return map;
  71. }
  72. itemSummary = agentOrderItem.getItemNum() * discount; //计算订单项小结
  73. amount += itemSummary; //计算订单总金额
  74. }
  75. agentOrder.setAgentAmount(amount); //订单金额
  76. agentOrder.setAgentYetAmount(amount); //付款金额
  77. Integer flag = agentPurchaseOrderMapper.addAgentOrder(agentOrder);
  78. if(flag < 1){
  79. map.put("msg","生成订单失败!");
  80. return map;
  81. }
  82. flag = agentPurchaseOrderMapper.addAgentOrderItemList(agentOrderItemList);
  83. map.put("status",200);
  84. map.put("agentOrder",agentOrder);
  85. map.put("msg","订单生成成功!");
  86. return map;
  87. }
  88. @Override
  89. public List<AgentOrderItem> listAgentOrderItemByOrderId(String orderId) {
  90. AgentOrderItem agentOrderItem = new AgentOrderItem();
  91. agentOrderItem.setAgentOrderid(orderId);
  92. return agentPurchaseOrderMapper.listAgentOrderItem(agentOrderItem);
  93. }
  94. @Override
  95. public List<AgentOrder> listAgentOrder(AgentOrder agentOrder) {
  96. return agentPurchaseOrderMapper.listAgentOrder(agentOrder);
  97. }
  98. }