Ver código fonte

fixed 卡券过期方式优化功能

fushengqian 1 ano atrás
pai
commit
c8dc138171
17 arquivos alterados com 239 adições e 37 exclusões
  1. 24 0
      fuint-application/src/main/java/com/fuint/common/dto/ReqCouponDto.java
  2. 27 0
      fuint-application/src/main/java/com/fuint/common/dto/ReqCouponGroupDto.java
  3. 37 0
      fuint-application/src/main/java/com/fuint/common/enums/CouponExpireTypeEnum.java
  4. 3 1
      fuint-application/src/main/java/com/fuint/common/service/CouponService.java
  5. 2 1
      fuint-application/src/main/java/com/fuint/common/service/impl/CouponGroupServiceImpl.java
  6. 55 11
      fuint-application/src/main/java/com/fuint/common/service/impl/CouponServiceImpl.java
  7. 6 1
      fuint-application/src/main/java/com/fuint/common/service/impl/GoodsServiceImpl.java
  8. 8 3
      fuint-application/src/main/java/com/fuint/common/service/impl/OrderServiceImpl.java
  9. 1 1
      fuint-application/src/main/java/com/fuint/common/service/impl/SettlementServiceImpl.java
  10. 42 9
      fuint-application/src/main/java/com/fuint/common/service/impl/UserCouponServiceImpl.java
  11. 2 2
      fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCouponController.java
  12. 2 3
      fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCouponGroupController.java
  13. 8 1
      fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendDoConfirmController.java
  14. 7 1
      fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientCouponController.java
  15. 1 1
      fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientUserController.java
  16. 8 2
      fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientUserCouponController.java
  17. 6 0
      fuint-repository/src/main/java/com/fuint/repository/model/MtCoupon.java

+ 24 - 0
fuint-application/src/main/java/com/fuint/common/dto/ReqCouponDto.java

@@ -66,6 +66,16 @@ public class ReqCouponDto implements Serializable {
      */
     private String useFor;
 
+    /**
+     * 过期类型
+     */
+    private String expireType;
+
+    /**
+     * 有效天数
+     */
+    private Integer expireTime;
+
     /**
      * 计次卡领取码
      */
@@ -243,6 +253,20 @@ public class ReqCouponDto implements Serializable {
         this.useFor=useFor;
     }
 
+    public String getExpireType(){
+        return expireType;
+    }
+    public void setExpireType(String expireType){
+        this.expireType=expireType;
+    }
+
+    public Integer getExpireTime(){
+        return expireTime;
+    }
+    public void setExpireType(Integer expireTime){
+        this.expireTime=expireTime;
+    }
+
     public String getTimerReceiveCode(){
         return timerReceiveCode;
     }

+ 27 - 0
fuint-application/src/main/java/com/fuint/common/dto/ReqCouponGroupDto.java

@@ -14,6 +14,17 @@ public class ReqCouponGroupDto implements Serializable {
      * ID
      */
     private Integer id;
+
+    /**
+     * 商户ID
+     */
+    private Integer merchantId;
+
+    /**
+     * 店铺ID
+     */
+    private Integer storeId;
+
     /**
      * 组名称
      */
@@ -52,6 +63,22 @@ public class ReqCouponGroupDto implements Serializable {
         this.id = id;
     }
 
+    public Integer getMerchantId() {
+        return merchantId;
+    }
+
+    public void setMerchantId(Integer merchantId) {
+        this.merchantId = merchantId;
+    }
+
+    public Integer getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
     public String getName() {
         return name;
     }

+ 37 - 0
fuint-application/src/main/java/com/fuint/common/enums/CouponExpireTypeEnum.java

@@ -0,0 +1,37 @@
+package com.fuint.common.enums;
+
+/**
+ * 卡券过期类型枚举
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum CouponExpireTypeEnum {
+    FIX("fix", "固定期限"),
+    FLEX("flex", "领取后生效");
+
+    private String key;
+
+    private String value;
+
+    CouponExpireTypeEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 3 - 1
fuint-application/src/main/java/com/fuint/common/service/CouponService.java

@@ -133,8 +133,10 @@ public interface CouponService extends IService<MtCoupon> {
 
     /**
      * 判断卡券是否有效
+     *
      * @param coupon
+     * @param userCoupon
      * @return
      * */
-    boolean isCouponEffective(MtCoupon coupon);
+    boolean isCouponEffective(MtCoupon coupon, MtUserCoupon userCoupon);
 }

+ 2 - 1
fuint-application/src/main/java/com/fuint/common/service/impl/CouponGroupServiceImpl.java

@@ -140,7 +140,8 @@ public class CouponGroupServiceImpl extends ServiceImpl<MtCouponGroupMapper, MtC
     @OperationServiceLog(description = "新增卡券分组")
     public MtCouponGroup addCouponGroup(ReqCouponGroupDto reqCouponGroupDto) {
         MtCouponGroup couponGroup = new MtCouponGroup();
-
+        couponGroup.setMerchantId(reqCouponGroupDto.getMerchantId());
+        couponGroup.setStoreId(reqCouponGroupDto.getStoreId());
         couponGroup.setName(CommonUtil.replaceXSS(reqCouponGroupDto.getName()));
         couponGroup.setMoney(new BigDecimal("0"));
         couponGroup.setTotal(0);

+ 55 - 11
fuint-application/src/main/java/com/fuint/common/service/impl/CouponServiceImpl.java

@@ -148,11 +148,13 @@ public class CouponServiceImpl extends ServiceImpl<MtCouponMapper, MtCoupon> imp
         } else {
             mtCoupon = new MtCoupon();
         }
-
-        Date startTime = DateUtil.parseDate(reqCouponDto.getBeginTime());
-        Date endTime = DateUtil.parseDate(reqCouponDto.getEndTime());
-        if (endTime.before(startTime)) {
-            throw new BusinessCheckException("生效期结束时间不能早于开始时间");
+        // 固定有效期验证
+        if (reqCouponDto.getExpireType().equals(CouponExpireTypeEnum.FIX.getKey())) {
+            Date startTime = DateUtil.parseDate(reqCouponDto.getBeginTime());
+            Date endTime = DateUtil.parseDate(reqCouponDto.getEndTime());
+            if (endTime.before(startTime)) {
+                throw new BusinessCheckException("生效期结束时间不能早于开始时间");
+            }
         }
         if (reqCouponDto.getMerchantId() != null) {
             mtCoupon.setMerchantId(reqCouponDto.getMerchantId());
@@ -218,8 +220,17 @@ public class CouponServiceImpl extends ServiceImpl<MtCouponMapper, MtCoupon> imp
         }
         mtCoupon.setTotal(reqCouponDto.getTotal());
 
-        mtCoupon.setBeginTime(DateUtil.parseDate(reqCouponDto.getBeginTime()));
-        mtCoupon.setEndTime(DateUtil.parseDate(reqCouponDto.getEndTime()));
+        if (reqCouponDto.getExpireType().equals(CouponExpireTypeEnum.FIX.getKey())) {
+            mtCoupon.setBeginTime(DateUtil.parseDate(reqCouponDto.getBeginTime()));
+            mtCoupon.setEndTime(DateUtil.parseDate(reqCouponDto.getEndTime()));
+        }
+        if (reqCouponDto.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey())) {
+           if (reqCouponDto.getExpireTime() == null || reqCouponDto.getExpireTime() < 0) {
+               throw new BusinessCheckException("请输入正确的有效天数");
+           }
+           mtCoupon.setExpireTime(reqCouponDto.getExpireTime());
+        }
+        mtCoupon.setExpireType(reqCouponDto.getExpireType());
         mtCoupon.setExceptTime(CommonUtil.replaceXSS(reqCouponDto.getExceptTime()));
         mtCoupon.setDescription(CommonUtil.replaceXSS(reqCouponDto.getDescription()));
         mtCoupon.setRemarks(CommonUtil.replaceXSS(reqCouponDto.getRemarks()));
@@ -312,6 +323,17 @@ public class CouponServiceImpl extends ServiceImpl<MtCouponMapper, MtCoupon> imp
                     userCoupon.setCreateTime(new Date());
                     userCoupon.setUpdateTime(new Date());
                     userCoupon.setExpireTime(couponInfo.getEndTime());
+                    if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FIX.getKey())) {
+                        userCoupon.setExpireTime(couponInfo.getEndTime());
+                    }
+                    if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey())) {
+                        Date expireTime = new Date();
+                        Calendar c = Calendar.getInstance();
+                        c.setTime(expireTime);
+                        c.add(Calendar.DATE, couponInfo.getExpireTime());
+                        expireTime = c.getTime();
+                        userCoupon.setExpireTime(expireTime);
+                    }
                     userCoupon.setUuid(uuid);
                     userCoupon.setType(CouponTypeEnum.COUPON.getKey());
                     userCoupon.setAmount(couponInfo.getAmount());
@@ -569,8 +591,17 @@ public class CouponServiceImpl extends ServiceImpl<MtCouponMapper, MtCoupon> imp
                 userCoupon.setStatus(UserCouponStatusEnum.UNUSED.getKey());
                 userCoupon.setCreateTime(new Date());
                 userCoupon.setUpdateTime(new Date());
-                userCoupon.setExpireTime(couponInfo.getEndTime());
-
+                if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FIX.getKey())) {
+                    userCoupon.setExpireTime(couponInfo.getEndTime());
+                }
+                if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey())) {
+                    Date expireTime = new Date();
+                    Calendar c = Calendar.getInstance();
+                    c.setTime(expireTime);
+                    c.add(Calendar.DATE, couponInfo.getExpireTime());
+                    expireTime = c.getTime();
+                    userCoupon.setExpireTime(expireTime);
+                }
                 // 12位随机数
                 StringBuffer code = new StringBuffer();
                 code.append(SeqUtil.getRandomNumber(4));
@@ -628,10 +659,15 @@ public class CouponServiceImpl extends ServiceImpl<MtCouponMapper, MtCoupon> imp
             }
         }
 
-        // 是否处于有效期
+        // 判断有效期
         MtCoupon couponInfo = queryCouponById(userCoupon.getCouponId());
         Date begin = couponInfo.getBeginTime();
         Date end = couponInfo.getEndTime();
+        // 领取后有效天数
+        if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey())) {
+            begin = userCoupon.getCreateTime();
+            end = userCoupon.getExpireTime();
+        }
         Date now = new Date();
         if (now.before(begin)) {
             throw new BusinessCheckException("该卡券还没到使用日期");
@@ -956,12 +992,20 @@ public class CouponServiceImpl extends ServiceImpl<MtCouponMapper, MtCoupon> imp
     /**
      * 判断卡券是否过期
      * @param coupon
+     * @param userCoupon
+     *
      * @return
      * */
     @Override
-    public boolean isCouponEffective(MtCoupon coupon) {
+    public boolean isCouponEffective(MtCoupon coupon, MtUserCoupon userCoupon) {
         Date begin = coupon.getBeginTime();
         Date end = coupon.getEndTime();
+
+        if (coupon.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey())) {
+            begin = userCoupon.getCreateTime();
+            end = userCoupon.getExpireTime();
+        }
+
         Date now = new Date();
 
         // 未生效

+ 6 - 1
fuint-application/src/main/java/com/fuint/common/service/impl/GoodsServiceImpl.java

@@ -527,10 +527,15 @@ public class GoodsServiceImpl extends ServiceImpl<MtGoodsMapper, MtGoods> implem
         Integer cateId = params.get("cateId") == null ? 0 : Integer.parseInt(params.get("cateId").toString());
         String keyword = params.get("keyword") == null ? "" : params.get("keyword").toString();
 
+        Integer merchantId = 0;
         MtStore mtStore = storeService.queryStoreById(storeId);
+        if (mtStore != null) {
+            merchantId = mtStore.getMerchantId();
+        }
         Page<MtGoods> pageHelper = PageHelper.startPage(page, pageSize);
         List<GoodsDto> dataList = new ArrayList<>();
-        List<GoodsBean> goodsList = mtGoodsMapper.selectGoodsList(mtStore.getMerchantId(), storeId, cateId, keyword);
+
+        List<GoodsBean> goodsList = mtGoodsMapper.selectGoodsList(merchantId, storeId, cateId, keyword);
 
         for (GoodsBean goodsBean : goodsList) {
              GoodsDto goodsDto = new GoodsDto();

+ 8 - 3
fuint-application/src/main/java/com/fuint/common/service/impl/OrderServiceImpl.java

@@ -1286,7 +1286,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
                             }
                         }
                     }
-                    boolean isEffective = couponService.isCouponEffective(couponInfo);
+                    boolean isEffective = couponService.isCouponEffective(couponInfo, userCoupon);
                     // 优惠券
                     if (couponInfo.getType().equals(CouponTypeEnum.COUPON.getKey())) {
                         couponDto.setType(CouponTypeEnum.COUPON.getValue());
@@ -1312,7 +1312,12 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
                             couponDto.setStatus(UserCouponStatusEnum.UNUSED.getKey());
                         }
                     }
-                    couponDto.setEffectiveDate(DateUtil.formatDate(couponInfo.getBeginTime(), "yyyy.MM.dd HH:mm") + "~" + DateUtil.formatDate(couponInfo.getEndTime(), "yyyy.MM.dd HH:mm"));
+                    if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FIX.getKey())) {
+                        couponDto.setEffectiveDate(DateUtil.formatDate(couponInfo.getBeginTime(), "yyyy.MM.dd HH:mm") + "~" + DateUtil.formatDate(couponInfo.getEndTime(), "yyyy.MM.dd HH:mm"));
+                    }
+                    if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey())) {
+                        couponDto.setEffectiveDate(DateUtil.formatDate(userCoupon.getCreateTime(), "yyyy.MM.dd HH:mm") + "~" + DateUtil.formatDate(userCoupon.getExpireTime(), "yyyy.MM.dd HH:mm"));
+                    }
                     couponList.add(couponDto);
                 }
             }
@@ -1325,7 +1330,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
             MtUserCoupon userCouponInfo = userCouponService.getUserCouponDetail(couponId);
             if (userCouponInfo != null) {
                 useCouponInfo = couponService.queryCouponById(userCouponInfo.getCouponId());
-                boolean isEffective = couponService.isCouponEffective(useCouponInfo);
+                boolean isEffective = couponService.isCouponEffective(useCouponInfo, userCouponInfo);
                 if (isEffective) {
                    if (useCouponInfo.getType().equals(CouponTypeEnum.COUPON.getKey())) {
                        couponAmount = useCouponInfo.getAmount();

+ 1 - 1
fuint-application/src/main/java/com/fuint/common/service/impl/SettlementServiceImpl.java

@@ -371,7 +371,7 @@ public class SettlementServiceImpl implements SettlementService {
                 if (userCouponInfo != null) {
                     MtCoupon couponInfo = couponService.queryCouponById(userCouponInfo.getCouponId());
                     if (couponInfo != null) {
-                        boolean isEffective = couponService.isCouponEffective(couponInfo);
+                        boolean isEffective = couponService.isCouponEffective(couponInfo, userCouponInfo);
                         if (isEffective && userCouponInfo.getUserId().equals(orderDto.getUserId())) {
                             // 优惠券,直接减去优惠券金额
                             if (couponInfo.getType().equals(CouponTypeEnum.COUPON.getKey())) {

+ 42 - 9
fuint-application/src/main/java/com/fuint/common/service/impl/UserCouponServiceImpl.java

@@ -7,10 +7,7 @@ import com.fuint.common.Constants;
 import com.fuint.common.config.Message;
 import com.fuint.common.dto.CouponDto;
 import com.fuint.common.dto.MyCouponDto;
-import com.fuint.common.enums.CouponTypeEnum;
-import com.fuint.common.enums.SendWayEnum;
-import com.fuint.common.enums.StatusEnum;
-import com.fuint.common.enums.UserCouponStatusEnum;
+import com.fuint.common.enums.*;
 import com.fuint.common.param.CouponReceiveParam;
 import com.fuint.common.service.*;
 import com.fuint.common.util.DateUtil;
@@ -230,6 +227,14 @@ public class UserCouponServiceImpl extends ServiceImpl<MtUserCouponMapper, MtUse
              userCoupon.setCreateTime(new Date());
              userCoupon.setUpdateTime(new Date());
              userCoupon.setExpireTime(couponInfo.getEndTime());
+            if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey())) {
+                Date expireTime = new Date();
+                Calendar c = Calendar.getInstance();
+                c.setTime(expireTime);
+                c.add(Calendar.DATE, couponInfo.getExpireTime());
+                expireTime = c.getTime();
+                userCoupon.setExpireTime(expireTime);
+            }
 
              // 12位随机数
              StringBuffer code = new StringBuffer();
@@ -342,11 +347,17 @@ public class UserCouponServiceImpl extends ServiceImpl<MtUserCouponMapper, MtUse
             for (MtUserCoupon uc : data) {
                  MtCoupon coupon = couponService.queryCouponById(uc.getCouponId());
                  // 已过期
-                 if (coupon.getEndTime().before(new Date())) {
+                 if (coupon.getExpireType().equals(CouponExpireTypeEnum.FIX.getKey()) && coupon.getEndTime() != null && coupon.getEndTime().before(new Date())) {
                      uc.setStatus(UserCouponStatusEnum.EXPIRE.getKey());
                      uc.setUpdateTime(new Date());
                      mtUserCouponMapper.updateById(uc);
                  }
+                // 已过期
+                if (coupon.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey()) && uc.getExpireTime() != null && uc.getExpireTime().before(new Date())) {
+                    uc.setStatus(UserCouponStatusEnum.EXPIRE.getKey());
+                    uc.setUpdateTime(new Date());
+                    mtUserCouponMapper.updateById(uc);
+                }
                  // 已删除
                  if (coupon.getStatus().equals(StatusEnum.DISABLE.getKey())) {
                      uc.setStatus(UserCouponStatusEnum.DISABLE.getKey());
@@ -416,14 +427,20 @@ public class UserCouponServiceImpl extends ServiceImpl<MtUserCouponMapper, MtUse
                 dto.setUserInfo(userInfo);
                 dto.setStoreInfo(storeInfo);
 
-                boolean canUse = couponService.isCouponEffective(couponInfo);
+                boolean canUse = couponService.isCouponEffective(couponInfo, userCouponDto);
                 if (!userCouponDto.getStatus().equals(UserCouponStatusEnum.UNUSED.getKey())) {
                     canUse = false;
                 }
                 dto.setCanUse(canUse);
 
-                String effectiveDate = DateUtil.formatDate(couponInfo.getBeginTime(), "yyyy.MM.dd") + "-" + DateUtil.formatDate(couponInfo.getEndTime(), "yyyy.MM.dd");
-                dto.setEffectiveDate(effectiveDate);
+                if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FIX.getKey())) {
+                    String effectiveDate = DateUtil.formatDate(couponInfo.getBeginTime(), "yyyy.MM.dd HH:mm") + "-" + DateUtil.formatDate(couponInfo.getEndTime(), "yyyy.MM.dd HH:mm");
+                    dto.setEffectiveDate(effectiveDate);
+                }
+                if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey())) {
+                    String effectiveDate = DateUtil.formatDate(userCouponDto.getCreateTime(), "yyyy.MM.dd HH:mm") + "-" + DateUtil.formatDate(userCouponDto.getExpireTime(), "yyyy.MM.dd HH:mm");
+                    dto.setEffectiveDate(effectiveDate);
+                }
 
                 String tips = "";
 
@@ -490,7 +507,7 @@ public class UserCouponServiceImpl extends ServiceImpl<MtUserCouponMapper, MtUse
                  couponDto.setName(couponInfo.getName());
                  couponDto.setAmount(userCoupon.getAmount());
                  couponDto.setStatus(UserCouponStatusEnum.UNUSED.getKey());
-                 boolean isEffective = couponService.isCouponEffective(couponInfo);
+                 boolean isEffective = couponService.isCouponEffective(couponInfo, userCoupon);
                  // 1.储值卡可用
                  if (isEffective && couponInfo.getType().equals(CouponTypeEnum.PRESTORE.getKey())) {
                      if (userCoupon.getBalance().compareTo(new BigDecimal("0")) > 0) {
@@ -567,6 +584,14 @@ public class UserCouponServiceImpl extends ServiceImpl<MtUserCouponMapper, MtUse
         userCoupon.setCreateTime(new Date());
         userCoupon.setUpdateTime(new Date());
         userCoupon.setExpireTime(couponInfo.getEndTime());
+        if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey())) {
+            Date expireTime = new Date();
+            Calendar c = Calendar.getInstance();
+            c.setTime(expireTime);
+            c.add(Calendar.DATE, couponInfo.getExpireTime());
+            expireTime = c.getTime();
+            userCoupon.setExpireTime(expireTime);
+        }
         userCoupon.setOrderId(orderId);
 
         // 如果购买的是储值卡
@@ -625,6 +650,14 @@ public class UserCouponServiceImpl extends ServiceImpl<MtUserCouponMapper, MtUse
         userCoupon.setCreateTime(new Date());
         userCoupon.setUpdateTime(new Date());
         userCoupon.setExpireTime(couponInfo.getEndTime());
+        if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey())) {
+            Date expireTime = new Date();
+            Calendar c = Calendar.getInstance();
+            c.setTime(expireTime);
+            c.add(Calendar.DATE, couponInfo.getExpireTime());
+            expireTime = c.getTime();
+            userCoupon.setExpireTime(expireTime);
+        }
 
         userCoupon.setOrderId(orderId);
         userCoupon.setAmount(amount);

+ 2 - 2
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCouponController.java

@@ -347,8 +347,8 @@ public class BackendCouponController extends BaseController {
         if (StringUtil.isNotEmpty(mtCouponInfo.getStoreIds())) {
             String[] ids = mtCouponInfo.getStoreIds().split(",");
             for (String storeId : ids) {
-                MtStore info = storeService.queryStoreById(Integer.parseInt(storeId));
-                storeList.add(info);
+                 MtStore info = storeService.queryStoreById(Integer.parseInt(storeId));
+                 storeList.add(info);
             }
         }
 

+ 2 - 3
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCouponGroupController.java

@@ -171,15 +171,14 @@ public class BackendCouponGroupController extends BaseController {
         if (accountInfo == null) {
             return getFailureResult(1001, "请先登录");
         }
-
+        reqCouponGroupDto.setMerchantId(accountInfo.getMerchantId());
+        reqCouponGroupDto.setStoreId(accountInfo.getStoreId());
         reqCouponGroupDto.setOperator(accountInfo.getAccountName());
-
         if (reqCouponGroupDto.getId() != null && reqCouponGroupDto.getId() > 0) {
             couponGroupService.updateCouponGroup(reqCouponGroupDto);
         } else {
             couponGroupService.addCouponGroup(reqCouponGroupDto);
         }
-
         return getSuccessResult(true);
     }
 

+ 8 - 1
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendDoConfirmController.java

@@ -3,6 +3,7 @@ package com.fuint.module.backendApi.controller;
 import com.fuint.common.dto.AccountInfo;
 import com.fuint.common.dto.ParamDto;
 import com.fuint.common.dto.UserCouponDto;
+import com.fuint.common.enums.CouponExpireTypeEnum;
 import com.fuint.common.enums.CouponTypeEnum;
 import com.fuint.common.service.AccountService;
 import com.fuint.common.service.ConfirmLogService;
@@ -108,7 +109,13 @@ public class BackendDoConfirmController extends BaseController {
         MtCoupon couponInfo = couponService.queryCouponById(userCoupon.getCouponId());
         MtUser userInfo = memberService.queryMemberById(userCoupon.getUserId());
 
-        String effectiveDate = DateUtil.formatDate(couponInfo.getBeginTime(), "yyyy.MM.dd") + " - " + DateUtil.formatDate(couponInfo.getEndTime(), "yyyy.MM.dd");
+        String effectiveDate = "";
+        if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FIX.getKey())) {
+            effectiveDate = DateUtil.formatDate(couponInfo.getBeginTime(), "yyyy.MM.dd HH:mm") + " - " + DateUtil.formatDate(couponInfo.getEndTime(), "yyyy.MM.dd HH:mm");
+        }
+        if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey())) {
+            effectiveDate = DateUtil.formatDate(userCoupon.getCreateTime(), "yyyy.MM.dd HH:mm") + " - " + DateUtil.formatDate(userCoupon.getExpireTime(), "yyyy.MM.dd HH:mm");
+        }
 
         UserCouponDto userCouponInfo = new UserCouponDto();
         userCouponInfo.setName(couponInfo.getName());

+ 7 - 1
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientCouponController.java

@@ -2,6 +2,7 @@ package com.fuint.module.clientApi.controller;
 
 import com.fuint.common.dto.CouponDto;
 import com.fuint.common.dto.UserInfo;
+import com.fuint.common.enums.CouponExpireTypeEnum;
 import com.fuint.common.param.CouponInfoParam;
 import com.fuint.common.param.CouponListParam;
 import com.fuint.common.param.CouponReceiveParam;
@@ -163,7 +164,12 @@ public class ClientCouponController extends BaseController {
 
         String baseImage = settingService.getUploadBasePath();
         couponDto.setImage(baseImage + couponInfo.getImage());
-        String effectiveDate = DateUtil.formatDate(couponInfo.getBeginTime(), "yyyy.MM.dd") + " - " + DateUtil.formatDate(couponInfo.getEndTime(), "yyyy.MM.dd");
+        String effectiveDate = "";
+        if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FIX.getKey())) {
+            effectiveDate = DateUtil.formatDate(couponInfo.getBeginTime(), "yyyy.MM.dd HH:mm") + " - " + DateUtil.formatDate(couponInfo.getEndTime(), "yyyy.MM.dd");
+        } else {
+            effectiveDate = DateUtil.formatDate(couponInfo.getCreateTime(), "yyyy.MM.dd HH:mm") + " - 永久";
+        }
         couponDto.setEffectiveDate(effectiveDate);
         couponDto.setGotNum(0);
         couponDto.setLimitNum(0);

+ 1 - 1
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientUserController.java

@@ -166,7 +166,7 @@ public class ClientUserController extends BaseController {
             List<MtUserCoupon> dataList = userCouponService.getUserCouponList(mtUser.getId(), statusList);
             for (int i = 0; i < dataList.size(); i++) {
                 MtCoupon couponInfo = couponService.queryCouponById(dataList.get(i).getCouponId());
-                boolean isEffective = couponService.isCouponEffective(couponInfo);
+                boolean isEffective = couponService.isCouponEffective(couponInfo, dataList.get(i));
                 if (!isEffective) {
                     continue;
                 }

+ 8 - 2
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientUserCouponController.java

@@ -2,6 +2,7 @@ package com.fuint.module.clientApi.controller;
 
 import com.fuint.common.dto.UserCouponDto;
 import com.fuint.common.dto.UserInfo;
+import com.fuint.common.enums.CouponExpireTypeEnum;
 import com.fuint.common.enums.CouponTypeEnum;
 import com.fuint.common.enums.UserCouponStatusEnum;
 import com.fuint.common.service.*;
@@ -165,8 +166,13 @@ public class ClientUserCouponController extends BaseController {
             result.setCouponId(couponInfo.getId());
             result.setType(couponInfo.getType());
             result.setUseRule(couponInfo.getOutRule());
-            String effectiveDate = DateUtil.formatDate(couponInfo.getBeginTime(), "yyyy.MM.dd") + " - " + DateUtil.formatDate(couponInfo.getEndTime(), "yyyy.MM.dd");
-            result.setEffectiveDate(effectiveDate);
+            if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FIX.getKey())) {
+                String effectiveDate = DateUtil.formatDate(couponInfo.getBeginTime(), "yyyy.MM.dd HH:mm") + " - " + DateUtil.formatDate(couponInfo.getEndTime(), "yyyy.MM.dd HH:mm");
+                result.setEffectiveDate(effectiveDate);
+            } else {
+                String effectiveDate = DateUtil.formatDate(userCoupon.getCreateTime(), "yyyy.MM.dd HH:mm") + " - " + DateUtil.formatDate(userCoupon.getExpireTime(), "yyyy.MM.dd HH:mm");
+                result.setEffectiveDate(effectiveDate);
+            }
             result.setCode(userCoupon.getCode());
             result.setAmount(userCoupon.getAmount());
             result.setBalance(userCoupon.getBalance());

+ 6 - 0
fuint-repository/src/main/java/com/fuint/repository/model/MtCoupon.java

@@ -59,6 +59,12 @@ public class MtCoupon implements Serializable {
     @ApiModelProperty("使用专项")
     private String useFor;
 
+    @ApiModelProperty("过期类型")
+    private String expireType;
+
+    @ApiModelProperty("有效天数")
+    private Integer expireTime;
+
     @ApiModelProperty("开始有效期")
     private Date beginTime;