From 799622ea4d37aa6bb9fee457967532aa93d18594 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Sun, 21 Mar 2021 20:17:05 +0800
Subject: [PATCH] 扣除用户积分
---
zq-erp/src/main/java/com/matrix/system/score/dao/ScoreVipDetailDao.java | 20 +
zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java | 12 +
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java | 9 +
zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java | 142 +++++++-------
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java | 2
zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java | 45 +++-
zq-erp/src/main/java/com/matrix/system/score/entity/ScoreVipDetail.java | 21 ++
zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java | 73 +++++++
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java | 85 ---------
zq-erp/src/test/java/com/matrix/JyyTests.java | 9
zq-erp/src/main/java/com/matrix/biz/bean/BizUser.java | 10 -
zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml | 12 +
zq-erp/src/main/resources/mybatis/mapper/score/ScoreVipDetailDao.xml | 54 ++----
13 files changed, 263 insertions(+), 231 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/biz/bean/BizUser.java b/zq-erp/src/main/java/com/matrix/biz/bean/BizUser.java
index 0fa5868..8107216 100644
--- a/zq-erp/src/main/java/com/matrix/biz/bean/BizUser.java
+++ b/zq-erp/src/main/java/com/matrix/biz/bean/BizUser.java
@@ -172,10 +172,6 @@
private Integer userType;
- /**
- * 用户总积分
- */
- private Integer totalScore;
/**
@@ -475,13 +471,7 @@
this.endTime = endTime;
}
- public Integer getTotalScore() {
- return totalScore;
- }
- public void setTotalScore(Integer totalScore) {
- this.totalScore = totalScore;
- }
public Integer getCurrentScore() {
return currentScore;
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java
index 308720b..63c91e7 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java
@@ -230,77 +230,6 @@
private SysOrder sysOrder;
- public String getProvince() {
- return province;
- }
-
- public void setProvince(String province) {
- this.province = province;
- }
-
- public String getCity() {
- return city;
- }
-
- public void setCity(String city) {
- this.city = city;
- }
-
- public String getArea() {
- return area;
- }
-
- public void setArea(String area) {
- this.area = area;
- }
-
- public Long getRecommendId() {
- return recommendId;
- }
-
- public void setRecommendId(Long recommendId) {
- this.recommendId = recommendId;
- }
-
- public SysOrder getSysOrder() {
- return sysOrder;
- }
-
- public void setSysOrder(SysOrder sysOrder) {
- this.sysOrder = sysOrder;
- }
-
- public Integer getIsDeal() {
- return isDeal;
- }
-
- public void setIsDeal(Integer isDeal) {
- this.isDeal = isDeal;
- }
-
- public Long getParentId() {
- return parentId;
- }
-
- public void setParentId(Long parentId) {
- this.parentId = parentId;
- }
-
- public Date getCreateDistributionTime() {
- return createDistributionTime;
- }
-
- public void setCreateDistributionTime(Date createDistributionTime) {
- this.createDistributionTime = createDistributionTime;
- }
-
- public Date getHandleTime() {
- return handleTime;
- }
-
- public void setHandleTime(Date handleTime) {
- this.handleTime = handleTime;
- }
/** 扩展信息 **/
@@ -452,6 +381,77 @@
this.openId = openId;
}
+ public String getProvince() {
+ return province;
+ }
+
+ public void setProvince(String province) {
+ this.province = province;
+ }
+
+ public String getCity() {
+ return city;
+ }
+
+ public void setCity(String city) {
+ this.city = city;
+ }
+
+ public String getArea() {
+ return area;
+ }
+
+ public void setArea(String area) {
+ this.area = area;
+ }
+
+ public Long getRecommendId() {
+ return recommendId;
+ }
+
+ public void setRecommendId(Long recommendId) {
+ this.recommendId = recommendId;
+ }
+
+ public SysOrder getSysOrder() {
+ return sysOrder;
+ }
+
+ public void setSysOrder(SysOrder sysOrder) {
+ this.sysOrder = sysOrder;
+ }
+
+ public Integer getIsDeal() {
+ return isDeal;
+ }
+
+ public void setIsDeal(Integer isDeal) {
+ this.isDeal = isDeal;
+ }
+
+ public Long getParentId() {
+ return parentId;
+ }
+
+ public void setParentId(Long parentId) {
+ this.parentId = parentId;
+ }
+
+ public Date getCreateDistributionTime() {
+ return createDistributionTime;
+ }
+
+ public void setCreateDistributionTime(Date createDistributionTime) {
+ this.createDistributionTime = createDistributionTime;
+ }
+
+ public Date getHandleTime() {
+ return handleTime;
+ }
+
+ public void setHandleTime(Date handleTime) {
+ this.handleTime = handleTime;
+ }
public String getPayTotal() {
return payTotal;
}
diff --git a/zq-erp/src/main/java/com/matrix/system/score/dao/ScoreVipDetailDao.java b/zq-erp/src/main/java/com/matrix/system/score/dao/ScoreVipDetailDao.java
index dc820d5..6558a8d 100644
--- a/zq-erp/src/main/java/com/matrix/system/score/dao/ScoreVipDetailDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/score/dao/ScoreVipDetailDao.java
@@ -1,11 +1,9 @@
package com.matrix.system.score.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Param;
-import java.util.List;
-import java.util.Map;
-import com.matrix.core.pojo.PaginationVO;
import com.matrix.system.score.entity.ScoreVipDetail;
+
+import java.util.List;
/**
* @description 客户积分余额
@@ -14,4 +12,18 @@
*/
public interface ScoreVipDetailDao extends BaseMapper<ScoreVipDetail> {
+ /**
+ * 查询用户总积分
+ * @param openId
+ * @param vipId
+ * @return
+ */
+ int selectUserTotalScore(String openId, Long vipId);
+
+ /**
+ * 查询用户有效的积分,按时间顺序排
+ * @param userId
+ * @return
+ */
+ List<ScoreVipDetail> selectEffectiveScore(String openId);
}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/score/entity/ScoreVipDetail.java b/zq-erp/src/main/java/com/matrix/system/score/entity/ScoreVipDetail.java
index 2526ee5..94d522b 100644
--- a/zq-erp/src/main/java/com/matrix/system/score/entity/ScoreVipDetail.java
+++ b/zq-erp/src/main/java/com/matrix/system/score/entity/ScoreVipDetail.java
@@ -16,10 +16,27 @@
@TableName("score_vip_detail")
public class ScoreVipDetail extends BaseEntity{
@Extend
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
-
+ /**
+ * 获取类型(1:现金消费)
+ */
+ public static final int SCORE_VIP_TYPE_CASH=1;
+ /**
+ * 获取类型(2:赠送等)
+ */
+ public static final int SCORE_VIP_TYPE_CONSUME=2;
+
+ /**
+ * 用户openId
+ */
+ private String openId;
+
+ /**
+ * erp用户Id
+ */
+ private String vipId;
/**
diff --git a/zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java b/zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java
index 807819d..1432df4 100644
--- a/zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java
+++ b/zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java
@@ -1,20 +1,81 @@
package com.matrix.system.score.service;
-import com.matrix.system.score.dao.ScoreVipDetailDao;
-import com.matrix.system.score.entity.ScoreVipDetail;
+import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.matrix.biz.bean.BizUser;
+import com.matrix.biz.dao.BizUserDao;
+import com.matrix.core.constance.MatrixConstance;
+import com.matrix.system.score.dao.ScoreUseRecordDao;
+import com.matrix.system.score.dao.ScoreVipDetailDao;
+import com.matrix.system.score.entity.ScoreUseRecord;
+import com.matrix.system.score.entity.ScoreVipDetail;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
- * @description 客户积分余额
* @author jyy
+ * @description 客户积分余额
* @date 2021-02-26 15:26
*/
@Service
-public class ScoreVipDetailService extends ServiceImpl<ScoreVipDetailDao, ScoreVipDetail>{
+public class ScoreVipDetailService extends ServiceImpl<ScoreVipDetailDao, ScoreVipDetail> {
+
+ @Autowired
+ ScoreVipDetailDao scoreVipDetailDao;
+
+ @Autowired
+ ScoreUseRecordDao scoreUseRecordDao;
+
+ @Autowired
+ BizUserDao bizUserDao;
+
+ /**
+ * 扣除用户积分
+ *
+ * @param openId
+ * @param score
+ * @param businessId
+ * @param type
+ */
+ public void deductionScore(String openId, Integer score, Long businessId, int type) {
+ BizUser user = bizUserDao.findByOpenId(openId);
+ List<ScoreVipDetail> effectiveScoreList = scoreVipDetailDao.selectEffectiveScore(openId);
+
+ for (ScoreVipDetail scoreVipDetail : effectiveScoreList) {
+
+ ScoreUseRecord scoreUseRecord = new ScoreUseRecord();
+ scoreUseRecord.setPreScore(scoreVipDetail.getRemainScore());
+ int surplus = scoreVipDetail.getRemainScore() - score;
+ int currentDedution = 0;
+ if (surplus > 0 || surplus == 0) {
+ //余额充足
+ currentDedution = score;
+ scoreVipDetail.setRemainScore(surplus);
+ scoreVipDetailDao.updateById(scoreVipDetail);
+ break;
+ } else {
+ currentDedution = scoreVipDetail.getRemainScore();
+ scoreVipDetail.setRemainScore(0);
+ scoreVipDetailDao.updateById(scoreVipDetail);
+ score=Math.abs(surplus);
+ }
+ //新增扣除记录
+ scoreUseRecord.setCreateBy(MatrixConstance.SYSTEM_USER);
+ scoreUseRecord.setUpdateBy(MatrixConstance.SYSTEM_USER);
+ scoreUseRecord.setCreateTime(DateTime.now());
+ scoreUseRecord.setUpdateTime(DateTime.now());
+ scoreUseRecord.setNowScore(scoreVipDetail.getRemainScore());
+ scoreUseRecord.setCompanyId(user.getCompanyId());
+ scoreUseRecord.setScoreVipDetailId(scoreVipDetail.getId());
+ scoreUseRecord.setBusinessId(businessId);
+ scoreUseRecord.setRecNum(currentDedution);
+ scoreUseRecord.setRecType(type);
+ scoreUseRecordDao.insert(scoreUseRecord);
+ }
-
-
+ }
}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
index 508d4e7..c36b7e6 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
@@ -12,6 +12,8 @@
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.hive.bean.SysVipInfo;
import com.matrix.system.hive.dao.SysVipInfoDao;
+import com.matrix.system.score.entity.ScoreVipDetail;
+import com.matrix.system.score.service.ScoreVipDetailService;
import com.matrix.system.shopXcx.bean.ShopActivitiesGroupJoin;
import com.matrix.system.shopXcx.bean.ShopActivitiesGroupJoinUser;
import com.matrix.system.shopXcx.bean.ShopOrder;
@@ -78,6 +80,9 @@
@Autowired
BusParameterSettingsDao busParameterSettingsDao;
+
+ @Autowired
+ ScoreVipDetailService scoreVipDetailService;
@@ -195,6 +200,10 @@
// 根据订单类型创建不同的处理任务
rabiitMqTemplate.sendTopicMsg(RabbitMqConfig.MQ_EXCHANGE_TOPIC +evn, MQTaskRouting.CREATE_ORDER+evn, orderId);
+ //扣除积分
+ if(order.getScorePay()!=null){
+ scoreVipDetailService.deductionScore(order.getUserId(),order.getScorePay(),Long.parseLong(order.getId()+""), ScoreVipDetail.SCORE_VIP_TYPE_CASH);
+ }
threadResult.putInMap("status", "success");
resXml = AppConstance.RESULT_XML_SUCCESS;
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java
index 5fc88e7..a18df97 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java
@@ -1,23 +1,8 @@
package com.matrix.system.shopXcx.api.action;
-import com.matrix.biz.bean.BizUser;
-import com.matrix.biz.service.BizUserService;
-import com.matrix.component.redis.RedisUserLoginUtils;
-import com.matrix.core.pojo.AjaxResult;
-import com.matrix.core.pojo.PaginationVO;
-import com.matrix.component.redis.RedisUserLoginUtils;
-import com.matrix.system.shopXcx.bean.ShopScoreExchange;
-import com.matrix.system.shopXcx.bean.ShopScoreRecord;
-import com.matrix.system.shopXcx.dao.ShopScoreExchangeDao;
-import com.matrix.system.shopXcx.dao.ShopScoreRecordDao;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import java.util.List;
/**
* @description 用户积分控制器
@@ -29,76 +14,6 @@
@CrossOrigin(origins = "*", maxAge = 3600)
public class WxShopScoreAction {
- @Autowired
- private ShopScoreRecordDao shopScoreRecordDao;
- @Autowired
- private ShopScoreExchangeDao shopScoreExchangeDao;
- @Autowired
- private RedisUserLoginUtils redisUserLoginUtils;
- @Autowired
- private BizUserService bizUserService;
-
- /**
- * 查询我的获得积分列表
- * @return
- */
- @RequestMapping(value = "/getRecordList")
- @ResponseBody
- public AjaxResult getRecordList(@RequestBody PaginationVO pageVo) {
-
- pageVo.setSort("create_time");
- pageVo.setOrder("desc");
- BizUser loginBizUser = redisUserLoginUtils.getLoginUser(BizUser.class);
- ShopScoreRecord params = new ShopScoreRecord();
- params.setBeneficiaryId(loginBizUser.getOpenId());
- List<ShopScoreRecord> dataList = shopScoreRecordDao.selectInPage(params, pageVo);
- int total = shopScoreRecordDao.selectTotalRecord(params);
- AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, total);
- //查询用户总积分
- BizUser user = bizUserService.findById(loginBizUser.getUserId());
- Integer totalScore = 0;
- if (user != null && user.getTotalScore() != null) {
- totalScore = user.getTotalScore();
- }
- result.putInMap("totalScore", totalScore);
- //查询下级总人数
- BizUser peopleSumParams = new BizUser();
- peopleSumParams.setParentOpenId(loginBizUser.getOpenId());
- int peopleSum = bizUserService.findTotal(peopleSumParams);
- result.putInMap("peopleSum", peopleSum);
- return result;
- }
-
-
- /**
- * 查询我的积分兑换列表
- * @return
- */
- @RequestMapping(value = "/getChangeRecordList")
- @ResponseBody
- public AjaxResult getChangeRecordList(@RequestBody PaginationVO pageVo) {
-
- //不分页
- pageVo.setOffset(null);
- pageVo.setLimit(null);
- //按生成时间倒序排列
- pageVo.setSort("create_time");
- pageVo.setOrder("desc");
- BizUser loginBizUser = redisUserLoginUtils.getLoginUser(BizUser.class);
- ShopScoreExchange params = new ShopScoreExchange();
- params.setUserId(loginBizUser.getOpenId());
- List<ShopScoreExchange> dataList = shopScoreExchangeDao.selectInPage(params, pageVo);
- int total = shopScoreExchangeDao.selectTotalRecord(params);
- AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, total);
- //查询用户当前积分
- BizUser user = bizUserService.findById(loginBizUser.getUserId());
- Integer currentScore = 0;
- if (user != null && user.getCurrentScore() != null) {
- currentScore = user.getCurrentScore();
- }
- result.putInMap("currentScore", currentScore);
- return result;
- }
}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
index 3125fe1..e34da97 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
@@ -175,6 +175,8 @@
return new AjaxResult(AjaxResult.STATUS_SUCCESS, Collections.singletonList(bizUser));
}
+
+
void checkNeedToBeSalesman(BizUser bizUser, BizUser loginUser) {
//查询是否需要自动成为分销员
if ((loginUser.getIsSales() == null || loginUser.getIsSales() == 2)
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 d4a5664..70bb8d6 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
@@ -18,6 +18,7 @@
import com.matrix.system.common.dao.CustomerDataDictionaryDao;
import com.matrix.system.common.interceptor.HostInterceptor;
import com.matrix.system.hive.dao.ShoppingGoodsDao;
+import com.matrix.system.score.dao.ScoreVipDetailDao;
import com.matrix.system.shopXcx.api.action.PayThreadPool;
import com.matrix.system.shopXcx.api.pojo.OrderCouponGroup;
import com.matrix.system.shopXcx.api.pojo.OrderInfoQueryPOJO;
@@ -100,6 +101,9 @@
@Autowired
private BusParameterSettingsDao busParameterSettingsDao;
+ @Autowired
+ private ScoreVipDetailDao scoreVipDetailDao;
+
@Override
public BigDecimal calculationPostage(BigDecimal payPrice, Long companyId) {
BigDecimal postage = BigDecimal.ZERO;
@@ -133,19 +137,17 @@
return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择正确的收获地址");
}
- AjaxResult caculateResult= buildDiscountExplain(shopOrderDto);
-
-
//计算订单优惠信息
+ AjaxResult caculateResult= buildDiscountExplain(shopOrderDto);
DiscountExplain discountExplain= (DiscountExplain) caculateResult.getMapInfo().get("discountExplain");
-
-
- //取出购物车中选中的产品
- List<ShopShoppingCart> buyCart = new ArrayList<>();
- //取出购物车中没有参加店铺活动的产品,和参加了店铺活动但是活动没有达到标准的产品,用来计算是否可以使用优惠券
- List<ShopShoppingCart> notCouponuyCart = new ArrayList<>();
-
+ if(discountExplain.getScorePay()!=null){
+ //校验用户积分是否够用
+ int score=scoreVipDetailDao.selectUserTotalScore(bizUser.getOpenId(),null);
+ if(score<discountExplain.getScorePay()){
+ return AjaxResult.buildFailInstance("积分不足");
+ }
+ }
ShopOrder shopOrder = new ShopOrder();
shopOrder.setCompanyId(bizUser.getCompanyId());
@@ -154,7 +156,7 @@
shopOrder.setOrderType(ShopOrder.ORDER_TYPE_GOODS);
List<ShopOrderDetails> details = new ArrayList<>();
- Integer cartCount = 0;
+ Integer orderCount = 0;
for (OrderItemDto orderItemDto : shopOrderDto.getOrderItemList()) {
ShopOrderDetails shopOrderDetails = new ShopOrderDetails();
shopOrderDetails.setCreateBy(AppConstance.SYSTEM_USER);
@@ -178,7 +180,12 @@
shopOrderDetails.setDiscountAmount(BigDecimal.ZERO);
details.add(shopOrderDetails);
- cartCount += shopOrderDetails.getCount();
+ orderCount += shopOrderDetails.getCount();
+ if(orderItemDto.getCartId()!=null){
+ //删除用户购物车选中的产品
+ shoppingCartDao.deleteById(orderItemDto.getCartId());
+ }
+
}
//校验商品是否限购
@@ -190,7 +197,7 @@
shopOrder.setCreateBy("微信小程序生成");
shopOrder.setUpdateBy("微信小程序生成");
shopOrder.setCommodityPrice(discountExplain.getBillPrice());
- shopOrder.setPurchaseQuantity(cartCount);
+ shopOrder.setPurchaseQuantity(orderCount);
shopOrder.setOrderType(ShopOrder.ORDER_TYPE_GOODS);
//购买方式
shopOrder.setShippingMethod(shopOrderDto.getDeliverySelect());
@@ -219,6 +226,7 @@
//获取邮费
shopOrder.setPostage(discountExplain.getPostage());
shopOrder.setOrderMoney(discountExplain.getPayPrice());
+ shopOrder.setScorePay(discountExplain.getScorePay());
Gson g = new GsonBuilder().create();
shopOrder.setDiscountExplain(g.toJson(discountExplain));
shopOrder.setDiscountAmount(discountExplain.getActivityPrice().add(discountExplain.getCouponPrice()));
@@ -242,8 +250,6 @@
shopCouponRecordDao.updateByModel(record);
}
- //删除用户购物车选中的产品
- shoppingCartDao.deleteUserSelectCart(bizUser.getOpenId());
BrandWCPayRequestData payData = startPayment(shopOrder);
@@ -388,6 +394,15 @@
if (!shopOrder.getPayResult().equals(ShopOrder.ORDER_PAY_STATUS_WAIT)) {
throw new GlobleException("该订单不是待支付状态!");
}
+
+ if(shopOrder.getScorePay()!=null){
+ //校验用户积分是否够用
+ int score=scoreVipDetailDao.selectUserTotalScore(shopOrder.getUserId(),null);
+ if(score<shopOrder.getScorePay()){
+ return AjaxResult.buildFailInstance("积分不足");
+ }
+ }
+
BrandWCPayRequestData payData = startPayment(shopOrder);
AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, Arrays.asList(payData));
result.putInMap("orderId", shopOrder.getId());
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java
index 46da7f2..4ae3a9a 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java
@@ -141,7 +141,10 @@
* 用户ID
*/
private String userId;
-
+ /**
+ * 支付积分
+ */
+ private Integer scorePay;
/**
* 下单时间
@@ -336,6 +339,13 @@
return orderNo;
}
+ public Integer getScorePay() {
+ return scorePay;
+ }
+
+ public void setScorePay(Integer scorePay) {
+ this.scorePay = scorePay;
+ }
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
diff --git a/zq-erp/src/main/resources/mybatis/mapper/score/ScoreVipDetailDao.xml b/zq-erp/src/main/resources/mybatis/mapper/score/ScoreVipDetailDao.xml
index f7fe0c0..df8f53f 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/score/ScoreVipDetailDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/score/ScoreVipDetailDao.xml
@@ -3,41 +3,23 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.matrix.system.score.dao.ScoreVipDetailDao">
- <!-- 定义ScoreVipDetail 的复杂关联map -->
- <resultMap type="com.matrix.system.score.entity.ScoreVipDetail" id="ScoreVipDetailMap">
- <id property="id" column="id" />
- <result property="createBy" column="create_by" />
- <result property="createTime" column="create_time" />
- <result property="updateBy" column="update_by" />
- <result property="updateTime" column="update_time" />
- <result property="type" column="type" />
- <result property="allScore" column="all_score" />
- <result property="usedScore" column="used_score" />
- <result property="remainScore" column="remain_score" />
- <result property="gainTime" column="gain_time" />
- <result property="validiteTime" column="validite_time" />
- <result property="state" column="state" />
- <result property="businessId" column="business_id" />
- <result property="companyId" column="company_id" />
- </resultMap>
-
-
- <!-- 定义ScoreVipDetail 的简单map ,本map不添加其他的关联属性 -->
- <resultMap type="com.matrix.system.score.entity.ScoreVipDetail" id="ScoreVipDetailSimpleMap">
- <id property="id" column="id" />
- <result property="createBy" column="create_by" />
- <result property="createTime" column="create_time" />
- <result property="updateBy" column="update_by" />
- <result property="updateTime" column="update_time" />
- <result property="type" column="type" />
- <result property="allScore" column="all_score" />
- <result property="usedScore" column="used_score" />
- <result property="remainScore" column="remain_score" />
- <result property="gainTime" column="gain_time" />
- <result property="validiteTime" column="validite_time" />
- <result property="state" column="state" />
- <result property="businessId" column="business_id" />
- <result property="companyId" column="company_id" />
- </resultMap>
+
+ <select id="selectUserTotalScore" resultType="java.lang.Integer">
+ select IFNULL(sum(IFNULL( remain_score, 0 )),0) from score_vip_detail
+ <where>
+ and state=1
+ <if test="openId !=null">
+ and open_id=#{openId}
+ </if>
+ <if test="vipId !=null">
+ and vip_id=#{vipId}
+ </if>
+ </where>
+ </select>
+
+ <select id="selectEffectiveScore" resultType="com.matrix.system.score.entity.ScoreVipDetail">
+ select * from score_vip_detail where open_id=#{openId} and state=1 order by create_time
+
+ </select>
</mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml
index 8ec31fb..c699faf 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml
@@ -33,6 +33,7 @@
<result property="storeName" column="shop_name" />
<result property="orderType" column="order_type" />
<result property="applyStatus" column="apply_status" />
+ <result property="scorePay" column="score_pay" />
<result property="companyId" column="company_id" />
</resultMap>
@@ -66,6 +67,7 @@
<result property="postage" column="postage" />
<result property="orderType" column="order_type" />
<result property="storeName" column="shop_name" />
+ <result property="scorePay" column="score_pay" />
<result property="companyId" column="company_id" />
<result property="activityType" column="activity_type" />
<!--支付时间-->
@@ -127,6 +129,7 @@
postage,
order_type,
activity_type,
+score_pay,
company_id
</sql>
@@ -159,6 +162,7 @@
#{item.postage},
#{item.orderType},
#{item.activityType},
+ #{item.scorePay},
#{item.companyId}
</sql>
@@ -337,6 +341,9 @@
<if test="_parameter.containsKey('orderType')">
order_type = #{orderType},
</if>
+ <if test="_parameter.containsKey('scorePay')">
+ score_pay = #{scorePay},
+ </if>
</set>
WHERE id=#{id}
</update>
@@ -405,6 +412,9 @@
</if>
<if test="record.postage != null and record.postage != '' ">
postage = #{record.postage},
+ </if>
+ <if test="record.scorePay != null and record.scorePay != '' ">
+ score_pay = #{record.scorePay},
</if>
<if test="true">
update_time = now(),
@@ -558,6 +568,7 @@
o.postage,
s.shop_name,
o.order_type,
+ o.score_pay,
o.apply_status
from shop_order o
INNER JOIN sys_shop_info s on o.store_id = s.ID
@@ -629,6 +640,7 @@
o.pay_result,
o.postage,
s.store_name,
+ s.score_pay,
o.order_type
from shop_order o
LEFT JOIN shop_store s on o.store_id = s.store_id
diff --git a/zq-erp/src/test/java/com/matrix/JyyTests.java b/zq-erp/src/test/java/com/matrix/JyyTests.java
index b2b3243..3d26abb 100644
--- a/zq-erp/src/test/java/com/matrix/JyyTests.java
+++ b/zq-erp/src/test/java/com/matrix/JyyTests.java
@@ -1,5 +1,6 @@
package com.matrix;
+import com.matrix.system.score.dao.ScoreVipDetailDao;
import com.matrix.system.shopXcx.dao.ShopOrderV2Dao;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -22,12 +23,18 @@
@Autowired
private ShopOrderV2Dao shopOrderV2Dao;
-
+ @Autowired
+ ScoreVipDetailDao scoreVipDetailDao;
/**
*
*/
@Test
+ public void scoreVipDetailDao() throws InterruptedException {
+ System.out.println( scoreVipDetailDao.selectUserTotalScore("oJkRK4yelehsY4S7I6Ee1ydWtQMI",null));
+ }
+
+ @Test
public void testSelectReceivedOrderCount() throws InterruptedException {
System.out.println( shopOrderV2Dao.selectReceivedOrderCount("oJkRK4yelehsY4S7I6Ee1ydWtQMI"));
}
--
Gitblit v1.9.1