From c16b9ffceac828840ef7ebc4827612d17906704a Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Fri, 19 Mar 2021 19:56:29 +0800
Subject: [PATCH] 积分商城9

---
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShoppingCartAction.java         |    2 
 zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopShoppingCartDao.xml                    |    2 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/ShoppingCartService.java         |   58 +++++++++-----
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ShopCartBillVo.java                   |   12 +++
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ShopCartVo.java                       |   12 +++
 zq-erp/src/main/resources/config/db/increment/推广员.sql                                       |    6 +
 zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrderDetails.java                   |   59 ++++++++++----
 zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopShoppingCart.java                   |   26 ++++++
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java |    1 
 zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDetailsDao.xml                    |   46 ++++++++++-
 10 files changed, 182 insertions(+), 42 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShoppingCartAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShoppingCartAction.java
index 0b31678..91eeace 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShoppingCartAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShoppingCartAction.java
@@ -8,6 +8,7 @@
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.common.interceptor.HostInterceptor;
 import com.matrix.system.shopXcx.api.service.ShoppingCartService;
 import com.matrix.system.shopXcx.api.service.WxShopCouponService;
 import com.matrix.system.shopXcx.api.vo.ShopCartBillVo;
@@ -129,6 +130,7 @@
         shoppingCart.setCreateBy(loginUser.getOpenId());
         shoppingCart.setUpdateBy(loginUser.getOpenId());
         shoppingCart.setCartUserId(loginUser.getOpenId());
+        shoppingCart.setCompanyId(HostInterceptor.getCompanyId());
         ShopShoppingCart shoppCartLimt = shoppingCartDao.selectBuyLimit(shoppingCart.getCartProductId(),
                 shoppingCart.getCartSkuId());
         // Integer buyLimitNum = 0;
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/ShoppingCartService.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/ShoppingCartService.java
index 335a26b..ab83b88 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/ShoppingCartService.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/ShoppingCartService.java
@@ -2,6 +2,7 @@
 
 import com.matrix.biz.bean.BizUser;
 import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.core.exception.GlobleException;
 import com.matrix.core.tools.LogUtil;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.shopXcx.api.vo.ShopCartBillVo;
@@ -36,11 +37,7 @@
     public ShopCartBillVo buildShopCartBillVo(List<ShopCartVo> cartList) {
 
         ShopCartBillVo shopCartBillVo = new ShopCartBillVo();
-        //计算购车选中项总价以及优惠金额
-        BigDecimal billTotal = BigDecimal.ZERO;
-        BigDecimal billCouponTotal = BigDecimal.ZERO;
-        //未优惠之前的金额
-        BigDecimal srcTotal = BigDecimal.ZERO;
+
 
         //计算是否存在选中的产品
         Integer selectCount = 0;
@@ -68,6 +65,7 @@
         }
         shopCartBillVo.setCartCount(cartCount);
         shopCartBillVo.setSelectCount(selectCount);
+
         return shopCartBillVo;
     }
 
@@ -114,19 +112,23 @@
         //查询购物车中的产品匹配上的所有优惠活动
         for (ShopShoppingCart shoppingCart : list) {
 
-            List<ShopCoupon> shopCoupons = shopCouponService.getHdListByProductId(shoppingCart.getCartProductId());
-
-            if (CollectionUtils.isNotEmpty(shopCoupons)) {
-                // 把所有的优惠券和购物车条目先关联一下,后续可以计算优惠升级的情况
-                shoppingCart.setShopCoupons(shopCoupons);
-                for (ShopCoupon shopCoupon : shopCoupons) {
-                    shopCouponMap.put(shopCoupon.getId(), shopCoupon);
-                }
-            } else {
-                // 该产品没有参加优惠券
+            if(shoppingCart.getCartType()==ShopShoppingCart.CAR_TYPE_SCORE){
+                // 积分兑换产品不参加优惠
                 def.getCartList().add(shoppingCart);
-
+            }else{
+                List<ShopCoupon> shopCoupons = shopCouponService.getHdListByProductId(shoppingCart.getCartProductId());
+                if (CollectionUtils.isNotEmpty(shopCoupons)) {
+                    // 把所有的优惠券和购物车条目先关联一下,后续可以计算优惠升级的情况
+                    shoppingCart.setShopCoupons(shopCoupons);
+                    for (ShopCoupon shopCoupon : shopCoupons) {
+                        shopCouponMap.put(shopCoupon.getId(), shopCoupon);
+                    }
+                } else {
+                    // 该产品没有参加优惠券
+                    def.getCartList().add(shoppingCart);
+                }
             }
+
         }
 
         //计算没有优惠组的价格
@@ -268,13 +270,28 @@
         List<ShopShoppingCart> cartList = shopCartVo.getCartList();
         // 计算总价
         BigDecimal sum = BigDecimal.ZERO;
+        //抵扣总积分
+        BigDecimal scoreSum = BigDecimal.ZERO;
         // 选中项总价
         BigDecimal selectSum = BigDecimal.ZERO;
         for (ShopShoppingCart shopShoppingCart : cartList) {
-            sum = sum.add(shopShoppingCart.getPrice().multiply(BigDecimal.valueOf(shopShoppingCart.getCartNumber())));
-            if (shopShoppingCart.getIsSelected() == 1) {
-                selectSum = selectSum
-                        .add(shopShoppingCart.getPrice().multiply(BigDecimal.valueOf(shopShoppingCart.getCartNumber())));
+            if(ShopShoppingCart.CAR_TYPE_MICRO==shopShoppingCart.getCartType()){
+                //直接购买
+                sum = sum.add(shopShoppingCart.getPrice().multiply(BigDecimal.valueOf(shopShoppingCart.getCartNumber())));
+                if (shopShoppingCart.getIsSelected() == 1) {
+                    selectSum = selectSum
+                            .add(shopShoppingCart.getPrice().multiply(BigDecimal.valueOf(shopShoppingCart.getCartNumber())));
+                }
+            }else if(ShopShoppingCart.CAR_TYPE_SCORE==shopShoppingCart.getCartType()){
+                //积分兑换
+                sum = sum.add(shopShoppingCart.getScorePrice().multiply(BigDecimal.valueOf(shopShoppingCart.getCartNumber())));
+                if (shopShoppingCart.getIsSelected() == 1) {
+                    selectSum = selectSum
+                            .add(shopShoppingCart.getScorePrice().multiply(BigDecimal.valueOf(shopShoppingCart.getCartNumber())));
+                    scoreSum = scoreSum.add(new BigDecimal(shopShoppingCart.getScoreCount() * shopShoppingCart.getCartNumber()));
+                }
+            }else{
+                throw new GlobleException("参数错误");
             }
         }
 
@@ -309,5 +326,6 @@
                 shopCartVo.setSrcPrice(selectSum);
                 shopCartVo.setSatisfactionCoupon(true);
         }
+        shopCartVo.setScorePay(scoreSum);
     }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
index cc29acd..51bfc9b 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
@@ -175,6 +175,7 @@
             shopOrderDetails.setpId(shopShoppingCart.getCartProductId());
             shopOrderDetails.setsId(shopShoppingCart.getCartSkuId());
             shopOrderDetails.setPrice(shopShoppingCart.getPrice());
+            shopOrderDetails.setPayType(shopShoppingCart.getCartType());
             shopOrderDetails.setCount(shopShoppingCart.getCartNumber());
             shopOrderDetails.setsTitle(shopShoppingCart.getTitle() + shopShoppingCart.getName());
             shopOrderDetails.setDiscountAmount(BigDecimal.ZERO);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ShopCartBillVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ShopCartBillVo.java
index 6e5c3c1..fca4eb3 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ShopCartBillVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ShopCartBillVo.java
@@ -26,6 +26,18 @@
      * 未优惠之前的总金额
      */
     private BigDecimal srcTotal = BigDecimal.ZERO;
+    /**
+     * 抵用积分
+     */
+    private BigDecimal scorePay = BigDecimal.ZERO;
+
+    public BigDecimal getScorePay() {
+        return scorePay;
+    }
+
+    public void setScorePay(BigDecimal scorePay) {
+        this.scorePay = scorePay;
+    }
 
     public BigDecimal getBillTotal() {
         return billTotal;
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ShopCartVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ShopCartVo.java
index 185f984..90324ed 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ShopCartVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ShopCartVo.java
@@ -39,6 +39,10 @@
 
 	//优惠金额
 	private BigDecimal  couponPrice=BigDecimal.ZERO;
+	/**
+	 * 抵用积分
+	 */
+	private BigDecimal scorePay = BigDecimal.ZERO;
 
 	public ShopCoupon getCoupon() {
 		return coupon;
@@ -92,6 +96,14 @@
 		return couponPrice;
 	}
 
+	public BigDecimal getScorePay() {
+		return scorePay;
+	}
+
+	public void setScorePay(BigDecimal scorePay) {
+		this.scorePay = scorePay;
+	}
+
 	public void setCouponPrice(BigDecimal couponPrice) {
 		this.couponPrice = couponPrice;
 	}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrderDetails.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrderDetails.java
index 0fbad67..073eb07 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrderDetails.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrderDetails.java
@@ -1,7 +1,7 @@
 package com.matrix.system.shopXcx.bean;
 
-import com.matrix.core.pojo.EntityDTO;
 import com.matrix.core.anotations.Extend;
+import com.matrix.core.pojo.EntityDTO;
 
 import java.math.BigDecimal;
 
@@ -10,6 +10,7 @@
  * @author jyy
  * @date 2019-06-10 10:58
  */
+
 public class ShopOrderDetails  extends EntityDTO{
 	@Extend
 	private static final long serialVersionUID = 1L;
@@ -51,7 +52,22 @@
 	 * 单价
 	 */
 	private BigDecimal price;
-			
+
+	/**
+	 * 总价
+	 */
+	private BigDecimal  totalPrice;
+
+	/**
+	 * 支付积分单价
+	 */
+	private BigDecimal scoreCount;
+
+	/**
+	 * 支付总积分
+	 */
+	private BigDecimal totalScoreCount;
+
 	
 	/**
 	 * 数量
@@ -62,12 +78,7 @@
 	 */
 	private Integer  payType;
 
-	
-	/**
-	 * 总价
-	 */
-	private BigDecimal  totalPrice;
-			
+
 	
 	/**
 	 * 规格标题
@@ -144,12 +155,28 @@
 		this.price = price;
 	}
 
-	public Integer getPayType() {
-		return payType;
+	public BigDecimal getTotalPrice() {
+		return totalPrice;
 	}
 
-	public void setPayType(Integer payType) {
-		this.payType = payType;
+	public void setTotalPrice(BigDecimal totalPrice) {
+		this.totalPrice = totalPrice;
+	}
+
+	public BigDecimal getScoreCount() {
+		return scoreCount;
+	}
+
+	public void setScoreCount(BigDecimal scoreCount) {
+		this.scoreCount = scoreCount;
+	}
+
+	public BigDecimal getTotalScoreCount() {
+		return totalScoreCount;
+	}
+
+	public void setTotalScoreCount(BigDecimal totalScoreCount) {
+		this.totalScoreCount = totalScoreCount;
 	}
 
 	public Integer getCount() {
@@ -160,12 +187,12 @@
 		this.count = count;
 	}
 
-	public BigDecimal getTotalPrice() {
-		return totalPrice;
+	public Integer getPayType() {
+		return payType;
 	}
 
-	public void setTotalPrice(BigDecimal totalPrice) {
-		this.totalPrice = totalPrice;
+	public void setPayType(Integer payType) {
+		this.payType = payType;
 	}
 
 	public String getsTitle() {
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopShoppingCart.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopShoppingCart.java
index fffc389..e39c2d4 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopShoppingCart.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopShoppingCart.java
@@ -82,6 +82,16 @@
 	 */
 	@Extend
 	private BigDecimal price;
+	/**
+	 * 积分兑换所需支付金额
+	 */
+	@Extend
+	private BigDecimal scorePrice;
+	/**
+	 * 积分兑换所需支付积分
+	 */
+	@Extend
+	private Integer scoreCount;
 
 	/**
 	 * 产品手机端封面地址
@@ -180,6 +190,22 @@
 		this.increaseAndDecrease = increaseAndDecrease;
 	}
 
+	public BigDecimal getScorePrice() {
+		return scorePrice;
+	}
+
+	public void setScorePrice(BigDecimal scorePrice) {
+		this.scorePrice = scorePrice;
+	}
+
+	public Integer getScoreCount() {
+		return scoreCount;
+	}
+
+	public void setScoreCount(Integer scoreCount) {
+		this.scoreCount = scoreCount;
+	}
+
 	public Integer getModifyCartNumber() {
 		return modifyCartNumber;
 	}
diff --git "a/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql" "b/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql"
index 90732e4..bbaad78 100644
--- "a/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql"
+++ "b/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql"
@@ -193,8 +193,6 @@
 
 ALTER TABLE `shop_shopping_cart`
     ADD COLUMN `cart_type` int(2) NOT NULL COMMENT '购物车类型 1微商城  2积分商城' AFTER `company_id`;
-ALTER TABLE `shop_sku`
-    ADD COLUMN `pay_type` int(2) NULL COMMENT '支付方式1 直接购买 2,积分兑换' AFTER `score_count`;
 
 update shop_product set able_score_pay=1;
 update shop_product set able_sales=2;
@@ -203,3 +201,7 @@
     MODIFY COLUMN `score_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '兑换所需支付价格' AFTER `invitation_price`,
     ADD COLUMN `score_count` decimal(10, 2) NULL COMMENT '兑换所需积分数量' AFTER `score_price`;
 
+ALTER TABLE `shop_order_details`
+    ADD COLUMN `pay_type` int(2) NULL COMMENT '支付方式1 直接购买 2,积分兑换' AFTER `company_id`,
+ADD COLUMN `score_count` decimal(20, 2) NULL COMMENT '支付积分单价' AFTER `pay_type`,
+ADD COLUMN `total_score_count` decimal(20, 2) NULL COMMENT '支付总积分' AFTER `score_count`;
diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDetailsDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDetailsDao.xml
index d513e38..ffb89a5 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDetailsDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDetailsDao.xml
@@ -20,6 +20,8 @@
 			<result property="discountExplain" column="discount_explain" />
 			<result property="discountAmount" column="discount_amount" />
 			<result property="payType" column="pay_type" />
+			<result property="scoreCount" column="score_count" />
+			<result property="totalScoreCount" column="total_score_count" />
 	</resultMap>
 
 	<!-- 定义ShopOrderDetails 的复杂map -->
@@ -39,6 +41,9 @@
 			<result property="discountExplain" column="discount_explain" />
 			<result property="discountAmount" column="discount_amount" />
 		<result property="payType" column="pay_type" />
+		<result property="scoreCount" column="score_count" />
+		<result property="totalScoreCount" column="total_score_count" />
+
 		<!--产品信息-->
 		<association property="shopProduct" column="p_id"
 			select="com.matrix.system.shopXcx.dao.ShopProductDao.selectById"/>
@@ -67,7 +72,9 @@
 			s_title,
 			discount_explain,
 			discount_amount,
-			pay_type
+			pay_type,
+		score_count,
+		total_score_count
 	</sql>
 	
 	<!-- 属性sql -->
@@ -86,7 +93,9 @@
 			#{item.sTitle},
 			#{item.discountExplain},
 			#{item.discountAmount},
-			#{item.payType}
+			#{item.payType},
+			#{item.scoreCount},
+			#{item.totalScoreCount}
 	</sql>
 	
 	<!-- where sql -->
@@ -125,6 +134,14 @@
 			</if>
 			<if test="(record.payType!=null and record.payType!='') or  (record.payType!='' and record.payType==0)  ">
 				and pay_type  = #{record.payType}
+			</if>
+
+			<if test="(record.scoreCount!=null and record.scoreCount!='') or  (record.scoreCount!='' and record.scoreCount==0)  ">
+				and score_count  = #{record.scoreCount}
+			</if>
+
+			<if test="(record.totalScoreCount!=null and record.totalScoreCount!='') or  (record.totalScoreCount!='' and record.totalScoreCount==0)  ">
+				and total_score_count  = #{record.totalScoreCount}
 			</if>
 		</if>
 		 
@@ -188,7 +205,20 @@
 				</if>		
 			<if test="_parameter.containsKey('discountAmount')">
 					discount_amount = #{discountAmount},
-				</if>		
+				</if>
+
+			<if test="_parameter.containsKey('payType')">
+				pay_type = #{payType},
+				</if>
+
+			<if test="_parameter.containsKey('scoreCount')">
+				score_count = #{scoreCount},
+				</if>
+
+			<if test="_parameter.containsKey('totalScoreCount')">
+				total_score_count = #{totalScoreCount},
+				</if>
+
 		</set>
 		WHERE id=#{id} 
 	</update> 
@@ -225,10 +255,18 @@
 			<if test="record.discountAmount != null ">
 				discount_amount  = #{record.discountAmount}, 
 			</if>
+			<if test="record.payType != null ">
+				pay_type  = #{record.payType},
+			</if>
+			<if test="record.scoreCount != null ">
+				score_count  = #{record.scoreCount},
+			</if>
+			<if test="record.totalScoreCount != null ">
+				total_score_count  = #{record.totalScoreCount},
+			</if>
 		</set>
 		WHERE id=#{record.id} 
 	</update>
-	
 	<!-- 批量删除 -->
 	<delete id="deleteByIds" parameterType="java.util.List">
 		delete from shop_order_details where  id in
diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopShoppingCartDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopShoppingCartDao.xml
index db3b77e..4cf0397 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopShoppingCartDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopShoppingCartDao.xml
@@ -335,6 +335,8 @@
 			p.buy_limit,
 			s.NAME,
 			s.stock,
+			s.score_count,
+			s.score_price,
 		       c.cart_type
 		from shop_shopping_cart c
 		LEFT JOIN shop_product p ON c.cart_product_id = p.id

--
Gitblit v1.9.1