Przeglądaj źródła

1、营期课程上移下移;2、营期列表调整

caoliqin 1 miesiąc temu
rodzic
commit
85af10363c

+ 7 - 0
fs-admin/src/main/java/com/fs/course/controller/FsUserCoursePeriodController.java

@@ -203,4 +203,11 @@ public class FsUserCoursePeriodController extends BaseController {
         return R.ok(result);
     }
 
+    @ApiOperation("营期课程-上移/下移")
+    @PutMapping("/courseMove")
+    public R periodCourseMove(Long id, Long targetId) {
+        return fsUserCoursePeriodDaysService.periodCourseMove(id, targetId);
+    }
+
+
 }

+ 4 - 0
fs-service-system/src/main/java/com/fs/course/domain/FsUserCoursePeriod.java

@@ -78,6 +78,10 @@ public class FsUserCoursePeriod
     @Excel(name = "开营日期-结束时间", width = 30, dateFormat = "yyyy-MM-dd")
     private LocalDate periodEndTime;
 
+    /** 营期状态,1-未开始,2-进行中,3-已结束 */
+    @Excel(name = "营期状态,1-未开始,2-进行中,3-已结束")
+    private Long periodStatus;
+
     @TableField(exist = false)
     private List<Long> companyIdList;
 }

+ 6 - 0
fs-service-system/src/main/java/com/fs/course/mapper/FsUserCoursePeriodDaysMapper.java

@@ -70,4 +70,10 @@ public interface FsUserCoursePeriodDaysMapper extends BaseMapper<FsUserCoursePer
      */
     List<FsUserCoursePeriodDays> selectCourseVideoList(@Param("periodIds") Set<Long> periodIds);
 
+    /**
+     * 批量修改
+     * @param fsUserCoursePeriodDaysList
+     */
+    void batchUpdateCoursePeriodDays(List<FsUserCoursePeriodDays> fsUserCoursePeriodDaysList);
+
 }

+ 9 - 0
fs-service-system/src/main/java/com/fs/course/service/IFsUserCoursePeriodDaysService.java

@@ -90,4 +90,13 @@ public interface IFsUserCoursePeriodDaysService extends IService<FsUserCoursePer
      * @return
      */
     List<FsPeriodCountVO> periodCourseCount(PeriodCountParam param);
+
+    /**
+     * 上移/下移(调整课程的营期时间)
+     * @param id 当前数据
+     * @param targetId 需要移动到的数据
+     * @return
+     */
+    R periodCourseMove(Long id, Long targetId);
+
 }

+ 39 - 3
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCoursePeriodDaysServiceImpl.java

@@ -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);

+ 3 - 0
fs-service-system/src/main/java/com/fs/course/vo/FsUserCoursePeriodVO.java

@@ -82,4 +82,7 @@ public class FsUserCoursePeriodVO implements Serializable {
     @Excel(name = "开营日期-结束时间", width = 30, dateFormat = "yyyy-MM-dd")
     private LocalDate periodEndTime;
 
+    @Excel(name = "营期状态")
+    private Long periodStatus;
+
 }

+ 23 - 0
fs-service-system/src/main/resources/mapper/course/FsUserCoursePeriodDaysMapper.xml

@@ -40,6 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 </foreach>
             </if>
         </where>
+        order by a.day_date
     </select>
 
     <select id="selectFsUserCoursePeriodDaysById" parameterType="Long" resultMap="FsUserCoursePeriodDaysResult">
@@ -119,4 +120,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
 
     </select>
+
+    <update id="batchUpdateCoursePeriodDays" parameterType="java.util.List">
+        update fs_user_course_period_days
+        <trim prefix="set" suffixOverrides=",">
+            day_date =
+                <foreach collection="list" item="item" open="case" close=" end,">
+                    <if test="item.dayDate !=null ">
+                        when id=#{item.id} then #{item.dayDate}
+                    </if>
+                </foreach>
+            lesson =
+            <foreach collection="list" item="item" open="case" close=" end,">
+                <if test="item.lesson !=null ">
+                    when id=#{item.id} then #{item.lesson}
+                </if>
+            </foreach>
+        </trim>
+        where id in
+        <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
+            #{item.id}
+        </foreach>
+    </update>
 </mapper>

+ 1 - 0
fs-service-system/src/main/resources/mapper/course/FsUserCoursePeriodMapper.xml

@@ -46,6 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         fs_user_course_period.training_camp_id,
         fs_user_course_period.create_time,
         fs_user_course_period.update_time,
+        fs_user_course_period.period_status,
         course_style,
         live_room_style,
         red_packet_grant_method,