123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- 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<String, Object> confirmOrder(Integer userId, String classifyIDS, Integer organizeID, String productIDs, Integer count) {
- Map<String, Object> map = new HashMap();
- //商品信息
- List<String> list = new ArrayList();
- if (productIDs.contains(",")) {
- String[] split = productIDs.split(",");
- list = Arrays.asList(split);
- } else {
- list.add(productIDs);
- }
- List<Shop> shopList = orderMapper.findShop(list);
- for (Shop shop : shopList) {
- List<CmOrganizeProducts> productsList = new ArrayList();
- Double totalPrice = 0d;
- if (count == null) {
- //购物车购买
- Map<String, Object> 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<String, Object> particulars(Integer orderID) {
- Map<String, Object> 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<CmShopOrder> shopOrderList = orderMapper.findAllShopOrder(ShopOrderIDs);
- for (CmShopOrder shopOrder : shopOrderList) {
- List<CmOrderProduct> 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<CmDiscernReceipt> discernReceiptList = orderMapper.findDiscernReceipt(orderID);
- //退款记录
- List<CmReturnedPurchase> 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;
- }
- }
|