会员精准发券,更改改分页进行发送

This commit is contained in:
lifenlong 2021-05-26 08:42:12 +08:00
parent b4240ae2c0
commit 5f93ce3851
2 changed files with 25 additions and 9 deletions

View File

@ -46,14 +46,16 @@ public class CouponActivityExecute implements EveryMinuteExecute {
.eq(CouponActivity::getPromotionStatus,PromotionStatusEnum.NEW.name()));
//如果有符合要求的优惠券活动发送优惠券
if(couponActivities.size()>0){
for (CouponActivity CouponActivity:couponActivities) {
couponActivityService.specify(CouponActivity.getId());
}
for (CouponActivity couponActivity:couponActivities) {
couponActivityService.specify(couponActivity.getId());
//修改精准发券优惠券活动状态
couponActivityService.update(new LambdaUpdateWrapper<CouponActivity>()
.eq(CouponActivity::getCouponActivityType, CouponActivityTypeEnum.SPECIFY.name())
.eq(CouponActivity::getId,couponActivity.getId())
.set(CouponActivity::getPromotionStatus,PromotionStatusEnum.END.name()));
}
}
}
/**

View File

@ -83,13 +83,26 @@ public class CouponActivityServiceImpl extends ServiceImpl<CouponActivityMapper,
//获取优惠券
CouponActivity couponActivity = this.getById(couponActivityId);
//获取活动优惠券发送范围
List<Map<String, Object>> memberList = this.getMemberList(couponActivity);
List<Map<String, Object>> member = this.getMemberList(couponActivity);
//会员拆成多个小组进行发送
List<List<Map<String, Object>>> memberGroup = new ArrayList<>();
//循环分组
for (int i = 0; i < (member.size() / 100 + (member.size() % 100 == 0 ? 0 : 1)); i++) {
int endPoint = Math.min((100 + (i * 100)), member.size());
memberGroup.add(member.subList((i * 100), endPoint));
}
//优惠优惠券活动的优惠券列表
List<CouponActivityItem> couponActivityItems = couponActivityItemService.getCouponActivityList(couponActivity.getId());
//发送优惠券
for (List<Map<String, Object>> memberList : memberGroup) {
sendCoupon(memberList, couponActivityItems);
}
}
@Override
public void registered(List<CouponActivity> couponActivityList, Member member) {
for (CouponActivity couponActivity : couponActivityList) {
@ -191,6 +204,7 @@ public class CouponActivityServiceImpl extends ServiceImpl<CouponActivityMapper,
/**
* 添加优惠券活动关联优惠券
*
* @param couponActivityDTO 优惠券活动DTO
*/
private void addCouponActivityItems(CouponActivityDTO couponActivityDTO) {