From 95f9ea7eb339c36cade6c67d0385c49ec2d81477 Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Wed, 14 Apr 2021 19:39:45 +0800 Subject: [PATCH] Merge branch 'score_shop' into api_score_meger --- zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/ScoreOrderTask.java | 141 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 141 insertions(+), 0 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 new file mode 100644 index 0000000..0ad9e03 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/ScoreOrderTask.java @@ -0,0 +1,141 @@ +package com.matrix.system.shopXcx.mqTask; + + +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; +import com.matrix.system.shopXcx.bean.ShopOrderDetails; +import com.matrix.system.shopXcx.dao.ShopOrderDao; +import com.matrix.system.shopXcx.dao.ShopOrderDetailsDao; +import com.rabbitmq.client.DeliverCallback; +import com.rabbitmq.client.Delivery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.math.BigDecimal; +import java.util.List; + +/** + * 订单创建积分事件处理 + */ +@Component +public class ScoreOrderTask implements DeliverCallback { + + + @Autowired + ShopOrderDao shopOrderDao; + @Autowired + ShopOrderDetailsDao shopOrderDetailsDao; + + @Autowired + SysVipInfoService sysVipInfoService; + + + @Autowired + ScoreVipDetailService scoreVipDetailService; + + @Autowired + BusParameterSettingsDao busParameterSettingsDao; + + @Autowired + SysVipInfoDao sysVipInfoDao; + + @Override + public void handle(String consumerTag, Delivery message) throws IOException { + + String orderId = new String(message.getBody(), "UTF-8"); + LogUtil.debug("收到订单积分任务orderId={}", orderId); + //获取订单信息 + ShopOrder order = shopOrderDao.selectById(Integer.valueOf(orderId)); + //获取订单详情 + List<ShopOrderDetails> orderDetails = shopOrderDetailsDao.selectByOrderId(Integer.valueOf(orderId)); + order.setDetails(orderDetails); + //扣除积分 + 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; + 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) { + //插入新的积分 + scoreVipDetailService.addScore( + order.getUserId(), + null, + Long.parseLong(order.getStoreId() + ""), + addScore, + 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