he2802 преди 3 години
родител
ревизия
09c05f5b1b

+ 34 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/inform/InformController.java

@@ -3,7 +3,13 @@ package com.zhongzheng.controller.inform;
 import java.util.List;
 import java.util.Arrays;
 
+import com.zhongzheng.modules.course.bo.CourseQueryBo;
 import com.zhongzheng.modules.course.vo.CourseUserEducationTypeVo;
+import com.zhongzheng.modules.course.vo.CourseVo;
+import com.zhongzheng.modules.goods.bo.GoodsAttachedQueryBo;
+import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
+import com.zhongzheng.modules.goods.domain.Goods;
+import com.zhongzheng.modules.goods.vo.GoodsAttachedVo;
 import com.zhongzheng.modules.grade.bo.ClassGradeQueryBo;
 import com.zhongzheng.modules.grade.service.IClassGradeService;
 import com.zhongzheng.modules.grade.vo.ClassGradeStudentVo;
@@ -11,6 +17,8 @@ import com.zhongzheng.modules.grade.vo.ClassGradeUserListVo;
 import com.zhongzheng.modules.grade.vo.ClassGradeVo;
 import com.zhongzheng.modules.inform.bo.InformUserQueryBo;
 import com.zhongzheng.modules.inform.service.IInformUserService;
+import com.zhongzheng.modules.inform.vo.CourseInformVo;
+import com.zhongzheng.modules.inform.vo.GoodsInformAttachedVo;
 import com.zhongzheng.modules.inform.vo.InformUserVo;
 import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -137,6 +145,32 @@ public class InformController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 查询商品課程列表
+     */
+    @ApiOperation("查询商品課程列表")
+    @PreAuthorize("@ss.hasPermi('system:course:list')")
+    @GetMapping("/listGoodsCourse")
+    public TableDataInfo<CourseInformVo> listGoodsCourse(GoodsQueryBo bo) {
+        startPage();
+        List<CourseInformVo> list = iInformService.listGoodsCourse(bo);
+        return getDataTable(list);
+    }
+
+
+
+    /**
+     * 查询题目业务层次关系列表
+     */
+    @ApiOperation("查询商品题库列表")
+    @PreAuthorize("@ss.hasPermi('system:business:list')")
+    @GetMapping("/bank/list")
+    public AjaxResult<List<GoodsInformAttachedVo>> bankList(GoodsAttachedQueryBo bo) {
+        List<GoodsInformAttachedVo> list = iInformService.bankList(bo);
+        return AjaxResult.success(list);
+    }
+
+
     /**
      * 有多少学员无该课程或题库
      */

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/vo/QuestionChapterVo.java

@@ -77,4 +77,7 @@ public class QuestionChapterVo {
 	@ApiModelProperty("试卷数量")
 	private Integer examNum;
 
+	@ApiModelProperty("章卷下的卷")
+	private List<ExamVo> examVos;
+
 }

+ 11 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseMenuVo.java

@@ -6,7 +6,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import java.util.Date;
-
+import java.util.List;
 
 
 /**
@@ -50,4 +50,14 @@ public class CourseMenuVo {
 	@Excel(name = "节时长(分钟)")
 	@ApiModelProperty("节时长(分钟)")
 	private Long durationTime;
+
+	/** 章模块关系 */
+	@Excel(name = "章模块关系")
+	@ApiModelProperty("章模块关系")
+	private List<CourseModuleChapterVo> courseModuleChapterVos;
+
+	@Excel(name = "章下面的节")
+	@ApiModelProperty("章下面的节")
+	private List<CourseChapterSectionVo> courseChapterSectionList;
+
 }

+ 5 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseModuleChapterVo.java

@@ -6,7 +6,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import java.util.Date;
-
+import java.util.List;
 
 
 /**
@@ -57,4 +57,8 @@ public class CourseModuleChapterVo {
 	@Excel(name = "排序")
 	@ApiModelProperty("$column.columnComment")
 	private Long sort;
+
+	@Excel(name = "章下面的节")
+	@ApiModelProperty("章下面的节")
+	private List<CourseChapterSectionVo> courseChapterSectionList;
 }

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

@@ -114,6 +114,10 @@ public class GoodsQueryBo extends BaseEntity {
 	/** 学时 */
 	@ApiModelProperty("学时")
 	private Integer classHours;
+
+	/** 商品ID */
+	@ApiModelProperty("商品ID")
+	private Long goodsId;
 	/** 标准价格详情json */
 	@ApiModelProperty("标准价格详情json")
 	private String standPriceJson;

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/inform/mapper/InformMapper.java

@@ -1,8 +1,10 @@
 package com.zhongzheng.modules.inform.mapper;
 
+import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
 import com.zhongzheng.modules.inform.bo.InformQueryBo;
 import com.zhongzheng.modules.inform.domain.Inform;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.inform.vo.CourseInformVo;
 import com.zhongzheng.modules.inform.vo.InformVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -19,4 +21,6 @@ public interface InformMapper extends BaseMapper<Inform> {
     List<InformVo> listInform(InformQueryBo bo);
 
     Integer selectOrder(@Param("goodsId") Long goodsId ,@Param("userId") Long userId);
+
+    List<CourseInformVo> listGoodsCourse(GoodsQueryBo bo);
 }

+ 8 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/inform/service/IInformService.java

@@ -1,6 +1,10 @@
 package com.zhongzheng.modules.inform.service;
 
+import com.zhongzheng.modules.goods.bo.GoodsAttachedQueryBo;
+import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
 import com.zhongzheng.modules.inform.domain.Inform;
+import com.zhongzheng.modules.inform.vo.CourseInformVo;
+import com.zhongzheng.modules.inform.vo.GoodsInformAttachedVo;
 import com.zhongzheng.modules.inform.vo.InformVo;
 import com.zhongzheng.modules.inform.bo.InformQueryBo;
 import com.zhongzheng.modules.inform.bo.InformAddBo;
@@ -53,4 +57,8 @@ public interface IInformService extends IService<Inform> {
 	List<InformVo> listInform(InformQueryBo bo);
 
 	Integer selectNum(InformAddBo bo);
+
+    List<CourseInformVo> listGoodsCourse(GoodsQueryBo bo);
+
+	List<GoodsInformAttachedVo> bankList(GoodsAttachedQueryBo bo);
 }

+ 102 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/inform/service/impl/InformServiceImpl.java

@@ -4,10 +4,28 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.modules.bank.bo.QuestionChapterExamQueryBo;
+import com.zhongzheng.modules.bank.bo.QuestionModuleChapterQueryBo;
+import com.zhongzheng.modules.bank.mapper.QuestionChapterExamMapper;
+import com.zhongzheng.modules.bank.mapper.QuestionModuleChapterMapper;
+import com.zhongzheng.modules.bank.vo.ExamVo;
+import com.zhongzheng.modules.bank.vo.QuestionChapterVo;
+import com.zhongzheng.modules.course.bo.CourseMenuQueryBo;
+import com.zhongzheng.modules.course.mapper.CourseChapterSectionMapper;
+import com.zhongzheng.modules.course.mapper.CourseModuleChapterMapper;
+import com.zhongzheng.modules.course.service.ICourseMenuService;
+import com.zhongzheng.modules.course.vo.CourseMenuVo;
+import com.zhongzheng.modules.course.vo.CourseModuleChapterVo;
+import com.zhongzheng.modules.goods.bo.GoodsAttachedQueryBo;
+import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
+import com.zhongzheng.modules.goods.mapper.GoodsAttachedMapper;
+import com.zhongzheng.modules.goods.vo.GoodsAttachedVo;
 import com.zhongzheng.modules.inform.bo.*;
 import com.zhongzheng.modules.inform.service.IInformCourseService;
 import com.zhongzheng.modules.inform.service.IInformExamService;
 import com.zhongzheng.modules.inform.service.IInformUserService;
+import com.zhongzheng.modules.inform.vo.CourseInformVo;
+import com.zhongzheng.modules.inform.vo.GoodsInformAttachedVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -43,6 +61,26 @@ public class InformServiceImpl extends ServiceImpl<InformMapper, Inform> impleme
     @Autowired
     private IInformUserService iInformUserService;
 
+    @Autowired
+    private ICourseMenuService iCourseMenuService;
+
+    @Autowired
+    private CourseChapterSectionMapper courseChapterSectionMapper;
+
+    @Autowired
+    private CourseModuleChapterMapper courseModuleChapterMapper;
+
+    @Autowired
+    private GoodsAttachedMapper goodsAttachedMapper;
+
+    @Autowired
+    private QuestionModuleChapterMapper questionModuleChapterMapper;
+
+    @Autowired
+    private QuestionChapterExamMapper questionChapterExamMapper;
+
+
+
     @Override
     public InformVo queryById(Long informId){
         Inform db = this.baseMapper.selectById(informId);
@@ -177,6 +215,70 @@ public class InformServiceImpl extends ServiceImpl<InformMapper, Inform> impleme
         return number;
     }
 
+    @Override
+    public List<CourseInformVo> listGoodsCourse(GoodsQueryBo bo) {
+        List<CourseInformVo> courseInformVos = baseMapper.listGoodsCourse(bo);
+        for (CourseInformVo courseInformVo : courseInformVos) {
+            CourseMenuQueryBo courseMenuQueryBo = new CourseMenuQueryBo();
+            courseMenuQueryBo.setCourseId(courseInformVo.getCourseId());
+            List<CourseMenuVo> list = iCourseMenuService.selectList(courseMenuQueryBo);
+            for (CourseMenuVo courseMenuVo : list) {
+                if (courseMenuVo.getType().equals(1)){
+                    List<CourseModuleChapterVo> listById = courseModuleChapterMapper.getListById(courseMenuVo.getMenuId());
+                    for (CourseModuleChapterVo courseModuleChapterVo : listById) {
+                        courseModuleChapterVo.setCourseChapterSectionList(courseChapterSectionMapper.getListById(courseModuleChapterVo.getChapterId()));
+                    }
+                    courseMenuVo.setCourseModuleChapterVos(listById);
+                }
+                if (courseMenuVo.getType().equals(2)){
+                    courseMenuVo.setCourseChapterSectionList(courseChapterSectionMapper.getListById(courseMenuVo.getMenuId()));
+                }
+            }
+            courseInformVo.setCourseMenuList(list);
+        }
+        return courseInformVos;
+    }
+
+    @Override
+    public List<GoodsInformAttachedVo> bankList(GoodsAttachedQueryBo bo) {
+        List<GoodsInformAttachedVo> goodsInformAttachedVos = entity2BankVo(goodsAttachedMapper.selectList(bo));
+        for (GoodsInformAttachedVo goodsInformAttachedVo : goodsInformAttachedVos) {
+            if (goodsInformAttachedVo.getType().equals(1)){
+                QuestionModuleChapterQueryBo questionModuleChapterQueryBo = new QuestionModuleChapterQueryBo();
+                questionModuleChapterQueryBo.setModuleExamId(goodsInformAttachedVo.getMajorId());
+                List<QuestionChapterVo> list = questionModuleChapterMapper.getList(questionModuleChapterQueryBo);
+                for (QuestionChapterVo questionChapterVo : list) {
+                    QuestionChapterExamQueryBo questionChapterExamQueryBo = new QuestionChapterExamQueryBo();
+                    questionChapterExamQueryBo.setChapterExamId(questionChapterVo.getChapterExamId());
+                    List<ExamVo> list1 = questionChapterExamMapper.getList(questionChapterExamQueryBo);
+                    questionChapterVo.setExamVos(list1);
+                }
+                goodsInformAttachedVo.setQuestionChapterVos(list);
+            }
+            if (goodsInformAttachedVo.getType().equals(2)){
+                QuestionChapterExamQueryBo questionChapterExamQueryBo = new QuestionChapterExamQueryBo();
+                questionChapterExamQueryBo.setChapterExamId(goodsInformAttachedVo.getMajorId());
+                List<ExamVo> list1 = questionChapterExamMapper.getList(questionChapterExamQueryBo);
+                goodsInformAttachedVo.setExamVos(list1);
+            }
+        }
+        return goodsInformAttachedVos;
+    }
+
+
+    /**
+     * 实体类转化成视图对象
+     *
+     * @param collection 实体类集合
+     * @return
+     */
+    private List<GoodsInformAttachedVo> entity2BankVo(Collection<GoodsAttachedVo> collection) {
+        List<GoodsInformAttachedVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, GoodsInformAttachedVo.class))
+                .collect(Collectors.toList());
+
+        return voList;
+    }
     public Integer selectNumList(Long userId, List<InformExamAddBo> informExamAddBos,List<InformCourseAddBo> informCourseAddBos) {
         Integer number = 0;
             for (InformExamAddBo informExamAddBo : informExamAddBos) {

+ 119 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/inform/vo/CourseInformVo.java

@@ -0,0 +1,119 @@
+package com.zhongzheng.modules.inform.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.zhongzheng.modules.course.vo.CourseGoodsVo;
+import com.zhongzheng.modules.course.vo.CourseMenuVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 课程视图对象 mall_package
+ *
+ * @author hjl
+ * @date 2021-10-09
+ */
+@Data
+@ApiModel("课程视图对象")
+public class CourseInformVo {
+	private static final long serialVersionUID = 1L;
+
+	/** 课程ID */
+	@ApiModelProperty("课程ID")
+	private Long courseId;
+
+	/** 前缀名称 */
+	@Excel(name = "前缀名称")
+	@ApiModelProperty("前缀名称")
+	private String prefixName;
+	/** 封面地址 */
+	@Excel(name = "封面地址")
+	@ApiModelProperty("封面地址")
+	private String coverUrl;
+	/** 简介 */
+	@Excel(name = "简介")
+	@ApiModelProperty("简介")
+	private String introduction;
+	/** 状态 1正常 0关闭 */
+	@Excel(name = "状态 1正常 0关闭")
+	@ApiModelProperty("状态 1正常 0关闭")
+	private Integer status;
+	/** 教育类型ID */
+	@Excel(name = "教育类型ID")
+	@ApiModelProperty("教育类型ID")
+	private Long educationTypeId;
+	/** 业务层次id */
+	@Excel(name = "业务层次id")
+	@ApiModelProperty("业务层次id")
+	private Long businessId;
+	/** 学校id */
+	@Excel(name = "学校id")
+	@ApiModelProperty("学校id")
+	private Long schoolId;
+	/** 课程名称 */
+	@Excel(name = "课程名称")
+	@ApiModelProperty("课程名称")
+	private String courseName;
+	/** 发布状态 1发布 0未发布 */
+	@Excel(name = "发布状态 1发布 0未发布")
+	@ApiModelProperty("发布状态 1发布 0未发布")
+	private Long publishStatus;
+	/** 排序 */
+	@Excel(name = "排序")
+	@ApiModelProperty("排序")
+	private Integer sort;
+	/** 适合对象 */
+	@Excel(name = "适合对象")
+	@ApiModelProperty("适合对象")
+	private String suitableObject;
+	/** PC详情 */
+	@Excel(name = "PC详情")
+	@ApiModelProperty("PC详情")
+	private String pcDetailHtml;
+	/** 手机详情 */
+	@Excel(name = "手机详情")
+	@ApiModelProperty("手机详情")
+	private String mobileDetailHtml;
+	/** 专业id */
+	@Excel(name = "专业id")
+	@ApiModelProperty("专业id")
+	private Long majorId;
+	/** 编码 */
+	@Excel(name = "编码")
+	@ApiModelProperty("编码")
+	private String code;
+	/** 科目id */
+	@ApiModelProperty("科目id")
+	private Long subjectId;
+	/** 项目ID */
+	@Excel(name = "项目ID")
+	@ApiModelProperty("项目ID")
+	private Long projectId;
+
+	@ApiModelProperty("教育名称")
+	private String educationName;
+	@ApiModelProperty("项目名称")
+	private String projectName;
+	@ApiModelProperty("业务名称")
+	private String businessName;
+	@ApiModelProperty("学校名称")
+	private String schoolName;
+	@ApiModelProperty("专业名称")
+	private String categoryName;
+	@ApiModelProperty("科目名称")
+	private String subjectName;
+	@ApiModelProperty("添加时间")
+	private Long createTime;
+	@ApiModelProperty("修改时间")
+	private Long updateTime;
+	@ApiModelProperty("商品列表")
+	private List<CourseGoodsVo> goodsList;
+
+	@ApiModelProperty("课程目录")
+	private List<CourseMenuVo> courseMenuList;
+
+
+}

+ 61 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/inform/vo/GoodsInformAttachedVo.java

@@ -0,0 +1,61 @@
+package com.zhongzheng.modules.inform.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.zhongzheng.modules.bank.vo.ExamVo;
+import com.zhongzheng.modules.bank.vo.QuestionChapterVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 商品附加产品视图对象 mall_package
+ *
+ * @author  hjl
+ * @date 2021-10-28
+ */
+@Data
+@ApiModel("商品附加产品视图对象")
+public class GoodsInformAttachedVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 商品id */
+	@Excel(name = "商品id")
+	@ApiModelProperty("商品id")
+	private Long goodsId;
+	/** 主ID */
+	@Excel(name = "主ID")
+	@ApiModelProperty("主ID")
+	private Long majorId;
+	/** 排序 */
+	@Excel(name = "排序")
+	@ApiModelProperty("排序")
+	private Integer sort;
+	/** 1模块卷 2章卷 3试卷 */
+	@Excel(name = "1模块卷 2章卷 3试卷")
+	@ApiModelProperty("1模块卷 2章卷 3试卷")
+	private Integer type;
+
+	@ApiModelProperty("卷名")
+	private String name;
+
+	@ApiModelProperty("科目名")
+	private String subjectName;
+
+	@ApiModelProperty("题目数")
+	private Integer questionNum;
+
+
+	@ApiModelProperty("模塊下的章卷")
+	private List<QuestionChapterVo> questionChapterVos;
+
+	@ApiModelProperty("章卷下的卷")
+	private List<ExamVo> examVos;
+
+}

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/bank/QuestionChapterExamMapper.xml

@@ -49,6 +49,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             ) e ON qce.exam_id = e.exam_id
         WHERE
             qce.chapter_exam_id =#{chapterExamId}
-
+          AND e.status = 1
     </select>
 </mapper>

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

@@ -84,7 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 GROUP BY
                     e.exam_id
             ) e ON ga.major_id = e.exam_id
-                AND ga.type = 3
+                AND ga.type = 3 AND e.status = 1
                 LEFT JOIN question_business qb2 ON qb2.major_id = e.exam_id
                 AND qb2.type = 2
                 LEFT JOIN course_subject cs2 ON qb2.subject_id = cs2.id

+ 55 - 0
zhongzheng-system/src/main/resources/mapper/modules/inform/InformMapper.xml

@@ -35,6 +35,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="userStatus" column="user_status"/>
         <result property="receiptNum" column="receipt_num"/>
     </resultMap>
+
+    <resultMap type="com.zhongzheng.modules.inform.vo.CourseInformVo" id="CourseInformVo">
+        <result property="courseId" column="course_id"/>
+        <result property="prefixName" column="prefix_name"/>
+        <result property="coverUrl" column="cover_url"/>
+        <result property="introduction" column="introduction"/>
+        <result property="status" column="status"/>
+        <result property="educationTypeId" column="education_type_id"/>
+        <result property="businessId" column="business_id"/>
+        <result property="schoolId" column="school_id"/>
+        <result property="courseName" column="course_name"/>
+        <result property="publishStatus" column="publish_status"/>
+        <result property="sort" column="sort"/>
+        <result property="suitableObject" column="suitable_object"/>
+        <result property="pcDetailHtml" column="pc_detail_html"/>
+        <result property="mobileDetailHtml" column="mobile_detail_html"/>
+        <result property="majorId" column="major_id"/>
+        <result property="code" column="code"/>
+        <result property="subjectId" column="subject_id"/>
+        <result property="projectId" column="project_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="educationName" column="education_name"/>
+        <result property="projectName" column="project_name"/>
+        <result property="businessName" column="business_name"/>
+        <result property="schoolName" column="school_name"/>
+        <result property="categoryName" column="category_name"/>
+        <result property="subjectName" column="subject_name"/>
+    </resultMap>
     <select id="listInform" parameterType="com.zhongzheng.modules.inform.bo.InformQueryBo"  resultMap="InformVo">
         SELECT
         i.inform_name,
@@ -90,4 +119,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           AND o.goods_id = #{goodsId}
         and
     </select>
+
+    <select id="listGoodsCourse" parameterType="com.zhongzheng.modules.goods.bo.GoodsQueryBo"  resultMap="CourseInformVo">
+        SELECT
+            c.*,
+            cet.education_name,
+            cpt.project_name,
+            cb.business_name,
+            s.school_name,
+            m.category_name,
+            cs.subject_name
+        FROM
+            course c
+                LEFT JOIN course_education_type cet ON c.education_type_id = cet.id AND cet.status =1
+                LEFT JOIN course_project_type cpt ON c.project_id = cpt.id AND cpt.status =1
+                LEFT JOIN course_business cb ON c.business_id = cb.id AND cb.status =1
+                LEFT JOIN school s ON s.id = c.school_id AND s.status =1
+                LEFT JOIN major m ON c.major_id = m.id AND m.status =1
+                LEFT JOIN course_subject cs ON cs.id = c.subject_id AND cs.status =1
+                LEFT JOIN goods_course gc on gc.course_id = c.course_id
+        WHERE
+            1 = 1 AND c.status =1
+          and gc.goods_id =#{goodsId}
+        GROUP BY
+            c.course_id
+        ORDER BY c.course_id DESC
+    </select>
 </mapper>