Procházet zdrojové kódy

fix(app 修复约馆页面):显示异常

- 修改 AppSiteMapper.xml 中 getPlaceInfo 查询,将场所名称字段从 b.depart_name改为 a.name
- 优化 AppSitePriceRulesMapper.xml 中 theGymnasiumIsCharteredInfo 查询,使用 CDATE 和 UNION ALL 优化日期生成逻辑
-调整 DetailServiceImpl 中 theGymnasiumIsCharteredInfo 方法的执行顺序,先设置类别名称再设置时间槽
- 在 ESignServiceImpl 中添加对合同底稿为空的判断,提高系统稳定性
SheepHy před 2 dny
rodič
revize
14c566689b

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

@@ -199,8 +199,7 @@ public class DetailServiceImpl implements IDetailService {
                 .last("LIMIT 1"));
         List<PlaceInfoVO.theGymnasiumIsCharteredInfoVO> collect = new ArrayList<>();
         PlaceInfoVO.theGymnasiumIsCharteredVO theGymnasiumIsCharteredVO = new PlaceInfoVO.theGymnasiumIsCharteredVO()
-                .setCategory(getCategoryName(categoryId))
-                .setTimeSlot(collect);
+                .setCategory(getCategoryName(categoryId));
         if(appSitePlace != null){
             collect = appSitePriceRulesMapper.theGymnasiumIsCharteredInfo(appSitePlace.getOrgCode(), categoryId);
             theGymnasiumIsCharteredVO.setEarlyRefundTime(Optional.ofNullable(appSitePlace.getEarlyRefundTime()).orElse(0));
@@ -209,6 +208,7 @@ public class DetailServiceImpl implements IDetailService {
         if(!collect.isEmpty()){
             theGymnasiumIsCharteredVO.setVr(appSiteMapper.selectById(id).getVr());
         }
+        theGymnasiumIsCharteredVO.setTimeSlot(collect);
         return theGymnasiumIsCharteredVO;
     }
 

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

@@ -170,7 +170,7 @@ public class ESignServiceImpl implements IESignService {
         SysDepart sysDepart = sysDepartMapper.selectOne(Wrappers.<SysDepart>lambdaQuery()
                 .eq(SysDepart::getOrgCode, appOrder.getOrgCode()));
 
-
+        if(null == contractInfo) throw new JeecgBootException("该商户未上传合同底稿");
         try {
             FamilyMembers familyMembers = familyMembersMapper.selectById(familyId);
             JsonObject dto = buildSignFlowDto(contractInfo, sysDepart, familyMembers);

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

@@ -67,7 +67,7 @@
     <select id="getPlaceInfo" resultType="org.jeecg.modules.app.vo.PlaceInfoVO">
         SELECT
             a.id,
-            b.depart_name AS name,
+            a.name AS name,
             a.good_rate,
             a.cover,
             a.address,

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

@@ -2,60 +2,60 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.system.app.mapper.AppSitePriceRulesMapper">
     <select id="theGymnasiumIsCharteredInfo" resultType="org.jeecg.modules.app.vo.PlaceInfoVO$theGymnasiumIsCharteredInfoVO">
+<![CDATA[
         WITH RECURSIVE dates AS (
             SELECT
                 1 AS offset_day,
                 CURDATE() AS date_val,
-                DAYOFWEEK(
-                        CURDATE()) - 1 AS dow UNION ALL
+                DAYOFWEEK(CURDATE()) - 1 AS dow
+            UNION ALL
             SELECT
                 offset_day + 1,
                 date_val + INTERVAL 1 DAY,
-            DAYOFWEEK( date_val + INTERVAL 0 DAY )
-        FROM
-            dates
-        WHERE
-            offset_day &lt; 7
+            DAYOFWEEK(date_val + INTERVAL 0 DAY)
+        FROM dates
+        WHERE offset_day < 7
             ),
             earliest_slots AS (
         SELECT
-            sp.site_id,
+            r.id,
             r.start_time,
             r.end_time,
             r.selling_price,
             r.day_of_week,
-            ROW_NUMBER() OVER ( PARTITION BY r.day_of_week ORDER BY r.selling_price ASC, r.start_time ASC ) AS rn
+            ROW_NUMBER() OVER (PARTITION BY r.day_of_week ORDER BY r.selling_price ASC, r.start_time ASC) AS rn
         FROM
             nm_site_price_rules r
             LEFT JOIN nm_site_place sp ON r.site_place_id = sp.id
         WHERE
-            r.view_status = 0 AND r.org_code = #{orgCode} AND r.category_id = #{categoryId}
-            ) SELECT
-                  es.site_id AS id,
-                  es.day_of_week,
-                  es.start_time AS startTime,
-                  CONCAT( es.start_time, '-', es.end_time ) AS time_range,
-                  es.selling_price AS sellingPrice,
-                  CASE
-                      WHEN dm.offset_day = 1 THEN
-                          CONCAT( '今天(', DATE_FORMAT( dm.date_val, '%m-%d' ), ')' )
-                      WHEN dm.offset_day = 2 THEN
-                          CONCAT( '明天(', DATE_FORMAT( dm.date_val, '%m-%d' ), ')' )
-                      WHEN dm.offset_day = 3 THEN
-                          CONCAT( '后天(', DATE_FORMAT( dm.date_val, '%m-%d' ), ')' ) ELSE CONCAT(
-                          ELT( dm.dow, '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日' ),
-                          '(',
-                          DATE_FORMAT( dm.date_val, '%m-%d' ),
-                          ')'
-                                                                                           )
-                      END AS date_label
-              FROM
-                  earliest_slots es
-                      JOIN ( SELECT offset_day, date_val, dow FROM dates ) AS dm ON es.day_of_week = dm.dow
-              WHERE
-                  es.rn = 1
-              ORDER BY
-                  dm.offset_day;
+            r.view_status = 0
+          AND r.org_code = #{orgCode}
+          AND (#{categoryId} IS NULL OR r.category_id = #{categoryId})
+            )
+        SELECT
+            es.id AS id,
+            es.day_of_week,
+            es.start_time AS startTime,
+            CONCAT(es.start_time, '-', es.end_time) AS time_range,
+            es.selling_price AS sellingPrice,
+            CASE
+                WHEN dm.offset_day = 1 THEN CONCAT('今天(', DATE_FORMAT(dm.date_val, '%m-%d'), ')')
+                WHEN dm.offset_day = 2 THEN CONCAT('明天(', DATE_FORMAT(dm.date_val, '%m-%d'), ')')
+                WHEN dm.offset_day = 3 THEN CONCAT('后天(', DATE_FORMAT(dm.date_val, '%m-%d'), ')')
+                ELSE CONCAT(
+                        ELT(dm.dow, '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'),
+                        '(',
+                        DATE_FORMAT(dm.date_val, '%m-%d'),
+                        ')'
+                     )
+                END AS date_label
+        FROM
+            earliest_slots es
+                JOIN (SELECT offset_day, date_val, dow FROM dates) AS dm
+                     ON es.day_of_week = dm.dow
+        WHERE es.rn = 1
+        ORDER BY dm.offset_day
+        ]]>
     </select>
     <select id="timeSlot" resultType="org.jeecg.modules.app.vo.OrderVO$PreviewOrderPlaceSchoolChild">
         SELECT