zhangkaikai vor 1 Jahr
Ursprung
Commit
a2b789fb3a

+ 24 - 5
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/CdKeyMgrController.java

@@ -23,8 +23,9 @@ import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.enums.CdKeyGroupGoodsTypeEnum;
 import com.qs.mp.common.enums.CdKeyGroupStatusEnum;
 import com.qs.mp.common.enums.CdKeyStatusEnum;
+import com.qs.mp.common.enums.ValidityPeriodEnum;
+import com.qs.mp.common.utils.DateUtils;
 import com.qs.mp.common.utils.StringUtils;
-import com.qs.mp.common.utils.bean.BeanUtils;
 import com.qs.mp.utils.ExcelUtil;
 import com.qs.mp.web.controller.BaseController;
 import io.swagger.annotations.*;
@@ -36,7 +37,6 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * @author zhangkaikai
@@ -111,18 +111,37 @@ public class CdKeyMgrController extends BaseController {
             queryWrapper.eq("status", param.getStatus());
         }
 
-        queryWrapper.orderByDesc("FIELD(`status`,'waiting','nonactivated','activated','invalid')");
+        queryWrapper.orderByDesc("FIELD(`status`,'waiting','noactive','activated','invalid')");
         queryWrapper.orderByDesc("created_time");
 
         startPage();
         List<CdKeyGroupVO> cdKeyGroupList = cdKeyGroupService.listCdKeyGroupListVO(queryWrapper);
+        List<CdKeyGroup> inValid = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(cdKeyGroupList)) {
             cdKeyGroupList.forEach(cdKeyGroupVO -> {
                         Channel channel = channelService.getById(cdKeyGroupVO.getChannelId());
                         String siteName = channel.getName() == null ? "--   " : channel.getName();
                         cdKeyGroupVO.setSiteName(siteName + "(" + channel.getMobile() + ")");
+                        if (CdKeyGroupStatusEnum.ACTIVATED == cdKeyGroupVO.getStatus()) {
+                            int validityPeriod = ValidityPeriodEnum.getByValue(cdKeyGroupVO.getValidityPeriod().getValue());
+                            if (validityPeriod == 3 && DateUtils.diffMonth(cdKeyGroupVO.getActivationTime(), new Date()) > 3) {
+                                CdKeyGroup cdKeyGroup = new CdKeyGroup();
+                                cdKeyGroup.setGroupId(cdKeyGroupVO.getGroupId());
+                                cdKeyGroup.setStatus(CdKeyGroupStatusEnum.INVALID);
+                                inValid.add(cdKeyGroup);
+                            }
+                            if (validityPeriod == 6 && DateUtils.diffMonth(cdKeyGroupVO.getActivationTime(), new Date()) > 6) {
+                                CdKeyGroup cdKeyGroup = new CdKeyGroup();
+                                cdKeyGroup.setGroupId(cdKeyGroupVO.getGroupId());
+                                cdKeyGroup.setStatus(CdKeyGroupStatusEnum.INVALID);
+                                inValid.add(cdKeyGroup);
+                            }
+                }
             });
         }
+        if (CollectionUtils.isNotEmpty(inValid)) {
+            cdKeyGroupService.updateBatchById(inValid);
+        }
         return getDataTable(cdKeyGroupList);
     }
 
@@ -145,10 +164,10 @@ public class CdKeyMgrController extends BaseController {
     @PostMapping("/activate")
     public AjaxResult activate(@RequestBody CdKeyActivateParam param) {
         CdKeyGroup cdKeyGroup = cdKeyGroupService.getById(param.getGroupId());
-        if (!CdKeyGroupStatusEnum.NONACTIVATED.getValue().equals(cdKeyGroup.getStatus().getValue())) {
+        if (!CdKeyGroupStatusEnum.NO_ACTIVE.getValue().equals(cdKeyGroup.getStatus().getValue())) {
             return AjaxResult.error("只有未激活的兑换码组才能激活");
         }
-        cdKeyGroup.setStatus(param.getIsActive() == 1 ? CdKeyGroupStatusEnum.ACTIVATED : CdKeyGroupStatusEnum.NONACTIVATED);
+        cdKeyGroup.setStatus(param.getIsActive() == 1 ? CdKeyGroupStatusEnum.ACTIVATED : CdKeyGroupStatusEnum.NO_ACTIVE);
         cdKeyGroup.setActivationTime(new Date());
         return AjaxResult.success(cdKeyGroupService.updateById(cdKeyGroup));
     }

+ 2 - 4
mp-common/src/main/java/com/qs/mp/common/enums/CdKeyGroupStatusEnum.java

@@ -13,11 +13,9 @@ import com.qs.mp.common.json.EnumValueDeserializer;
 public enum CdKeyGroupStatusEnum implements IEnum<String> {
 
     WAITING("waiting", "待生成"),
+    NO_ACTIVE("noactive", "未激活"),
 
-    DOING("doing", "生成中"),
-    NONACTIVATED("nonactivated", "未激活"),
-
-    ACTIVATED("activated", "已激活"),
+    ACTIVATED("activated", "已生效"),
 
     INVALID("invalid", "已失效"),
     ;

+ 2 - 2
mp-service/src/main/java/com/qs/mp/admin/domain/CdKeyGroup.java

@@ -78,9 +78,9 @@ public class CdKeyGroup implements Serializable {
     private Integer remainQty;
 
     /**
-     * 状态,未激活nonactivated/已激活activated/已失效invalid
+     * 状态,未激活noactive/已生效activated/已失效invalid
      */
-    @ApiModelProperty("状态,待生成waiting/未激活nonactivated/已激活activated/已失效invalid")
+    @ApiModelProperty("状态,待生成waiting/未激活noactive/已生效activated/已失效invalid")
     @TableField("status")
     @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
     private CdKeyGroupStatusEnum status;

+ 1 - 1
mp-service/src/main/java/com/qs/mp/admin/domain/vo/CdKeyGroupListVO.java

@@ -33,7 +33,7 @@ public class CdKeyGroupListVO {
     @ApiModelProperty("激活时间")
     private Date activationTime;
 
-    @ApiModelProperty("状态,待生成waiting/未激活nonactivated/已激活activated/已失效invalid")
+    @ApiModelProperty("状态,待生成waiting/未激活noactive/已生效activated/已失效invalid")
     @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
     private CdKeyGroupStatusEnum status;
 

+ 1 - 1
mp-service/src/main/java/com/qs/mp/admin/service/impl/CdKeyGroupServiceImpl.java

@@ -189,7 +189,7 @@ public class CdKeyGroupServiceImpl extends ServiceImpl<CdKeyGroupMapper, CdKeyGr
         }
 
         boolean rst = update(new LambdaUpdateWrapper<CdKeyGroup>()
-                .set(CdKeyGroup::getStatus, CdKeyGroupStatusEnum.NONACTIVATED.getValue())
+                .set(CdKeyGroup::getStatus, CdKeyGroupStatusEnum.NO_ACTIVE.getValue())
                 .eq(CdKeyGroup::getGroupId, groupId));
 
         Assert.isTrue(rst, "兑换码生成完,兑换码组更新失败,groupId:{0}" + groupId);