|
|
@@ -2,12 +2,16 @@ package com.kym.service.miniapp.impl;
|
|
|
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.kym.common.utils.CommUtil;
|
|
|
+import com.kym.entity.admin.Activity;
|
|
|
import com.kym.entity.miniapp.Account;
|
|
|
import com.kym.entity.miniapp.UserCoupon;
|
|
|
import com.kym.entity.miniapp.UserRechargeRights;
|
|
|
import com.kym.entity.miniapp.vo.UserRightsAndCouponsVo;
|
|
|
import com.kym.mapper.miniapp.AccountMapper;
|
|
|
+import com.kym.service.admin.ActivityService;
|
|
|
import com.kym.service.miniapp.AccountService;
|
|
|
import com.kym.service.miniapp.UserCouponService;
|
|
|
import com.kym.service.miniapp.UserRechargeRightsService;
|
|
|
@@ -15,8 +19,8 @@ import com.kym.service.mybatisplus.MyBaseServiceImpl;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
|
@@ -34,9 +38,12 @@ public class AccountServiceImpl extends MyBaseServiceImpl<AccountMapper, Account
|
|
|
|
|
|
private final UserCouponService userCouponService;
|
|
|
|
|
|
- public AccountServiceImpl(UserRechargeRightsService userRechargeRightsService, UserCouponService userCouponService) {
|
|
|
+ private final ActivityService activityService;
|
|
|
+
|
|
|
+ public AccountServiceImpl(UserRechargeRightsService userRechargeRightsService, UserCouponService userCouponService, ActivityService activityService) {
|
|
|
this.userRechargeRightsService = userRechargeRightsService;
|
|
|
this.userCouponService = userCouponService;
|
|
|
+ this.activityService = activityService;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -51,6 +58,7 @@ public class AccountServiceImpl extends MyBaseServiceImpl<AccountMapper, Account
|
|
|
*/
|
|
|
@Override
|
|
|
public UserRightsAndCouponsVo listRightsAndCoupons() {
|
|
|
+ var activityIdList = new ArrayList<>();
|
|
|
var vo = new UserRightsAndCouponsVo();
|
|
|
var userId = StpUtil.getLoginIdAsLong();
|
|
|
vo.setUserId(userId);
|
|
|
@@ -61,7 +69,7 @@ public class AccountServiceImpl extends MyBaseServiceImpl<AccountMapper, Account
|
|
|
.orderByDesc(UserRechargeRights::getStatus)
|
|
|
.orderByAsc(UserRechargeRights::getEndTime)
|
|
|
.list();
|
|
|
- vo.setUserRechargeRightsList(userRechargeRight);
|
|
|
+ activityIdList.addAll(userRechargeRight.stream().map(UserRechargeRights::getActivityId).toList());
|
|
|
|
|
|
// 当前用户的优惠券列表(含已失效)
|
|
|
var usesrCouponList = userCouponService.lambdaQuery()
|
|
|
@@ -70,8 +78,22 @@ public class AccountServiceImpl extends MyBaseServiceImpl<AccountMapper, Account
|
|
|
.orderByAsc(UserCoupon::getUsageStatus)
|
|
|
.orderByAsc(UserCoupon::getEndTime)
|
|
|
.list();
|
|
|
- vo.setUserCouponList(usesrCouponList);
|
|
|
-
|
|
|
+ activityIdList.addAll(usesrCouponList.stream().map(UserCoupon::getActivityId).toList());
|
|
|
+
|
|
|
+ // 手动切换数据源
|
|
|
+ if(CommUtil.isNotEmptyAndNull(activityIdList)){
|
|
|
+ DynamicDataSourceContextHolder.push("db-admin");
|
|
|
+ var res= activityService.lambdaQuery().in(Activity::getId, activityIdList).list()
|
|
|
+ .stream()
|
|
|
+ .filter(item -> item.getActivityDesc() != null)
|
|
|
+ .collect(Collectors.toMap(Activity::getId, Activity::getActivityDesc));
|
|
|
+ DynamicDataSourceContextHolder.poll();
|
|
|
+
|
|
|
+ userRechargeRight.forEach(userRechargeRights -> userRechargeRights.setActivityDesc(res.get(userRechargeRights.getActivityId())));
|
|
|
+ usesrCouponList.forEach(userCoupon -> userCoupon.setActivityDesc(res.get(userCoupon.getActivityId())));
|
|
|
+ vo.setUserRechargeRightsList(userRechargeRight);
|
|
|
+ vo.setUserCouponList(usesrCouponList);
|
|
|
+ }
|
|
|
return vo;
|
|
|
}
|
|
|
|