phpcjl
2024-12-13 e41a2c93c1d366da245ffe2ecc0c9d4457e4457d
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
@@ -13,9 +13,13 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.account.api.vo.PaymentUserCoupon;
import com.ruoyi.other.api.domain.Goods;
import com.ruoyi.other.api.feignClient.GoodsClient;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.CouponInfo;
@@ -48,23 +52,44 @@
    @Resource
    private UserPointService userPointService;
    @Resource
    private GoodsClient goodsClient;
    @PostMapping("/mine/list")
    @ApiOperation(value = "已领取列表", tags = {"小程序-个人中心-优惠劵"})
    @GetMapping("/mine/list")
    @ApiOperation(value = "已领取列表", tags = {"小程序-个人中心-优惠劵","后台管理-活动管理-优惠券管理"})
    public R<Page<UserCoupon>> minelist(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @ApiParam("1未使用2已使用3已过期") Integer status) {
        Long userid = tokenService.getLoginUserApplet().getUserid();
        Page<UserCoupon> page = userCouponService.lambdaQuery()
                .isNull(status==1||status==3,UserCoupon::getUseTime)
                .isNotNull(status == 2,UserCoupon::getUseTime)
                .lt(status == 3,UserCoupon::getEndTime, LocalDateTime.now())
                .eq(UserCoupon::getAppUserId, userid).page(Page.of(pageNum, pageSize));
                .isNull(status!=null&&(status==1||status==3),UserCoupon::getUseTime)
                .isNotNull(status!=null&&status==2,UserCoupon::getUseTime)
                .lt(status!=null&&status==3,UserCoupon::getEndTime, LocalDateTime.now())
                .eq(UserCoupon::getAppUserId, userid).page(Page.of(pageNum-1, pageSize));
        for (UserCoupon record : page.getRecords()) {
            CouponInfo data = couponClient.detail(record.getCouponId()).getData();
            CouponInfoVo vo = new CouponInfoVo();
            BeanUtils.copyProperties(data,vo);
            //如果是商品券,将商品名称返回
            if (vo.getCouponType()==4){
                List<String> goodNames = new ArrayList<>();
                if (vo.getForGoodIds().equals("-1")){
                        goodNames.add("全部商品");
                }else{
                    String[] split = vo.getForGoodIds().split(",");
                    R<List<Goods>> goodsById = goodsClient.getGoodsById(split);
                    if (goodsById.getData()!=null){
                        for (Goods datum : goodsById.getData()) {
                            goodNames.add(datum.getName());
                        }
                    }
                    vo.setGoodNames(goodNames);
                }
            }
            record.setCouponInfoVo(vo);
            if (record.getUseTime()==null){
                record.setStatus(1);
@@ -74,12 +99,17 @@
            }else {
                record.setStatus(2);
            }
            AppUser appUser = appUserService.getById(record.getAppUserId());
            record.setUserName(appUser.getName());
            record.setPhone(appUser.getPhone());
        }
        return R.ok(page);
    }
    @PostMapping("/get")
    @GetMapping("/get")
    @ApiOperation(value = "领取或者兑换优惠券", tags = {"小程序-个人中心-优惠劵"})
    public R<Page<UserCoupon>> get(@RequestParam Integer couponId) {
@@ -158,5 +188,13 @@
        BeanUtils.copyProperties(data, couponInfoVo);
        return R.ok(couponInfoVo);
    }
    /**
     * 获取优惠券发放数量
     */
    @GetMapping("/getCouponCount")
    public R<Long> getCouponCount(@RequestParam Integer couponId){
        return R.ok(userCouponService.lambdaQuery().eq(UserCoupon::getCouponId, couponId).count());
    }
}