Sfoglia il codice sorgente

删除营期删除多余数据避免冗余

yfh 4 giorni fa
parent
commit
d06ea2bb06

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

@@ -5,6 +5,7 @@ import com.fs.course.domain.FsUserCoursePeriodDays;
 import com.fs.course.domain.FsUserWatchCourseStatistics;
 import com.fs.his.vo.OptionsVO;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 
 import java.time.LocalDateTime;
 import java.util.List;
@@ -103,4 +104,16 @@ public interface FsUserCoursePeriodDaysMapper extends BaseMapper<FsUserCoursePer
      */
     List<FsUserWatchCourseStatistics> selectDaysCountList();
 
+    /**
+     * 批量删除
+     * @param ids
+     * @param delFlag
+     */
+    @Update("<script>" +
+            "UPDATE fs_user_course_period_days SET del_flag = #{delFlag} WHERE id IN " +
+            "<foreach collection='ids' item='id' open='(' separator=',' close=')'>" +
+            "#{id}" +
+            "</foreach>" +
+            "</script>")
+    int updateBatchDelFlag(@Param("ids") Long [] ids, @Param("delFlag") Integer delFlag);
 }

+ 12 - 0
fs-service-system/src/main/java/com/fs/course/mapper/FsUserCourseVideoRedPackageMapper.java

@@ -97,4 +97,16 @@ public interface FsUserCourseVideoRedPackageMapper
     int updateRedPackageByParams(FsUserCourseVideoRedPackage videoRedPackage);
 
     List<FsUserCourseVideoRedPackage> selectByRuleIds(@Param("ruleIds") List<Long> ruleIds);
+    /**
+     * 批量删除
+     * @param ids
+     * @param delFlag
+     */
+    @Update("<script>" +
+            "UPDATE fs_user_course_video_red_package SET del_flag = #{delFlag} WHERE video_id IN " +
+            "<foreach collection='ids' item='id' open='(' separator=',' close=')'>" +
+            "#{id}" +
+            "</foreach>" +
+            "</script>")
+    int updateBatchDelFlag(@Param("ids") Long [] ids, @Param("delFlag") Integer delFlag);
 }

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

@@ -117,4 +117,5 @@ public interface IFsUserCoursePeriodDaysService extends IService<FsUserCoursePer
      * 更新营期课程状态
      */
     void changePeriodCourseStatus();
+
 }

+ 17 - 1
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCoursePeriodServiceImpl.java

@@ -8,7 +8,9 @@ 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.mapper.FsUserCourseVideoRedPackageMapper;
 import com.fs.course.service.IFsUserCoursePeriodService;
+import com.fs.course.service.IFsUserCourseVideoRedPackageService;
 import com.fs.course.vo.FsUserCoursePeriodVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -35,6 +37,9 @@ public class FsUserCoursePeriodServiceImpl implements IFsUserCoursePeriodService
     @Resource
     private FsUserCoursePeriodDaysMapper fsUserCoursePeriodDaysMapper;
 
+    @Resource
+    private FsUserCourseVideoRedPackageMapper fsUserCourseVideoRedPackageMapper;
+
     /**
      * 查询会员营期
      *
@@ -138,7 +143,18 @@ public class FsUserCoursePeriodServiceImpl implements IFsUserCoursePeriodService
         if (checkPeriodStatus(periodIds)) {
             throw new ServiceException("存在进行中或已结束的营期,不允许删除");
         }
-        return fsUserCoursePeriodMapper.updateBatchDelFlag(periodIds,1);
+        int flag = fsUserCoursePeriodMapper.updateBatchDelFlag(periodIds,1);
+        //删除课程
+        Set<Long> set = Arrays.asList(periodIds).stream().collect(Collectors.toSet());
+        List<FsUserCoursePeriodDays> fsUserCoursePeriodDays = fsUserCoursePeriodDaysMapper.selectCourseVideoList(set);
+        List<Long> periodDayIds = fsUserCoursePeriodDays.stream().map(FsUserCoursePeriodDays::getId).collect(Collectors.toList());
+        List<Long> videoIds = fsUserCoursePeriodDays.stream().map(FsUserCoursePeriodDays::getVideoId).collect(Collectors.toList());
+        if(!periodDayIds.isEmpty()){
+            fsUserCoursePeriodDaysMapper.updateBatchDelFlag(periodDayIds.toArray(new Long[0]),1);
+            //删除红包记录
+            fsUserCourseVideoRedPackageMapper.updateBatchDelFlag(videoIds.toArray(new Long[0]),1);
+        }
+        return flag;
     }
     private boolean checkPeriodStatus(Long[] ids) {
         LocalDate currentDate = LocalDate.now(); // 2025-06-30

+ 17 - 0
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseTrainingCampServiceImpl.java

@@ -11,10 +11,13 @@ import com.fs.course.domain.FsUserCoursePeriod;
 import com.fs.course.domain.FsUserCoursePeriodDays;
 import com.fs.course.domain.FsUserCourseTrainingCamp;
 import com.fs.course.dto.FsUserCourseTrainingCampDTO;
+import com.fs.course.mapper.FsUserCoursePeriodDaysMapper;
 import com.fs.course.mapper.FsUserCoursePeriodMapper;
 import com.fs.course.mapper.FsUserCourseTrainingCampMapper;
+import com.fs.course.mapper.FsUserCourseVideoRedPackageMapper;
 import com.fs.course.service.IFsUserCoursePeriodDaysService;
 import com.fs.course.service.IFsUserCourseTrainingCampService;
+import com.fs.course.service.IFsUserCourseVideoRedPackageService;
 import com.fs.course.vo.FsUserCourseTrainingCampVO;
 import com.fs.his.vo.OptionsVO;
 import lombok.AllArgsConstructor;
@@ -38,6 +41,9 @@ public class FsUserCourseTrainingCampServiceImpl extends ServiceImpl<FsUserCours
 {
 
     private final FsUserCoursePeriodMapper fsUserCoursePeriodMapper;
+    private final FsUserCourseVideoRedPackageMapper fsUserCourseVideoRedPackageMapper;
+
+    private final FsUserCoursePeriodDaysMapper fsUserCoursePeriodDaysMapper;
     private final IFsUserCoursePeriodDaysService fsUserCoursePeriodDaysService;
 
     /**
@@ -83,6 +89,17 @@ public class FsUserCourseTrainingCampServiceImpl extends ServiceImpl<FsUserCours
         if(!periodIds.isEmpty()){
             fsUserCoursePeriodMapper.updateBatchDelFlag(periodIds.toArray(new Long[0]),1);
         }
+        //删除课程
+        Set<Long> set = periodIds.stream().collect(Collectors.toSet());
+        List<FsUserCoursePeriodDays> fsUserCoursePeriodDays = fsUserCoursePeriodDaysMapper.selectCourseVideoList(set);
+        List<Long> periodDayIds = fsUserCoursePeriodDays.stream().map(FsUserCoursePeriodDays::getId).collect(Collectors.toList());
+        List<Long> videoIds = fsUserCoursePeriodDays.stream().map(FsUserCoursePeriodDays::getVideoId).collect(Collectors.toList());
+        if(!periodDayIds.isEmpty()){
+            fsUserCoursePeriodDaysMapper.updateBatchDelFlag(periodDayIds.toArray(new Long[0]),1);
+            //删除红包记录
+            fsUserCourseVideoRedPackageMapper.updateBatchDelFlag(videoIds.toArray(new Long[0]),1);
+        }
+
     }
 
     /**