lyx 5 өдөр өмнө
parent
commit
fa29dd9ad9

+ 2 - 0
alien-entity/src/main/java/shop/alien/entity/store/StorePlatformBenefits.java

@@ -65,9 +65,11 @@ public class StorePlatformBenefits {
     private Integer updatedUserId;
 
     @ApiModelProperty(value = "优惠券/U币名称")
+    @TableField(exist = false)
     private String name;
 
     @ApiModelProperty(value = "U币Id")
+    @TableField(exist = false)
     private Integer virtualCurrencyId;
 }
 

+ 4 - 5
alien-entity/src/main/java/shop/alien/entity/store/vo/StorePlatformBenefitsVo.java

@@ -1,15 +1,10 @@
 package shop.alien.entity.store.vo;
 
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import shop.alien.entity.store.StorePlatformBenefits;
 
-import java.util.Date;
-
 /**
  * 福利表
  *
@@ -21,5 +16,9 @@ import java.util.Date;
 @ApiModel(value = "StorePlatformBenefits对象", description = "福利表")
 public class StorePlatformBenefitsVo extends StorePlatformBenefits {
 
+    /**
+     * 是否领取
+     */
+    private Boolean claimed;
 }
 

+ 20 - 1
alien-store/src/main/java/shop/alien/store/controller/LifeUserBenefitsController.java

@@ -7,8 +7,11 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
+import shop.alien.entity.store.vo.StorePlatformBenefitsVo;
 import shop.alien.store.service.StorePlatformBenefitsService;
 
+import java.util.List;
+
 @Slf4j
 @Api(tags = {"福利管理"})
 @ApiSort(10)
@@ -43,5 +46,21 @@ public class LifeUserBenefitsController {
         }
     }
 
-
+    // 查看所以福利,区分可领取和已领取
+    @ApiOperation("查看所有福利")
+    @ApiOperationSupport(order = 8)
+    @GetMapping("/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "userId", value = "用户ID", dataType = "int", paramType = "query", required = true)
+    })
+    public R<List<StorePlatformBenefitsVo>> listBenefits(@RequestParam Integer userId) {
+        log.info("StorePlatformBenefitsController.listBenefits - userId={}", userId);
+        try {
+            List<StorePlatformBenefitsVo> benefits = benefitsService.listBenefits(userId);
+            return R.data(benefits);
+        } catch (Exception e) {
+            log.error("StorePlatformBenefitsController.listBenefits - error: ", e);
+            return R.fail("查询失败,请稍后重试");
+        }
+    }
 }

+ 10 - 0
alien-store/src/main/java/shop/alien/store/service/StorePlatformBenefitsService.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import shop.alien.entity.store.StorePlatformBenefits;
 import shop.alien.entity.store.vo.StorePlatformBenefitsVo;
 
+import java.util.List;
+
 /**
  * 福利表 服务类
  *
@@ -73,5 +75,13 @@ public interface StorePlatformBenefitsService extends IService<StorePlatformBene
      * @return 领取结果
      */
     String receiveBenefits(Integer id, Integer userId);
+
+     /**
+     * 查询用户已领取的福利列表
+     *
+     * @param userId 用户ID
+     * @return 福利列表
+     */
+    List<StorePlatformBenefitsVo> listBenefits(Integer userId);
 }
 

+ 28 - 1
alien-store/src/main/java/shop/alien/store/service/impl/StorePlatformBenefitsServiceImpl.java

@@ -18,7 +18,10 @@ import shop.alien.store.service.StorePlatformBenefitsService;
 import shop.alien.util.common.JwtUtil;
 import shop.alien.util.common.constant.DiscountCouponEnum;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 福利表 服务实现类
@@ -187,7 +190,31 @@ public class StorePlatformBenefitsServiceImpl extends ServiceImpl<StorePlatformB
             throw new RuntimeException("不支持的福利类型");
         }
     }
-    
+
+    @Override
+    public List<StorePlatformBenefitsVo> listBenefits(Integer userId) {
+        // 查询用户已领取的优惠券记录
+        QueryWrapper<LifeDiscountCouponUser> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("user_id", userId);
+        List<LifeDiscountCouponUser> lifeDiscountCouponUsers = lifeDiscountCouponUserMapper.selectList(queryWrapper);
+        List<Integer> couponIdList = lifeDiscountCouponUsers.stream().filter(x -> x.getCouponId() != null).map(LifeDiscountCouponUser::getCouponId).collect(Collectors.toList());
+        List<Integer> ubIdList = lifeDiscountCouponUsers.stream().filter(x -> x.getUbId() != null).map(LifeDiscountCouponUser::getUbId).collect(Collectors.toList());
+        couponIdList.addAll(ubIdList);
+        List<StorePlatformBenefits> storePlatformBenefits = super.list();
+        List<StorePlatformBenefitsVo> result = new ArrayList<>();
+        for (StorePlatformBenefits storePlatformBenefit : storePlatformBenefits) {
+            StorePlatformBenefitsVo  storePlatformBenefitVo = new StorePlatformBenefitsVo();
+            cn.hutool.core.bean.BeanUtil.copyProperties(storePlatformBenefit, storePlatformBenefitVo);
+            if (couponIdList.contains(storePlatformBenefitVo.getId())) {
+                storePlatformBenefitVo.setClaimed(true);
+            } else {
+                storePlatformBenefitVo.setClaimed(false);
+            }
+            result.add(storePlatformBenefitVo);
+        }
+        return result;
+    }
+
     /**
      * 领取优惠券
      */