|  | @@ -2,9 +2,9 @@ package com.fs.course.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.math.BigDecimal;
 | 
	
		
			
				|  |  |  import java.math.BigInteger;
 | 
	
		
			
				|  |  | -import java.util.Date;
 | 
	
		
			
				|  |  | -import java.util.List;
 | 
	
		
			
				|  |  | -import java.util.Map;
 | 
	
		
			
				|  |  | +import java.sql.Wrapper;
 | 
	
		
			
				|  |  | +import java.time.LocalDate;
 | 
	
		
			
				|  |  | +import java.util.*;
 | 
	
		
			
				|  |  |  import java.util.concurrent.atomic.AtomicInteger;
 | 
	
		
			
				|  |  |  import java.util.function.Function;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
	
		
			
				|  | @@ -25,6 +25,7 @@ import com.fs.course.vo.newfs.FsCourseAnalysisCountVO;
 | 
	
		
			
				|  |  |  import com.fs.store.mapper.FsUserMapper;
 | 
	
		
			
				|  |  |  import com.fs.store.param.h5.CourseAnalysisParam;
 | 
	
		
			
				|  |  |  import lombok.AllArgsConstructor;
 | 
	
		
			
				|  |  | +import lombok.extern.slf4j.Slf4j;
 | 
	
		
			
				|  |  |  import org.springframework.beans.BeanUtils;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  import com.fs.course.mapper.FsUserCoursePeriodDaysMapper;
 | 
	
	
		
			
				|  | @@ -39,12 +40,15 @@ import com.fs.course.service.IFsUserCoursePeriodDaysService;
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  @Service
 | 
	
		
			
				|  |  |  @AllArgsConstructor
 | 
	
		
			
				|  |  | +@Slf4j
 | 
	
		
			
				|  |  |  public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCoursePeriodDaysMapper, FsUserCoursePeriodDays> implements IFsUserCoursePeriodDaysService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private final FsUserCoursePeriodMapper fsUserCoursePeriodMapper;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private final FsUserMapper  fsUserMapper;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    private final FsUserCoursePeriodDaysMapper fsUserCoursePeriodDaysMapper;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 查询营期课程
 | 
	
		
			
				|  |  |       *
 | 
	
	
		
			
				|  | @@ -218,6 +222,38 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP
 | 
	
		
			
				|  |  |          }).collect(Collectors.toList());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public R periodCourseMove(Long id, Long targetId) {
 | 
	
		
			
				|  |  | +        List<Long> idList = new ArrayList<>();
 | 
	
		
			
				|  |  | +        idList.add(id);
 | 
	
		
			
				|  |  | +        idList.add(targetId);
 | 
	
		
			
				|  |  | +        List<FsUserCoursePeriodDays> fsUserCoursePeriodDays = baseMapper.selectBatchIds(idList);
 | 
	
		
			
				|  |  | +        if(fsUserCoursePeriodDays.isEmpty()){
 | 
	
		
			
				|  |  | +            return R.error(404, "当前数据或者移动的目标数据不存在");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<FsUserCoursePeriodDays> list = new ArrayList<>();
 | 
	
		
			
				|  |  | +        FsUserCoursePeriodDays periodDays = fsUserCoursePeriodDays.get(0);
 | 
	
		
			
				|  |  | +        LocalDate currentDayDate = periodDays.getDayDate();
 | 
	
		
			
				|  |  | +        Integer lesson = periodDays.getLesson();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        FsUserCoursePeriodDays periodDaysTarget = fsUserCoursePeriodDays.get(1);
 | 
	
		
			
				|  |  | +        periodDays.setDayDate(periodDaysTarget.getDayDate());
 | 
	
		
			
				|  |  | +        periodDays.setLesson(periodDaysTarget.getLesson());
 | 
	
		
			
				|  |  | +        list.add(periodDays);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        periodDaysTarget.setDayDate(currentDayDate);
 | 
	
		
			
				|  |  | +        periodDaysTarget.setLesson(lesson);
 | 
	
		
			
				|  |  | +        list.add(periodDaysTarget);
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            fsUserCoursePeriodDaysMapper.batchUpdateCoursePeriodDays(list);
 | 
	
		
			
				|  |  | +        } catch (RuntimeException e) {
 | 
	
		
			
				|  |  | +            log.error("上移/下移异常,当前id:{}, 目标id:{}", id, targetId);
 | 
	
		
			
				|  |  | +            return R.error();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return R.ok();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      private static FsCourseAnalysisCountVO getCourseAnalysisCountVO(FsUserCoursePeriodDays v, Map<Long, FsCourseAnalysisCountVO> courseMap, Map<Long, FsCourseAnalysisCountVO> redPacketMap, Map<Long, FsCourseAnalysisCountVO> answerMap) {
 | 
	
		
			
				|  |  |          FsCourseAnalysisCountVO countVO = new FsCourseAnalysisCountVO();
 | 
	
		
			
				|  |  |          FsCourseAnalysisCountVO courseVO = courseMap.getOrDefault(v.getVideoId(), countVO);
 |