瀏覽代碼

Merge branch 'dev_v1.3.4_20220902' of http://git.dayaedu.com/yonge/cooleshow into dev_v1.3.4_20220902

liujunchi 3 年之前
父節點
當前提交
d82adbbf6e

+ 2 - 2
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/coupon/CouponInfoController.java

@@ -116,7 +116,7 @@ public class CouponInfoController extends BaseController {
         }
 
         // 新增或更新信息
-        CouponInfo couponInfo = couponInfoService.saveOrUpdateCouponInfo(JSON.parseObject(info.jsonString(), CouponInfo.class));
+        CouponInfo couponInfo = couponInfoService.saveOrUpdateCouponInfo(JSON.parseObject(info.jsonString(), CouponInfo.class), false);
 
         return succeed(CouponInfoVO.CouponQueryInfo.from(JSON.toJSONString(couponInfo)));
     }
@@ -148,7 +148,7 @@ public class CouponInfoController extends BaseController {
                 .updateTime(DateTime.now().getMillis())
                 .build();
 
-        CouponInfo couponInfo = couponInfoService.saveOrUpdateCouponInfo(JSON.parseObject(info.jsonString(), CouponInfo.class));
+        CouponInfo couponInfo = couponInfoService.saveOrUpdateCouponInfo(JSON.parseObject(info.jsonString(), CouponInfo.class), true);
 
         // 校验状态更新结果
         return status(couponInfo.getStatus().intValue() == request.getStatus());

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MK.java

@@ -14,4 +14,6 @@ public interface MK {
     String TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
     // 时区设置
     String TIME_ZONE = "GMT+8";
+    // 时间戳
+    String YYYYMMDD = "yyyyMMdd";
 }

+ 3 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CouponInfoService.java

@@ -1,8 +1,8 @@
 package com.yonge.cooleshow.biz.dal.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.biz.dal.entity.CouponInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.biz.dal.entity.CouponInfo;
 import com.yonge.cooleshow.biz.dal.entity.CouponInventory;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
 import com.yonge.cooleshow.biz.dal.queryInfo.CouponInfoQuery;
@@ -11,8 +11,6 @@ import com.yonge.cooleshow.biz.dal.vo.coupon.CouponInfoWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.coupon.CouponInventoryWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.coupon.CouponOrderWrapper;
 
-import java.util.List;
-
 /**
  * <p>
  * 优惠券信息 服务类
@@ -41,9 +39,10 @@ public interface CouponInfoService extends IService<CouponInfo> {
     /**
      * 新增或更新优惠券信息
      * @param couponInfo CouponInfo
+     * @param stateUpdate 状态更新标识
      * @return CouponInfo
      */
-    CouponInfo saveOrUpdateCouponInfo(CouponInfo couponInfo);
+    CouponInfo saveOrUpdateCouponInfo(CouponInfo couponInfo, Boolean stateUpdate);
 
     /**
      * 优惠券库存量调整信息

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

@@ -10,6 +10,7 @@ import com.yonge.cooleshow.biz.dal.entity.CouponInventory;
 import com.yonge.cooleshow.biz.dal.entity.CouponIssue;
 import com.yonge.cooleshow.biz.dal.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
+import com.yonge.cooleshow.biz.dal.enums.MK;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponInventoryEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponUseStateEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponValidTypeEnum;
@@ -37,7 +38,6 @@ import org.springframework.transaction.annotation.Transactional;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -106,8 +106,7 @@ public class CouponInfoServiceImp extends ServiceImpl<CouponInfoMapper, CouponIn
         for (CouponInfoWrapper item : wrappers) {
 
             if (CouponValidTypeEnum.TIME_PERIOD == item.getValidType()
-                    && Optional.ofNullable(item.getEndTime()).orElse(0L) > 0
-                    && DateTime.now().getMillis() > item.getEndTime()) {
+                    && Integer.parseInt(DateTime.now().toString(MK.YYYYMMDD)) > Integer.parseInt(new DateTime(item.getEndTime()).toString(MK.YYYYMMDD))) {
 
                 updateIds.add(item.getId());
                 // 更新显示状态为禁用
@@ -159,11 +158,12 @@ public class CouponInfoServiceImp extends ServiceImpl<CouponInfoMapper, CouponIn
      * 新增或更新优惠券信息
      *
      * @param couponInfo CouponInfo
+     * @param stateUpdate 更新标识
      * @return CouponInfo
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public CouponInfo saveOrUpdateCouponInfo(CouponInfo couponInfo) {
+    public CouponInfo saveOrUpdateCouponInfo(CouponInfo couponInfo, Boolean stateUpdate) {
 
         if (Objects.isNull(couponInfo.getId())) {
 
@@ -191,40 +191,51 @@ public class CouponInfoServiceImp extends ServiceImpl<CouponInfoMapper, CouponIn
                 throw new BizException("无效的优惠券ID");
             }
 
-            // 优惠券已过期
-            if (CouponValidTypeEnum.TIME_PERIOD == info.getValidType()
-                    && Optional.ofNullable(info.getEndTime()).orElse(0L) > 0
-                    && DateTime.now().getMillis() > info.getEndTime()) {
+            if (stateUpdate) {
 
-                throw new BizException("已过期优惠券不允许修改");
-            }
+                // 优惠券状态更新
+                if (EStatus.ENABLE.match(couponInfo.getStatus())
+                        && CouponValidTypeEnum.TIME_PERIOD == info.getValidType()
+                        && Integer.parseInt(DateTime.now().toString(MK.YYYYMMDD)) > Integer.parseInt(new DateTime(info.getEndTime()).toString(MK.YYYYMMDD))) {
+                    throw new BizException("已过期优惠券不允许修改");
+                }
 
-            // 优惠券未过期,已发放不允许修复
-            List<Long> couponIds = Lists.newArrayList(couponInfo.getId());
-
-            int ret = 0;
-            // 查询优惠券发放人数
-            ret += getBaseMapper().selectCouponIssueStatInfo(couponIds,
-                            CouponInfoQuery.IssueStatQuery.builder()
-                                    .excludeUseState(Lists.newArrayList(CouponUseStateEnum.WITHDRAW)).build()).stream()
-                    .mapToInt(StatGroupWrapper::getTotal).sum();
-            if (ret > 0) {
-                throw new BizException("已发放优惠券不允许修改");
-            }
+            } else {
 
-            // 关联奖品数
-            ret += getBaseMapper().selectActivityCouponStatInfo(couponIds).stream()
-                    .mapToInt(StatGroupWrapper::getTotal).sum();
+                // 优惠券已过期
+                if (CouponValidTypeEnum.TIME_PERIOD == info.getValidType()
+                        && Integer.parseInt(DateTime.now().toString(MK.YYYYMMDD)) > Integer.parseInt(new DateTime(info.getEndTime()).toString(MK.YYYYMMDD))) {
 
-            if (ret > 0) {
-                throw new BizException("已关联奖品优惠券不允许修改");
-            }
+                    throw new BizException("已过期优惠券不允许修改");
+                }
+
+                // 优惠券未过期,已发放不允许修复
+                List<Long> couponIds = Lists.newArrayList(info.getId());
+
+                int ret = 0;
+                // 查询优惠券发放人数
+                ret += getBaseMapper().selectCouponIssueStatInfo(couponIds,
+                                CouponInfoQuery.IssueStatQuery.builder()
+                                        .excludeUseState(Lists.newArrayList(CouponUseStateEnum.WITHDRAW)).build()).stream()
+                        .mapToInt(StatGroupWrapper::getTotal).sum();
+                if (ret > 0) {
+                    throw new BizException("已发放优惠券不允许修改");
+                }
 
-            // 启用状态不允许修改
-            if (Objects.isNull(couponInfo.getStatus())
-                    && EStatus.ENABLE.match(info.getStatus())) {
+                // 关联奖品数
+                ret += getBaseMapper().selectActivityCouponStatInfo(couponIds).stream()
+                        .mapToInt(StatGroupWrapper::getTotal).sum();
+
+                if (ret > 0) {
+                    throw new BizException("已关联奖品优惠券不允许修改");
+                }
+
+                // 启用状态不允许修改
+                if (EStatus.ENABLE.match(info.getStatus())) {
+
+                    throw new BizException("已启用优惠券不允许修改");
+                }
 
-                throw new BizException("已启用优惠券不允许修改");
             }
 
             // 更新优惠券
@@ -270,11 +281,6 @@ public class CouponInfoServiceImp extends ServiceImpl<CouponInfoMapper, CouponIn
                 .couponInfos(Lists.newArrayList())
                 .build();
 
-        if (CollectionUtils.isEmpty(query.getIssueIds())) {
-            // 直接返回默认数据
-            return wrapper;
-        }
-
         // 查询用户订单优惠券信息
         List<CouponOrderWrapper.CouponInfo> couponInfos = getBaseMapper().selectUserOrderCouponInfo(userId, query);