mac 2 лет назад
Родитель
Сommit
eed2362c0e

+ 37 - 21
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsCampServiceImpl.java

@@ -189,13 +189,7 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
         Long userId = SecurityUtils.getUser().getId();
         IPage<CampPageVO> pageData = baseMapper.getByPage(page, userId);
         pageData.getRecords().forEach(item -> {
-            if(item.getEndTime().isBefore(now)){
-                item.setStatus(CampStatusEnum.STATUS_END.getType());
-            } else if (LocalDateTimeUtil.isIn(now, item.getStartTime(), item.getEndTime(), false, false)) {
-                item.setStatus(CampStatusEnum.STATUS_NORMAL.getType());
-            }else {
-                item.setStatus(CampStatusEnum.STATUS_CLOSE.getType());
-            }
+            statusChange(item, now);
         });
         return pageData;
     }
@@ -206,11 +200,23 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
         if(kxsCamp == null){
             return R.failed(SysErrorTypeEnum.NOT_DATA.getDescription());
         }
+        statusChange(kxsCamp, LocalDateTime.now());
         CampGetByIdVO campGetByIdVO = new CampGetByIdVO();
         BeanUtil.copyProperties(kxsCamp, campGetByIdVO);
         return R.ok(campGetByIdVO);
     }
 
+    @Override
+    public IPage<KxsCamp> getBySysPage(Page<KxsCamp> page, KxsCamp param) {
+        LocalDateTime now = LocalDateTime.now();
+        Page<KxsCamp> pageData = this.page(page, Wrappers.<KxsCamp>lambdaQuery()
+                .eq(StrUtil.isNotEmpty(param.getCreateCode()), KxsCamp::getCreateCode, param.getCreateCode())
+                .orderByDesc(KxsCamp::getId));
+
+        pageData.getRecords().forEach(item -> statusChange(item, now));
+        return pageData;
+    }
+
     @Override
     @Async("getAsyncExecutor")
     public void prizePoolIsRefreshed() {
@@ -389,23 +395,33 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
 
     }
 
-    @Override
-    public IPage<KxsCamp> getBySysPage(Page<KxsCamp> page, KxsCamp param) {
-        LocalDateTime now = LocalDateTime.now();
-        Page<KxsCamp> pageData = this.page(page, Wrappers.<KxsCamp>lambdaQuery()
-                .eq(StrUtil.isNotEmpty(param.getCreateCode()), KxsCamp::getCreateCode, param.getCreateCode())
-                .orderByDesc(KxsCamp::getId));
 
-        pageData.getRecords().forEach(item -> {
-            if(item.getEndTime().isBefore(now)){
-                item.setStatus(CampStatusEnum.STATUS_END.getType());
-            } else if (LocalDateTimeUtil.isIn(now, item.getStartTime(), item.getEndTime(), false, false)) {
-                item.setStatus(CampStatusEnum.STATUS_NORMAL.getType());
+
+    /**
+     * 状态变更
+     *
+     * @param campT 营地
+     * @param now  现在
+     */
+    private <T> void statusChange(T campT, LocalDateTime now){
+        if(campT instanceof KxsCamp camp){
+            if(camp.getEndTime().isBefore(now)){
+                camp.setStatus(CampStatusEnum.STATUS_END.getType());
+            } else if (LocalDateTimeUtil.isIn(now, camp.getStartTime(), camp.getEndTime(), false, false)) {
+                camp.setStatus(CampStatusEnum.STATUS_NORMAL.getType());
             }else {
-                item.setStatus(CampStatusEnum.STATUS_CLOSE.getType());
+                camp.setStatus(CampStatusEnum.STATUS_CLOSE.getType());
             }
-        });
-        return pageData;
+        }
+        if(campT instanceof CampPageVO camp){
+            if(camp.getEndTime().isBefore(now)){
+                camp.setStatus(CampStatusEnum.STATUS_END.getType());
+            } else if (LocalDateTimeUtil.isIn(now, camp.getStartTime(), camp.getEndTime(), false, false)) {
+                camp.setStatus(CampStatusEnum.STATUS_NORMAL.getType());
+            }else {
+                camp.setStatus(CampStatusEnum.STATUS_CLOSE.getType());
+            }
+        }
     }
 
 }