瀏覽代碼

1、营期按课程根据公司设置红包金额、2、优化营期主页面的展示

caoliqin 17 小時之前
父節點
當前提交
5a7ecf2187

+ 32 - 1
fs-admin/src/main/java/com/fs/course/controller/FsUserCoursePeriodController.java

@@ -4,12 +4,15 @@ import java.util.List;
 
 import com.fs.common.core.domain.R;
 import com.fs.course.domain.FsUserCoursePeriodDays;
+import com.fs.course.domain.FsUserCourseVideoRedPackage;
+import com.fs.course.param.CompanyRedPacket;
 import com.fs.course.service.IFsUserCoursePeriodDaysService;
+import com.fs.course.service.IFsUserCourseVideoRedPackageService;
 import com.fs.course.vo.FsUserCoursePeriodVO;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
@@ -36,9 +39,11 @@ import com.fs.common.core.page.TableDataInfo;
 @RestController
 @AllArgsConstructor
 @RequestMapping("/course/period")
+@Slf4j
 public class FsUserCoursePeriodController extends BaseController {
     private final IFsUserCoursePeriodService fsUserCoursePeriodService;
     private final IFsUserCoursePeriodDaysService fsUserCoursePeriodDaysService;
+    private final IFsUserCourseVideoRedPackageService fsUserCourseVideoRedPackageService;
 
     /**
      * 查询会员营期列表
@@ -132,4 +137,30 @@ public class FsUserCoursePeriodController extends BaseController {
     public R updateListCourseData(@RequestBody List<FsUserCoursePeriodDays> entity){
         return fsUserCoursePeriodDaysService.updateListCourseData(entity);
     }
+
+    @ApiOperation("根据营期id获取公司红包金额列表")
+    @GetMapping("/companyList")
+    public R getCompanyByPeriod(Long periodId, Long videoId) {
+        List<CompanyRedPacket> companyList = fsUserCoursePeriodDaysService.getCompanyByPeriod(periodId, videoId);
+        return R.ok().put("data", companyList);
+    }
+
+    @ApiOperation("批量保存设置红包金额")
+    @PostMapping("/batchRedPacket")
+    public R batchRedPacketMoney(@RequestBody List<FsUserCourseVideoRedPackage> videoRedPackageList) {
+        //查询该公司红包金额数据是否存在,如果存在,则修改
+        try {
+            fsUserCourseVideoRedPackageService.batchDeleteParams(videoRedPackageList);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.info("删除数据失败,参数:{}", videoRedPackageList);
+        }
+
+        int i = fsUserCourseVideoRedPackageService.batchSaveFsUserCourseVideoRedPackage(videoRedPackageList);
+        if (i <= 0) {
+            return R.error("保存失败!");
+        }
+        return R.ok();
+    }
+
 }

+ 6 - 0
fs-service-system/src/main/java/com/fs/course/domain/FsUserCourseVideoRedPackage.java

@@ -31,4 +31,10 @@ public class FsUserCourseVideoRedPackage extends BaseEntity
     @Excel(name = "红包价格")
     private BigDecimal redPacketMoney;
 
+    @Excel(name = "营期id")
+    private Long periodId;
+
+    @Excel(name = "类型,1-以前的数据;2-新的数据")
+    private Integer dataType;
+
 }

+ 4 - 0
fs-service-system/src/main/java/com/fs/course/mapper/FsUserCoursePeriodMapper.java

@@ -1,7 +1,9 @@
 package com.fs.course.mapper;
 
 import java.util.List;
+
 import com.fs.course.domain.FsUserCoursePeriod;
+import com.fs.course.param.CompanyRedPacket;
 import com.fs.course.vo.FsUserCoursePeriodVO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -75,4 +77,6 @@ public interface FsUserCoursePeriodMapper
      */
     @Select("select * from fs_user_course_period where training_camp_id = #{id}")
     List<FsUserCoursePeriod> selectFsUserCoursePeriodListByTrainingCampId(@Param("id") Long id);
+
+    List<CompanyRedPacket> selectCompanyByPeriod(@Param("periodId")Long periodId, @Param("videoId") Long videoId);
 }

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

@@ -70,4 +70,9 @@ public interface FsUserCourseVideoRedPackageMapper
 
     @Select("select * from fs_user_course_video_red_package where video_id =#{videoId} and company_id = #{companyId}")
     FsUserCourseVideoRedPackage selectRedPacketByCompanyId(@Param("videoId") Long videoId,@Param("companyId") Long companyId);
+
+    int batchSaveFsUserCourseVideoRedPackage(@Param("list") List<FsUserCourseVideoRedPackage> redPackageList);
+
+    int batchDeleteParams(@Param("list") List<FsUserCourseVideoRedPackage> videoRedPackageList);
+
 }

+ 25 - 0
fs-service-system/src/main/java/com/fs/course/param/CompanyRedPacket.java

@@ -0,0 +1,25 @@
+package com.fs.course.param;
+
+import com.fs.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("公司红包金额列表")
+public class CompanyRedPacket implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "公司id")
+    private Long companyId;
+
+    @ApiModelProperty(value = "公司名称")
+    private String companyName;
+
+    @Excel(name = "金额")
+    private BigDecimal amount;
+
+}

+ 15 - 7
fs-service-system/src/main/java/com/fs/course/service/IFsUserCoursePeriodDaysService.java

@@ -4,17 +4,18 @@ import java.util.List;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fs.common.core.domain.R;
 import com.fs.course.domain.FsUserCoursePeriodDays;
+import com.fs.course.param.CompanyRedPacket;
 
 /**
  * 营期课程Service接口
- * 
+ *
  * @author fs
  * @date 2025-04-16
  */
 public interface IFsUserCoursePeriodDaysService extends IService<FsUserCoursePeriodDays>{
     /**
      * 查询营期课程
-     * 
+     *
      * @param id 营期课程主键
      * @return 营期课程
      */
@@ -22,7 +23,7 @@ public interface IFsUserCoursePeriodDaysService extends IService<FsUserCoursePer
 
     /**
      * 查询营期课程列表
-     * 
+     *
      * @param fsUserCoursePeriodDays 营期课程
      * @return 营期课程集合
      */
@@ -30,7 +31,7 @@ public interface IFsUserCoursePeriodDaysService extends IService<FsUserCoursePer
 
     /**
      * 新增营期课程
-     * 
+     *
      * @param fsUserCoursePeriodDays 营期课程
      * @return 结果
      */
@@ -38,7 +39,7 @@ public interface IFsUserCoursePeriodDaysService extends IService<FsUserCoursePer
 
     /**
      * 修改营期课程
-     * 
+     *
      * @param fsUserCoursePeriodDays 营期课程
      * @return 结果
      */
@@ -46,7 +47,7 @@ public interface IFsUserCoursePeriodDaysService extends IService<FsUserCoursePer
 
     /**
      * 批量删除营期课程
-     * 
+     *
      * @param ids 需要删除的营期课程主键集合
      * @return 结果
      */
@@ -54,7 +55,7 @@ public interface IFsUserCoursePeriodDaysService extends IService<FsUserCoursePer
 
     /**
      * 删除营期课程信息
-     * 
+     *
      * @param id 营期课程主键
      * @return 结果
      */
@@ -63,4 +64,11 @@ public interface IFsUserCoursePeriodDaysService extends IService<FsUserCoursePer
     R addCourse(FsUserCoursePeriodDays entity);
 
     R updateListCourseData(List<FsUserCoursePeriodDays> entity);
+
+    /**
+     * 根据营期id获取关联的公司
+     * @param periodId 营期id
+     * @return
+     */
+    List<CompanyRedPacket> getCompanyByPeriod(Long periodId, Long videoId);
 }

+ 15 - 0
fs-service-system/src/main/java/com/fs/course/service/IFsUserCourseVideoRedPackageService.java

@@ -59,4 +59,19 @@ public interface IFsUserCourseVideoRedPackageService
      * @return 结果
      */
     public int deleteFsUserCourseVideoRedPackageById(Long id);
+
+    /**
+     * 批量保存设置红包金额
+     * @param fsUserCourseVideoRedPackageList 入参列表
+     * @return 0-失败,大于0-成功
+     */
+    int batchSaveFsUserCourseVideoRedPackage(List<FsUserCourseVideoRedPackage> fsUserCourseVideoRedPackageList);
+
+    /**
+     * 批量删除红包
+     * @param videoRedPackageList 入参
+     * @return
+     */
+    int batchDeleteParams(List<FsUserCourseVideoRedPackage> videoRedPackageList);
+
 }

+ 13 - 8
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCoursePeriodDaysServiceImpl.java

@@ -14,6 +14,7 @@ import com.fs.common.utils.date.DateUtil;
 import com.fs.common.utils.date.TimeTypeEnum;
 import com.fs.course.domain.FsUserCoursePeriod;
 import com.fs.course.mapper.FsUserCoursePeriodMapper;
+import com.fs.course.param.CompanyRedPacket;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import com.fs.course.mapper.FsUserCoursePeriodDaysMapper;
@@ -22,7 +23,7 @@ import com.fs.course.service.IFsUserCoursePeriodDaysService;
 
 /**
  * 营期课程Service业务层处理
- * 
+ *
  * @author fs
  * @date 2025-04-16
  */
@@ -31,10 +32,9 @@ import com.fs.course.service.IFsUserCoursePeriodDaysService;
 public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCoursePeriodDaysMapper, FsUserCoursePeriodDays> implements IFsUserCoursePeriodDaysService {
 
     private final FsUserCoursePeriodMapper fsUserCoursePeriodMapper;
-
     /**
      * 查询营期课程
-     * 
+     *
      * @param id 营期课程主键
      * @return 营期课程
      */
@@ -46,7 +46,7 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP
 
     /**
      * 查询营期课程列表
-     * 
+     *
      * @param fsUserCoursePeriodDays 营期课程
      * @return 营期课程
      */
@@ -58,7 +58,7 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP
 
     /**
      * 新增营期课程
-     * 
+     *
      * @param fsUserCoursePeriodDays 营期课程
      * @return 结果
      */
@@ -71,7 +71,7 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP
 
     /**
      * 修改营期课程
-     * 
+     *
      * @param fsUserCoursePeriodDays 营期课程
      * @return 结果
      */
@@ -84,7 +84,7 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP
 
     /**
      * 批量删除营期课程
-     * 
+     *
      * @param ids 需要删除的营期课程主键
      * @return 结果
      */
@@ -96,7 +96,7 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP
 
     /**
      * 删除营期课程信息
-     * 
+     *
      * @param id 营期课程主键
      * @return 结果
      */
@@ -144,4 +144,9 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP
         super.updateBatchById(collect);
         return R.ok();
     }
+
+    @Override
+    public List<CompanyRedPacket> getCompanyByPeriod(Long periodId, Long videoId) {
+        return fsUserCoursePeriodMapper.selectCompanyByPeriod(periodId, videoId);
+    }
 }

+ 18 - 8
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseVideoRedPackageServiceImpl.java

@@ -9,19 +9,19 @@ import com.fs.course.service.IFsUserCourseVideoRedPackageService;
 
 /**
  * 课程公司红包Service业务层处理
- * 
+ *
  * @author fs
  * @date 2024-10-25
  */
 @Service
-public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVideoRedPackageService 
+public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVideoRedPackageService
 {
     @Autowired
     private FsUserCourseVideoRedPackageMapper fsUserCourseVideoRedPackageMapper;
 
     /**
      * 查询课程公司红包
-     * 
+     *
      * @param id 课程公司红包主键
      * @return 课程公司红包
      */
@@ -33,7 +33,7 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
 
     /**
      * 查询课程公司红包列表
-     * 
+     *
      * @param fsUserCourseVideoRedPackage 课程公司红包
      * @return 课程公司红包
      */
@@ -45,7 +45,7 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
 
     /**
      * 新增课程公司红包
-     * 
+     *
      * @param fsUserCourseVideoRedPackage 课程公司红包
      * @return 结果
      */
@@ -57,7 +57,7 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
 
     /**
      * 修改课程公司红包
-     * 
+     *
      * @param fsUserCourseVideoRedPackage 课程公司红包
      * @return 结果
      */
@@ -69,7 +69,7 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
 
     /**
      * 批量删除课程公司红包
-     * 
+     *
      * @param ids 需要删除的课程公司红包主键
      * @return 结果
      */
@@ -81,7 +81,7 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
 
     /**
      * 删除课程公司红包信息
-     * 
+     *
      * @param id 课程公司红包主键
      * @return 结果
      */
@@ -90,4 +90,14 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
     {
         return fsUserCourseVideoRedPackageMapper.deleteFsUserCourseVideoRedPackageById(id);
     }
+
+    @Override
+    public int batchSaveFsUserCourseVideoRedPackage(List<FsUserCourseVideoRedPackage> fsUserCourseVideoRedPackageList) {
+        return fsUserCourseVideoRedPackageMapper.batchSaveFsUserCourseVideoRedPackage(fsUserCourseVideoRedPackageList);
+    }
+
+    @Override
+    public int batchDeleteParams(List<FsUserCourseVideoRedPackage> videoRedPackageList) {
+        return fsUserCourseVideoRedPackageMapper.batchDeleteParams(videoRedPackageList);
+    }
 }

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

@@ -28,7 +28,7 @@ public class FsUserCoursePeriodVO implements Serializable {
     private String companyId;
 
     @Excel(name = "公司名称")
-    private Long companyName;
+    private String companyName;
 
     /** 课程id */
     @Excel(name = "课程id")
@@ -44,7 +44,7 @@ public class FsUserCoursePeriodVO implements Serializable {
 
     /** 训练营id */
     @Excel(name = "所属训练营")
-    private Long trainingCampName;
+    private String trainingCampName;
 
     /** 创建时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

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

@@ -40,10 +40,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectFsUserCoursePeriodPage" parameterType="FsUserCoursePeriod" resultType="FsUserCoursePeriodVO">
         SELECT
-        period_id,
-        period_name,
+        fs_user_course_period.period_id,
+        fs_user_course_period.period_name,
         fs_user_course_period.company_id,
-        training_camp_id,
+        fs_user_course_period.training_camp_id,
         fs_user_course_period.create_time,
         fs_user_course_period.update_time,
         course_style,
@@ -51,15 +51,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         red_packet_grant_method,
         period_type,
         period_end_time,
-        period_starting_time
+        period_starting_time,
+        fctc.training_camp_name AS trainingCampName,
+        GROUP_CONCAT( company.company_name ) AS companyName
         FROM
         fs_user_course_period
+        left join fs_user_course_training_camp fctc on fctc.training_camp_id = fs_user_course_period.training_camp_id
+        left join company on FIND_IN_SET(company.company_id, fs_user_course_period.company_id) > 0
         <where>
-            <if test="trainingCampId != null"> and training_camp_id = #{trainingCampId}</if>
+            <if test="trainingCampId != null"> and fs_user_course_period.training_camp_id = #{trainingCampId}</if>
             <if test="periodName != null  and periodName != ''"> and period_name like concat('%', #{periodName}, '%')</if>
+            <if test="companyIdList != null and companyIdList.size() > 0 ">
+                and fs_user_course_period.company_id in
+                <foreach item="companyId" index="index" collection="companyIdList"
+                         open="(" separator="," close=")">
+                    #{companyId}
+                </foreach>
+            </if>
             <if test="periodStartingTime != null "> and period_starting_time = #{periodStartingTime}</if>
             <if test="periodEndTime != null "> and period_end_time = #{periodEndTime}</if>
         </where>
+        group by fs_user_course_period.period_id
         order by create_time desc
     </select>
 
@@ -129,4 +141,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
     </delete>
 
+    <select id="selectCompanyByPeriod" resultType="com.fs.course.param.CompanyRedPacket">
+        SELECT
+        company.company_id,
+        company.company_name,
+        ifnull ( fvrp.red_packet_money, 0 ) AS amount
+        FROM
+        company
+        LEFT JOIN fs_user_course_video_red_package fvrp ON fvrp.company_id = company.company_id
+        AND fvrp.period_id = #{periodId}
+        <if test="videoId != null and videoId!='' ">
+            and fvrp.video_id = #{videoId}
+        </if>
+        WHERE
+        company.company_id IN (
+        SELECT
+        company.company_id
+        FROM
+        company
+        LEFT JOIN fs_user_course_period fcp ON FIND_IN_SET ( company.company_id, fcp.company_id ) > 0
+        WHERE
+        fcp.period_id = #{periodId}
+        )
+    </select>
+
 </mapper>

+ 30 - 0
fs-service-system/src/main/resources/mapper/course/FsUserCourseVideoRedPackageMapper.xml

@@ -63,4 +63,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+
+    <insert id="batchSaveFsUserCourseVideoRedPackage" useGeneratedKeys="true" keyProperty="id">
+        insert into fs_user_course_video_red_package
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="list[0].companyId != null">company_id,</if>
+            <if test="list[0].videoId != null">video_id,</if>
+            <if test="list[0].redPacketMoney != null">red_packet_money,</if>
+            <if test="list[0].periodId !=null">period_id,</if>
+            <if test="list[0].dataType !=null">data_type,</if>
+        </trim>
+        VALUES
+        <foreach collection="list" item="item" separator=",">
+            <trim  prefix="(" suffix=")" suffixOverrides=",">
+                <if test="item.companyId != null">#{item.companyId},</if>
+                <if test="item.videoId != null">#{item.videoId},</if>
+                <if test="item.redPacketMoney != null">#{item.redPacketMoney},</if>
+                <if test="item.periodId !=null">#{item.periodId},</if>
+                <if test="item.dataType !=null">#{item.dataType},</if>
+            </trim>
+        </foreach>
+    </insert>
+
+    <!-- 根据营期id、视频id、公司id删除红包数据   -->
+    <delete id="batchDeleteParams" parameterType="String">
+        delete from fs_user_course_video_red_package
+        WHERE
+        <foreach collection="list" item="item" separator=" OR ">
+            (data_type = 2 AND period_id = #{item.periodId} AND video_id = #{item.videoId} AND company_id = #{item.companyId})
+        </foreach>
+    </delete>
 </mapper>