Просмотр исходного кода

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PracticeGroupDao.java
#	mec-biz/src/main/java/com/ym/mec/biz/service/PracticeGroupService.java
#	mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java
zouxuan 5 лет назад
Родитель
Сommit
0734c6463f

+ 24 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PracticeGroupDao.java

@@ -1,9 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.biz.dal.dto.CourseGroupExportDto;
-import com.ym.mec.biz.dal.dto.PracticeCourseDto;
-import com.ym.mec.biz.dal.dto.PracticeGroupDto;
-import com.ym.mec.biz.dal.dto.StudentBuyPracticeDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
 import com.ym.mec.biz.dal.entity.PracticeGroup;
@@ -238,6 +235,29 @@ public interface PracticeGroupDao extends com.ym.mec.common.dal.BaseDAO<Long, Pr
     List<CourseGroupExportDto> getPracticeGroupExport(@Param("organIds") String organIds);
 
     /**
+     * @describe 获取转化失败的学员-之前有免费网管课,但是之后没有线上课的学员
+     * @author Joburgess
+     * @date 2020/4/23
+     * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
+     */
+    List<SimpleUserDto> findConvertDefeatStudents(Map<String, Object> params);
+    int countConvertDefeatStudents(Map<String, Object> params);
+
+    /**
+     * @describe 获取可以指派试听课的老师列表
+     * @author Joburgess
+     * @date 2020/4/23
+     * @param studentOrganId: 学生分部编号
+     * @param subjectId: 声部编号
+     * @param studentId: 学生编号
+     * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
+     */
+    List<SimpleUserDto> findEnableAssignTeachers(@Param("studentOrganId") Integer studentOrganId,
+                                                 @Param("subjectId") Integer subjectId,
+                                                 @Param("studentId") Integer studentId);
+
+
+    /**
      * 修改网管课备注
      * @param groupId
      * @param memo

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherCourseRewardDao.java

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.TeacherCourseReward;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface TeacherCourseRewardDao extends BaseDAO<Long, TeacherCourseReward> {
+
+}

+ 154 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherCourseReward.java

@@ -0,0 +1,154 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class TeacherCourseReward {
+    private Long id;
+
+    private String musicGroupId;
+
+    private String groupType;
+
+    private String courseScheduleIdList;
+
+    private String courseGroupName;
+
+    private Integer organId;
+
+    private String organName;
+
+    private Integer teacherId;
+
+    private String teacherName;
+
+    private BigDecimal expectRewardAmount;
+
+    private BigDecimal actualRewardAmount;
+
+    private String memo;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public String getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(String groupType) {
+        this.groupType = groupType;
+    }
+
+    public String getCourseScheduleIdList() {
+        return courseScheduleIdList;
+    }
+
+    public void setCourseScheduleIdList(String courseScheduleIdList) {
+        this.courseScheduleIdList = courseScheduleIdList;
+    }
+
+    public String getCourseGroupName() {
+        return courseGroupName;
+    }
+
+    public void setCourseGroupName(String courseGroupName) {
+        this.courseGroupName = courseGroupName;
+    }
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public BigDecimal getExpectRewardAmount() {
+        return expectRewardAmount;
+    }
+
+    public void setExpectRewardAmount(BigDecimal expectRewardAmount) {
+        this.expectRewardAmount = expectRewardAmount;
+    }
+
+    public BigDecimal getActualRewardAmount() {
+        return actualRewardAmount;
+    }
+
+    public void setActualRewardAmount(BigDecimal actualRewardAmount) {
+        this.actualRewardAmount = actualRewardAmount;
+    }
+
+    public String getMemo() {
+        return memo;
+    }
+
+    public void setMemo(String memo) {
+        this.memo = memo;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        return ToStringBuilder.reflectionToString(this);
+    }
+
+}

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/page/PracticeGroupQueryInfo.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.page;
 
+import com.ym.mec.biz.dal.enums.PracticeGroupType;
 import com.ym.mec.common.page.QueryInfo;
 
 /**
@@ -24,7 +25,7 @@ public class PracticeGroupQueryInfo extends QueryInfo {
 
     private Integer hasReport;
 
-    private String practiceGroupType;
+    private PracticeGroupType practiceGroupType;
 
     private String groupStatus;
 
@@ -44,11 +45,11 @@ public class PracticeGroupQueryInfo extends QueryInfo {
         this.studentId = studentId;
     }
 
-    public String getPracticeGroupType() {
+    public PracticeGroupType getPracticeGroupType() {
         return practiceGroupType;
     }
 
-    public void setPracticeGroupType(String practiceGroupType) {
+    public void setPracticeGroupType(PracticeGroupType practiceGroupType) {
         this.practiceGroupType = practiceGroupType;
     }
 

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherCourseRewardQueryInfo.java

@@ -0,0 +1,25 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+public class TeacherCourseRewardQueryInfo extends QueryInfo {
+    private Integer teacherId;
+
+    private String organId;
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+}

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/EduPracticeGroupService.java

@@ -1,8 +1,12 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.PracticeGroupBuyDto;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.common.entity.HttpResponseResult;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @Author Joburgess
@@ -29,4 +33,17 @@ public interface EduPracticeGroupService {
      */
     void orderCallback(StudentPaymentOrder order);
 
+    /**
+     * @describe 获取可以指派试听课的老师列表
+     * @author Joburgess
+     * @date 2020/4/23
+     * @param studentOrganId: 学生分部编号
+     * @param subjectId: 声部编号
+     * @param studentId: 学生编号
+     * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
+     */
+    List<SimpleUserDto> findEnableAssignTeachers(@Param("studentOrganId") Integer studentOrganId,
+                                                 @Param("subjectId") Integer subjectId,
+                                                 @Param("studentId") Integer studentId);
+
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/PracticeGroupService.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
 import com.ym.mec.biz.dal.page.StudentBuyPracticeQueryInfo;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.Date;
@@ -278,6 +279,16 @@ public interface PracticeGroupService extends BaseService<Long, PracticeGroup> {
 	PageInfo<StudentBuyPracticeDto> studentBuys(StudentBuyPracticeQueryInfo queryInfo);
 
 	/**
+	 * @describe 获取转化失败的学员列表
+	 * @author Joburgess
+	 * @date 2020/4/23
+	 * @param queryInfo:
+	 * @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.dto.SimpleUserDto>
+	 */
+	PageInfo<SimpleUserDto> findConvertDefeatStudents(QueryInfo queryInfo);
+
+
+	/**
 	 * 修改网管课备注
 	 * @param groupId
 	 * @param memo

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherCourseRewardService.java

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.TeacherCourseReward;
+import com.ym.mec.common.service.BaseService;
+
+public interface TeacherCourseRewardService extends BaseService<Long, TeacherCourseReward> {
+
+}

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EduPracticeGroupServiceImpl.java

@@ -6,6 +6,7 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.PracticeDrillTimeDto;
 import com.ym.mec.biz.dal.dto.PracticeGroupBuyDto;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.*;
@@ -585,4 +586,9 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
         imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
     }
 
+    @Override
+    public List<SimpleUserDto> findEnableAssignTeachers(Integer studentOrganId, Integer subjectId, Integer studentId) {
+        Teacher student = teacherDao.get(studentId);
+        return practiceGroupDao.findEnableAssignTeachers(student.getOrganId(), subjectId, studentId);
+    }
 }

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -20,6 +20,7 @@ import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
@@ -3592,6 +3593,23 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     }
 
     @Override
+    public PageInfo<SimpleUserDto> findConvertDefeatStudents(QueryInfo queryInfo) {
+        PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<SimpleUserDto> dataList = new ArrayList<>();
+        int count = practiceGroupDao.countConvertDefeatStudents(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = practiceGroupDao.findConvertDefeatStudents(params);
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    @Override
     public void updateMemo(Long groupId, String memo) {
         practiceGroupDao.updateMemo(groupId,memo);
     }

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherCourseRewardServiceImpl.java

@@ -0,0 +1,21 @@
+package com.ym.mec.biz.service.impl;
+
+import com.ym.mec.biz.dal.dao.TeacherCourseRewardDao;
+import com.ym.mec.biz.dal.entity.TeacherCourseReward;
+import com.ym.mec.biz.service.TeacherCourseRewardService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TeacherCourseRewardServiceImpl extends BaseServiceImpl<Long, TeacherCourseReward> implements TeacherCourseRewardService {
+
+    @Autowired
+    private TeacherCourseRewardDao teacherCourseRewardDao;
+
+    @Override
+    public BaseDAO<Long, TeacherCourseReward> getDAO() {
+        return teacherCourseRewardDao;
+    }
+}

+ 47 - 3
mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml

@@ -251,9 +251,6 @@
             <if test="studentId != null">
                 AND pg.student_id_ = #{studentId}
             </if>
-            <if test="practiceGroupType !=null and practiceGroupType != ''">
-                AND pg.type_ = #{practiceGroupType}
-            </if>
             <if test="groupStatus != null and groupStatus != ''">
                 AND pg.group_status_ = #{groupStatus}
             </if>
@@ -516,4 +513,51 @@
         </if>
         GROUP BY pg.student_id_,o.id_
     </select>
+
+    <select id="findConvertDefeatStudents" resultType="com.ym.mec.biz.dal.dto.SimpleUserDto">
+        SELECT
+            DISTINCT su.id_ userId,su.username_ userName, su.avatar_ avatar, su.phone_ phone
+        FROM
+            practice_group pg
+            LEFT JOIN sys_user su ON pg.student_id_ = su.id_
+        WHERE
+            pg.type_='FREE'
+            <if test="search != null">
+                AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT('%', #{search}, '%'))
+            </if>
+            AND pg.student_id_ NOT IN (
+                SELECT student_id_ FROM practice_group WHERE type_='CHARGE'
+            )
+            AND NOT EXISTS (
+                SELECT user_id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=pg.student_id_ AND cs.teach_mode_='ONLINE' AND cs.class_date_>'2020-05-01'
+            )
+        <include refid="global.limit"/>
+    </select>
+    <select id="countConvertDefeatStudents" resultType="int">
+        SELECT
+            COUNT(DISTINCT su.id_)
+        FROM
+            practice_group pg
+            LEFT JOIN sys_user su ON pg.student_id_ = su.id_
+        WHERE
+            pg.type_='FREE'
+            <if test="search != null">
+                AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT('%', #{search}, '%'))
+            </if>
+            AND pg.student_id_ NOT IN (
+                SELECT student_id_ FROM practice_group WHERE type_='CHARGE'
+            )
+            AND NOT EXISTS (
+                SELECT user_id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=pg.student_id_ AND cs.teach_mode_='ONLINE' AND cs.class_date_>'2020-05-01'
+            )
+    </select>
+    <select id="findEnableAssignTeachers" resultType="com.ym.mec.biz.dal.dto.SimpleUserDto">
+        SELECT su.id_ userId,su.username_ userName,su.avatar_ avatar
+        FROM teacher t
+          LEFT JOIN sys_user su ON t.id_=su.id_
+        WHERE
+            FIND_IN_SET(#{subjectId}, t.subject_id_)
+            AND (t.organ_id_ = #{studentOrganId} OR FIND_IN_SET(#{studentOrganId},t.flow_organ_range_))
+            AND NOT EXISTS (SELECT user_id_ FROM practice_group WHERE student_id_=#{studentId} AND t.id_=user_id_ AND type_='TRIAL')
+    </select>
 </mapper>

+ 118 - 0
mec-biz/src/main/resources/config/mybatis/TeacherCourseRewardDao.xml

@@ -0,0 +1,118 @@
+<?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.ym.mec.biz.dal.dao.TeacherCourseRewardDao">
+    <resultMap id="teacherCourseReward" type="com.ym.mec.biz.dal.entity.TeacherCourseReward">
+        <id column="id_" jdbcType="BIGINT" property="id"/>
+        <result column="music_group_id_" jdbcType="VARCHAR" property="musicGroupId"/>
+        <result column="group_type_" jdbcType="VARCHAR" property="groupType"/>
+        <result column="course_schedule_id_list_" jdbcType="VARCHAR" property="courseScheduleIdList"/>
+        <result column="course_group_name_" jdbcType="VARCHAR" property="courseGroupName"/>
+        <result column="organ_id_" jdbcType="INTEGER" property="organId"/>
+        <result column="organ_name_" jdbcType="VARCHAR" property="organName"/>
+        <result column="teacher_id_" jdbcType="INTEGER" property="teacherId"/>
+        <result column="teacher_name_" jdbcType="VARCHAR" property="teacherName"/>
+        <result column="expect_reward_amount_" jdbcType="DECIMAL" property="expectRewardAmount"/>
+        <result column="actual_reward_amount_" jdbcType="DECIMAL" property="actualRewardAmount"/>
+        <result column="memo_" jdbcType="VARCHAR" property="memo"/>
+        <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id_, music_group_id_, group_type_, course_schedule_id_list_, course_group_name_,
+        organ_id_, teacher_id_, expect_reward_amount_, actual_reward_amount_, memo_, create_time_,
+        update_time_
+    </sql>
+    <select id="get" parameterType="java.lang.Long" resultMap="teacherCourseReward">
+        select *
+        from teacher_course_reward
+        where id_ = #{id,jdbcType=BIGINT}
+    </select>
+    <delete id="delete" parameterType="java.lang.Long">
+        delete
+        from teacher_course_reward
+        where id_ = #{id,jdbcType=BIGINT}
+    </delete>
+    <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.TeacherCourseReward"
+            useGeneratedKeys="true">
+        insert into teacher_course_reward (music_group_id_, group_type_, course_schedule_id_list_,
+                                           course_group_name_, organ_id_, teacher_id_,
+                                           expect_reward_amount_, actual_reward_amount_,
+                                           memo_, create_time_, update_time_)
+        values (#{musicGroupId,jdbcType=VARCHAR}, #{groupType,jdbcType=VARCHAR},
+                #{courseScheduleIdList,jdbcType=VARCHAR},
+                #{courseGroupName,jdbcType=VARCHAR}, #{organId,jdbcType=INTEGER}, #{teacherId,jdbcType=INTEGER},
+                #{expectRewardAmount,jdbcType=DECIMAL}, #{actualRewardAmount,jdbcType=DECIMAL},
+                #{memo,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
+    </insert>
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.TeacherCourseReward">
+        update teacher_course_reward
+        <set>
+            <if test="musicGroupId != null">
+                music_group_id_ = #{musicGroupId,jdbcType=VARCHAR},
+            </if>
+            <if test="groupType != null">
+                group_type_ = #{groupType,jdbcType=VARCHAR},
+            </if>
+            <if test="courseScheduleIdList != null">
+                course_schedule_id_list_ = #{courseScheduleIdList,jdbcType=VARCHAR},
+            </if>
+            <if test="courseGroupName != null">
+                course_group_name_ = #{courseGroupName,jdbcType=VARCHAR},
+            </if>
+            <if test="organId != null">
+                organ_id_ = #{organId,jdbcType=INTEGER},
+            </if>
+            <if test="teacherId != null">
+                teacher_id_ = #{teacherId,jdbcType=INTEGER},
+            </if>
+            <if test="expectRewardAmount != null">
+                expect_reward_amount_ = #{expectRewardAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="actualRewardAmount != null">
+                actual_reward_amount_ = #{actualRewardAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="memo != null">
+                memo_ = #{memo,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+        </set>
+        where id_ = #{id,jdbcType=BIGINT}
+    </update>
+
+    <sql id="queryCondition">
+        <where>
+            <if test="teacherId!=null">
+                AND tcr.teacher_id_=#{teacherId}
+            </if>
+            <if test="search!=null">
+                AND (tcr.course_group_name_ LIKE CONCAT('%', #{search}, '%') OR tcr.music_group_id_ LIKE CONCAT(#{search}, '%'))
+            </if>
+            <if test="organId!=null">
+                AND FIND_IN_SET(tcr.organ_id_ ,#{organId})
+            </if>
+        </where>
+    </sql>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="teacherCourseReward" parameterType="map">
+        SELECT tcr.*,su.real_name_ teacher_name_,o.name_ organ_name_ FROM teacher_course_reward tcr
+        LEFT JOIN sys_user su ON su.id_ = tcr.teacher_id_
+        LEFT JOIN organization o ON o.id_ = tcr.organ_id_
+        <include refid="queryCondition"/>
+        ORDER BY tcr.id_ DESC
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int" parameterType="map">
+        SELECT count(*) FROM teacher_course_reward tcr
+        <include refid="queryCondition"/>
+    </select>
+
+</mapper>

+ 62 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TeacherCourseRewardController.java

@@ -0,0 +1,62 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.TeacherCourseRewardService;
+import com.ym.mec.biz.service.TeacherService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import io.swagger.annotations.*;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Arrays;
+import java.util.List;
+
+@RequestMapping("teacherCourseReward")
+@Api(tags = "结转奖励服务")
+@RestController
+public class TeacherCourseRewardController extends BaseController {
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private EmployeeDao employeeDao;
+    @Autowired
+    private TeacherCourseRewardService teacherCourseRewardService;
+
+
+    @ApiOperation(value = "分页查询结转奖励")
+    @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('teacherCourseReward/queryPage')")
+    public Object queryPage(TeacherCourseRewardQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        if (!sysUser.getIsSuperAdmin()) {
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+                queryInfo.setOrganId(employee.getOrganIdList());
+            } else if (StringUtils.isEmpty(employee.getOrganIdList())) {
+                return failed("用户所在分部异常");
+            } else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if (!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))) {
+                    return failed("非法请求");
+                }
+            }
+        }
+        return succeed(teacherCourseRewardService.queryPage(queryInfo));
+    }
+}

+ 11 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduPracticeGroupController.java

@@ -13,6 +13,7 @@ import com.ym.mec.biz.service.StudentService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
@@ -181,4 +182,14 @@ public class EduPracticeGroupController extends BaseController {
         return practiceGroupService.cancelWaitPayOrder(studentId, groupId);
     }
 
+    @ApiOperation("获取转化失败的学员列表")
+    @GetMapping(value = "/findConvertDefeatStudents")
+    public HttpResponseResult findConvertDefeatStudents(QueryInfo queryInfo){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(practiceGroupService.findConvertDefeatStudents(queryInfo));
+    }
+
 }