he2802 2 年 前
コミット
8accc4eb4d
16 ファイル変更224 行追加21 行削除
  1. 31 3
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/course/TopCourseEducationTypeController.java
  2. 32 4
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/course/TopCourseProjectTypeController.java
  3. 4 0
      zhongzheng-admin/src/main/resources/application-dev.yml
  4. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/bo/TopCostTpItemAddBo.java
  5. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/bo/TopCostTpItemEditBo.java
  6. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/bo/TopCostTpItemQueryBo.java
  7. 3 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/vo/TopCostTpItemVo.java
  8. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopCourseEducationTypeAddBo.java
  9. 3 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopCourseEducationTypeEditBo.java
  10. 4 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopCourseEducationTypeQueryBo.java
  11. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopCourseProjectTypeQueryBo.java
  12. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/domain/TopCourseEducationType.java
  13. 7 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopCourseProjectTypeMapper.java
  14. 33 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopCourseEducationTypeServiceImpl.java
  15. 37 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopCourseProjectTypeServiceImpl.java
  16. 62 0
      zhongzheng-system/src/main/resources/mapper/modules/top/TopCourseProjectTypeMapper.xml

+ 31 - 3
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/course/TopCourseEducationTypeController.java

@@ -1,7 +1,14 @@
 package com.zhongzheng.controller.course;
 
+import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.course.bo.CourseEducationTypeAddBo;
+import com.zhongzheng.modules.course.bo.CourseEducationTypeEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopCourseEducationTypeAddBo;
+import com.zhongzheng.modules.top.goods.bo.TopCourseEducationTypeEditBo;
 import com.zhongzheng.modules.top.goods.bo.TopCourseEducationTypeQueryBo;
 import com.zhongzheng.modules.top.goods.service.ITopCourseEducationTypeService;
 import com.zhongzheng.modules.top.goods.vo.TopCourseEducationTypeVo;
@@ -9,9 +16,8 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -55,4 +61,26 @@ public class TopCourseEducationTypeController extends BaseController {
         List<TopCourseEducationTypeVo> list = iCourseEducationTypeService.queryAllList(bo);
         return getDataTable(list);
     }
+
+    /**
+     * 新增教育类型
+     */
+    @ApiOperation("新增总平台教育类型")
+    @PreAuthorize("@ss.hasPermi('course:type:add')")
+    @Log(title = "教育类型", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopCourseEducationTypeAddBo bo) {
+        return toAjax(iCourseEducationTypeService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改教育类型
+     */
+    @ApiOperation("修改总平台教育类型")
+    @PreAuthorize("@ss.hasPermi('course:type:edit')")
+    @Log(title = "教育类型", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody TopCourseEducationTypeEditBo bo) {
+        return toAjax(iCourseEducationTypeService.updateByEditBo(bo) ? 1 : 0);
+    }
 }

+ 32 - 4
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/course/TopCourseProjectTypeController.java

@@ -1,7 +1,14 @@
 package com.zhongzheng.controller.course;
 
+import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.course.bo.CourseProjectTypeAddBo;
+import com.zhongzheng.modules.course.bo.CourseProjectTypeEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopCourseProjectTypeAddBo;
+import com.zhongzheng.modules.top.goods.bo.TopCourseProjectTypeEditBo;
 import com.zhongzheng.modules.top.goods.bo.TopCourseProjectTypeQueryBo;
 import com.zhongzheng.modules.top.goods.service.ITopCourseProjectTypeService;
 import com.zhongzheng.modules.top.goods.vo.TopCourseProjectTypeVo;
@@ -9,15 +16,14 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
 /**
  * 项目类型Controller
- * 
+ *
  * @author ruoyi
  * @date 2021-10-08
  */
@@ -39,4 +45,26 @@ public class TopCourseProjectTypeController extends BaseController {
         List<TopCourseProjectTypeVo> list = iCourseProjectTypeService.queryList(bo);
         return getDataTable(list);
     }
+
+    /**
+     * 新增项目类型
+     */
+    @ApiOperation("新增总平台项目类型")
+    @PreAuthorize("@ss.hasPermi('course:type:add')")
+    @Log(title = "项目类型", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopCourseProjectTypeAddBo bo) {
+        return toAjax(iCourseProjectTypeService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改项目类型
+     */
+    @ApiOperation("修改总平台项目类型")
+    @PreAuthorize("@ss.hasPermi('course:type:edit')")
+    @Log(title = "项目类型", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody TopCourseProjectTypeEditBo bo) {
+        return toAjax(iCourseProjectTypeService.updateByEditBo(bo) ? 1 : 0);
+    }
 }

+ 4 - 0
zhongzheng-admin/src/main/resources/application-dev.yml

@@ -153,3 +153,7 @@ Nuonuo:
     host: https://sdk.nuonuo.com/open/v1/services
     APPkey: 39149760
     APPSecret: 07168A248B2844E0
+
+oldOrder:
+    studyRecord: http://gdxypx.xy.com/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://gdxypx.xy.com/WitSystem/BussinessApi/AuditUnderOrder

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/bo/TopCostTpItemAddBo.java

@@ -24,7 +24,7 @@ public class TopCostTpItemAddBo {
     @ApiModelProperty("子项名称")
     private String itemName;
     /** 成本类别 1业务类型 2非分成 */
-    @ApiModelProperty("成本类别 1业务类型 2非分成")
+    @ApiModelProperty("成本类别 1分成  2非分成 3返佣")
     private Integer itemCategory;
     /** 业务层ID */
     @ApiModelProperty("业务层ID")

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/bo/TopCostTpItemEditBo.java

@@ -30,7 +30,7 @@ public class TopCostTpItemEditBo {
     private String itemName;
 
     /** 成本类别 1业务类型 2非分成 */
-    @ApiModelProperty("成本类别 1业务类型 2非分成")
+    @ApiModelProperty("成本类别 1分成  2非分成 3返佣")
     private Integer itemCategory;
 
     /** 业务层ID */

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/bo/TopCostTpItemQueryBo.java

@@ -40,7 +40,7 @@ public class TopCostTpItemQueryBo extends BaseEntity {
 	@ApiModelProperty("子项名称")
 	private String itemName;
 	/** 成本类别 1业务类型 2非分成 */
-	@ApiModelProperty("成本类别 1业务类型 2非分成")
+	@ApiModelProperty("成本类别 1分成  2非分成 3返佣")
 	private Integer itemCategory;
 	/** 业务层ID */
 	@ApiModelProperty("业务层ID")

+ 3 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/vo/TopCostTpItemVo.java

@@ -31,9 +31,9 @@ public class TopCostTpItemVo {
 	@Excel(name = "子项名称")
 	@ApiModelProperty("子项名称")
 	private String itemName;
-	/** 成本类别 1业务类型 2非分成 */
-	@Excel(name = "成本类别 1业务类型 2非分成")
-	@ApiModelProperty("成本类别 1业务类型 2非分成")
+	/** 成本类别 1分成  2非分成 3返佣 */
+	@Excel(name = "成本类别 1分成  2非分成 3返佣")
+	@ApiModelProperty("成本类别 1分成  2非分成 3返佣")
 	private Integer itemCategory;
 	/** 业务层ID */
 	@Excel(name = "业务层ID")

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopCourseEducationTypeAddBo.java

@@ -39,4 +39,7 @@ public class TopCourseEducationTypeAddBo {
     /** 排序 */
     @ApiModelProperty("排序")
     private Integer sort;
+    /** 方案名称 */
+    @ApiModelProperty("方案名称")
+    private String schemeName;
 }

+ 3 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopCourseEducationTypeEditBo.java

@@ -44,5 +44,7 @@ public class TopCourseEducationTypeEditBo {
     /** 排序 */
     @ApiModelProperty("排序")
     private Integer sort;
-
+    /** 方案名称 */
+    @ApiModelProperty("方案名称")
+    private String schemeName;
 }

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopCourseEducationTypeQueryBo.java

@@ -45,9 +45,12 @@ public class TopCourseEducationTypeQueryBo extends BaseEntity {
 	private String encoder;
 	/** 0 未启用 1启用 -1删除 */
 	@ApiModelProperty("0 未启用 1启用 -1删除")
-	private Integer status;
+	private List<Integer> status;
 	/** 排序 */
 	@ApiModelProperty("排序")
 	private Integer sort;
 	private List<Integer> statusList;
+	/** 方案名称 */
+	@ApiModelProperty("方案名称")
+	private String schemeName;
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopCourseProjectTypeQueryBo.java

@@ -44,7 +44,7 @@ public class TopCourseProjectTypeQueryBo extends BaseEntity {
 	private String encoder;
 	/** 教育类型id */
 	@ApiModelProperty("教育类型id")
-	private Integer educationId;
+	private Long educationId;
 	/**  状态 1正常 0关闭 */
 	@ApiModelProperty(" 状态 1正常 0关闭")
 	private List<Integer> status;

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/domain/TopCourseEducationType.java

@@ -45,5 +45,6 @@ private static final long serialVersionUID=1L;
     private Integer sort;
     @TableField(exist = false)
     private Long oId;
+    @TableField(updateStrategy=FieldStrategy.IGNORED)
     private String schemeName;
 }

+ 7 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopCourseProjectTypeMapper.java

@@ -1,7 +1,13 @@
 package com.zhongzheng.modules.top.goods.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.course.bo.CourseProjectTypeQueryBo;
+import com.zhongzheng.modules.course.vo.CourseProjectTypeVo;
+import com.zhongzheng.modules.top.goods.bo.TopCourseProjectTypeQueryBo;
 import com.zhongzheng.modules.top.goods.domain.TopCourseProjectType;
+import com.zhongzheng.modules.top.goods.vo.TopCourseProjectTypeVo;
+
+import java.util.Collection;
 
 /**
  * 项目类型Mapper接口
@@ -10,5 +16,5 @@ import com.zhongzheng.modules.top.goods.domain.TopCourseProjectType;
  * @date 2023-03-15
  */
 public interface TopCourseProjectTypeMapper extends BaseMapper<TopCourseProjectType> {
-
+    Collection<TopCourseProjectTypeVo> queryList(TopCourseProjectTypeQueryBo bo);
 }

+ 33 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopCourseEducationTypeServiceImpl.java

@@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.modules.course.domain.CourseEducationType;
 import com.zhongzheng.modules.top.goods.bo.TopCourseBusinessQueryBo;
 import com.zhongzheng.modules.top.goods.bo.TopCourseEducationTypeAddBo;
 import com.zhongzheng.modules.top.goods.bo.TopCourseEducationTypeEditBo;
@@ -58,7 +60,7 @@ public class TopCourseEducationTypeServiceImpl extends ServiceImpl<TopCourseEduc
         LambdaQueryWrapper<TopCourseEducationType> lqw = Wrappers.lambdaQuery();
         lqw.like(StrUtil.isNotBlank(bo.getEducationName()), TopCourseEducationType::getEducationName, bo.getEducationName());
         lqw.eq(StrUtil.isNotBlank(bo.getEncoder()), TopCourseEducationType::getEncoder, bo.getEncoder());
-        lqw.eq(bo.getStatus() != null, TopCourseEducationType::getStatus, bo.getStatus());
+        lqw.in(bo.getStatus() != null, TopCourseEducationType::getStatus, bo.getStatus());
         lqw.in(bo.getStatusList() != null, TopCourseEducationType::getStatus, bo.getStatusList());
         lqw.eq(bo.getSort() != null, TopCourseEducationType::getSort, bo.getSort());
         List<TopCourseEducationTypeVo> topCourseEducationTypeVos = entity2Vo(this.list(lqw));
@@ -119,8 +121,20 @@ public class TopCourseEducationTypeServiceImpl extends ServiceImpl<TopCourseEduc
 
     @Override
     public Boolean insertByAddBo(TopCourseEducationTypeAddBo bo) {
+        //判断新增名字是否重复
+        LambdaQueryWrapper<TopCourseEducationType> lqw = Wrappers.lambdaQuery();
+        List<Integer> status = new ArrayList<>();
+        status.add(1);
+        status.add(0);
+        lqw.eq(StrUtil.isNotBlank(bo.getEducationName()), TopCourseEducationType::getEducationName, bo.getEducationName());
+        lqw.in( TopCourseEducationType::getStatus, status);
+        List<TopCourseEducationType> list = this.list(lqw);
+        if (CollectionUtils.isNotEmpty(list)){
+            throw new IllegalArgumentException("教育类型名称重复");
+        }
         TopCourseEducationType add = BeanUtil.toBean(bo, TopCourseEducationType.class);
         validEntityBeforeSave(add);
+        add.setEncoder(ServletUtils.getEncoded("JY"));
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
         return this.save(add);
@@ -128,6 +142,23 @@ public class TopCourseEducationTypeServiceImpl extends ServiceImpl<TopCourseEduc
 
     @Override
     public Boolean updateByEditBo(TopCourseEducationTypeEditBo bo) {
+        //修改判断名字是否重复
+        LambdaQueryWrapper<TopCourseEducationType> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StrUtil.isNotBlank(bo.getEducationName()), TopCourseEducationType::getEducationName, bo.getEducationName());
+        lqw.eq(bo.getId()!= null, TopCourseEducationType::getId, bo.getId());
+        List<TopCourseEducationType> list = this.list(lqw);
+        if (CollectionUtils.isEmpty(list)){
+            lqw.clear();
+            lqw.eq(StrUtil.isNotBlank(bo.getEducationName()), TopCourseEducationType::getEducationName, bo.getEducationName());
+            List<Integer> status = new ArrayList<>();
+            status.add(1);
+            status.add(0);
+            lqw.in(bo.getStatus() != null, TopCourseEducationType::getStatus, status);
+            List<TopCourseEducationType> list1 = this.list(lqw);
+            if (CollectionUtils.isNotEmpty(list1)){
+                throw new IllegalArgumentException("教育类型名称重复");
+            }
+        }
         TopCourseEducationType update = BeanUtil.toBean(bo, TopCourseEducationType.class);
         validEntityBeforeSave(update);
         update.setUpdateTime(DateUtils.getNowTime());
@@ -152,7 +183,7 @@ public class TopCourseEducationTypeServiceImpl extends ServiceImpl<TopCourseEduc
     }
 
     @Override
-    
+
     public TopCourseEducationType getEntityById(Long oldEducationTypeId) {
         return getById(oldEducationTypeId);
     }

+ 37 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopCourseProjectTypeServiceImpl.java

@@ -8,6 +8,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.modules.course.bo.CourseProjectTypeQueryBo;
+import com.zhongzheng.modules.course.domain.CourseProjectType;
+import com.zhongzheng.modules.course.vo.CourseProjectTypeVo;
 import com.zhongzheng.modules.top.goods.bo.TopCourseProjectTypeAddBo;
 import com.zhongzheng.modules.top.goods.bo.TopCourseProjectTypeEditBo;
 import com.zhongzheng.modules.top.goods.bo.TopCourseProjectTypeQueryBo;
@@ -18,7 +22,9 @@ import com.zhongzheng.modules.top.goods.vo.TopCourseProjectTypeVo;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -73,6 +79,7 @@ public class TopCourseProjectTypeServiceImpl extends ServiceImpl<TopCourseProjec
     public Boolean insertByAddBo(TopCourseProjectTypeAddBo bo) {
         TopCourseProjectType add = BeanUtil.toBean(bo, TopCourseProjectType.class);
         validEntityBeforeSave(add);
+        add.setEncoder(ServletUtils.getEncoded("XM"));
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
         return this.save(add);
@@ -81,7 +88,21 @@ public class TopCourseProjectTypeServiceImpl extends ServiceImpl<TopCourseProjec
     @Override
     public Boolean updateByEditBo(TopCourseProjectTypeEditBo bo) {
         TopCourseProjectType update = BeanUtil.toBean(bo, TopCourseProjectType.class);
-        validEntityBeforeSave(update);
+        //判断是否有重复命名
+        if (bo.getStatus() != -1) {
+            TopCourseProjectTypeQueryBo courseProjectTypeQueryBo = new TopCourseProjectTypeQueryBo();
+            courseProjectTypeQueryBo.setProjectName(bo.getProjectName());
+            courseProjectTypeQueryBo.setEducationId(bo.getEducationId());
+            courseProjectTypeQueryBo.setId(bo.getId());
+            List<Integer> longs = new ArrayList<>();
+            longs.add(1);
+            longs.add(0);
+            courseProjectTypeQueryBo.setStatus(longs);
+            Collection<TopCourseProjectTypeVo> courseProjectTypeVos = baseMapper.queryList(courseProjectTypeQueryBo);
+            if (CollectionUtils.isEmpty(courseProjectTypeVos)) {
+                validEntityBeforeSave(update);
+            }
+        }
         update.setUpdateTime(DateUtils.getNowTime());
         return this.updateById(update);
     }
@@ -93,6 +114,20 @@ public class TopCourseProjectTypeServiceImpl extends ServiceImpl<TopCourseProjec
      */
     private void validEntityBeforeSave(TopCourseProjectType entity){
         //TODO 做一些数据校验,如唯一约束
+        TopCourseProjectTypeQueryBo courseProjectTypeQueryBo = new TopCourseProjectTypeQueryBo();
+        courseProjectTypeQueryBo.setProjectName(entity.getProjectName());
+        courseProjectTypeQueryBo.setEducationId(entity.getEducationId());
+        List<Integer> longs = new ArrayList<>();
+        longs.add(1);
+        longs.add(0);
+        courseProjectTypeQueryBo.setStatus(longs);
+        Integer count = baseMapper.selectCount(new LambdaQueryWrapper<TopCourseProjectType>()
+                .eq(TopCourseProjectType::getProjectName, entity.getProjectName())
+                .eq(TopCourseProjectType::getEducationId, entity.getEducationId())
+                .in(TopCourseProjectType::getStatus, longs));
+        if (count > 0){
+            throw new RuntimeException("项目重复");
+        }
     }
 
     @Override
@@ -104,7 +139,7 @@ public class TopCourseProjectTypeServiceImpl extends ServiceImpl<TopCourseProjec
     }
 
     @Override
-    
+
     public TopCourseProjectType getEntity(Long projectTypeId) {
         return getById(projectTypeId);
     }

+ 62 - 0
zhongzheng-system/src/main/resources/mapper/modules/top/TopCourseProjectTypeMapper.xml

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.top.goods.mapper.CourseProjectTypeMapper">
+
+    <resultMap type="com.zhongzheng.modules.top.goods.domain.TopCourseProjectType" id="CourseProjectTypeResult">
+        <result property="id" column="id"/>
+        <result property="projectName" column="project_name"/>
+        <result property="encoder" column="encoder"/>
+        <result property="remark" column="remark"/>
+        <result property="educationId" column="education_id"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="sort" column="sort"/>
+    </resultMap>
+
+    <resultMap type="com.zhongzheng.modules.top.goods.vo.TopCourseProjectTypeVo" id="CourseProjectTypeVoResult">
+        <result property="id" column="id"/>
+        <result property="projectName" column="project_name"/>
+        <result property="encoder" column="encoder"/>
+        <result property="remark" column="remark"/>
+        <result property="educationId" column="education_id"/>
+        <result property="educationName" column="education_name"/>
+        <result property="status" column="status"/>
+        <result property="sort" column="sort"/>
+    </resultMap>
+
+    <select id="queryList" parameterType="com.zhongzheng.modules.top.goods.bo.TopCourseProjectTypeQueryBo"  resultMap="CourseProjectTypeVoResult">
+        SELECT
+            p.*,
+            e.education_name
+        FROM
+            course_project_type p
+                LEFT JOIN course_education_type e ON p.education_id = e.id
+        where 1=1
+        <if test="status != null and status.size()!=0 ">
+            AND p.status in
+            <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="projectName != null and projectName != ''">
+            AND p.project_name  like concat('%', #{projectName}, '%')
+        </if>
+        <if test="encoder != null and encoder != ''">
+            AND p.encoder = #{encoder}
+        </if>
+        <if test="educationId != null and educationId != ''">
+            AND p.education_id = #{educationId}
+        </if>
+        <if test="id != null and id != ''">
+            AND p.id = #{id}
+        </if>
+        order by p.sort
+    </select>
+
+    <select id="getProjectByTenant" parameterType="map"  resultType="com.zhongzheng.modules.course.domain.CourseProjectType">
+        SELECT * FROM course_project_type where encoder = #{encoder} and tenant_id = #{newTenantId}
+    </select>
+</mapper>