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