Browse Source

add:优惠券使用方式

liujunchi 3 years ago
parent
commit
887379c388

+ 1 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/AdminClient.java

@@ -131,6 +131,7 @@ public class AdminClient extends BaseController {
         CouponOrderVO.CouponUpdateRequest  request = new CouponOrderVO.CouponUpdateRequest();
         request.setOrderNo(orderNo);
         request.setReset(returnCoupon);
+        request.setUseType(CouponCategoryEnum.MALL);
         List<Long> collect = Arrays.stream(couponIssueId.split(","))
                                    .map(Long::valueOf)
                                    .collect(Collectors.toList());

+ 11 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/coupon/CouponIssueVo.java

@@ -216,6 +216,17 @@ public class CouponIssueVo {
         @ApiModelProperty("用户手机号")
         private String phone;
 
+        @ApiModelProperty("使用类型")
+        private CouponCategoryEnum useType;
+
+        public CouponCategoryEnum getUseType() {
+            return useType;
+        }
+
+        public void setUseType(CouponCategoryEnum useType) {
+            this.useType = useType;
+        }
+
         public String getPhone() {
             return phone;
         }

+ 3 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/coupon/CouponOrderVO.java

@@ -140,6 +140,9 @@ public class CouponOrderVO {
         @ApiModelProperty("订单编号")
         private String orderNo;
 
+        @ApiModelProperty("使用类型")
+        private CouponCategoryEnum useType;
+
         public boolean invalidRequestParam() {
 
             if (Optional.ofNullable(getReset()).orElse(false)) {

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CouponIssue.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.util.Date;
 
+import com.yonge.cooleshow.biz.dal.enums.coupon.CouponCategoryEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponUseStateEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -53,6 +54,10 @@ public class CouponIssue implements Serializable {
     @TableField("use_time_")
     private Long useTime;
 
+    @ApiModelProperty("使用类型")
+    @TableField("use_type_")
+    private CouponCategoryEnum useType;
+
     @ApiModelProperty("订单编号")
     @TableField("order_no_")
     private String orderNo;

+ 25 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/coupon/CouponCategoryEnum.java

@@ -72,4 +72,29 @@ public enum CouponCategoryEnum implements BaseEnum<String, CouponCategoryEnum> {
 
         return retlist;
     }
+
+    /**
+     * 商品对应优惠券类型
+     * @param goodsType 商品类型
+     * @return List<CouponCategoryEnum>
+     */
+    public static CouponCategoryEnum goodTypeTo(String goodsType) {
+
+
+        if (StringUtils.isNotEmpty(goodsType)) {
+
+            CouponCategoryEnum[] values = CouponCategoryEnum.values();
+
+            for (CouponCategoryEnum value : values) {
+
+                if (value.getGoodsType().equals(goodsType)) {
+
+                    return value;
+                }
+            }
+
+        }
+
+        return null;
+    }
 }

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

@@ -338,6 +338,7 @@ public class CouponInfoServiceImp extends ServiceImpl<CouponInfoMapper, CouponIn
                                 .id(item.getIssueId())
                                 .useState(CouponUseStateEnum.USED)
                                 .useTime(DateTime.now().getMillis())
+                                .useType(wrapper.getUseType())
                                 .orderNo(wrapper.getOrderNo())
                         .build());
             }

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

@@ -404,6 +404,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         // 更新用户订单优惠券使用状态
         if (CollectionUtils.isNotEmpty(couponOrderWrapper.getCouponInfos())) {
 
+            couponOrderWrapper.useType(CouponCategoryEnum.goodTypeTo(orderReq.getOrderType().getCode()));
             couponInfoService.updateUserOrderCouponInfo(couponOrderWrapper.orderNo(orderReq.getOrderNo()));
         }
 

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

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.vo.coupon;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.SendTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponCategoryEnum;
@@ -27,6 +28,8 @@ public class CouponIssueWrapper {
     @ApiModelProperty("优惠券id")
     private Long couponId;
 
+    @ApiModelProperty("使用类型")
+    private CouponCategoryEnum useType;
 
     @ApiModelProperty("优惠券名称")
     private String couponName;
@@ -92,6 +95,14 @@ public class CouponIssueWrapper {
     @ApiModelProperty("可用数量")
     private Long usable;
 
+    public CouponCategoryEnum getUseType() {
+        return useType;
+    }
+
+    public void setUseType(CouponCategoryEnum useType) {
+        this.useType = useType;
+    }
+
     public Long getUsable() {
         return usable;
     }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/coupon/CouponOrderWrapper.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.wrapper.coupon;
 
 import com.alibaba.fastjson.JSON;
+import com.yonge.cooleshow.biz.dal.enums.coupon.CouponCategoryEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponUseStateEnum;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -32,6 +33,9 @@ public class CouponOrderWrapper implements Serializable {
     // 订单编号
     private String orderNo;
 
+    // 使用方式
+    private CouponCategoryEnum useType;
+
     public String jsonString() {
 
         return JSON.toJSONString(this);
@@ -66,6 +70,12 @@ public class CouponOrderWrapper implements Serializable {
         return this;
     }
 
+    public CouponOrderWrapper useType(CouponCategoryEnum useType) {
+        this.useType = useType;
+        return this;
+    }
+
+
     /**
      * 用户优惠券信息
      */
@@ -118,6 +128,8 @@ public class CouponOrderWrapper implements Serializable {
         private Long useTime;
         // 订单编号
         private String orderNo;
+        // 使用方式
+        private CouponCategoryEnum useType;
 
         public String jsonString() {
             return JSON.toJSONString(this);

+ 1 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CouponIssueMapper.xml

@@ -40,6 +40,7 @@
             ci.use_state_ as useState,
             ci.issuer_ as issuer,
             ci.remark_ as remark,
+            ci.use_type_ as useType,
             cou.name_ as couponName,
             cou.id_ as couponId,
             cou.coupon_type_ as couponType,