From a8d2cb07f6440dc54dc4005b0b06d5a47cb1517d Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期一, 16 十二月 2024 13:34:03 +0800
Subject: [PATCH] 12.16

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java |   67 +++++++++++++++++++++++++--------
 1 files changed, 50 insertions(+), 17 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
index 003c5b0..f3a4385 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
@@ -1,5 +1,4 @@
 package com.ruoyi.account.controller;
-import java.math.BigDecimal;
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -7,29 +6,27 @@
 import com.ruoyi.account.api.model.UserCoupon;
 import com.ruoyi.account.api.model.UserPoint;
 import com.ruoyi.account.api.vo.CouponInfoVo;
+import com.ruoyi.account.api.vo.PaymentUserCouponVo;
 import com.ruoyi.account.service.AppUserService;
 import com.ruoyi.account.service.UserCouponService;
 import com.ruoyi.account.service.UserPointService;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.bean.BeanUtils;
-import com.ruoyi.account.api.vo.CouponInfoVo;
 import com.ruoyi.account.api.vo.PaymentUserCoupon;
-import com.ruoyi.account.service.UserCouponService;
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.web.domain.AjaxResult;
+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.Banner;
 import com.ruoyi.other.api.domain.CouponInfo;
 import com.ruoyi.other.api.feignClient.CouponClient;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import org.springframework.web.bind.annotation.*;
 
-import javax.annotation.Resource;
 import java.time.LocalDateTime;
 
 /**
@@ -55,11 +52,13 @@
 
     @Resource
     private UserPointService userPointService;
+    @Resource
+    private GoodsClient goodsClient;
 
 
 
 
-    @PostMapping("/mine/list")
+    @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();
@@ -67,11 +66,30 @@
                 .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, pageSize));
+                .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);
@@ -86,7 +104,7 @@
     }
 
 
-    @PostMapping("/get")
+    @GetMapping("/get")
     @ApiOperation(value = "领取或者兑换优惠券", tags = {"小程序-个人中心-优惠劵"})
     public R<Page<UserCoupon>> get(@RequestParam Integer couponId) {
 
@@ -98,7 +116,7 @@
         if (data==null){
             return  R.fail("当前优惠券不存在,请刷新后重试");
         }
-        if (data.getSendType()!=1&&byId.getLavePoint().compareTo(data.getNeedPoint())==-1){
+        if (data.getSendType()!=1&&byId.getLavePoint().compareTo(data.getNeedPoint().intValue())==-1){
            return  R.fail("当前积分不足,兑换失败");
         }
         //检验发放时间
@@ -111,12 +129,12 @@
             UserPoint userPoint = new UserPoint();
             userPoint.setType(4);
             userPoint.setHistoricalPoint(byId.getLavePoint());
-            userPoint.setVariablePoint(data.getNeedPoint());
+            userPoint.setVariablePoint(data.getNeedPoint().intValue());
             userPoint.setAppUserId(userid);
             userPoint.setObjectId(Long.valueOf(data.getId()));
             userPointService.save(userPoint);
             //扣除积分
-            byId.setLavePoint(byId.getLavePoint().subtract(userPoint.getVariablePoint()));
+            byId.setLavePoint(byId.getLavePoint() - userPoint.getVariablePoint());
             appUserService.updateById(byId);
         }
         //增加优惠券记录,根据时间类型设置开始结束时间
@@ -145,10 +163,25 @@
 	 */
 	@ResponseBody
 	@PostMapping("/getPaymentUserCoupon")
-	public R<List<CouponInfoVo>> getPaymentUserCoupon(@RequestBody PaymentUserCoupon paymentUserCoupon){
-		List<CouponInfoVo> userCoupon = userCouponService.getUserCoupon(paymentUserCoupon.getUserId(), paymentUserCoupon.getOrderMoney(), paymentUserCoupon.getType());
+	public R<List<PaymentUserCouponVo>> getPaymentUserCoupon(@RequestBody PaymentUserCoupon paymentUserCoupon){
+		List<PaymentUserCouponVo> userCoupon = userCouponService.getUserCoupon(paymentUserCoupon.getUserId(), paymentUserCoupon.getType());
 		return R.ok(userCoupon);
 	}
-
+    
+    
+    /**
+     * 根据用户优惠券id获取优惠券详情
+     * @param userCouponId
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/getCouponInfo")
+    public R<CouponInfoVo> getCouponInfo(@RequestParam("userCouponId") Long userCouponId){
+        UserCoupon userCoupon = userCouponService.getById(userCouponId);
+        CouponInfo data = couponClient.detail(userCoupon.getCouponId()).getData();
+        CouponInfoVo couponInfoVo = new CouponInfoVo();
+        BeanUtils.copyProperties(data, couponInfoVo);
+        return R.ok(couponInfoVo);
+    }
 }
 

--
Gitblit v1.7.1