xiaoyong931011
2021-07-16 e845f2033e1be42896f891ee12b866d174214529
gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java
@@ -1,5 +1,8 @@
package com.xzx.gc.order.service;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.xzx.gc.common.constant.CommonEnum;
import com.xzx.gc.entity.*;
@@ -33,6 +36,12 @@
    private RedPaperRuleMapper redPaperRuleMapper;
    @Autowired
    private JhyOrderItemsMapper jhyOrderItemsMapper;
    @Autowired
    private SysMessageMapper sysMessageMapper;
    @Autowired
    private AccountMapper accountMapper;
    @Autowired
    private UserMapper userMapper;
    public void distribRecord(Long orderId, String userId) {
        UserHeadRelate userHeadRelate = userHeadRelateMapper.selectRelateByUserId(userId);
@@ -46,6 +55,12 @@
        }
        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;
@@ -108,12 +123,28 @@
        userHeadDetails.setAmount(totalReturnCoin);
        userHeadDetails.setScore(totalReturnScore);
        userHeadDetails.setCreatedTime(new Date());
        userHeadDetails.setRemark(CollUtil.join(remark, ","));
        userHeadDetailsMapper.insert(userHeadDetails);
        userHeadRelate.setAmount(userHeadRelate.getAmount().add(totalReturnCoin));
        userHeadRelate.setScore(userHeadDetails.getScore().add(totalReturnScore));
        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(0, BigDecimal.ROUND_DOWN).toString());
        accountMapper.updateByPrimaryKey(accountInfo);
        SysMessage sysMessage = new SysMessage();
        sysMessage.setCreateTime(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
        sysMessage.setCreateUserId(userHeadRelate.getHeadUserId());
        sysMessage.setUserId(userHeadRelate.getHeadUserId());
        sysMessage.setMessageType("4");
        sysMessage.setMessageSubTypeName("返利消息");
        sysMessage.setMessage("收到用户:" + accountInfo.getAccountName().replaceAll("(\\w{3})\\w*(\\w{4})", "$1****$2") + "的订单返利, 积分:" + totalReturnScore +", 环保币:" + totalReturnCoin);
        sysMessage.setFlag("2");
        sysMessageMapper.insert(sysMessage);
    }
    private String getRuleValue(RedPaperRule redPaperRule, String key) {