From 1d0c686d7894463770b2412d37dec11568e35e5a Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Sat, 20 Nov 2021 21:18:48 +0800
Subject: [PATCH] fix
---
zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/ScoreOrderTask.java | 109 +++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 91 insertions(+), 18 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/ScoreOrderTask.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/ScoreOrderTask.java
index f83901f..41ead5a 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/ScoreOrderTask.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/ScoreOrderTask.java
@@ -1,8 +1,15 @@
package com.matrix.system.shopXcx.mqTask;
-import com.matrix.biz.service.BizUserService;
+import com.matrix.component.asyncmessage.MessageHandler;
import com.matrix.core.tools.LogUtil;
+import com.matrix.core.tools.StringUtils;
+import com.matrix.system.common.bean.BusParameterSettings;
+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.hive.service.SysVipInfoService;
+import com.matrix.system.score.constant.ScoreSettingConstant;
import com.matrix.system.score.entity.ScoreVipDetail;
import com.matrix.system.score.service.ScoreVipDetailService;
import com.matrix.system.shopXcx.bean.ShopOrder;
@@ -15,13 +22,15 @@
import org.springframework.stereotype.Component;
import java.io.IOException;
+import java.math.BigDecimal;
import java.util.List;
+import java.util.Map;
/**
* 订单创建积分事件处理
*/
@Component
-public class ScoreOrderTask implements DeliverCallback {
+public class ScoreOrderTask implements MessageHandler {
@Autowired
@@ -30,17 +39,32 @@
ShopOrderDetailsDao shopOrderDetailsDao;
@Autowired
- BizUserService bizUserService;
+ SysVipInfoService sysVipInfoService;
+
@Autowired
ScoreVipDetailService scoreVipDetailService;
+ @Autowired
+ BusParameterSettingsDao busParameterSettingsDao;
+ @Autowired
+ SysVipInfoDao sysVipInfoDao;
@Override
- public void handle(String consumerTag, Delivery message) throws IOException {
+ public String getName() {
+ return "订单创建积分事件";
+ }
- String orderId = new String(message.getBody(), "UTF-8");
+ @Override
+ public String getRouteKey() {
+ return AsyncMessageRouting.CREATE_ORDER;
+ }
+
+ @Override
+ public void handle(Map<String,Object> param) {
+
+ String orderId = (String) param.get("orderId");
LogUtil.debug("收到订单积分任务orderId={}", orderId);
//获取订单信息
ShopOrder order = shopOrderDao.selectById(Integer.valueOf(orderId));
@@ -48,29 +72,78 @@
List<ShopOrderDetails> orderDetails = shopOrderDetailsDao.selectByOrderId(Integer.valueOf(orderId));
order.setDetails(orderDetails);
//扣除积分
- if(order.getScorePay()!=null&&order.getScorePay()>0){
- scoreVipDetailService.deductionScore(order.getUserId(),null,null,Long.parseLong(order.getStoreId()+""),order.getScorePay(),Long.parseLong(order.getId()+""), ScoreVipDetail.SCORE_VIP_TYPE_CASH,"商城积分抵扣");
- }else{
+ if (order.getScorePay() != null && order.getScorePay() > 0) {
+ scoreVipDetailService.deductionScore(order.getUserId(), null,
+ Long.parseLong(order.getStoreId() + ""), order.getScorePay(),
+ Long.parseLong(order.getId() + ""), ScoreVipDetail.SCORE_VIP_TYPE_CASH, "商城积分抵扣");
+ } else {
+
//消费获得积分
- int addScore=0;
- for(ShopOrderDetails shopOrderDetail : orderDetails) {
- if(shopOrderDetail.getPayType()==ShopOrderDetails.PAYTYPE_MICRO){
- Integer xfkdScore= shopOrderDetail.getShopSku().getScore();
- if(xfkdScore!=null && xfkdScore>0){
- addScore+=xfkdScore;
+ int addScore = 0;
+ BusParameterSettings cashConsumptionShop = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.CASH_CONSUMPTION_SHOP, order.getCompanyId());
+ for (ShopOrderDetails shopOrderDetail : orderDetails) {
+ if (shopOrderDetail.getPayType() == ShopOrderDetails.PAYTYPE_MICRO) {
+ Integer xfkdScore = shopOrderDetail.getShopSku().getScore();
+ if (xfkdScore != null && xfkdScore > 0) {
+ addScore += xfkdScore;
+ } else {
+ if (StringUtils.isNotBlank(cashConsumptionShop.getParamValue())) {
+ addScore += shopOrderDetail.getTotalPrice().divide(new BigDecimal(cashConsumptionShop.getParamValue())).intValue();
+ }
}
}
}
- if(addScore>0){
+ if (addScore > 0) {
//插入新的积分
scoreVipDetailService.addScore(
- order.getUserId(),null,
+ order.getUserId(),
null,
- Long.parseLong(order.getStoreId()+""),
+ Long.parseLong(order.getStoreId() + ""),
addScore,
- Long.parseLong(orderId+""),
+ Long.parseLong(orderId + ""),
ScoreVipDetail.SCORE_VIP_TYPE_CASH,
"微商城消费");
+
+ //插入上级积分
+ SysVipInfo vipInfo = sysVipInfoService.findById(order.getUserId());
+
+
+ if (vipInfo.getRecommendId() != null) {
+ //推荐注册老带新积分奖励
+ SysVipInfo referrerVip = sysVipInfoDao.selectById(vipInfo.getRecommendId());
+ if (StringUtils.isNotBlank(cashConsumptionShop.getParamValue1())) {
+
+ int parentScore = order.getOrderMoney().divide(new BigDecimal(cashConsumptionShop.getParamValue1())).intValue();
+ if (parentScore > 0) {
+ scoreVipDetailService.addScore(
+ referrerVip.getId(),
+ null,
+ Long.parseLong(order.getStoreId() + ""),
+ parentScore,
+ Long.parseLong(order.getId() + ""),
+ ScoreVipDetail.SCORE_VIP_TYPE_CASH,
+ "推荐消费奖励"
+ );
+ }
+ }
+
+ //推荐注册二级带新积分奖励
+ if (referrerVip.getRecommendId() != null && StringUtils.isNotBlank(cashConsumptionShop.getParamValue2())) {
+ SysVipInfo topVipInfo = sysVipInfoDao.selectById(referrerVip.getRecommendId());
+ int topParentScore = order.getOrderMoney().divide(new BigDecimal(cashConsumptionShop.getParamValue2())).intValue();
+ if (topParentScore > 0) {
+ scoreVipDetailService.addScore(
+ topVipInfo.getId(),
+ null,
+ Long.parseLong(order.getStoreId() + ""),
+ topParentScore,
+ Long.parseLong(order.getId() + ""),
+ ScoreVipDetail.SCORE_VIP_TYPE_CASH,
+ "推荐消费奖励"
+ );
+ }
+ }
+ }
}
}
--
Gitblit v1.9.1