package com.caimei.service.order.impl; import com.caimei.entity.*; import com.caimei.mapper.order.OrderMapper; import com.caimei.mapper.user.LoginMapper; import com.caimei.mapper.user.PersonalMapper; import com.caimei.service.order.OrderService; import com.caimei.utils.AppUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.*; @Service public class OrderServiceImpl implements OrderService { @Autowired private OrderMapper orderMapper; @Autowired private PersonalMapper personalMapper; @Autowired private LoginMapper loginMapper; @Value("${miniprogram.domain}") private String domain; @Override public Map confirmOrder(Integer userId, String classifyIDS, Integer organizeID, String productIDs, Integer count) { Map map = new HashMap(); //商品信息 List list = new ArrayList(); if (productIDs.contains(",")) { String[] split = productIDs.split(","); list = Arrays.asList(split); } else { list.add(productIDs); } List shopList = orderMapper.findShop(list); for (Shop shop : shopList) { List productsList = new ArrayList(); Double totalPrice = 0d; if (count == null) { //购物车购买 Map params = new HashMap(); params.put("productIDs", list); params.put("shopID", shop.getShopID()); params.put("userId", userId); productsList = orderMapper.findAllCommodity(params); for (CmOrganizeProducts products : productsList) { products.setMainImage(AppUtils.getImageURL("product", products.getMainImage(), 0, domain)); totalPrice += products.getRetailPrice() * products.getProductCount(); } } else { //立即购买 CmOrganizeProducts products = orderMapper.findCommodity(productIDs, shop.getShopID()); products.setMainImage(AppUtils.getImageURL("product", products.getMainImage(), 0, domain)); products.setProductCount(count); totalPrice = products.getRetailPrice() * products.getProductCount(); productsList.add(products); } shop.setTotalPrice(totalPrice); shop.setProductsList(productsList); } //发票信息 UserInvoiceInfo invoice = personalMapper.findInvoice(userId); //运费 FreePostageCard freePostageCard = orderMapper.queryFree(userId); String freight = ""; if (freePostageCard != null && classifyIDS.contains("3")) { freight = "仪器到付,产品包邮"; } else if (freePostageCard != null) { freight = "包邮"; } else { freight = "到付"; } //客服热线号码 String cellPhone = loginMapper.cellPhone(organizeID); //可用余额 Double userMoney = personalMapper.ableUserMoney(userId); if (userMoney == null) userMoney = 0d; map.put("shopList", shopList); map.put("invoice", invoice); map.put("freight", freight); map.put("cellPhone", cellPhone); map.put("userMoney", userMoney); return map; } @Override public String shareOrder(Integer orderID) { OrderShareCode orderShareCode = orderMapper.queryCode(orderID); //生成分享码 Integer shareCode = (int) ((Math.random() * 9 + 1) * 1000); //过期时间 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.DATE, 1); if (orderShareCode != null && orderShareCode.getExpiredTime().compareTo(new Date()) == 1) { return orderShareCode.getShareCode(); } else if (orderShareCode != null) { orderShareCode.setShareCode(String.valueOf(shareCode)); orderShareCode.setExpiredTime(calendar.getTime()); orderShareCode.setDelFlag("0"); orderMapper.updateCode(orderShareCode); return String.valueOf(shareCode); } else { OrderShareCode code = new OrderShareCode(); code.setOrderID(orderID); code.setShareCode(String.valueOf(shareCode)); code.setExpiredTime(calendar.getTime()); code.setAddTime(new Date()); code.setDelFlag("0"); orderMapper.insertCode(code); return String.valueOf(shareCode); } } @Override public Map particulars(Integer orderID) { Map map = new HashMap(); //收货地址 BpOrderUserInfo userInfo = orderMapper.findUserInfo(orderID); //订单信息,运费 CmOrder order = orderMapper.findOrder(orderID); order.setOrderMark("#" + order.getOrderID() + "#"); //商品信息 String[] ShopOrderIDs = {}; if (order.getShopOrderIDs().contains(",")) { ShopOrderIDs = order.getShopOrderIDs().split(","); } else { ShopOrderIDs = new String[]{order.getShopOrderIDs()}; } List shopOrderList = orderMapper.findAllShopOrder(ShopOrderIDs); for (CmShopOrder shopOrder : shopOrderList) { List orderProductList = orderMapper.findOrderProduct(shopOrder.getShopOrderID()); for (CmOrderProduct orderProduct : orderProductList) { orderProduct.setProductImage(AppUtils.getImageURL("product", orderProduct.getProductImage(), 0, domain)); } shopOrder.setCmOrderProducts(orderProductList); } //发票信息 UserInvoiceInfo invoice = personalMapper.findInvoice(order.getUserID()); //支付记录 List discernReceiptList = orderMapper.findDiscernReceipt(orderID); //退款记录 List returnedPurchaseList = orderMapper.findReturnedPurchase(orderID); map.put("order", order); map.put("userInfo", userInfo); map.put("shopOrderList", shopOrderList); map.put("invoice", invoice); map.put("discernReceiptList", discernReceiptList); map.put("returnedPurchaseList", returnedPurchaseList); return map; } }