From 4c92629166ff9c01bce2815faf9ba9c41a4e03cd Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期四, 28 十一月 2024 17:15:20 +0800
Subject: [PATCH] 11.28

---
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponInfoVo.java                 |  119 +++++++++++++++++++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java         |   18 +++
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponClientFallbackFactory.java |   28 +++++
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java                   |    6 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java        |    9 -
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java                |   17 +++
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java            |   28 +++++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java     |   52 ++++++++++
 8 files changed, 267 insertions(+), 10 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
index 61b90fb..026c52b 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
@@ -89,9 +89,7 @@
     @TableField(exist = false)
     private String inviteUserName;
 
-    @ApiModelProperty(value = "当前用户顶级的推广人id")
-    @TableField("top_invite_id")
-    private Long topInviteId;
+
 
     @ApiModelProperty(value = "绑定门店id")
     @TableField("shop_id")
@@ -205,4 +203,6 @@
     @ApiModelProperty("等级7会员数")
     private Long count7;
 
+
+
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java
index 3ca871c..88c6de2 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.account.api.vo.CouponInfoVo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -48,9 +49,25 @@
     @TableField("use_time")
     private LocalDateTime useTime;
 
+    @ApiModelProperty(value = "开始时间")
+    @TableField("start_time")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    @TableField("end_time")
+    private LocalDateTime endTime;
+
     @ApiModelProperty(value = "优惠劵id")
     @TableField("coupon_id")
     private Integer couponId;
+    @ApiModelProperty(value = "优惠劵信息")
+    @TableField(exist = false)
+    private CouponInfoVo couponInfoVo;
+
+    @ApiModelProperty(value = "1未使用2已使用3已过期")
+    @TableField(exist = false)
+    private Integer status;
+
 
 
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponInfoVo.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponInfoVo.java
new file mode 100644
index 0000000..55013f0
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponInfoVo.java
@@ -0,0 +1,119 @@
+package com.ruoyi.account.api.vo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author luodangjia
+ * @since 2024-11-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("t_coupon_info")
+@ApiModel(value="CouponInfo对象", description="")
+public class CouponInfoVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "删除标志(0=否,1=是)")
+    @TableField("del_flag")
+    @TableLogic
+    private Integer delFlag;
+
+    @ApiModelProperty(value = "添加时间")
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "优惠券名称")
+    @TableField("coupon_name")
+    private String couponName;
+
+    @ApiModelProperty(value = "优惠券类型 1'满减券',2'代金券',3'折扣券',4'商品券'")
+    @TableField("coupon_type")
+    private Integer couponType;
+
+    @ApiModelProperty(value = "满x元")
+    @TableField("condition_amount")
+    private BigDecimal conditionAmount;
+
+    @ApiModelProperty(value = "减x元")
+    @TableField("discount_amount")
+    private BigDecimal discountAmount;
+
+    @ApiModelProperty(value = "代金x元")
+    @TableField("money_amount")
+    private BigDecimal moneyAmount;
+
+    @ApiModelProperty(value = "折扣")
+    @TableField("discount")
+    private BigDecimal discount;
+
+    @ApiModelProperty(value = "适用商品ids,全部-1")
+    @TableField("for_good_ids")
+    private String forGoodIds;
+
+    @ApiModelProperty(value = "发放数量")
+    @TableField("send_num")
+    private Integer sendNum;
+
+    @ApiModelProperty(value = "可领数量")
+    @TableField("max_num")
+    private Integer maxNum;
+
+    @ApiModelProperty(value = "有效期类型 1指定时间内有效 2领取后x天有效")
+    @TableField("period_type")
+    private Integer periodType;
+
+    @ApiModelProperty(value = "有效期开始时间")
+    @TableField("period_start_time")
+    private LocalDateTime periodStartTime;
+
+    @ApiModelProperty(value = "有效期结束时间")
+    @TableField("period_end_time")
+    private LocalDateTime periodEndTime;
+
+    @ApiModelProperty(value = "领取后x天有效")
+    @TableField("period_days")
+    private Integer periodDays;
+
+    @ApiModelProperty(value = "开始发放时间")
+    @TableField("send_start_time")
+    private LocalDateTime sendStartTime;
+
+    @ApiModelProperty(value = "结束发放时间")
+    @TableField("send_end_time")
+    private LocalDateTime sendEndTime;
+
+    @ApiModelProperty(value = "1免费发放2积分兑换")
+    @TableField("send_type")
+    private Integer sendType;
+
+    @ApiModelProperty(value = "兑换所需积分")
+    @TableField("need_point")
+    private BigDecimal needPoint;
+
+    @ApiModelProperty(value = "可领用户  1全部 2指定人员 3指定会员 4 新人注册")
+    @TableField("person_type")
+    private Integer personType;
+
+    @ApiModelProperty(value = "可领取对应的ids,用find_in_set查询")
+    @TableField("person_ids")
+    private String personIds;
+
+
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponClientFallbackFactory.java
new file mode 100644
index 0000000..8a955a1
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponClientFallbackFactory.java
@@ -0,0 +1,28 @@
+package com.ruoyi.other.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.CouponInfo;
+import com.ruoyi.other.api.domain.GoodsVip;
+import com.ruoyi.other.api.feignClient.CouponClient;
+import com.ruoyi.other.api.feignClient.GoodsVipClient;
+import org.springframework.cloud.openfeign.FallbackFactory;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/11/27 20:29
+ */
+public class CouponClientFallbackFactory implements FallbackFactory<CouponClient> {
+	
+	
+	@Override
+	public CouponClient create(Throwable cause) {
+		return new CouponClient() {
+
+
+			@Override
+			public R<CouponInfo> detail(Integer id) {
+				return R.fail("查看优惠券详情失败:" + cause.getMessage());
+			}
+		};
+	}
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java
new file mode 100644
index 0000000..135b501
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java
@@ -0,0 +1,28 @@
+package com.ruoyi.other.api.feignClient;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.CouponInfo;
+import com.ruoyi.other.api.domain.GoodsArea;
+import com.ruoyi.other.api.domain.GoodsVip;
+import com.ruoyi.other.api.factory.CouponClientFallbackFactory;
+import com.ruoyi.other.api.factory.GoodsVipClientFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/11/28 9:42
+ */
+@FeignClient(contextId = "GoodsVipClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = CouponClientFallbackFactory.class)
+public interface CouponClient {
+
+
+    @PostMapping("/coupon-info/detail")
+    R<CouponInfo> detail(@RequestParam("id") Integer id);
+	
+	
+
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
index 47ee3e3..4046e93 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -24,7 +24,6 @@
 import com.ruoyi.account.service.AppUserService;
 import com.ruoyi.account.vo.*;
 import com.ruoyi.common.core.web.domain.AjaxResult;
-import com.ruoyi.common.core.web.page.BaseTable;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -119,7 +118,7 @@
 	@PostMapping("/info")
 	@ApiOperation(value = "我的资料", tags = {"小程序-个人中心首页-我的资料"})
 	public R<AppUser> info(){
-		Long userId = tokenService.getLoginUserApplet().getUserId();
+		Long userId = tokenService.getLoginUserApplet().getUserid();
 		AppUser user = appUserService.getById(userId);
 		return R.ok(user);
 	}
@@ -130,7 +129,7 @@
 	@PostMapping("/unregis")
 	@ApiOperation(value = "注销", tags = {"小程序-个人中心首页-我的资料"})
 	public R unregis(){
-		Long userId = tokenService.getLoginUserApplet().getUserId();
+		Long userId = tokenService.getLoginUserApplet().getUserid();
 		AppUser user = appUserService.getById(userId);
 
 		//添加注销记录
@@ -148,7 +147,7 @@
 	@ApiOperation(value = "个人中心首页", tags = {"小程序-个人中心首页"})
 	public R<AppUser> index(){
         System.err.println("=-====");
-        Long userId = tokenService.getLoginUserApplet().getUserId();
+        Long userId = tokenService.getLoginUserApplet().getUserid();
 		//当前用户信息
 		AppUser user = appUserService.getById(userId);
 		//当前用户的推荐人信息
@@ -163,7 +162,7 @@
 				user.setShopName(storeById.getData().getName());
 			}
 		}
-		Long count1 = appUserService.lambdaQuery().eq(AppUser::getVipId, 1).eq(AppUser::getTopInviteId, userId).count();
+		Long count1 = appUserService.lambdaQuery().eq(AppUser::getVipId, 1).eq(AppUser::getTopInviteId, 1).count();
 		Long count2 = appUserService.lambdaQuery().eq(AppUser::getVipId, 2).eq(AppUser::getTopInviteId, userId).count();
 		Long count3 = appUserService.lambdaQuery().eq(AppUser::getVipId, 3).eq(AppUser::getTopInviteId, userId).count();
 		Long count4 = appUserService.lambdaQuery().eq(AppUser::getVipId, 4).eq(AppUser::getTopInviteId, userId).count();
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 530f38b..59481fa 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,9 +1,23 @@
 package com.ruoyi.account.controller;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.api.model.UserCoupon;
+import com.ruoyi.account.api.vo.CouponInfoVo;
+import com.ruoyi.account.service.UserCouponService;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.bean.BeanUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+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;
 
 /**
  * <p>
@@ -16,6 +30,40 @@
 @RestController
 @RequestMapping("/user-coupon")
 public class UserCouponController {
+    @Resource
+    private UserCouponService userCouponService;
+    @Resource
+    private TokenService tokenService;
+
+    @Resource
+    private CouponClient couponClient;
+
+
+    @PostMapping("/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!=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));
+        for (UserCoupon record : page.getRecords()) {
+            CouponInfo data = couponClient.detail(record.getCouponId()).getData();
+            CouponInfoVo vo = new CouponInfoVo();
+            BeanUtils.copyProperties(data,vo);
+            record.setCouponInfoVo(vo);
+            if (record.getUseTime()==null){
+                record.setStatus(1);
+                if (record.getEndTime().isBefore(LocalDateTime.now())){
+                    record.setStatus(3);
+                }
+            }else {
+                record.setStatus(2);
+            }
+        }
+        return R.ok(page);
+    }
 
 
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
index e63b87b..a8a2b4d 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
@@ -1,8 +1,17 @@
 package com.ruoyi.other.controller;
 
 
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.Banner;
+import com.ruoyi.other.api.domain.CouponInfo;
+import com.ruoyi.other.service.CouponInfoService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
 
 /**
  * <p>
@@ -15,6 +24,15 @@
 @RestController
 @RequestMapping("/coupon-info")
 public class CouponInfoController {
+    @Resource
+    private CouponInfoService couponInfoService;
+    //查看详情
+    @PostMapping("/detail")
+    @ApiOperation(value = "详情", tags = {"后台-优惠劵"})
+    public R<CouponInfo> detail(@RequestParam("id") Integer id){
+        CouponInfo byId = couponInfoService.getById(id);
+        return R.ok(byId);
+    }
 
 }
 

--
Gitblit v1.7.1