浏览代码

fix(app):修正时间计算逻辑并优化-教练详情接口 修改数据库查询中的时区转换逻辑,统一为 '+00:00' 到 '+08:00'- 更新定时任务执行间隔从1200000 毫秒调整为 600000 毫秒- 移除教练详情接口中不必要的用户 ID 参数及相关逻辑
- 在订单服务中增加 useDateStr 字段以记录课程开始日期
-优化 Shiro 配置,开放 findByCoachId 接口访问权限
- 统计报表查询新增预付金额大于 0 的过滤条件
-修复分账实体类字段校验注解冗余问题
- 教练详情 SQL 查询语句格式化并新增匿名评价字段返回
- 注释部分无用代码逻辑,提升代码可读性与维护性

SheepHy 6 天之前
父节点
当前提交
15a3181cad
共有 12 个文件被更改,包括 49 次插入33 次删除
  1. 3 1
      national-motion-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
  2. 3 2
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/controller/coach/CoachController.java
  3. 1 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/ICoachService.java
  4. 3 2
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/CoachServiceImpl.java
  5. 1 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/OrderServiceImpl.java
  6. 1 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/quartz/job/OrTeachingJobService.java
  7. 0 3
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/SeparateAccounts.java
  8. 1 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppSitePlaceMapper.xml
  9. 20 20
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppSitePriceRulesMapper.xml
  10. 15 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/EvaluateMapper.xml
  11. 1 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/StatisticsMapper.xml
  12. 0 1
      national-motion-module-system/national-motion-system-start/pom.xml

+ 3 - 1
national-motion-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java

@@ -122,7 +122,9 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/app/detail/getPlaceInfoNoFixation", "anon");
         filterChainDefinitionMap.put("/app/game/findById", "anon");
         //todo 用于审核开放
-        filterChainDefinitionMap.put("/app/detail/getCourseInfo", "anon");
+//        filterChainDefinitionMap.put("/app/detail/getCourseInfo", "anon");
+        filterChainDefinitionMap.put("/app/coachC/findByCoachId", "anon");
+
         filterChainDefinitionMap.put("/app/stadium/getPlaceInfo", "anon");
         filterChainDefinitionMap.put("/test/**", "anon");//测试
         filterChainDefinitionMap.put("/profitSharing/**", "anon");//测试

+ 3 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/controller/coach/CoachController.java

@@ -54,8 +54,9 @@ public class CoachController {
          return Result.error("查询失败,教练编号为空");
         }
         //获取登录用户信息
-        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        return iCoachService.findByCoachId(appCoachDetailsRequestVO,sysUser.getId());
+//        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+//        return iCoachService.findByCoachId(appCoachDetailsRequestVO,sysUser.getId());
+        return iCoachService.findByCoachId(appCoachDetailsRequestVO);
     }
 
 

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/ICoachService.java

@@ -11,5 +11,5 @@ public interface ICoachService {
 
     Result<List<AppCoachVO>> findCoachList();
 
-    Result<AppCoachDetailsVO> findByCoachId(AppCoachDetailsRequestVO appCoachDetailsRequestVO, String userId);
+    Result<AppCoachDetailsVO> findByCoachId(AppCoachDetailsRequestVO appCoachDetailsRequestVO);
 }

+ 3 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/CoachServiceImpl.java

@@ -63,7 +63,7 @@ public class CoachServiceImpl implements ICoachService {
     }
 
     @Override
-    public Result<AppCoachDetailsVO> findByCoachId(AppCoachDetailsRequestVO appCoachDetailsRequestVO, String userId) {
+    public Result<AppCoachDetailsVO> findByCoachId(AppCoachDetailsRequestVO appCoachDetailsRequestVO) {
         AppCoachDetailsVO appCoachDetailsVO = appInstructorMapper.findById(appCoachDetailsRequestVO.getId());
         if(appCoachDetailsVO==null){
             return Result.error("未查到教练信息");
@@ -93,7 +93,8 @@ public class CoachServiceImpl implements ICoachService {
                 courseResponseVo.setAnnualSalesNum(courseSales);
                 int courseSalesCount = getCourseSalesCount(courseResponseVo.getId());
                 courseResponseVo.setSaleNum(courseSalesCount);
-                int firstPurchase = isFirstPurchase(userId);
+//                int firstPurchase = isFirstPurchase(userId);
+                int firstPurchase = 0;
                 courseResponseVo.setIsOneBuy(firstPurchase);
                 if (ObjectUtils.isNotEmpty(courseResponseVo.getLatitude())&&ObjectUtils.isNotEmpty(courseResponseVo.getLongitude())){
                     double km = PositionUtil.calculateDistance(appCoachDetailsRequestVO.getLatitude(), appCoachDetailsRequestVO.getLongitude(), courseResponseVo.getLatitude().doubleValue(), courseResponseVo.getLongitude().doubleValue());

+ 1 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/OrderServiceImpl.java

@@ -952,6 +952,7 @@ public class OrderServiceImpl extends ServiceImpl<AppOrderMapper, AppOrder> impl
                     appOrderProInfo.setExpireTime(DateUtil.format(appCourse.getEndTime(), "yyyy-MM-dd"));
                     appOrderProInfo.setOriginalPrice(appCourse.getOriginalPrice());
                     appOrderProInfo.setPrice(appCourse.getSellingPrice());
+                    appOrderProInfo.setUseDateStr(DateUtil.format(appCourse.getStartTime(), "yyyy-MM-dd"));
                     appOrderProInfo.setOrderStatus(0);
                     appOrderProInfo.setQuantity(1);
                     appOrderProInfo.setFamilyUserId(familyUserId);

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/quartz/job/OrTeachingJobService.java

@@ -241,7 +241,7 @@ public class OrTeachingJobService {
      * @Param
      * @return
      **/
-    @Scheduled(fixedDelay = 1200000)
+    @Scheduled(fixedDelay = 600000)
 //    @Scheduled(cron = "0 0 23 * * ?")
     public void synchronousDoorOpeningAndClosingRecords(){
         try {

+ 0 - 3
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/SeparateAccounts.java

@@ -45,19 +45,16 @@ public class SeparateAccounts implements Serializable {
 	/**平台分账比例 单位%*/
 	@Excel(name = "平台分账比例 单位%", width = 15)
     @Schema(description = "平台分账比例 单位%")
-    @NotNull(message = "累计总金额不能为空")
     @DecimalMin(value = "0.00", message = "累计总金额不能小于0")
     private BigDecimal ptSeparateAccounts;
 	/**商家分账比例 单位%*/
 	@Excel(name = "商家分账比例 单位%", width = 15)
     @Schema(description = "商家分账比例 单位%")
-    @NotNull(message = "累计总金额不能为空")
     @DecimalMin(value = "0.00", message = "累计总金额不能小于0")
     private BigDecimal shSeparateAccounts;
     /**商家分账比例 单位%*/
     @Excel(name = "商家分账比例 单位%", width = 15)
     @Schema(description = "商家分账比例 单位%")
-    @NotNull(message = "累计总金额不能为空")
     @DecimalMin(value = "0.00", message = "累计总金额不能小于0")
     private BigDecimal mdSeparateAccounts;
 	/**分账状态 0-启用 1-停用  默认启用*/

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppSitePlaceMapper.xml

@@ -94,7 +94,7 @@
                           b.id,b.start_time,b.end_time ,b.selling_price,
                           CASE
                               WHEN c.order_status <=1 THEN 1
-                              WHEN DATE_ADD(CURRENT_TIME(), INTERVAL 8.3 HOUR) < TIME(b.end_time) THEN 0
+                              WHEN TIMESTAMPADD(MINUTE, 510, CURRENT_TIME) < TIME(b.end_time) THEN 0
                        ELSE 1
     END AS concertStatus
         from nm_site_place a

+ 20 - 20
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppSitePriceRulesMapper.xml

@@ -5,9 +5,9 @@
          <![CDATA[WITH RECURSIVE dates AS (
         SELECT
             1 AS offset_day,
-            CONVERT_TZ(NOW(), '+00:15', '+08:00') AS current_datetime,
-                      DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00')) AS date_val,
-                      WEEKDAY(DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00'))) + 1 AS dow
+            CONVERT_TZ(NOW(), '+00:00', '+08:00') AS current_datetime,
+                      DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00')) AS date_val,
+                      WEEKDAY(DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00'))) + 1 AS dow
                   UNION ALL
     SELECT
         offset_day + 1,
@@ -31,16 +31,16 @@
         WHEN r.date_of_sale IS NOT NULL THEN r.date_of_sale
         ELSE
         -- 计算下一个指定星期几的日期 (使用本地时区)
-        DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00')) + INTERVAL (
-        (7 + (r.day_of_week - 1) - WEEKDAY(DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00')))) % 7
+        DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00')) + INTERVAL (
+        (7 + (r.day_of_week - 1) - WEEKDAY(DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00')))) % 7
         ) DAY
         END AS effective_date,
         ROW_NUMBER() OVER (
         PARTITION BY CASE
         WHEN r.date_of_sale IS NOT NULL THEN r.date_of_sale
         ELSE
-        DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00')) + INTERVAL (
-        (7 + (r.day_of_week - 1) - WEEKDAY(DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00')))) % 7
+        DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00')) + INTERVAL (
+        (7 + (r.day_of_week - 1) - WEEKDAY(DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00')))) % 7
         ) DAY
         END
         ORDER BY
@@ -53,8 +53,8 @@
         AND opi.use_date_str = CASE
         WHEN r.date_of_sale IS NOT NULL THEN DATE_FORMAT(r.date_of_sale, '%Y-%m-%d')
         ELSE DATE_FORMAT(
-        DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00')) + INTERVAL (
-        (7 + (r.day_of_week - 1) - WEEKDAY(DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00')))) % 7
+        DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00')) + INTERVAL (
+        (7 + (r.day_of_week - 1) - WEEKDAY(DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00')))) % 7
         ) DAY,
         '%Y-%m-%d'
         )
@@ -69,10 +69,10 @@
         (
         r.date_of_sale IS NOT NULL
       AND (
-        r.date_of_sale > DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00'))
+        r.date_of_sale > DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00'))
        OR (
-        r.date_of_sale = DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00'))
-      AND r.start_time > TIME(CONVERT_TZ(NOW(), '+00:15', '+08:00'))
+        r.date_of_sale = DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00'))
+      AND r.start_time > TIME(CONVERT_TZ(NOW(), '+00:00', '+08:00'))
         )
         )
         )
@@ -82,14 +82,14 @@
         r.date_of_sale IS NULL
       AND r.day_of_week IS NOT NULL
       AND (
-        DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00')) + INTERVAL (
-        (7 + (r.day_of_week - 1) - WEEKDAY(DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00')))) % 7
-        ) DAY > DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00'))
+        DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00')) + INTERVAL (
+        (7 + (r.day_of_week - 1) - WEEKDAY(DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00')))) % 7
+        ) DAY > DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00'))
        OR (
-        DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00')) + INTERVAL (
-        (7 + (r.day_of_week - 1) - WEEKDAY(DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00')))) % 7
-        ) DAY = DATE(CONVERT_TZ(NOW(), '+00:15', '+08:00'))
-      AND r.start_time > TIME(CONVERT_TZ(NOW(), '+00:15', '+08:00'))
+        DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00')) + INTERVAL (
+        (7 + (r.day_of_week - 1) - WEEKDAY(DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00')))) % 7
+        ) DAY = DATE(CONVERT_TZ(NOW(), '+00:00', '+08:00'))
+      AND r.start_time > TIME(CONVERT_TZ(NOW(), '+00:00', '+08:00'))
         )
         )
         )
@@ -130,7 +130,7 @@
             JOIN dates dm ON asl.effective_date = dm.date_val
     WHERE
         asl.rn = 1
-      AND NOT (dm.offset_day = 1 AND asl.start_time <= TIME(CONVERT_TZ(NOW(), '+00:15', '+08:00')))
+      AND NOT (dm.offset_day = 1 AND asl.start_time <= TIME(CONVERT_TZ(NOW(), '+00:00', '+08:00')))
     ORDER BY
         dm.offset_day;
         ]]>

+ 15 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/EvaluateMapper.xml

@@ -40,7 +40,21 @@
     </select>
     <select id="findBySiteId" resultType="org.jeecg.modules.system.app.dto.evaluate.FindEvaluateResponseDTO">
         select ne.id,
-               ne.score,ne.evaluate_content,su.avatar,ne.images,ne.check_status,ne.reply_status,ne.reply_content,ne.reply_time,ne.type,ne.create_time,sd.depart_name,ns.address,su.username,su.phone
+               ne.score,
+               ne.evaluate_content,
+               su.avatar,
+               ne.images,
+               ne.check_status,
+               ne.reply_status,
+               ne.reply_content,
+               ne.reply_time,
+               ne.type,
+               ne.create_time,
+               sd.depart_name,
+               ns.address,
+               su.username,
+               su.phone,
+               ne.is_anonymous
         from nm_evaluate ne
         left join  sys_depart sd on  ne.dept_id = sd.id
         LEFT JOIN nm_site ns on  ne.site_id =ns.id

+ 1 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/StatisticsMapper.xml

@@ -351,6 +351,7 @@
         WHERE a.price > 0
         AND a.type NOT IN (3, 4, 6)
         AND c.org_code = #{orgCode}
+        AND b.pre_amount > 0
         <!-- 动态条件 -->
         <if test="incomeExpenseType != null and incomeExpenseType != '' and incomeExpenseType != '全部'">
             AND (

+ 0 - 1
national-motion-module-system/national-motion-system-start/pom.xml

@@ -19,7 +19,6 @@
             <version>${jeecgboot.version}</version>
         </dependency>
 
-        
         <!-- flyway 数据库自动升级 -->
         <dependency>
             <groupId>org.flywaydb</groupId>