Ver código fonte

fix(system): 修复全天营业逻辑错误

- 修改 AppSite 实体类中 startTime 和 endTime 字段的格式
- 优化 DetailServiceImpl 中的营业状态判断逻辑
-移除 HikiotTool 中的无关代码
SheepHy 3 semanas atrás
pai
commit
acb914fee5

+ 19 - 9
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/DetailServiceImpl.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.app.service.impl;
 
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -37,6 +38,7 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.ZoneId;
 import java.util.*;
 
@@ -111,14 +113,22 @@ public class DetailServiceImpl implements IDetailService {
         }
         placeInfo.setInstructorVOList(instructorVOList);
         placeInfo.setRunStatus(false);
-        if(appSite.getRunStatus() == 0 && appSite.getRunType() == 0){
+        if (appSite.getRunStatus() == 0 && appSite.getRunType() == 0) {
             placeInfo.setRunStatus(true);
-        }else if(appSite.getRunStatus() == 0){
-            if(appSite.getStartTime() != null &&
-                    appSite.getEndTime() != null &&
-                    new Date().after(appSite.getStartTime()) &&
-                    new Date().before(appSite.getEndTime())){
-                placeInfo.setRunStatus(true);
+        } else if (appSite.getRunStatus() == 0) {
+            if (appSite.getStartTime() != null && appSite.getEndTime() != null) {
+                try {
+                    // 解析时间
+                    LocalTime now = LocalTime.now();
+                    LocalTime startTime = LocalTime.parse(DateUtil.format(appSite.getStartTime(), "HH:mm:ss"));
+                    LocalTime endTime = LocalTime.parse(DateUtil.format(appSite.getEndTime(), "HH:mm:ss"));
+                    // 判断逻辑
+                    if (!now.isBefore(startTime) && !now.isAfter(endTime)) {
+                        placeInfo.setRunStatus(true);
+                    }
+                } catch (Exception e) {
+                    log.error("时间解析失败", e);
+                }
             }
         }
         if(appSite.getType() == 0){
@@ -329,8 +339,8 @@ public class DetailServiceImpl implements IDetailService {
         courseInfoVOIPage.getRecords().forEach(courseResponseVo -> {
             String string = courseResponseVo.getCover().split(",")[0];
             courseResponseVo.setCover(string);
-//            courseResponseVo.setAnnualSalesNum(string);
-//            courseResponseVo.setSaleNum(getCourseSalesCount());
+            courseResponseVo.setAnnualSalesNum(getCourseSalesCountYear(courseResponseVo.getId()));
+            courseResponseVo.setSaleNum(getCourseSalesCount(courseResponseVo.getId()));
         });
         return courseInfoVOIPage;
     }

+ 2 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/hikiot/HikiotTool.java

@@ -478,7 +478,8 @@ public class HikiotTool {
     }
 
     public static void main(String[] args) throws IOException, InterruptedException {
-        queryOpenDoorRecord(1,20,"00wm");
+//        addUser(new Date(),"FX0889961","Sheep","1001");
+        addFace("FX0889961","1001","https://national-motion.oss-cn-beijing.aliyuncs.com/opt/upFiles/tmp_81fc8aa195d37dac70fd57221d82845e_1756361097600.jpg");
 //        addUser();
 //        addUserPlanTemplate();
 //        addFace();

+ 2 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppSite.java

@@ -77,13 +77,13 @@ public class AppSite implements Serializable {
     /**开始营业时间 时间为空则全天*/
     @Excel(name = "开始营业时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="HH:mm:ss")
     @Schema(description = "开始营业时间")
     private Date startTime;
     /**结束营业时间*/
     @Excel(name = "结束营业时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="HH:mm:ss")
     @Schema(description = "结束营业时间")
     private Date endTime;
 	/**客服电话*/