|
|
@@ -9,20 +9,14 @@ import com.kym.entity.queryParams.ActivityQueryParam;
|
|
|
import com.kym.entity.vo.ActivityVo;
|
|
|
import com.kym.entity.common.PageBean;
|
|
|
import com.kym.entity.common.RedisKeys;
|
|
|
-import com.kym.entity.UserRechargeRights;
|
|
|
import com.kym.mapper.ActivityMapper;
|
|
|
import com.kym.service.*;
|
|
|
-import com.kym.service.UserRechargeRightsService;
|
|
|
import com.kym.service.mybatisplus.MyBaseServiceImpl;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
-import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.time.LocalTime;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -42,20 +36,15 @@ import static com.kym.entity.Activity.*;
|
|
|
public class ActivityServiceImpl extends MyBaseServiceImpl<ActivityMapper, Activity> implements ActivityService {
|
|
|
|
|
|
private final ActivityStationService activityStationService;
|
|
|
- private final RechargeRightsService rechargeRightsService;
|
|
|
- private final UserRechargeRightsService userRechargeRightsService;
|
|
|
private final BannerService bannerService;
|
|
|
private final CouponService couponService;
|
|
|
|
|
|
private final RedisTemplate<String, String> redisTemplate;
|
|
|
|
|
|
|
|
|
- public ActivityServiceImpl(ActivityStationService activityStationService, RechargeRightsService rechargeRightsService,
|
|
|
- UserRechargeRightsService userRechargeRightsService,
|
|
|
+ public ActivityServiceImpl(ActivityStationService activityStationService,
|
|
|
BannerService bannerService, CouponService couponService, RedisTemplate<String, String> redisTemplate) {
|
|
|
this.activityStationService = activityStationService;
|
|
|
- this.rechargeRightsService = rechargeRightsService;
|
|
|
- this.userRechargeRightsService = userRechargeRightsService;
|
|
|
this.bannerService = bannerService;
|
|
|
this.couponService = couponService;
|
|
|
this.redisTemplate = redisTemplate;
|
|
|
@@ -82,14 +71,6 @@ public class ActivityServiceImpl extends MyBaseServiceImpl<ActivityMapper, Activ
|
|
|
activityStationService.saveBatch(activityStationList);
|
|
|
}
|
|
|
|
|
|
- // 新增充值优惠活动
|
|
|
- if (activityVo.getDiscountType().equals(Activity.DISCOUNT_TYPE_服务费折扣权益) && !CommUtil.isEmptyOrNull(activityVo.getRechargeRightsList())) {
|
|
|
- var rechargeRightsList = activityVo.getRechargeRightsList().stream().peek(rechargeRights -> {
|
|
|
- BeanUtils.copyProperties(activity, rechargeRights, "id");
|
|
|
- rechargeRights.setActivityId(activity.getId());
|
|
|
- }).toList();
|
|
|
- rechargeRightsService.saveBatch(rechargeRightsList);
|
|
|
- }
|
|
|
|
|
|
// 新增优惠券活动
|
|
|
if (activityVo.getDiscountType().equals(Activity.DISCOUNT_TYPE_优惠券) && !CommUtil.isEmptyOrNull(activityVo.getCouponList())) {
|
|
|
@@ -136,16 +117,7 @@ public class ActivityServiceImpl extends MyBaseServiceImpl<ActivityMapper, Activ
|
|
|
var activity = lambdaQuery().eq(Activity::getId, activityId).one();
|
|
|
var activityVo = new ActivityVo();
|
|
|
BeanUtils.copyProperties(activity, activityVo);
|
|
|
- if (activity.getDiscountType().equals(DISCOUNT_TYPE_服务费折扣权益)) {
|
|
|
- var rechargeRightsList = rechargeRightsService.lambdaQuery().eq(RechargeRights::getActivityId, activityId).list();
|
|
|
- activityVo.setRechargeRightsList(rechargeRightsList);
|
|
|
- var activityStationIds = activityStationService.lambdaQuery().eq(ActivityStation::getActivityId, activityId).list().stream().map(ActivityStation::getStationId).toList();
|
|
|
- if (CommUtil.isNotEmptyAndNull(activityStationIds)) {
|
|
|
- activityVo.setStationIds(activityStationIds);
|
|
|
- //var stationList = stationService.lambdaQuery().in(Station::getStationId, activityStationIds).list();
|
|
|
- //activityVo.setStationList(stationList);
|
|
|
- }
|
|
|
- } else if (activity.getDiscountType().equals(DISCOUNT_TYPE_优惠券)) {
|
|
|
+ if (activity.getDiscountType().equals(DISCOUNT_TYPE_优惠券)) {
|
|
|
List<Coupon> couponList = couponService.lambdaQuery().eq(Coupon::getActivityId, activityId).list();
|
|
|
activityVo.setCouponList(couponList);
|
|
|
var activityStationIds = activityStationService.lambdaQuery().eq(ActivityStation::getActivityId, activityId).list().stream().map(ActivityStation::getStationId).toList();
|
|
|
@@ -169,12 +141,6 @@ public class ActivityServiceImpl extends MyBaseServiceImpl<ActivityMapper, Activ
|
|
|
var activity = lambdaQuery().eq(Activity::getId, activityId).one();
|
|
|
if (activity != null) {
|
|
|
// 根据活动类型分别处理
|
|
|
- if (activity.getDiscountType().equals(Activity.DISCOUNT_TYPE_服务费折扣权益)) {
|
|
|
- lambdaUpdate().set(Activity::getStatus, Activity.STATUS_已结束).eq(Activity::getId, activityId).update();
|
|
|
- rechargeRightsService.lambdaUpdate().set(RechargeRights::getStatus, Activity.STATUS_已结束).eq(RechargeRights::getActivityId, activityId).update();
|
|
|
- // 修改banner状态为失效
|
|
|
- bannerService.lambdaUpdate().set(Banner::getStatus, Banner.STATUS_有效).eq(Banner::getActivityId, activityId).update();
|
|
|
- }
|
|
|
if (activity.getDiscountType().equals(Activity.DISCOUNT_TYPE_优惠券)) {
|
|
|
var couponList = couponService.lambdaQuery().eq(Coupon::getActivityId, activityId).list();
|
|
|
// 优惠券状态修改为已结束
|
|
|
@@ -204,42 +170,4 @@ public class ActivityServiceImpl extends MyBaseServiceImpl<ActivityMapper, Activ
|
|
|
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 异步处理充值活动
|
|
|
- *
|
|
|
- * @param userId
|
|
|
- * @param rechargeAmount
|
|
|
- */
|
|
|
- @Override
|
|
|
- @Async
|
|
|
- public void handleRechargeActivity(long userId, int rechargeAmount) {
|
|
|
- asyncHandleRechargeActivity(userId, rechargeAmount);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 处理充值活动
|
|
|
- */
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void asyncHandleRechargeActivity(long userId, int rechargeAmount) {
|
|
|
- log.info("RechargeActivityTask run....");
|
|
|
- // 进行中的充值权益活动
|
|
|
- var activity = lambdaQuery().eq(Activity::getDiscountType, DISCOUNT_TYPE_服务费折扣权益).eq(Activity::getStatus, Activity.STATUS_进行中).one();
|
|
|
- // 充值金额,匹配到到具体的充值权益,生成用户权益
|
|
|
- if (activity != null) {
|
|
|
- var rechargeRights = rechargeRightsService.lambdaQuery().eq(RechargeRights::getActivityId, activity.getId())
|
|
|
- .le(RechargeRights::getAmountMin, rechargeAmount)
|
|
|
- .gt(RechargeRights::getAmountMax, rechargeAmount)
|
|
|
- .one();
|
|
|
- if (rechargeRights != null) {
|
|
|
- var userRechargeRights = new UserRechargeRights().setRightsId(rechargeRights.getId()).setUserId(userId).setRightsBalance(rechargeAmount);
|
|
|
- BeanUtils.copyProperties(rechargeRights, userRechargeRights, "id", "createTime", "updateTime");
|
|
|
- // 计算有效期
|
|
|
- var endTime = LocalDateTime.now().with(LocalTime.MAX).plusDays(rechargeRights.getValidity() - 1);
|
|
|
- userRechargeRightsService.save(userRechargeRights.setStartTime(LocalDateTime.now()).setEndTime(endTime));
|
|
|
- }
|
|
|
- } else {
|
|
|
- }
|
|
|
- log.info("RechargeActivityTask run end....");
|
|
|
- }
|
|
|
-
|
|
|
}
|