From 78264c6d9146627b0fc1ba31354e1d9853587afe Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 23 Jul 2021 10:35:06 +0800
Subject: [PATCH] 202107023
---
gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java | 28 +++++++++++++++++++++++-----
1 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java b/gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java
index fbd3add..6c4b284 100644
--- a/gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java
+++ b/gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java
@@ -42,6 +42,8 @@
private AccountMapper accountMapper;
@Autowired
private UserMapper userMapper;
+ @Autowired
+ private ScoreDetailsMapper scoreDetailsMapper;
public void distribRecord(Long orderId, String userId) {
UserHeadRelate userHeadRelate = userHeadRelateMapper.selectRelateByUserId(userId);
@@ -57,6 +59,11 @@
Integer count = userHeadDetailsMapper.selectDetailsCount(userId);
// UserInfo userInfo = userMapper.selectByPrimaryKey(userId);
AccountInfo accountInfo = accountMapper.selectAccountInfoByUserId(userHeadRelate.getHeadUserId());
+
+ if (AccountInfo.IS_PROHIBIT_Y.equals(accountInfo.getIsProhibit())) {
+ return;
+ }
+
List<String> remark = new ArrayList<>();
BigDecimal totalReturnScore = BigDecimal.ZERO;
BigDecimal totalReturnCoin = BigDecimal.ZERO;
@@ -69,7 +76,7 @@
// 首单返利
if (StrUtil.isNotBlank(value) && !"0".equals(value)) {
BigDecimal money = new BigDecimal(value);
- totalReturnScore = totalReturnScore.add(money);
+ totalReturnCoin = totalReturnCoin.add(money);
remark.add("首单返利:" + money);
}
}
@@ -79,7 +86,7 @@
if (StrUtil.isNotBlank(value) && !"0".equals(value)) {
// 首单完成后,在value单内,返利积分或者环保币
- if (count - 1 <= Integer.parseInt(value)) {
+ if (count - 1 < Integer.parseInt(value)) {
String scoreStr = getRuleValue(redPaperRule, CommonEnum.返利固定积分.getValue());
String coinStr = getRuleValue(redPaperRule, CommonEnum.返利环保币比例.getValue());
// 根据积分返利固定积分
@@ -92,7 +99,7 @@
// 根据订单总积分, 1:40比例,换算成环保币,返对应百分比
if (StrUtil.isNotBlank(coinStr) && !"0".equals(coinStr)) {
BigDecimal coinRatio = new BigDecimal(coinStr).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_DOWN);
- BigDecimal totalCoin = totalScore.multiply(new BigDecimal(40));
+ BigDecimal totalCoin = totalScore.divide(new BigDecimal(50), 2, BigDecimal.ROUND_DOWN);
BigDecimal returnCoin = totalCoin.multiply(coinRatio).setScale(2, BigDecimal.ROUND_DOWN);
totalReturnCoin = totalReturnCoin.add(returnCoin);
@@ -125,12 +132,23 @@
userHeadRelate.setScore(userHeadRelate.getScore().add(totalReturnScore));
userHeadRelateMapper.updateByPrimaryKey(userHeadRelate);
- accountInfo.setAccountId(accountInfo.getAccountId());
accountInfo.setMoney(new BigDecimal(accountInfo.getMoney()).add(totalReturnCoin).setScale(2, BigDecimal.ROUND_DOWN).toString());
BigDecimal collectScore = StrUtil.isNotBlank(accountInfo.getCollectScore()) ? new BigDecimal(accountInfo.getCollectScore()) : BigDecimal.ZERO;
- accountInfo.setCollectScore(collectScore.add(totalReturnScore).setScale(2, BigDecimal.ROUND_DOWN).toString());
+ accountInfo.setCollectScore(collectScore.add(totalReturnScore).setScale(0, BigDecimal.ROUND_DOWN).toString());
accountMapper.updateByPrimaryKey(accountInfo);
+ if (totalReturnScore.compareTo(BigDecimal.ZERO) > 0) {
+ ScoreDetails scoreDetails = new ScoreDetails();
+ scoreDetails.setCurrentScore(new BigDecimal(accountInfo.getCollectScore()));
+ scoreDetails.setOriginalScore(collectScore);
+ scoreDetails.setChangeScore(totalReturnScore);
+ scoreDetails.setCreatedTime(new Date());
+ scoreDetails.setType(ScoreDetails.SCORE_TYPE_OTHER);
+ scoreDetails.setUserId(userHeadRelate.getHeadUserId());
+ scoreDetails.setOrderNo(order.getOrderNo());
+ scoreDetailsMapper.insert(scoreDetails);
+ }
+
SysMessage sysMessage = new SysMessage();
sysMessage.setCreateTime(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
sysMessage.setCreateUserId(userHeadRelate.getHeadUserId());
--
Gitblit v1.9.1