feat(coupon): hide whitelist-only coupons from non-whitelisted users in wx queryAll

This commit is contained in:
irving
2025-10-07 00:00:11 -04:00
parent 6e829070e7
commit 044280bc89

View File

@@ -9,6 +9,7 @@ import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService;
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
import com.starry.admin.modules.shop.module.entity.PlayCouponInfoEntity; import com.starry.admin.modules.shop.module.entity.PlayCouponInfoEntity;
import com.starry.admin.modules.shop.module.enums.CouponClaimConditionType;
import com.starry.admin.modules.shop.module.vo.PlayCommodityInfoVo; import com.starry.admin.modules.shop.module.vo.PlayCommodityInfoVo;
import com.starry.admin.modules.shop.module.vo.PlayCouponDetailsReturnVo; import com.starry.admin.modules.shop.module.vo.PlayCouponDetailsReturnVo;
import com.starry.admin.modules.shop.service.IPlayCommodityInfoService; import com.starry.admin.modules.shop.service.IPlayCommodityInfoService;
@@ -94,14 +95,22 @@ public class WxCouponController {
@CustomUserLogin @CustomUserLogin
@PostMapping("/custom/queryAll") @PostMapping("/custom/queryAll")
public R queryAll() { public R queryAll() {
String currentCustomId = ThreadLocalRequestDetail.getCustomUserInfo().getId();
List<PlayCouponDetailsReturnVo> obtainedCoupons = couponDetailsService List<PlayCouponDetailsReturnVo> obtainedCoupons = couponDetailsService
.selectByCustomId(ThreadLocalRequestDetail.getCustomUserInfo().getId()); .selectByCustomId(currentCustomId);
List<PlayCouponInfoEntity> couponInfoEntities = couponInfoService.queryAll(); List<PlayCouponInfoEntity> couponInfoEntities = couponInfoService.queryAll();
List<WxCouponReceiveReturnVo> returnVos = new ArrayList<>(couponInfoEntities.size()); List<WxCouponReceiveReturnVo> returnVos = new ArrayList<>(couponInfoEntities.size());
for (PlayCouponInfoEntity couponInfoEntity : couponInfoEntities) { for (PlayCouponInfoEntity couponInfoEntity : couponInfoEntities) {
if ("0".equals(couponInfoEntity.getCouponOnLineState())) { if ("0".equals(couponInfoEntity.getCouponOnLineState())) {
continue; continue;
} }
// 领取白名单:非白名单用户不可见
if (CouponClaimConditionType.WHITELIST.code().equals(couponInfoEntity.getClaimConditionType())) {
List<String> wl = couponInfoEntity.getCustomWhitelist();
if (wl == null || !wl.contains(currentCustomId)) {
continue;
}
}
WxCouponReceiveReturnVo vo = ConvertUtil.entityToVo(couponInfoEntity, WxCouponReceiveReturnVo.class); WxCouponReceiveReturnVo vo = ConvertUtil.entityToVo(couponInfoEntity, WxCouponReceiveReturnVo.class);
for (PlayCouponDetailsReturnVo obtainedCoupon : obtainedCoupons) { for (PlayCouponDetailsReturnVo obtainedCoupon : obtainedCoupons) {
if (obtainedCoupon.getCouponId().equals(couponInfoEntity.getId())) { if (obtainedCoupon.getCouponId().equals(couponInfoEntity.getId())) {