OrderServiceImpl.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.caimei.service.order.impl;
  2. import com.caimei.entity.*;
  3. import com.caimei.mapper.order.OrderMapper;
  4. import com.caimei.mapper.user.LoginMapper;
  5. import com.caimei.mapper.user.PersonalMapper;
  6. import com.caimei.service.order.OrderService;
  7. import com.caimei.utils.AppUtils;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.stereotype.Service;
  11. import java.util.*;
  12. @Service
  13. public class OrderServiceImpl implements OrderService {
  14. @Autowired
  15. private OrderMapper orderMapper;
  16. @Autowired
  17. private PersonalMapper personalMapper;
  18. @Autowired
  19. private LoginMapper loginMapper;
  20. @Value("${miniprogram.domain}")
  21. private String domain;
  22. @Override
  23. public Map<String, Object> confirmOrder(Integer userId, String classifyIDS, Integer organizeID, String productIDs, Integer count) {
  24. Map<String, Object> map = new HashMap();
  25. //商品信息
  26. List<String> list = new ArrayList();
  27. if (productIDs.contains(",")) {
  28. String[] split = productIDs.split(",");
  29. list = Arrays.asList(split);
  30. } else {
  31. list.add(productIDs);
  32. }
  33. List<Shop> shopList = orderMapper.findShop(list);
  34. for (Shop shop : shopList) {
  35. List<CmOrganizeProducts> productsList = new ArrayList();
  36. Double totalPrice = 0d;
  37. if (count == null) {
  38. //购物车购买
  39. Map<String, Object> params = new HashMap();
  40. params.put("productIDs", list);
  41. params.put("shopID", shop.getShopID());
  42. params.put("userId", userId);
  43. productsList = orderMapper.findAllCommodity(params);
  44. for (CmOrganizeProducts products : productsList) {
  45. products.setMainImage(AppUtils.getImageURL("product", products.getMainImage(), 0, domain));
  46. totalPrice += products.getRetailPrice() * products.getProductCount();
  47. }
  48. } else {
  49. //立即购买
  50. CmOrganizeProducts products = orderMapper.findCommodity(productIDs, shop.getShopID());
  51. products.setMainImage(AppUtils.getImageURL("product", products.getMainImage(), 0, domain));
  52. products.setProductCount(count);
  53. totalPrice = products.getRetailPrice() * products.getProductCount();
  54. productsList.add(products);
  55. }
  56. shop.setTotalPrice(totalPrice);
  57. shop.setProductsList(productsList);
  58. }
  59. //发票信息
  60. UserInvoiceInfo invoice = personalMapper.findInvoice(userId);
  61. //运费
  62. FreePostageCard freePostageCard = orderMapper.queryFree(userId);
  63. String freight = "";
  64. if (freePostageCard != null && classifyIDS.contains("3")) {
  65. freight = "仪器到付,产品包邮";
  66. } else if (freePostageCard != null) {
  67. freight = "包邮";
  68. } else {
  69. freight = "到付";
  70. }
  71. //客服热线号码
  72. String cellPhone = loginMapper.cellPhone(organizeID);
  73. //可用余额
  74. Double userMoney = personalMapper.ableUserMoney(userId);
  75. if (userMoney == null) userMoney = 0d;
  76. map.put("shopList", shopList);
  77. map.put("invoice", invoice);
  78. map.put("freight", freight);
  79. map.put("cellPhone", cellPhone);
  80. map.put("userMoney", userMoney);
  81. return map;
  82. }
  83. @Override
  84. public String shareOrder(Integer orderID) {
  85. OrderShareCode orderShareCode = orderMapper.queryCode(orderID);
  86. //生成分享码
  87. Integer shareCode = (int) ((Math.random() * 9 + 1) * 1000);
  88. //过期时间
  89. Calendar calendar = Calendar.getInstance();
  90. calendar.setTime(new Date());
  91. calendar.add(Calendar.DATE, 1);
  92. if (orderShareCode != null && orderShareCode.getExpiredTime().compareTo(new Date()) == 1) {
  93. return orderShareCode.getShareCode();
  94. } else if (orderShareCode != null) {
  95. orderShareCode.setShareCode(String.valueOf(shareCode));
  96. orderShareCode.setExpiredTime(calendar.getTime());
  97. orderShareCode.setDelFlag("0");
  98. orderMapper.updateCode(orderShareCode);
  99. return String.valueOf(shareCode);
  100. } else {
  101. OrderShareCode code = new OrderShareCode();
  102. code.setOrderID(orderID);
  103. code.setShareCode(String.valueOf(shareCode));
  104. code.setExpiredTime(calendar.getTime());
  105. code.setAddTime(new Date());
  106. code.setDelFlag("0");
  107. orderMapper.insertCode(code);
  108. return String.valueOf(shareCode);
  109. }
  110. }
  111. @Override
  112. public Map<String, Object> particulars(Integer orderID) {
  113. Map<String, Object> map = new HashMap();
  114. //收货地址
  115. BpOrderUserInfo userInfo = orderMapper.findUserInfo(orderID);
  116. //订单信息,运费
  117. CmOrder order = orderMapper.findOrder(orderID);
  118. order.setOrderMark("#" + order.getOrderID() + "#");
  119. //商品信息
  120. String[] ShopOrderIDs = {};
  121. if (order.getShopOrderIDs().contains(",")) {
  122. ShopOrderIDs = order.getShopOrderIDs().split(",");
  123. } else {
  124. ShopOrderIDs = new String[]{order.getShopOrderIDs()};
  125. }
  126. List<CmShopOrder> shopOrderList = orderMapper.findAllShopOrder(ShopOrderIDs);
  127. for (CmShopOrder shopOrder : shopOrderList) {
  128. List<CmOrderProduct> orderProductList = orderMapper.findOrderProduct(shopOrder.getShopOrderID());
  129. for (CmOrderProduct orderProduct : orderProductList) {
  130. orderProduct.setProductImage(AppUtils.getImageURL("product", orderProduct.getProductImage(), 0, domain));
  131. }
  132. shopOrder.setCmOrderProducts(orderProductList);
  133. }
  134. //发票信息
  135. UserInvoiceInfo invoice = personalMapper.findInvoice(order.getUserID());
  136. //支付记录
  137. List<CmDiscernReceipt> discernReceiptList = orderMapper.findDiscernReceipt(orderID);
  138. //退款记录
  139. List<CmReturnedPurchase> returnedPurchaseList = orderMapper.findReturnedPurchase(orderID);
  140. map.put("order", order);
  141. map.put("userInfo", userInfo);
  142. map.put("shopOrderList", shopOrderList);
  143. map.put("invoice", invoice);
  144. map.put("discernReceiptList", discernReceiptList);
  145. map.put("returnedPurchaseList", returnedPurchaseList);
  146. return map;
  147. }
  148. }