diff --git a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/DataInitController.java b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/DataInitController.java index 6c0b18d6a..efa07062e 100644 --- a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/DataInitController.java +++ b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/DataInitController.java @@ -171,6 +171,25 @@ public class DataInitController extends BaseController { List coList = couponOrderMapper.findListOfVerifiedByDate(dateMap); // 2 重新计算积分,比较是否需要修复 coList.forEach(co -> { + WxCoupon coupon = couponMapper.selectByPrimaryKey(co.getCouponId()); + + WxMerchantBUser buUser = merchantBUserMapper.selectByPrimaryKey(co.getBUserId()); + + WxCreditHistory q = new WxCreditHistory(); + q.setTenantId(co.getTenantId()); + q.setCUserId(co.getcUserId()); + q.setMerchantId(buUser.getMerchantId()); + q.setCouponId(co.getCouponId()); + WxCreditHistory ret = null; + try { + ret = creditHistoryMapper.selectOne(q); + } catch (Exception e) { + + } + if (ret != null) { + log.debug("用户已有积分历史id: {}", ret.getId()); + return; + } WxCUser cuUser = cUserMapper.selectByPrimaryKey(co.getcUserId()); WxCUserBasicInfo userBasicInfo = cUserBasicInfoMapper.selectByPrimaryKey(co.getcUserId()); //排查不存在的用户 @@ -179,13 +198,6 @@ public class DataInitController extends BaseController { return; } - WxCoupon coupon = couponMapper.selectByPrimaryKey(co.getCouponId()); - - WxMerchantBUser buUser = merchantBUserMapper.selectByPrimaryKey(co.getBUserId()); - - Map result = creditHistoryService.findByMerchantIdAndSpend(buUser.getMerchantId(), String.valueOf(co.getCouponPriceStr()), co.getCUserId(), co.getTenantId()); - Integer credit = result.get("credit"); - WxCreditHistory creditHistory = new WxCreditHistory(); creditHistory.setOperatorType(EnumUserType.BUSER.getCode()); creditHistory.setOperatorId(buUser.getId()); @@ -198,23 +210,7 @@ public class DataInitController extends BaseController { creditHistory.setSpend(co.getCouponPrice()); //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 creditHistory.setMerchantId(buUser.getMerchantId()); - creditHistoryService.saveOrUpdate(creditHistory); - - //用户新积分 - Integer newCredit = cuUser.getCredit() + credit; - - // 4 更新积分 - WxCUser toUpdateCUser = new WxCUser(); - toUpdateCUser.setId(co.getCUserId()); - toUpdateCUser.setCredit(newCredit); - toUpdateCUser.setUpdateDate(new Date()); - cUserMapper.updateByPrimaryKeySelective(toUpdateCUser); - - WxCUserBasicInfo toUpdateBasicInfo = new WxCUserBasicInfo(); - toUpdateBasicInfo.setId(co.getCUserId()); - toUpdateBasicInfo.setCredit(newCredit); - toUpdateBasicInfo.setUpdateDate(new Date()); - cUserBasicInfoMapper.updateByPrimaryKeySelective(toUpdateBasicInfo); + creditHistory = creditHistoryService.saveOrUpdate(creditHistory); }); }