| 
					
				 | 
			
			
				@@ -1,15 +1,23 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.fs.course.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.time.LocalDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.time.LocalDateTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.common.utils.DateUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.core.conditions.Wrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.core.toolkit.Wrappers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.common.exception.ServiceException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.course.domain.FsUserCoursePeriod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.course.domain.FsUserCoursePeriodDays; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.course.mapper.FsUserCoursePeriodDaysMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.course.mapper.FsUserCoursePeriodMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.course.service.IFsUserCoursePeriodService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.course.vo.FsUserCoursePeriodVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.course.mapper.FsUserCoursePeriodMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.course.domain.FsUserCoursePeriod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.course.service.IFsUserCoursePeriodService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.time.LocalDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.time.LocalDateTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Objects; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 会员营期Service业务层处理 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -22,6 +30,8 @@ public class FsUserCoursePeriodServiceImpl implements IFsUserCoursePeriodService 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private FsUserCoursePeriodMapper fsUserCoursePeriodMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private FsUserCoursePeriodDaysMapper fsUserCoursePeriodDaysMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 查询会员营期 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -109,4 +119,50 @@ public class FsUserCoursePeriodServiceImpl implements IFsUserCoursePeriodService 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<FsUserCoursePeriodVO> selectFsUserCoursePeriodPage(FsUserCoursePeriod fsUserCoursePeriod) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return fsUserCoursePeriodMapper.selectFsUserCoursePeriodPage(fsUserCoursePeriod); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 结束营期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param id    营期ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void closePeriod(Long id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 修改营期结束时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsUserCoursePeriod fsUserCoursePeriod = fsUserCoursePeriodMapper.selectFsUserCoursePeriodById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (Objects.isNull(fsUserCoursePeriod)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new ServiceException("结束营期失败:营期不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (fsUserCoursePeriod.getPeriodStatus() == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new ServiceException("结束营期失败:营期未开始不能进行结束操作!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (fsUserCoursePeriod.getPeriodStatus() == 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new ServiceException("结束营期失败:营期已结束不能进行结束操作!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fsUserCoursePeriod.setPeriodEndTime(LocalDate.now()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fsUserCoursePeriodMapper.updateFsUserCoursePeriod(fsUserCoursePeriod); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 修改大于当前时间的课程状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Wrapper<FsUserCoursePeriodDays> updateWrapper = Wrappers.<FsUserCoursePeriodDays>lambdaUpdate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .set(FsUserCoursePeriodDays::getStatus, 2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .eq(FsUserCoursePeriodDays::getPeriodId, fsUserCoursePeriod.getPeriodId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .eq(FsUserCoursePeriodDays::getStatus, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .gt(FsUserCoursePeriodDays::getDayDate, LocalDate.now()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fsUserCoursePeriodDaysMapper.update(null, updateWrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 更新营期状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void changePeriodStatus() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 开营 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fsUserCoursePeriodMapper.startPeriod(LocalDate.now()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 关营 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fsUserCoursePeriodMapper.endPeriod(LocalDate.now()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |