暂停记录优化,改成弹窗,证件验证方法优化
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