From b0c5d432ec041221dcbe81ca5ae3aa20fe3bddc6 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 22 Mar 2021 20:17:58 +0800
Subject: [PATCH] Merge branch 'score_shop' of http://120.27.238.55:7000/r/beauty-erp into score_shop

---
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java |  228 +++------------------------------------------------------
 1 files changed, 12 insertions(+), 216 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java
index 7c7577a..f1e3fe5 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java
@@ -2,40 +2,28 @@
 
 import com.matrix.biz.bean.BizUser;
 import com.matrix.component.redis.RedisUserLoginUtils;
-import com.matrix.component.tools.WxUtils;
 import com.matrix.component.wechat.externalInterface.protocol.paramProtocol.BrandWCPayRequestData;
 import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil;
 import com.matrix.core.constance.SystemErrorCode;
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.AjaxResult;
-import com.matrix.core.tools.StringUtils;
-import com.matrix.system.common.constance.AppConstance;
-import com.matrix.system.constance.Dictionary;
-import com.matrix.system.hive.bean.ShoppingGoods;
 import com.matrix.system.hive.dao.ShoppingGoodsDao;
-import com.matrix.system.shopXcx.api.pojo.AddShopOrderPOJO;
-import com.matrix.system.shopXcx.api.pojo.CreateOrderDto;
 import com.matrix.system.shopXcx.api.pojo.OrderInfoQueryPOJO;
+import com.matrix.system.shopXcx.api.pojo.ShopOrderDto;
+import com.matrix.system.shopXcx.api.service.OrderCouponGroupService;
 import com.matrix.system.shopXcx.api.service.ShoppingCartService;
 import com.matrix.system.shopXcx.api.service.WXShopOrderService;
 import com.matrix.system.shopXcx.api.service.WxShopCouponService;
 import com.matrix.system.shopXcx.api.tools.WxShopCouponUtil;
 import com.matrix.system.shopXcx.api.tools.WxShopOrderUtil;
-import com.matrix.system.shopXcx.api.vo.CouponReceiveInfoVO;
-import com.matrix.system.shopXcx.api.vo.ShopCartVo;
-import com.matrix.system.shopXcx.bean.*;
+import com.matrix.system.shopXcx.bean.ShopOrder;
 import com.matrix.system.shopXcx.dao.*;
-import com.matrix.system.shopXcx.dto.DiscountExplain;
-import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
 
 
 /**
@@ -82,105 +70,25 @@
     private ShopOrderDetailsDao shopOrderDetailsDao;
 
     @Autowired
+    OrderCouponGroupService orderCouponGroupService;
+
+    @Autowired
     ShopOrderDao shopOrderDao;
 
     /**
      * 计算购物车订单价格
      *
-     * @param addShopOrderPOJO
+     * @param shopOrderDto
      * @return
      * @throws Exception
      */
     @PostMapping(value = "/calculationCartOrder")
     public
     @ResponseBody
-    AjaxResult calculationCartOrder(@RequestBody AddShopOrderPOJO addShopOrderPOJO) throws Exception {
-        BizUser bizUser = redisUserLoginUtils.getLoginUser(BizUser.class); //计算购物车中物品的优惠信息
-
-        List<ShopCartVo> cartList = shoppingCartService.findUserCartList(addShopOrderPOJO.getShopId());
+    AjaxResult calculationCartOrder(@RequestBody ShopOrderDto shopOrderDto) throws Exception {
 
 
-        //取出购物车中选中的产品
-        List<ShopShoppingCart> buyCart = new ArrayList<>();
-
-        //取出购物车中没有参加店铺活动的产品,和参加了店铺活动但是活动没有达到标准的产品,用来计算是否可以使用优惠券
-        List<ShopShoppingCart> notCouponuyCart = new ArrayList<>();
-        for (ShopCartVo shopCartVo : cartList) {
-            for (ShopShoppingCart shopShoppingCart : shopCartVo.getCartList()) {
-                if (shopShoppingCart.getIsSelected() == 1) {
-                    buyCart.add(shopShoppingCart);
-                    if (shopCartVo.getCoupon() == null || !shopCartVo.isSatisfactionCoupon()) {
-                        notCouponuyCart.add(shopShoppingCart);
-                    }
-                }
-            }
-        }
-        //获取当前购物车产品可用的优惠券
-        List<CouponReceiveInfoVO> usefulCoupon = wxShopCouponService.getCartVoCouponList(bizUser.getCompanyId(),notCouponuyCart);
-
-        //获取用户使用的优惠券
-        CouponReceiveInfoVO shopCoupon = new CouponReceiveInfoVO();
-        if (addShopOrderPOJO.getCouponReceiveId() == null) {
-            //如果用户没有选择优惠券则默认选优惠金额最高的
-            //计算使用优惠券后的价格
-            if (CollectionUtils.isNotEmpty(usefulCoupon)) {
-                //根据优惠券ID用户ID查询优惠券信息
-                shopCoupon = usefulCoupon.get(0);
-            }
-        } else if (addShopOrderPOJO.getCouponReceiveId() != 1) {
-            //用户选择了优惠券
-            shopCoupon = shopCouponRecordDao.selectMyCouponByReceiveId(addShopOrderPOJO.getCouponReceiveId());
-        } else {
-            //用户不使用优惠券
-        }
-
-
-        //计算收货地址:
-
-        ShopReceiveAddress shopReceiveAddress = null;
-        if (addShopOrderPOJO.getReceiveAddrId() == null) {
-            //如果没有传收货地址则默认收货地址
-            shopReceiveAddress = shopReceiveAddressDao.selectDefaultAddress(bizUser.getOpenId());
-            if (shopReceiveAddress != null) {
-                addShopOrderPOJO.setReceiveAddrId(shopReceiveAddress.getAddrId());
-            }
-        } else {
-            shopReceiveAddress = shopReceiveAddressDao.selectById(addShopOrderPOJO.getReceiveAddrId());
-            addShopOrderPOJO.setReceiveAddrId(shopReceiveAddress.getAddrId());
-
-        }
-
-
-        //得到订单计价说明
-        DiscountExplain discountExplain = shopOrderService.buildDiscountExplain(cartList, shopCoupon.getReceiveId(), bizUser.getCompanyId());
-
-        AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, buyCart, buyCart.size());
-        //结算金额信息
-        result.putInMap("discountExplain", discountExplain);
-
-
-        //用户优惠券
-        result.putInMap("usefulCoupon", usefulCoupon);
-        //用户选中的优惠券
-        result.putInMap("shopCoupon", shopCoupon);
-
-
-        //默认地址
-        String deliverySelect = "立即配送";
-        if (shopReceiveAddress != null) {
-            if (StringUtils.isNotBlank(shopReceiveAddress.getSchool())) {
-                deliverySelect = "立即配送";
-            } else {
-                deliverySelect = "物流配送";
-            }
-        }
-        result.putInMap("defaultAddress", shopReceiveAddress);
-        //配送方式
-        result.putInMap("deliverySelect", deliverySelect);
-
-
-        result.setRows(buyCart);
-        return result;
+        return shopOrderService.buildDiscountExplain(shopOrderDto);
     }
 
 
@@ -190,129 +98,17 @@
     /**
      * 新增订单
      *
-     * @param addShopOrderPOJO
+     * @param shopOrderDto
      * @return
      */
     @PostMapping(value = "/addShopOrder")
     public
     @ResponseBody
-    AjaxResult addShopOrder(@RequestBody AddShopOrderPOJO addShopOrderPOJO) throws Exception {
-        return shopOrderService.createShopOrder(addShopOrderPOJO);
+    AjaxResult addShopOrder(@RequestBody ShopOrderDto shopOrderDto) throws Exception {
+        return shopOrderService.createShopOrder(shopOrderDto);
     }
 
 
-    /**
-     * 新增订单
-     * 本方法抛弃,不再使用,本方法是单单个产品购买
-     * 在多产品的时候不适合
-     * @return
-     */
-    @Deprecated
-    @PostMapping(value = "/addShopOrder2")
-    public
-    @ResponseBody
-    AjaxResult addShopOrder2(@RequestBody CreateOrderDto createOrderDto) throws Exception {
-
-
-        //校验收货地址
-        ShopReceiveAddress shopReceiveAddress = shopReceiveAddressDao.selectById(createOrderDto.getReceiveAddrId());
-        if (shopReceiveAddress == null) {
-            return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择正确的收获地址");
-        }
-
-
-        BizUser bizUser = redisUserLoginUtils.getLoginUser(BizUser.class);
-        ShopSku shopSku = shopSkuDao.selectById(createOrderDto.getSkuId());
-        ShopProduct shopProduct = shopProductDao.selectById(createOrderDto.getProductId());
-        String stokCode = shopSku.getStockCode();
-
-        ShopOrder shopOrder = new ShopOrder();
-        //查询绑定的产品是否为家居产品
-        if (StringUtils.isNotBlank(stokCode)) {
-            ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(Long.parseLong(stokCode));
-            if (shoppingGoods != null) {
-                //根据购买的产品设置订单类型
-                if (Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(shoppingGoods.getGoodType())) {
-                    shopOrder.setOrderType(ShopOrder.ORDER_TYPE_GOODS);
-                } else {
-                    shopOrder.setOrderType(ShopOrder.ORDER_TYPE_SERVICE);
-                }
-            } else {
-                shopOrder.setOrderType(ShopOrder.ORDER_TYPE_GOODS);
-            }
-        }
-
-        List<ShopOrderDetails> details = new ArrayList<>();
-        Integer cartCount = 0;
-        ShopOrderDetails shopOrderDetails = new ShopOrderDetails();
-        shopOrderDetails.setCreateBy(AppConstance.SYSTEM_USER);
-        shopOrderDetails.setUpdateBy(AppConstance.SYSTEM_USER);
-        shopOrderDetails.setpId(createOrderDto.getProductId());
-        shopOrderDetails.setsId(createOrderDto.getSkuId());
-        shopOrderDetails.setPrice(shopSku.getPrice());
-        shopOrderDetails.setCount(createOrderDto.getNumber());
-        shopOrderDetails.setsTitle(shopProduct.getTitle() + shopSku.getName());
-        shopOrderDetails.setDiscountAmount(BigDecimal.ZERO);
-        shopOrderDetails.setTotalPrice(shopOrderDetails.getPrice().multiply(BigDecimal.valueOf(shopOrderDetails.getCount())));
-        details.add(shopOrderDetails);
-        cartCount += shopOrderDetails.getCount();
-
-
-        //TODO 更新库存和销量[考虑和erp库存联动]
-        wxShopOrderUtil.updateProductAndSkuInfo(details);
-
-        //用户openId
-        shopOrder.setUserId(bizUser.getOpenId());
-        shopOrder.setCreateBy("微信小程序生成");
-        shopOrder.setUpdateBy("微信小程序生成");
-        shopOrder.setCommodityPrice(shopOrderDetails.getTotalPrice());
-        shopOrder.setPurchaseQuantity(cartCount);
-        //购买方式
-        shopOrder.setShippingMethod("物流配送");
-        //生成订单号
-        shopOrder.setOrderNo(WxUtils.getOrderNum());
-        //设置支付状态
-        shopOrder.setPayStatus(ShopOrder.ORDER_STATUS_WAIT_PAY);
-        //设置订单状态
-        shopOrder.setOrderStatus(ShopOrder.ORDER_STATUS_WAIT_SEND);
-
-        //设置退款费用(注:下次优化从数据字典表获取)
-        shopOrder.setRefundCharge(BigDecimal.ZERO);
-        //客户电话
-        shopOrder.setUserTel(shopReceiveAddress.getAddrTelephone());
-        //客户姓名
-        shopOrder.setUserName(shopReceiveAddress.getAddrLiaisonman());
-        //备注
-        shopOrder.setRemarks(createOrderDto.getRemarks());
-        //删除标识
-        shopOrder.setDelFlag(AppConstance.DATA_USEABLE);
-        //微信订单号
-        shopOrder.setWxOrderNo("");
-        //微信支付结果
-        shopOrder.setPayResult(ShopOrder.ORDER_WX_STATUS_WAIT_PAY);
-        //如果没有提交购买方式或配送方式不是物流
-        //获取邮费
-        shopOrder.setOrderMoney(shopOrderDetails.getTotalPrice());
-        shopOrder.setStoreId(createOrderDto.getShopId());
-
-        shopOrderDao.insert(shopOrder);
-
-        wxShopOrderUtil.insertSendPackageInfo(shopOrder, "物流配送", shopReceiveAddress);
-
-        //给订单详情表添加订单ID
-        shopOrderDetails.setOrderId(shopOrder.getId());
-
-        shopOrderDetailsDao.insert(shopOrderDetails);
-
-
-        BrandWCPayRequestData payData = startPayment(shopOrder);
-        AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, Arrays.asList(payData));
-        result.putInMap("orderId", shopOrder.getId());
-
-        return result;
-
-
-    }
 
     @Value("${wx_pay_debug_onoff}")
     private boolean isDebug;

--
Gitblit v1.9.1