记得上下班打卡 | git大法好,push需谨慎

Commit 7e0af894 authored by 张国柄's avatar 张国柄

+调整发放券任务;

parent cfe4ead8
......@@ -35,16 +35,6 @@ public class CandyMgtCouponTaskController {
private PlatformCandyMgtCouponService platformCandyMgtCouponService;
@Autowired
private PlatformCandyCouponService platformCandyCouponService;
@Autowired
private PlatformCandyCouponRuleService platformCandyCouponRuleService;
@Autowired
private PlatformCandyCouponCodeService platformCandyCouponCodeService;
@Autowired
private PlatformCandyUserCouponService platformCandyUserCouponService;
@Autowired
private DMRdmService dmRdmService;
@Autowired
private RedisUtil redisUtil;
@PostMapping("issue/coupons")
public void issueCoupons() {
......@@ -52,98 +42,49 @@ public class CandyMgtCouponTaskController {
.eq(CandyMgtCoupon::getState, 0)
.orderByAsc(CandyMgtCoupon::getEventAt);
List<CandyMgtCoupon> list = platformCandyMgtCouponService.list(queryWrapper);
int taskSize = CollectionUtils.isEmpty(list) ? 0 : list.size();
log.info("issue coupons taskSize:{}", taskSize);
int taskSize = CollectionUtils.isEmpty(list) ? -1 : list.size();
log.info("发放券任务总数:{} >>> BEGIN BEGIN BEGIN", taskSize);
LambdaQueryWrapper<CandyCoupon> couponQueryWrapper = Wrappers.lambdaQuery(CandyCoupon.class).eq(CandyCoupon::getState, 1);
LambdaQueryWrapper<CandyCouponRule> couponRuleQueryWrapper = Wrappers.lambdaQuery(CandyCouponRule.class).eq(CandyCouponRule::getState, 1);
for (int i = 0; i < taskSize; i++) {
LocalDateTime now = LocalDateTime.now();
CandyMgtCoupon mgtCoupon = list.get(i);
CandyCoupon coupon = platformCandyCouponService.getOne(couponQueryWrapper.eq(CandyCoupon::getCouponId, mgtCoupon.getCouponId()));
mgtCoupon.setState(9);
List<CandyCouponRuleDto> couponRuleDtoList = platformCandyCouponRuleService.listForCouponRuleDto(coupon.getCouponId());
try {
if (platformCandyMgtCouponService.updateById(mgtCoupon)) {
CandyCoupon coupon = platformCandyCouponService.getOne(couponQueryWrapper.eq(CandyCoupon::getCouponId, mgtCoupon.getCouponId()));
log.info("发放券任务总数:{},任务{}开始处理[mcouponId:{},couType:{},bindType:{},eventAmt:{},eventType:{}]", taskSize, i,
mgtCoupon.getMcouponId(), coupon.getCouType(), coupon.getBindType(), mgtCoupon.getEventAmt(), mgtCoupon.getEventType());
List<CandyCouponCode> initCouponCodeList = new ArrayList<>();
List<CandyUserCoupon> initUserCouponList = new ArrayList<>();
Integer eventAmt = mgtCoupon.getEventAmt();
for (int j = 0; j < eventAmt; j++) {
switch (coupon.getCouType()) {
case 1:
String uid = dmRdmService.getUidByMobile("17701223310");
if (StringUtils.isNotEmpty(uid)) {
CandyUserCoupon userCoupon = new CandyUserCoupon();
userCoupon.setUcouponId(IDGenerator.get32UUID());
userCoupon.setMcouponId(mgtCoupon.getMcouponId());
userCoupon.setUid(uid);
userCoupon.setCouponId(coupon.getCouponId());
userCoupon.setState(1);
userCoupon.setBindAt(now);
initUserCouponList.add(userCoupon);
}
case 1:// 代金券
platformCandyCouponService.issueCashCouponHandler(mgtCoupon, coupon);
break;
case 2:
case 2:// 满减券
platformCandyCouponService.issueOverMinusCouponHandler(mgtCoupon, coupon);
break;
case 3:// 兑换券
CandyCouponCode couponCode = new CandyCouponCode();
couponCode.setCcode(RandomStringUtils.randomAlphanumeric(16));
couponCode.setCouponId(coupon.getCouponId());
couponCode.setState(0);
couponCode.setCreatedAt(now);
initCouponCodeList.add(couponCode);
platformCandyCouponService.issueExchangeCouponHandler(mgtCoupon, coupon);
break;
case 4:
case 4:// 折扣券
platformCandyCouponService.issueDiscountCouponHandler(mgtCoupon, coupon);
break;
default:
log.warn("Invalid operation[mcouponId:{},couType:{}]", mgtCoupon.getMcouponId(), coupon.getCouType());
log.warn("发放券任务总数:{},任务{}无法处理,无效的券类型[mcouponId:{},couType:{}]", taskSize, i, mgtCoupon.getMcouponId(), coupon.getCouType());
break;
}
}
mgtCoupon.setState(1);
boolean update = platformCandyMgtCouponService.updateById(mgtCoupon);
if (!initUserCouponList.isEmpty() && platformCandyUserCouponService.saveBatch(initUserCouponList)) {
CandyCouponInfoDto couponInfoDto = new CandyCouponInfoDto();
BeanUtils.copyProperties(coupon, couponInfoDto);
couponInfoDto.setUseRules(couponRuleDtoList);
String key = CandyRedisConst.BASIC_COUPON_INFO.concat(couponInfoDto.getCouponId());
redisUtil.set(key, couponInfoDto);
initUserCouponList.forEach(r -> {
String uckey = CandyRedisConst.BASIC_USER_COUPON.concat(r.getUid());
List<CandyUserCouponBasicDto> vos = (List<CandyUserCouponBasicDto>) redisUtil.get(uckey);
if (CollectionUtils.isEmpty(vos)) {
vos = new ArrayList<>();
}
vos.add(CandyUserCouponBasicDto.getNew().copy(r, coupon, couponRuleDtoList));
redisUtil.set(uckey, vos);
});
log.info("发放券任务总数:{},任务{}处理{}[mcouponId:{},couType:{},bindType:{},eventAmt:{},eventType:{}]", taskSize, i, (update ? "成功" : "失败"),
mgtCoupon.getMcouponId(), coupon.getCouType(), coupon.getBindType(), mgtCoupon.getEventAmt(), mgtCoupon.getEventType());
}
if (!initCouponCodeList.isEmpty() && platformCandyCouponCodeService.saveBatch(initCouponCodeList)) {
CandyCouponInfoDto couponInfoDto = new CandyCouponInfoDto();
BeanUtils.copyProperties(coupon, couponInfoDto);
couponInfoDto.setUseRules(couponRuleDtoList);
String key = CandyRedisConst.BASIC_COUPON_INFO.concat(couponInfoDto.getCouponId());
redisUtil.set(key, couponInfoDto);
initCouponCodeList.forEach(r -> {
redisUtil.set(CandyRedisConst.BASIC_COUPON_CODE.concat(r.getCcode()), CandyCouponCodeDto.getNew().copy(r));
});
} catch (Exception e) {
log.error("发放券任务总数:{},任务{}处理异常[mcouponId:{}]", taskSize, i, mgtCoupon.getMcouponId(), e);
}
mgtCoupon.setState(1);
LambdaUpdateWrapper<CandyMgtCoupon> mgtCouponUpdateWrapper = Wrappers.lambdaUpdate(CandyMgtCoupon.class).eq(CandyMgtCoupon::getMcouponId, mgtCoupon.getMcouponId());
boolean update = platformCandyMgtCouponService.update(mgtCoupon, mgtCouponUpdateWrapper);
log.info("issue coupons mcouponId:{} ~ {}", mgtCoupon.getMcouponId(), update);
}
log.info("发放券任务总数:{} >>> END END END", taskSize);
}
}
package com.liquidnet.service.platform.service.impl.adam;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.adam.entity.AdamUserMember;
import com.liquidnet.service.adam.mapper.AdamUserMemberMapper;
import org.springframework.stereotype.Service;
@Service
public class PlatformAdamUserMemberService extends ServiceImpl<AdamUserMemberMapper, AdamUserMember> {
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment