From c8ea2d96f5b0522a09f3203ae98fe796084d2d15 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期六, 04 一月 2025 09:34:21 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/qijisheng

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java |  100 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 88 insertions(+), 12 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 671074d..8608eff 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,6 +1,7 @@
 package com.ruoyi.account.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.account.api.model.AppUser;
 import com.ruoyi.account.api.model.UserCoupon;
@@ -14,7 +15,9 @@
 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.domain.PointSetting;
 import com.ruoyi.other.api.feignClient.GoodsClient;
+import com.ruoyi.other.api.feignClient.PointSettingClient;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -28,6 +31,7 @@
 import io.swagger.annotations.ApiParam;
 
 import java.time.LocalDateTime;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -54,11 +58,14 @@
     private UserPointService userPointService;
     @Resource
     private GoodsClient goodsClient;
+    
+    @Resource
+    private PointSettingClient pointSettingClient;
 
 
 
 
-    @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();
@@ -66,8 +73,9 @@
                 .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()) {
+            record.setIdStr(record.getId().toString());
             CouponInfo data = couponClient.detail(record.getCouponId()).getData();
             CouponInfoVo vo = new CouponInfoVo();
             BeanUtils.copyProperties(data,vo);
@@ -99,24 +107,30 @@
             }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) {
 
         Long userid = tokenService.getLoginUserApplet().getUserid();
         AppUser byId = appUserService.getById(userid);
 
-        CouponInfo data = couponClient.detail(couponId).getData();
+        R<CouponInfo> detail = couponClient.detail(couponId);
+        CouponInfo data = detail.getData();
         //检验当前优惠券是否存在
         if (data==null){
             return  R.fail("当前优惠券不存在,请刷新后重试");
         }
-        if (data.getSendType()!=1&&byId.getLavePoint().compareTo(data.getNeedPoint().intValue())==-1){
+        if (data.getSendType()!=1&& byId.getLavePoint().compareTo(data.getNeedPoint().intValue()) < 0){
            return  R.fail("当前积分不足,兑换失败");
         }
         //检验发放时间
@@ -126,23 +140,27 @@
         }
         //如果是积分兑换,增加积分的历史记录
         if (data.getSendType()!=1){
+            int point = data.getNeedPoint().intValue();
+            Integer lavePoint = byId.getLavePoint();
+            //扣除积分
+            byId.setLavePoint(byId.getLavePoint() - point);
+            appUserService.updateById(byId);
+            
             UserPoint userPoint = new UserPoint();
             userPoint.setType(4);
-            userPoint.setHistoricalPoint(byId.getLavePoint());
-            userPoint.setVariablePoint(data.getNeedPoint().intValue());
+            userPoint.setHistoricalPoint(lavePoint);
+            userPoint.setVariablePoint(point);
+            userPoint.setBalance(byId.getLavePoint());
             userPoint.setAppUserId(userid);
             userPoint.setObjectId(Long.valueOf(data.getId()));
             userPointService.save(userPoint);
-            //扣除积分
-            byId.setLavePoint(byId.getLavePoint() - userPoint.getVariablePoint());
-            appUserService.updateById(byId);
         }
         //增加优惠券记录,根据时间类型设置开始结束时间
         UserCoupon userCoupon = new UserCoupon();
         userCoupon.setAppUserId(userid);
         if (data.getPeriodType()==1) {
-            userCoupon.setStartTime(data.getPeriodStartTime());
-            userCoupon.setEndTime(data.getPeriodEndTime());
+            userCoupon.setStartTime(data.getPeriodStartTime().atTime(0, 0, 0));
+            userCoupon.setEndTime(data.getPeriodEndTime().atTime(23, 59, 59));
         }else {
             userCoupon.setStartTime(now);
             userCoupon.setEndTime(now.plusDays(data.getPeriodDays()));
@@ -183,5 +201,63 @@
         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());
+    }
+
+
+
+
+    @ResponseBody
+    @GetMapping("/getCouponInfoInfo")
+    @ApiOperation(value = "获取核销商品券详情", tags = {"小程序-个人中心-门店管理"})
+    public R<UserCoupon> getCouponInfoInfo(String id){
+        UserCoupon userCoupon = userCouponService.getById(id);
+        CouponInfo couponInfo = couponClient.detail(userCoupon.getCouponId()).getData();
+        List<Goods> goods = null;
+        if("-1".equals(couponInfo.getForGoodIds())){
+            goods = goodsClient.getGoodsByType(2).getData();
+        }else{
+            goods = goodsClient.getGoodsById(couponInfo.getForGoodIds().split(",")).getData();
+        }
+        CouponInfoVo couponInfoVo = new CouponInfoVo();
+        BeanUtils.copyProperties(couponInfo, couponInfoVo);
+        couponInfoVo.setGoodNames(goods.stream().map(Goods::getName).collect(Collectors.toList()));
+        userCoupon.setCouponInfoVo(couponInfoVo);
+        if (userCoupon.getUseTime()==null){
+            userCoupon.setStatus(1);
+            if (userCoupon.getEndTime().isBefore(LocalDateTime.now())){
+                userCoupon.setStatus(3);
+            }
+        }else {
+            userCoupon.setStatus(2);
+        }
+        return R.ok(userCoupon);
+    }
+
+    @ResponseBody
+    @PutMapping("/useCoupon/{id}")
+    @ApiOperation(value = "核销商品优惠券", tags = {"小程序-个人中心-门店管理"})
+    public R useCoupon(@PathVariable("id") String id){
+        UserCoupon userCoupon = userCouponService.getById(id);
+        if(null == userCoupon){
+            return R.ok("核销码错误");
+        }
+        if(userCoupon.getUseTime() != null){
+            return R.ok("优惠券已使用");
+        }
+        if(LocalDateTime.now().isAfter(userCoupon.getEndTime())){
+            return R.ok("优惠券已过期");
+        }
+        userCoupon.setStatus(2);
+        userCoupon.setUseTime(LocalDateTime.now());
+        userCouponService.updateById(userCoupon);
+        return R.ok();
+    }
 }
 

--
Gitblit v1.7.1