Browse Source

训练营

Long 1 month ago
parent
commit
042e14dbfc

+ 22 - 0
fs-admin/src/main/java/com/fs/course/controller/FsUserCourseTrainingCampController.java

@@ -4,7 +4,9 @@ import com.fs.common.annotation.Log;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.SortUtils;
+import com.fs.course.domain.FsUserCourseTrainingCamp;
 import com.fs.course.dto.FsUserCourseTrainingCampDTO;
+import com.fs.course.dto.FsUserCourseTrainingCampUpdateDTO;
 import com.fs.course.service.IFsUserCourseTrainingCampService;
 import com.fs.course.vo.FsUserCourseTrainingCampVO;
 import com.github.pagehelper.PageHelper;
@@ -18,6 +20,7 @@ import javax.validation.Valid;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 @RestController
 @RequestMapping("/course/trainingCamp")
@@ -58,6 +61,25 @@ public class FsUserCourseTrainingCampController {
         return AjaxResult.success();
     }
 
+    /**
+     * 修改训练营
+     * @param params    参数
+     * @return  AjaxResult
+     */
+    @PreAuthorize("@ss.hasPermi('course:trainingCamp:edit')")
+    @Log(title = "训练营", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Valid @RequestBody FsUserCourseTrainingCampUpdateDTO params) {
+        FsUserCourseTrainingCamp trainingCamp = fsUserCourseTrainingCampService.getById(params.getTrainingCampId());
+        if (Objects.isNull(trainingCamp)) {
+            return AjaxResult.error("训练营不存在");
+        }
+
+        trainingCamp.setTrainingCampName(params.getTrainingCampName());
+        fsUserCourseTrainingCampService.updateById(trainingCamp);
+        return AjaxResult.success();
+    }
+
     /**
      * 删除训练营
      * @param ids    参数

+ 20 - 0
fs-service-system/src/main/java/com/fs/course/dto/FsUserCourseTrainingCampUpdateDTO.java

@@ -0,0 +1,20 @@
+package com.fs.course.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+public class FsUserCourseTrainingCampUpdateDTO {
+    /**
+     * 主键ID
+     */
+    @NotNull(message = "ID不能为空")
+    private Long trainingCampId;
+    /**
+     * 训练营名称
+     */
+    @NotBlank(message = "训练营名称不能为空")
+    private String trainingCampName;
+}

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

@@ -3,6 +3,8 @@ package com.fs.course.mapper;
 import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fs.course.domain.FsUserCoursePeriodDays;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * 营期课程Mapper接口

+ 30 - 12
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseTrainingCampServiceImpl.java

@@ -1,13 +1,19 @@
 package com.fs.course.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fs.common.BeanCopyUtils;
 import com.fs.common.exception.ServiceException;
+import com.fs.common.utils.DateUtils;
 import com.fs.common.utils.bean.BeanUtils;
 import com.fs.course.domain.FsUserCoursePeriod;
+import com.fs.course.domain.FsUserCoursePeriodDays;
 import com.fs.course.dto.FsUserCourseTrainingCampDTO;
+import com.fs.course.mapper.FsUserCoursePeriodDaysMapper;
 import com.fs.course.mapper.FsUserCoursePeriodMapper;
+import com.fs.course.service.IFsUserCoursePeriodDaysService;
 import com.fs.course.vo.FsUserCourseTrainingCampVO;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -16,9 +22,9 @@ import com.fs.course.domain.FsUserCourseTrainingCamp;
 import com.fs.course.service.IFsUserCourseTrainingCampService;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 会员训练营Service业务层处理
@@ -32,6 +38,7 @@ public class FsUserCourseTrainingCampServiceImpl extends ServiceImpl<FsUserCours
 {
 
     private final FsUserCoursePeriodMapper fsUserCoursePeriodMapper;
+    private final IFsUserCoursePeriodDaysService fsUserCoursePeriodDaysService;
 
     /**
      * 查询训练营列表
@@ -88,15 +95,26 @@ public class FsUserCourseTrainingCampServiceImpl extends ServiceImpl<FsUserCours
         trainingCamp.setCreateTime(LocalDateTime.now());
         baseMapper.insert(trainingCamp);
 
-        // 复制营期
-        List<FsUserCoursePeriod> fsUserCoursePeriods = fsUserCoursePeriodMapper.selectFsUserCoursePeriodListByTrainingCampId(id);
-        if (!fsUserCoursePeriods.isEmpty()) {
-            fsUserCoursePeriods.stream().map(p -> {
-                FsUserCoursePeriod copy = new FsUserCoursePeriod();
-                BeanUtils.copyProperties(p, copy, "periodId");
-                copy.setTrainingCampId(trainingCamp.getTrainingCampId());
-                return copy;
-            }).forEach(fsUserCoursePeriodMapper::insertFsUserCoursePeriod);
-        }
+        // 复制营期-课程
+        fsUserCoursePeriodMapper.selectFsUserCoursePeriodListByTrainingCampId(id).forEach(p -> {
+            // 复制营期
+            FsUserCoursePeriod copy = new FsUserCoursePeriod();
+            BeanUtils.copyProperties(p, copy, "periodId");
+            copy.setTrainingCampId(trainingCamp.getTrainingCampId());
+            fsUserCoursePeriodMapper.insertFsUserCoursePeriod(copy);
+
+            // 复制课程
+            Wrapper<FsUserCoursePeriodDays> queryWrapper = Wrappers.<FsUserCoursePeriodDays>lambdaQuery().eq(FsUserCoursePeriodDays::getPeriodId, p.getPeriodId());
+            List<FsUserCoursePeriodDays> collect = fsUserCoursePeriodDaysService.list(queryWrapper).stream().map(d -> {
+                FsUserCoursePeriodDays copyD = new FsUserCoursePeriodDays();
+                BeanUtils.copyProperties(d, copyD, "id");
+                copyD.setPeriodId(copy.getPeriodId());
+                copyD.setCreateTime(new Date());
+                return copyD;
+            }).collect(Collectors.toList());
+            if (!collect.isEmpty()) {
+                fsUserCoursePeriodDaysService.saveBatch(collect);
+            }
+        });
     }
 }

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

@@ -68,7 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where period_id = #{periodId}
     </select>
 
-    <insert id="insertFsUserCoursePeriod" parameterType="FsUserCoursePeriod">
+    <insert id="insertFsUserCoursePeriod" parameterType="FsUserCoursePeriod" useGeneratedKeys="true" keyProperty="periodId">
         insert into fs_user_course_period
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="periodId != null">period_id,</if>