Browse Source

fix 双师资

he2802 3 years ago
parent
commit
fb2f1cb233

+ 3 - 3
zhongzheng-admin/src/main/java/com/zhongzheng/controller/goods/GoodsCourseTeacherController.java

@@ -48,10 +48,10 @@ public class GoodsCourseTeacherController extends BaseController {
     @ApiOperation("查询商品课程双师资绑定列表")
     @PreAuthorize("@ss.hasPermi('system:teacher:list')")
     @GetMapping("/list")
-    public TableDataInfo<GoodsCourseTeacherVo> list(GoodsCourseTeacherQueryBo bo) {
-        startPage();
+    public AjaxResult<List<GoodsCourseTeacherVo>> list(GoodsCourseTeacherQueryBo bo) {
+        bo.setStatus(1);
         List<GoodsCourseTeacherVo> list = iGoodsCourseTeacherService.queryList(bo);
-        return getDataTable(list);
+        return AjaxResult.success(list);
     }
 
 

+ 48 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/goods/GoodsCourseTeacherController.java

@@ -0,0 +1,48 @@
+package com.zhongzheng.controller.goods;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.goods.bo.GoodsCourseTeacherAddBo;
+import com.zhongzheng.modules.goods.bo.GoodsCourseTeacherEditBo;
+import com.zhongzheng.modules.goods.bo.GoodsCourseTeacherQueryBo;
+import com.zhongzheng.modules.goods.service.IGoodsCourseTeacherService;
+import com.zhongzheng.modules.goods.vo.GoodsCourseTeacherVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品课程双师资绑定Controller
+ *
+ * @author hjl
+ * @date 2022-09-14
+ */
+@Api(value = "商品课程双师资绑定控制器", tags = {"商品课程双师资绑定管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/goods/course/teacher")
+public class GoodsCourseTeacherController extends BaseController {
+
+    private final IGoodsCourseTeacherService iGoodsCourseTeacherService;
+
+    /**
+     * 查询商品课程双师资绑定列表
+     */
+    @ApiOperation("查询商品课程双师资绑定列表")
+    @PreAuthorize("@ss.hasPermi('system:teacher:list')")
+    @GetMapping("/list")
+    public AjaxResult<List<GoodsCourseTeacherVo>> list(GoodsCourseTeacherQueryBo bo) {
+        bo.setStatus(1);
+        List<GoodsCourseTeacherVo> list = iGoodsCourseTeacherService.queryList(bo);
+        return AjaxResult.success(list);
+    }
+
+
+}

+ 4 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsCourseTeacherAddBo.java

@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import java.util.Date;
-
+import java.util.List;
 
 
 /**
@@ -18,9 +18,9 @@ import java.util.Date;
 @ApiModel("商品课程双师资绑定添加对象")
 public class GoodsCourseTeacherAddBo {
 
-    /** 课程ID拼接 */
-    @ApiModelProperty("课程ID拼接")
-    private String courseIds;
+    /** 课程数组 */
+    @ApiModelProperty("课程数组")
+    private List<GoodsCourseTeacherItemBo> courseList;
     /** 双师资模板名称 */
     @ApiModelProperty("双师资模板名称")
     private String name;

+ 4 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsCourseTeacherEditBo.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -21,9 +22,9 @@ public class GoodsCourseTeacherEditBo {
     @ApiModelProperty("$column.columnComment")
     private Long id;
 
-    /** 课程ID拼接 */
-    @ApiModelProperty("课程ID拼接")
-    private String courseIds;
+    /** 课程数组 */
+    @ApiModelProperty("课程数组")
+    private List<GoodsCourseTeacherItemBo> courseList;
     /** 双师资模板名称 */
     @ApiModelProperty("双师资模板名称")
     private String name;

+ 29 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsCourseTeacherItemBo.java

@@ -0,0 +1,29 @@
+package com.zhongzheng.modules.goods.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 商品课程双师资绑定添加对象 goods_course_teacher
+ *
+ * @author hjl
+ * @date 2022-09-14
+ */
+@Data
+@ApiModel("商品课程双师资绑定添加对象")
+public class GoodsCourseTeacherItemBo {
+
+    /** 课程ID */
+    @ApiModelProperty("课程ID")
+    private Long courseId;
+    /** 课程别名 */
+    @ApiModelProperty("课程别名")
+    private String aliasName;
+    @ApiModelProperty("课程名称")
+    private String courseName;
+    @ApiModelProperty("课程编码")
+    private String code;
+
+}

+ 5 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsCourseTeacherMapper.java

@@ -1,7 +1,11 @@
 package com.zhongzheng.modules.goods.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.goods.bo.GoodsCourseTeacherQueryBo;
 import com.zhongzheng.modules.goods.domain.GoodsCourseTeacher;
+import com.zhongzheng.modules.goods.vo.GoodsCourseTeacherVo;
+
+import java.util.List;
 
 /**
  * 商品课程双师资绑定Mapper接口
@@ -10,5 +14,5 @@ import com.zhongzheng.modules.goods.domain.GoodsCourseTeacher;
  * @date 2022-09-14
  */
 public interface GoodsCourseTeacherMapper extends BaseMapper<GoodsCourseTeacher> {
-
+   List<GoodsCourseTeacherVo> getList(GoodsCourseTeacherQueryBo bo);
 }

+ 46 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsCourseTeacherServiceImpl.java

@@ -1,21 +1,31 @@
 package com.zhongzheng.modules.goods.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.course.domain.CourseSectionWatchPer;
 import com.zhongzheng.modules.goods.bo.GoodsCourseTeacherAddBo;
 import com.zhongzheng.modules.goods.bo.GoodsCourseTeacherEditBo;
+import com.zhongzheng.modules.goods.bo.GoodsCourseTeacherItemBo;
 import com.zhongzheng.modules.goods.bo.GoodsCourseTeacherQueryBo;
+import com.zhongzheng.modules.goods.domain.GoodsCourse;
 import com.zhongzheng.modules.goods.domain.GoodsCourseTeacher;
 import com.zhongzheng.modules.goods.mapper.GoodsCourseTeacherMapper;
+import com.zhongzheng.modules.goods.service.IGoodsCourseService;
 import com.zhongzheng.modules.goods.service.IGoodsCourseTeacherService;
 import com.zhongzheng.modules.goods.vo.GoodsCourseTeacherVo;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -30,6 +40,9 @@ import java.util.stream.Collectors;
 @Service
 public class GoodsCourseTeacherServiceImpl extends ServiceImpl<GoodsCourseTeacherMapper, GoodsCourseTeacher> implements IGoodsCourseTeacherService {
 
+    @Autowired
+    private IGoodsCourseService iGoodsCourseService;
+
     @Override
     public GoodsCourseTeacherVo queryById(Long id){
         GoodsCourseTeacher db = this.baseMapper.selectById(id);
@@ -38,12 +51,7 @@ public class GoodsCourseTeacherServiceImpl extends ServiceImpl<GoodsCourseTeache
 
     @Override
     public List<GoodsCourseTeacherVo> queryList(GoodsCourseTeacherQueryBo bo) {
-        LambdaQueryWrapper<GoodsCourseTeacher> lqw = Wrappers.lambdaQuery();
-        lqw.eq(StrUtil.isNotBlank(bo.getCourseIds()), GoodsCourseTeacher::getCourseIds, bo.getCourseIds());
-        lqw.like(StrUtil.isNotBlank(bo.getName()), GoodsCourseTeacher::getName, bo.getName());
-        lqw.eq(bo.getStatus() != null, GoodsCourseTeacher::getStatus, bo.getStatus());
-        lqw.eq(bo.getGoodsId() != null, GoodsCourseTeacher::getGoodsId, bo.getGoodsId());
-        return entity2Vo(this.list(lqw));
+        return baseMapper.getList(bo);
     }
 
     /**
@@ -68,7 +76,22 @@ public class GoodsCourseTeacherServiceImpl extends ServiceImpl<GoodsCourseTeache
 
     @Override
     public Boolean insertByAddBo(GoodsCourseTeacherAddBo bo) {
+        if(Validator.isEmpty(bo.getCourseList())||bo.getCourseList().size()<2){
+            throw new CustomException("课程列表错误");
+        }
+        List<Long> idList = new ArrayList<>();
+        for(GoodsCourseTeacherItemBo item : bo.getCourseList()){
+            idList.add(item.getCourseId());
+            if(Validator.isEmpty(item.getAliasName())||Validator.isEmpty(item.getCourseId())){
+                throw new CustomException("课程参数错误");
+            }
+            iGoodsCourseService.update(new LambdaUpdateWrapper<GoodsCourse>()
+                    .set(GoodsCourse::getAliasName,item.getAliasName())
+                    .eq(GoodsCourse::getGoodsId,bo.getGoodsId()).eq(GoodsCourse::getCourseId,item.getCourseId()));
+        }
+        String courseIds = StringUtils.join(idList,",");
         GoodsCourseTeacher add = BeanUtil.toBean(bo, GoodsCourseTeacher.class);
+        add.setCourseIds(courseIds);
         validEntityBeforeSave(add);
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
@@ -78,6 +101,23 @@ public class GoodsCourseTeacherServiceImpl extends ServiceImpl<GoodsCourseTeache
     @Override
     public Boolean updateByEditBo(GoodsCourseTeacherEditBo bo) {
         GoodsCourseTeacher update = BeanUtil.toBean(bo, GoodsCourseTeacher.class);
+        if(Validator.isEmpty(bo.getStatus())||bo.getStatus()!=-1){
+            if(Validator.isEmpty(bo.getCourseList())||bo.getCourseList().size()<2){
+                throw new CustomException("课程列表错误");
+            }
+            List<Long> idList = new ArrayList<>();
+            for(GoodsCourseTeacherItemBo item : bo.getCourseList()){
+                idList.add(item.getCourseId());
+                if(Validator.isEmpty(item.getAliasName())||Validator.isEmpty(item.getCourseId())){
+                    throw new CustomException("课程参数错误");
+                }
+                iGoodsCourseService.update(new LambdaUpdateWrapper<GoodsCourse>()
+                        .set(GoodsCourse::getAliasName,item.getAliasName())
+                        .eq(GoodsCourse::getGoodsId,bo.getGoodsId()).eq(GoodsCourse::getCourseId,item.getCourseId()));
+            }
+            String courseIds = StringUtils.join(idList,",");
+            update.setCourseIds(courseIds);
+        }
         validEntityBeforeSave(update);
         update.setUpdateTime(DateUtils.getNowTime());
         return this.updateById(update);

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsCourseTeacherVo.java

@@ -2,11 +2,12 @@ package com.zhongzheng.modules.goods.vo;
 
 import com.zhongzheng.common.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zhongzheng.modules.goods.bo.GoodsCourseTeacherItemBo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import java.util.Date;
-
+import java.util.List;
 
 
 /**
@@ -40,4 +41,6 @@ public class GoodsCourseTeacherVo {
 	@Excel(name = "商品ID")
 	@ApiModelProperty("商品ID")
 	private Long goodsId;
+	@ApiModelProperty("课程列表")
+	private List<GoodsCourseTeacherItemBo> courseList;
 }

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsCourseMapper.xml

@@ -77,7 +77,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         cs.subject_name,
                gc.sort as g_sort,
         c.course_show,
-        (SELECT count(*) from goods_course_teacher gct where gct.goods_id = gc.goods_id and  FIND_IN_SET(gc.course_id,gct.course_ids)) bind_status
+        (SELECT count(*) from goods_course_teacher gct where gct.goods_id = gc.goods_id and  FIND_IN_SET(gc.course_id,gct.course_ids) and gct.status =1 ) bind_status
         FROM
         goods_course gc
         LEFT JOIN course c ON gc.course_id = c.course_id

+ 41 - 0
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsCourseTeacherMapper.xml

@@ -14,5 +14,46 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="goodsId" column="goods_id"/>
     </resultMap>
 
+    <resultMap type="com.zhongzheng.modules.goods.vo.GoodsCourseTeacherVo" id="GoodsCourseTeacherVoResult">
+        <result property="id" column="id"/>
+        <result property="courseIds" column="course_ids"/>
+        <result property="name" column="name"/>
+        <result property="status" column="status"/>
+        <result property="goodsId" column="goods_id"/>
+        <collection property="courseList" column="{courseIds=course_ids,goodsId=goods_id}" select="findCourseList"/>
+    </resultMap>
+
+    <resultMap type="com.zhongzheng.modules.goods.bo.GoodsCourseTeacherItemBo" id="GoodsCourseTeacherItemResult">
+        <result property="courseId" column="course_id"/>
+        <result property="courseName" column="course_name"/>
+        <result property="aliasName" column="alias_name"/>
+        <result property="code" column="code"/>
+    </resultMap>
+
+    <select id="findCourseList"  resultMap="GoodsCourseTeacherItemResult">
+        SELECT
+            gc.course_id,
+            gc.alias_name,
+            c.course_name,
+            c.code
+        FROM
+            goods_course gc
+                LEFT JOIN course c ON gc.course_id = c.course_id
+        WHERE
+            gc.goods_id = #{goodsId}
+          AND FIND_IN_SET(
+                gc.course_id,
+                #{courseIds})
+        order by gc.sort
+    </select>
 
+    <select id="getList" parameterType="com.zhongzheng.modules.goods.bo.GoodsCourseTeacherQueryBo" resultMap="GoodsCourseTeacherVoResult">
+        SELECT
+            gct.*
+        FROM
+            goods_course_teacher gct
+        WHERE
+            gct.goods_id =  #{goodsId}
+        and gct.status = 1
+    </select>
 </mapper>