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