| 
					
				 | 
			
			
				@@ -3,6 +3,7 @@ package com.fs.course.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.conditions.Wrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.common.exception.ServiceException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.common.utils.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.course.domain.FsUserCoursePeriod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.course.domain.FsUserCoursePeriodDays; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.course.mapper.FsUserCoursePeriodDaysMapper; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -16,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.time.LocalDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.time.LocalDateTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.time.temporal.ChronoUnit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -85,12 +87,45 @@ public class FsUserCoursePeriodServiceImpl implements IFsUserCoursePeriodService 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 结果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public int updateFsUserCoursePeriod(FsUserCoursePeriod fsUserCoursePeriod) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int updateFsUserCoursePeriod(FsUserCoursePeriod fsUserCoursePeriod) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 1. 查询原始数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         fsUserCoursePeriod.setUpdateTime(LocalDateTime.now()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return fsUserCoursePeriodMapper.updateFsUserCoursePeriod(fsUserCoursePeriod); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsUserCoursePeriod fsUserCoursePeriod1 = fsUserCoursePeriodMapper.selectFsUserCoursePeriodById(fsUserCoursePeriod.getPeriodId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int flag = fsUserCoursePeriodMapper.updateFsUserCoursePeriod(fsUserCoursePeriod); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 2. 判定是否变更过开始时间(periodStartingTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (fsUserCoursePeriod1.getPeriodStartingTime().equals(fsUserCoursePeriod.getPeriodStartingTime())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 如果开始时间没有变化,直接返回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return flag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 3. 计算课程时间差(以天数为单位) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        long daysDifference = ChronoUnit.DAYS.between(fsUserCoursePeriod1.getPeriodStartingTime(), fsUserCoursePeriod.getPeriodStartingTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 4. 获取课程天数并进行时间调整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsUserCoursePeriodDays fsUserCoursePeriodDays = new FsUserCoursePeriodDays(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fsUserCoursePeriodDays.setPeriodId(fsUserCoursePeriod1.getPeriodId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsUserCoursePeriodDays> list = fsUserCoursePeriodDaysMapper.selectFsUserCoursePeriodDaysList(fsUserCoursePeriodDays); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 对每个课程日期进行时间增加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (FsUserCoursePeriodDays coursePeriodDays : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 将课程的日期按照差值天数进行调整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LocalDate adjustedDate = coursePeriodDays.getDayDate().plusDays(daysDifference); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LocalDateTime startDateTime = coursePeriodDays.getStartDateTime().plusDays(daysDifference); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LocalDateTime endDateTime = coursePeriodDays.getEndDateTime().plusDays(daysDifference); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LocalDateTime lastJsonTime = coursePeriodDays.getLastJoinTime().plusDays(daysDifference); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            coursePeriodDays.setDayDate(adjustedDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            coursePeriodDays.setStartDateTime(startDateTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            coursePeriodDays.setEndDateTime(endDateTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            coursePeriodDays.setLastJoinTime(lastJsonTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fsUserCoursePeriodDaysMapper.updateFsUserCoursePeriodDays(coursePeriodDays); // 更新数据库中的课程日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return flag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 批量删除会员营期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 |