暂停记录优化,改成弹窗,证件验证方法优化
This commit is contained in:
		| @@ -2,6 +2,7 @@ package com.stdiet.custom.mapper; | ||||
|  | ||||
| import java.util.List; | ||||
| import com.stdiet.custom.domain.SysOrderPause; | ||||
| import org.apache.ibatis.annotations.Param; | ||||
|  | ||||
| /** | ||||
|  * 订单服务暂停Mapper接口 | ||||
| @@ -58,4 +59,11 @@ public interface SysOrderPauseMapper | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int deleteSysOrderPauseByIds(Long[] ids); | ||||
|  | ||||
|     /** | ||||
|      * 根据订单ID、时间范围查询数量 | ||||
|      * @param sysOrderPause | ||||
|      * @return | ||||
|      */ | ||||
|     int getCountByOrderIdAndPauseDate(SysOrderPause sysOrderPause); | ||||
| } | ||||
| @@ -58,4 +58,11 @@ public interface ISysOrderPauseService | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int deleteSysOrderPauseById(Long id); | ||||
|  | ||||
|     /** | ||||
|      * 根据订单ID、时间范围查询数量 | ||||
|      * @param sysOrderPause | ||||
|      * @return | ||||
|      */ | ||||
|     int getCountByOrderIdAndPauseDate(SysOrderPause sysOrderPause); | ||||
| } | ||||
| @@ -67,12 +67,9 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { | ||||
|             SysOrderPause sysOrderPause = new SysOrderPause(); | ||||
|             sysOrderPause.setOrderId(orderId); | ||||
|             List<SysOrderPause> pausesList = sysOrderPauseMapper.selectSysOrderPauseList(sysOrderPause); | ||||
|             //每年每月暂停天数,key为年份加月份,如:2021年1月=20211 | ||||
|             Map<String, Integer> everyYearMonthPauseDay = getEveryYearMonthPauseDay(pausesList); | ||||
|             //该笔订单暂停总天数 | ||||
|             int pauseTotalDay = getTotalByMap(everyYearMonthPauseDay); | ||||
|  | ||||
|             return getServerEndDate(DateUtils.dateToLocalDate(sysOrder.getStartTime()), sysOrder.getServeTimeId().intValue()/30, sysOrder.getGiveServeDay(), pauseTotalDay); | ||||
|             sysOrder.setOrderPauseList(pausesList); | ||||
|             SysOrderCommisionDayDetail sysOrderCommisionDayDetail = statisticsOrderMessage(sysOrder); | ||||
|             return sysOrderCommisionDayDetail.getServerEndDate(); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
| @@ -245,14 +242,16 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { | ||||
|         int serverMonth = sysOrder.getServeTimeId().intValue()/30; | ||||
|         //赠送时长 | ||||
|         int giveDay = sysOrder.getGiveServeDay().intValue(); | ||||
|         //服务到期时间(加赠送时间,不加暂停时间) | ||||
|         LocalDate serverEndDate = serverStartDate.plusMonths(serverMonth).plusDays(giveDay); | ||||
|         //订单金额 | ||||
|         BigDecimal orderAmount = sysOrder.getAmount(); | ||||
|         //每年每月暂停天数,key为年份加月份,如:2021年1月=20211 | ||||
|         Map<String, Integer> everyYearMonthPauseDay = getEveryYearMonthPauseDay(sysOrder.getOrderPauseList()); | ||||
|         Map<String, Integer> everyYearMonthPauseDay = getEveryYearMonthPauseDay(sysOrder.getOrderPauseList(), serverStartDate, serverEndDate); | ||||
|         //该笔订单暂停总天数 | ||||
|         int pauseTotalDay = getTotalByMap(everyYearMonthPauseDay); | ||||
|         //根据开始时间、服务月数、赠送天数、暂停天数算出该笔订单服务到期时间 | ||||
|         LocalDate serverEndDate = getServerEndDate(serverStartDate, serverMonth, giveDay, pauseTotalDay); | ||||
|         //服务到期时间加上暂停时间 | ||||
|         serverEndDate = serverEndDate.plusDays(pauseTotalDay); | ||||
|         //计算每年每月服务天数 | ||||
|         Map<String, Integer> everyYearMonthServerDay = getEveryYearMonthDayCount(serverStartDate, serverEndDate, everyYearMonthPauseDay); | ||||
|         //服务总天数 | ||||
| @@ -282,25 +281,45 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { | ||||
|      * 获取每年每月暂停天数 | ||||
|      * @Param list 暂停记录集合 | ||||
|      * */ | ||||
|     public Map<String, Integer> getEveryYearMonthPauseDay(List<SysOrderPause> list){ | ||||
|     public Map<String, Integer> getEveryYearMonthPauseDay(List<SysOrderPause> list, LocalDate serverStartDate, LocalDate serverEndDate){ | ||||
|         Map<String, Integer> pauseMap = new TreeMap<>(new MyComparator()); | ||||
|         if(list == null){ | ||||
|             return pauseMap; | ||||
|         } | ||||
|         for (SysOrderPause sysOrderPause : list) { | ||||
|             if(sysOrderPause.getPauseStartDate() == null || sysOrderPause.getPauseEndDate() == null){ | ||||
|                 continue; | ||||
|             } | ||||
|             LocalDate pauseStartDate = DateUtils.dateToLocalDate(sysOrderPause.getPauseStartDate()); | ||||
|             LocalDate pauseEndDate = DateUtils.dateToLocalDate(sysOrderPause.getPauseEndDate()); | ||||
|             //判断暂停时间段是否在服务周期范围内 | ||||
|             if(ChronoUnit.DAYS.between(pauseEndDate, serverStartDate) > 0 || ChronoUnit.DAYS.between(serverEndDate, pauseStartDate) > 0){ | ||||
|                 continue; | ||||
|             } | ||||
|             if(ChronoUnit.DAYS.between(pauseStartDate, serverStartDate) > 0){ | ||||
|                 pauseStartDate = serverStartDate; | ||||
|             } | ||||
|             if(ChronoUnit.DAYS.between(serverEndDate, pauseEndDate) > 0){ | ||||
|                 pauseEndDate = serverEndDate; | ||||
|             } | ||||
|             //根据暂停记录获取该条记录在每年每月的暂停天数 | ||||
|             Map<String, Integer> orderYearMonthPauseDay = getEveryYearMonthDayCount(pauseStartDate, pauseEndDate, null); | ||||
|             int totalDay = 0; | ||||
|             //每条暂停记录的暂停天数进行汇总 | ||||
|             for (String key : orderYearMonthPauseDay.keySet()) { | ||||
|                 totalDay += orderYearMonthPauseDay.get(key).intValue(); | ||||
|                 if(pauseMap.containsKey(key)){ | ||||
|                     pauseMap.put(key, pauseMap.get(key) + orderYearMonthPauseDay.get(key)); | ||||
|                 }else{ | ||||
|                     pauseMap.put(key, orderYearMonthPauseDay.get(key)); | ||||
|                 } | ||||
|             } | ||||
|             //服务到期时间刷新 | ||||
|             serverEndDate = serverEndDate.plusDays(totalDay); | ||||
|         } | ||||
|         /*for(String key : pauseMap.keySet()){ | ||||
|             System.out.println(key+":"+pauseMap.get(key).intValue()); | ||||
|         }*/ | ||||
|         return pauseMap; | ||||
|     } | ||||
|  | ||||
| @@ -422,5 +441,7 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { | ||||
|         System.out.println(localDate.getDayOfMonth()); | ||||
|         System.out.println(localDate.getDayOfWeek()); | ||||
|         System.out.println(localDate.getDayOfYear()); | ||||
|  | ||||
|         System.out.println(ChronoUnit.DAYS.between(LocalDate.of(2021, 1,14), LocalDate.now())); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,7 +1,10 @@ | ||||
| package com.stdiet.custom.service.impl; | ||||
|  | ||||
| import java.time.LocalDate; | ||||
| import java.util.Date; | ||||
| import java.util.List; | ||||
| import com.stdiet.common.utils.DateUtils; | ||||
| import com.stdiet.custom.service.ISysCommissionDayService; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | ||||
| import com.stdiet.custom.mapper.SysOrderPauseMapper; | ||||
| @@ -20,6 +23,9 @@ public class SysOrderPauseServiceImpl implements ISysOrderPauseService | ||||
|     @Autowired | ||||
|     private SysOrderPauseMapper sysOrderPauseMapper; | ||||
|  | ||||
|     @Autowired | ||||
|     private ISysCommissionDayService sysCommissionDayService; | ||||
|  | ||||
|     /** | ||||
|      * 查询订单服务暂停 | ||||
|      * | ||||
| @@ -93,4 +99,13 @@ public class SysOrderPauseServiceImpl implements ISysOrderPauseService | ||||
|     { | ||||
|         return sysOrderPauseMapper.deleteSysOrderPauseById(id); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 根据订单ID、时间范围查询数量 | ||||
|      * @param sysOrderPause | ||||
|      * @return | ||||
|      */ | ||||
|     public int getCountByOrderIdAndPauseDate(SysOrderPause sysOrderPause){ | ||||
|         return sysOrderPauseMapper.getCountByOrderIdAndPauseDate(sysOrderPause); | ||||
|     } | ||||
| } | ||||
| @@ -18,6 +18,10 @@ | ||||
|         <result property="delFlag"    column="del_flag"    /> | ||||
|     </resultMap> | ||||
|  | ||||
|     <sql id="baseSelectField"> | ||||
|         id, order_id, pause_start_date, pause_end_date, reason, remarks, create_time, create_by, update_time, update_by, del_flag | ||||
|     </sql> | ||||
|  | ||||
|     <sql id="selectSysOrderPauseVo"> | ||||
|         select id, order_id, pause_start_date, pause_end_date, reason, remarks, create_time, create_by, update_time, update_by, del_flag from sys_order_pause sop | ||||
|     </sql> | ||||
| @@ -97,4 +101,15 @@ | ||||
|         </foreach> | ||||
|     </update> | ||||
|  | ||||
|     <!-- 根据订单ID、时间范围查询数量 --> | ||||
|     <select id="getCountByOrderIdAndPauseDate" parameterType="SysOrderPause" resultType="int"> | ||||
|         select count(id) from sys_order_pause where del_flag = 0 and order_id = #{orderId} | ||||
|         AND (#{pauseStartDate} >= pause_start_date AND pause_end_date >= #{pauseStartDate} | ||||
|         OR #{pauseEndDate} >= pause_start_date AND pause_end_date >= #{pauseEndDate}) | ||||
|         <if test="id != null"> | ||||
|             and id <![CDATA[ <> ]]> #{id} | ||||
|         </if> | ||||
|         order by id desc | ||||
|     </select> | ||||
|  | ||||
| </mapper> | ||||
		Reference in New Issue
	
	Block a user