浏览代码

update 时间差列表的排序

周箭河 4 年之前
父节点
当前提交
3a026793a3

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -1843,6 +1843,17 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             Date firstPayTime = registerOrPreMinTime.getMinPayTime();
             dataList = studentRegistrationDao.getRegisterOrPreList(params);
             for (RegisterDto registerDto : dataList) {
+                if (DateUtil.dateToString(registerDto.getPerRegisterTime()).equals("2099-12-31") ||
+                        DateUtil.dateToString(registerDto.getPerRegisterTime()).equals("1990-12-31")
+                ) {
+                    registerDto.setPerRegisterTime(null);
+                }
+
+                if (DateUtil.dateToString(registerDto.getPayTime()).equals("2099-12-31") ||
+                        DateUtil.dateToString(registerDto.getPayTime()).equals("1990-12-31")
+                ) {
+                    registerDto.setPayTime(null);
+                }
                 if (registerDto.getPerRegisterTime() != null) {
                     int perRegInterval = DateUtil.secondsBetween(firstPreTime, registerDto.getPerRegisterTime());
                     registerDto.setPerRegInterval(perRegInterval);

+ 20 - 7
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -1342,9 +1342,22 @@
     <select id="getRegisterOrPreList" resultType="com.ym.mec.biz.dal.dto.RegisterDto">
         SELECT u.user_id_ userId,
         su.username_ studentName,
-        IFNULL(s2.name_, s1.name_) actualSubjectName,
-        spr.create_time_ perRegisterTime,
-        o.payTime
+        <if test="orderByPerRegister == null">
+            IFNULL(spr.create_time_,'2099-12-31') perRegisterTime,
+        </if>
+        <if test="orderByPerRegister != null and orderByPerRegister=='ASC'">
+            IFNULL(spr.create_time_,'2099-12-31') perRegisterTime,
+        </if>
+        <if test="orderByPerRegister != null and orderByPerRegister=='DESC'">
+            IFNULL(spr.create_time_,'1990-12-31') perRegisterTime,
+        </if>
+        <if test="orderByPayTime != null and orderByPayTime=='ASC'">
+            IFNULL(o.payTime,'2099-12-31') payTime,
+        </if>
+        <if test="orderByPayTime != null and orderByPayTime=='DESC'">
+            IFNULL(o.payTime,'1990-12-31') payTime,
+        </if>
+        IFNULL(s2.name_, s1.name_) actualSubjectName
         FROM (SELECT user_id_
         FROM student_pre_registration
         WHERE music_group_id_ = #{musicGroupId}
@@ -1379,16 +1392,16 @@
         </if>
         </where>
         <if test="orderByPerRegister != null and orderByPayTime == null">
-            ORDER BY spr.create_time_ ${orderByPerRegister},u.user_id_ ASC
+            ORDER BY perRegisterTime ${orderByPerRegister},u.user_id_ ASC
         </if>
         <if test="orderByPerRegister != null and orderByPayTime != null">
-            ORDER BY spr.create_time_ ${orderByPerRegister},o.payTime ${orderByPayTime},u.user_id_ ASC
+            ORDER BY perRegisterTime ${orderByPerRegister},payTime ${orderByPayTime},u.user_id_ ASC
         </if>
         <if test="orderByPerRegister == null and orderByPayTime != null">
-            ORDER BY o.payTime ${orderByPayTime},u.user_id_ ASC
+            ORDER BY payTime ${orderByPayTime},u.user_id_ ASC
         </if>
         <if test="orderByPerRegister == null and orderByPayTime == null">
-            ORDER BY spr.create_time_ ASC,u.user_id_ ASC
+            ORDER BY perRegisterTime ASC,u.user_id_ ASC
         </if>
         <include refid="global.limit"/>
     </select>