|
|
@@ -3,7 +3,6 @@ package com.kym.service.admin.impl;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
import com.kym.common.utils.CommUtil;
|
|
|
@@ -13,16 +12,11 @@ import com.kym.entity.admin.delay.DelayActivity;
|
|
|
import com.kym.entity.admin.queryParams.ActivityQueryParam;
|
|
|
import com.kym.entity.admin.vo.ActivityVo;
|
|
|
import com.kym.entity.common.PageBean;
|
|
|
-import com.kym.entity.miniapp.User;
|
|
|
-import com.kym.entity.miniapp.UserCoupon;
|
|
|
import com.kym.entity.miniapp.UserRechargeRights;
|
|
|
import com.kym.mapper.admin.ActivityMapper;
|
|
|
import com.kym.service.admin.*;
|
|
|
import com.kym.service.jobs.DelayService;
|
|
|
-import com.kym.service.miniapp.UserCouponService;
|
|
|
import com.kym.service.miniapp.UserRechargeRightsService;
|
|
|
-import com.kym.service.miniapp.UserService;
|
|
|
-import com.kym.service.queue.producer.UserCouponSender;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
@@ -32,13 +26,10 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static com.kym.entity.admin.Activity.APPLY_STATION_部分站点;
|
|
|
-import static com.kym.entity.admin.Activity.DISCOUNT_TYPE_优惠券;
|
|
|
-import static com.kym.entity.admin.Activity.DISCOUNT_TYPE_服务费折扣权益;
|
|
|
+import static com.kym.entity.admin.Activity.*;
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -63,15 +54,9 @@ public class ActivityServiceImpl extends MPJBaseServiceImpl<ActivityMapper, Acti
|
|
|
private final DelayService<DelayActivity> activityDelayService;
|
|
|
private final BannerService bannerService;
|
|
|
|
|
|
- private final UserService userService;
|
|
|
-
|
|
|
- private final UserCouponService userCouponService;
|
|
|
-
|
|
|
- private final UserCouponSender userCouponSender;
|
|
|
-
|
|
|
public ActivityServiceImpl(ActivityStationService activityStationService, RechargeRightsService rechargeRightsService, CouponService couponService,
|
|
|
UserRechargeRightsService userRechargeRightsService, StationService stationService,
|
|
|
- @Lazy DelayService<DelayActivity> activityDelayService, BannerService bannerService, UserService userService, UserCouponService userCouponService, UserCouponSender userCouponSender) {
|
|
|
+ @Lazy DelayService<DelayActivity> activityDelayService, BannerService bannerService) {
|
|
|
this.activityStationService = activityStationService;
|
|
|
this.rechargeRightsService = rechargeRightsService;
|
|
|
this.couponService = couponService;
|
|
|
@@ -79,9 +64,6 @@ public class ActivityServiceImpl extends MPJBaseServiceImpl<ActivityMapper, Acti
|
|
|
this.stationService = stationService;
|
|
|
this.activityDelayService = activityDelayService;
|
|
|
this.bannerService = bannerService;
|
|
|
- this.userService = userService;
|
|
|
- this.userCouponService = userCouponService;
|
|
|
- this.userCouponSender = userCouponSender;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -117,11 +99,10 @@ public class ActivityServiceImpl extends MPJBaseServiceImpl<ActivityMapper, Acti
|
|
|
// 新增优惠券活动
|
|
|
if (activityVo.getDiscountType().equals(Activity.DISCOUNT_TYPE_优惠券) && !CommUtil.isEmptyOrNull(activityVo.getCouponList())) {
|
|
|
List<Coupon> couponList = activityVo.getCouponList().stream().peek(coupon -> {
|
|
|
- BeanUtils.copyProperties(activity, coupon, "id","name");
|
|
|
+ BeanUtils.copyProperties(activity, coupon, "id", "name");
|
|
|
coupon.setActivityId(activity.getId());
|
|
|
}).collect(Collectors.toList());
|
|
|
couponService.saveBatch(couponList);
|
|
|
-// handleUserCoupons(activity, activityVo);
|
|
|
}
|
|
|
|
|
|
// 加入活动延迟启停队列
|
|
|
@@ -131,56 +112,6 @@ public class ActivityServiceImpl extends MPJBaseServiceImpl<ActivityMapper, Acti
|
|
|
}
|
|
|
|
|
|
|
|
|
- /**
|
|
|
- * 处理优惠券用户绑定
|
|
|
- *
|
|
|
- * @param activity
|
|
|
- * @param activityVo
|
|
|
- */
|
|
|
- @DS("db-miniapp")
|
|
|
- @DSTransactional(rollbackFor = Exception.class)
|
|
|
- void handleUserCoupons(Activity activity, ActivityVo activityVo) {
|
|
|
- List<UserCoupon> userCouponList = new ArrayList<>();
|
|
|
- var couponList = activityVo.getCouponList();
|
|
|
-
|
|
|
- var targetUsersType = activityVo.getTargetUsers();
|
|
|
- switch (targetUsersType) {
|
|
|
- case Activity.TARGET_USERS_全部用户:
|
|
|
- userService.listObjs(new QueryWrapper<User>().lambda().select(User::getId))
|
|
|
- .forEach(useId -> couponList.forEach(coupon -> addUserCoupon(userCouponList, coupon, activity.getId(), Long.valueOf(useId.toString()))));
|
|
|
- break;
|
|
|
- case Activity.TARGET_USERS_指定用户:
|
|
|
- activityVo.getTargetUserIds().forEach(useId -> couponList.forEach(coupon -> addUserCoupon(userCouponList, coupon, activity.getId(), useId)));
|
|
|
- break;
|
|
|
- }
|
|
|
-// userCouponService.saveBatch(userCouponList);
|
|
|
- // userCoupon存储量大 发送消息至队列 todo 发券改为手动,以领券为主
|
|
|
- userCouponList.forEach(userCouponSender::sendMessage);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 添加用户优惠券
|
|
|
- *
|
|
|
- * @param userCouponList
|
|
|
- * @param coupon
|
|
|
- * @param activityId
|
|
|
- * @param userId
|
|
|
- */
|
|
|
- private void addUserCoupon(List<UserCoupon> userCouponList, Coupon coupon, Long activityId, Long userId) {
|
|
|
- var userCoupon = new UserCoupon()
|
|
|
- .setCouponId(coupon.getId())
|
|
|
- .setActivityId(activityId)
|
|
|
- .setUserId(userId)
|
|
|
- .setStartTime(coupon.getStartTime())
|
|
|
- .setEndTime(coupon.getEndTime())
|
|
|
- .setCouponType(coupon.getCouponType())
|
|
|
- .setDiscount(coupon.getDiscount())
|
|
|
- .setMinServiceMoney(coupon.getMinServiceMoney())
|
|
|
- .setAllowStacke(coupon.getAllowStacke())
|
|
|
- .setStatus(Coupon.STATUS_有效);
|
|
|
- userCouponList.add(userCoupon);
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 主活动列表
|
|
|
*
|
|
|
@@ -193,10 +124,10 @@ public class ActivityServiceImpl extends MPJBaseServiceImpl<ActivityMapper, Acti
|
|
|
var list = lambdaQuery()
|
|
|
.like(!CommUtil.isEmptyOrNull(params.getName()), Activity::getName, params.getName())
|
|
|
.eq(params.getStatus() != null, Activity::getStatus, params.getStatus())
|
|
|
- .eq(null!=params.getDiscountType(), Activity::getDiscountType, params.getDiscountType())
|
|
|
+ .eq(params.getDiscountType() != null, Activity::getDiscountType, params.getDiscountType())
|
|
|
.gt(params.getStartTime() != null, Activity::getStartTime, params.getStartTime())
|
|
|
.lt(params.getEndTime() != null, Activity::getEndTime, params.getEndTime())
|
|
|
- .orderByDesc(Activity::getCreateTime)
|
|
|
+ .orderByDesc(Activity::getId)
|
|
|
.list();
|
|
|
return new PageBean<>(list);
|
|
|
}
|
|
|
@@ -221,7 +152,7 @@ public class ActivityServiceImpl extends MPJBaseServiceImpl<ActivityMapper, Acti
|
|
|
var stationList = stationService.lambdaQuery().in(Station::getStationId, activityStationIds).list();
|
|
|
activityVo.setStationList(stationList);
|
|
|
}
|
|
|
- }else if(activity.getDiscountType().equals(DISCOUNT_TYPE_优惠券)){
|
|
|
+ } else 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();
|