yujian
2020-04-02 0ec22dcf4fd9c4496e6f681e7fab89f56c6e4e8a
fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java
@@ -53,6 +53,7 @@
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.exception.ExtractException;
import com.yeshi.fanli.exception.NotExistObjectException;
import com.yeshi.fanli.exception.ObjectStateException;
@@ -67,6 +68,7 @@
import com.yeshi.fanli.service.inter.money.extract.ExtractService;
import com.yeshi.fanli.service.inter.money.extract.ExtractWeiXinRecordService;
import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
import com.yeshi.fanli.service.inter.order.OrderUserStatisticService;
import com.yeshi.fanli.service.inter.push.PushService;
@@ -77,6 +79,7 @@
import com.yeshi.fanli.util.GsonUtil;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
@@ -150,6 +153,9 @@
   @Resource
   private ExtractWeiXinRecordService extractWeiXinRecordService;
   @Resource
   private CommonOrderCountService commonOrderCountService;
   @Transactional
   public Integer addExtract(Extract extract) {
@@ -268,9 +274,9 @@
            && (System.currentTimeMillis() - history.getCreateTime().getTime()) < 1000 * 60 * 60 * 24 * 7L)
         return 111;
      final String autoExtract = configService.get("extract_way"); // 是否自动转账
      final String maxCount = configService.get("extract_count_day");
      final String maxMoney = configService.get("extract_money_day");
      final String autoExtract = configService.get(ConfigKeyEnum.extractWay.getKey()); // 是否自动转账
      final String maxCount = configService.get(ConfigKeyEnum.extractDayCount.getKey());
      final String maxMoney = configService.get(ConfigKeyEnum.extractMoneyDay.getKey());
      UserInfo user = userInfoMapper.selectByPrimaryKeyForUpdate(extract.getUserInfo().getId());
      // 余额不足
@@ -291,21 +297,32 @@
      extractMapper.insertSelective(extract);
      ExtractAuditRecord auditRecord = new ExtractAuditRecord();
      final ExtractAuditRecord auditRecord = new ExtractAuditRecord();
      auditRecord.setBeforeMoney(user.getMyHongBao());
      auditRecord.setExtract(extract);
      Date minTime = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 180L);
      // 统计数据
      int orderCount50More = orderUserStatisticService.countOrderCount100MoreByUidAndMinTime(user.getId(), minTime);
      BigDecimal weiQuanOrderFanAmount = orderUserStatisticService.sumWeiQuanOrderFanAmountByUid(user.getId(),
            minTime);
      int weiQuanOrderCount = orderUserStatisticService.countWeiQuanOrderByUid(user.getId(), minTime);
      auditRecord.setExtraInfoStr(new Gson()
            .toJson(new ExtractOrderStatisticDTO(orderCount50More, weiQuanOrderCount, weiQuanOrderFanAmount, 0)));
      extractAuditRecordMapper.insertSelective(auditRecord);
      ThreadUtil.run(new Runnable() {
         @Override
         public void run() {
            // 统计数据
            int less10Count = commonOrderCountService.countOderByUidAndLess10(user.getId());
            ExtractAuditRecord update=new ExtractAuditRecord();
            update.setId(auditRecord.getId());
            int orderCount50More = orderUserStatisticService.countOrderCount100MoreByUidAndMinTime(user.getId(), minTime);
            BigDecimal weiQuanOrderFanAmount = orderUserStatisticService.sumWeiQuanOrderFanAmountByUid(user.getId(),
                  minTime);
            int weiQuanOrderCount = orderUserStatisticService.countWeiQuanOrderByUid(user.getId(), minTime);
            update.setExtraInfoStr(new Gson().toJson(
                  new ExtractOrderStatisticDTO(orderCount50More, weiQuanOrderCount, weiQuanOrderFanAmount, 0, less10Count)));
            extractAuditRecordMapper.updateByPrimaryKeySelective(update);
         }
      });
      // 新版资金详情
      UserMoneyDetail userMoneyDetail = null;
      try {