Bläddra i källkod

fix:优惠券可用数量

liujunchi 3 år sedan
förälder
incheckning
d472fc179f

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/OrderReq.java

@@ -13,6 +13,7 @@ import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * 下单请求
@@ -219,7 +220,7 @@ public class OrderReq {
     }
 
     public String getCouponId() {
-        return couponId;
+        return Optional.ofNullable(couponId).orElse("");
     }
 
     public void setCouponId(String couponId) {

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/queryInfo/CouponIssueQueryInfo.java

@@ -6,9 +6,11 @@ import com.yonge.cooleshow.biz.dal.enums.SendTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponCategoryEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponUseStateEnum;
+import io.swagger.annotations.ApiModelProperty;
 import org.joda.time.DateTime;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -55,6 +57,9 @@ public class CouponIssueQueryInfo implements Serializable {
     // 优惠券类型
     private CouponTypeEnum couponType;
 
+    // 订单金额
+    private BigDecimal amount;
+
     // 可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:陪练课购买券 LIVE:直播课购买券  VIDEO:视频课购买券
     private CouponCategoryEnum couponCategory;
 
@@ -64,6 +69,14 @@ public class CouponIssueQueryInfo implements Serializable {
     // 过期时间
     private Long expiredTime = DateTime.now().getMillis();
 
+    public BigDecimal getAmount() {
+        return amount;
+    }
+
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
     public List<CouponCategoryEnum> getCouponCategoryList() {
         return couponCategoryList;
     }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CouponIssueServiceImp.java

@@ -104,6 +104,16 @@ public class CouponIssueServiceImp extends ServiceImpl<CouponIssueMapper, Coupon
         Map<Long, List<SysUser>> issuerMap = issuerList.stream().collect(Collectors.groupingBy(SysUser::getId));
 
 
+
+        // 可用优惠券数量
+        long count  = 0 ;
+        if (query.getAmount() != null) {
+
+             count= couponIssueWrappers.stream()
+                                            .filter(couponIssueWrapper -> couponIssueWrapper.getUseLimit()
+                                                                                            .compareTo(query.getAmount()) <= 0)
+                                            .count();
+        }
         for (CouponIssueWrapper couponIssueWrapper : couponIssueWrappers) {
             List<SysUser> issuer = issuerMap.get(couponIssueWrapper.getIssuer());
             if (!CollectionUtils.isEmpty(issuer)) {
@@ -116,8 +126,10 @@ public class CouponIssueServiceImp extends ServiceImpl<CouponIssueMapper, Coupon
                 couponIssueWrapper.setUsername(users.get(0).getUsername());
                 couponIssueWrapper.setRealName(users.get(0).getRealName());
                 couponIssueWrapper.setPhone(users.get(0).getPhone());
+                couponIssueWrapper.setUsable(count);
             }
         }
+
         return page.setRecords(couponIssueWrappers);
 
 

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/coupon/CouponIssueWrapper.java

@@ -89,6 +89,17 @@ public class CouponIssueWrapper {
     @ApiModelProperty("备注")
     private String remark;
 
+    @ApiModelProperty("可用数量")
+    private Long usable;
+
+    public Long getUsable() {
+        return usable;
+    }
+
+    public void setUsable(Long usable) {
+        this.usable = usable;
+    }
+
     public String getPhone() {
         return phone;
     }

+ 5 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/io/request/CouponInfoVO.java

@@ -47,6 +47,8 @@ public class CouponInfoVO {
         @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:陪练课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
         private CouponCategoryEnum couponCategory;
 
+        @ApiModelProperty("订单金额")
+        private BigDecimal amount;
 
         // 可用品类
         @ApiModelProperty(hidden = true)
@@ -104,6 +106,9 @@ public class CouponInfoVO {
         @JSONField(format = "yyyy-MM-dd")
         private Long endTime;
 
+        @ApiModelProperty("能使用的")
+        private Integer usable;
+
 
         @ApiModelProperty("可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:陪练课购买券 LIVE:直播课购买券  VIDEO:视频课购买券")
         private CouponCategoryEnum couponCategory;