Bläddra i källkod

云教练活动

zouxuan 4 år sedan
förälder
incheckning
29648b22b9

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChargeTypeDao.java

@@ -16,4 +16,6 @@ public interface ChargeTypeDao extends BaseDAO<Integer, ChargeType> {
      * @return
      */
     List<Map<Integer, String>> queryNameByIds(@Param("chargeTypeIds") String chargeTypeIds);
+
+    List<Map<Integer, String>> queryNormalChargeName(List<Integer> studentIds);
 }

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CloudTeacherOrderDao.java

@@ -4,6 +4,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import com.ym.mec.biz.dal.dto.CloudTeacherActiveTargetDetailDto;
+import com.ym.mec.biz.dal.page.CloudTeacherActiveQueryInfo;
 import org.apache.ibatis.annotations.Param;
 
 import com.ym.mec.biz.dal.dto.CloudTeacherOrderDto;
@@ -50,4 +52,18 @@ public interface CloudTeacherOrderDao extends BaseDAO<Long, CloudTeacherOrder> {
     CloudTeacherOrderDto queryOrderInfoByOrderId(Long orderId);
 
     List<Map<Long, String>> queryNoStartByUserIds(@Param("userIds") Set<Integer> userIds, @Param("isMusicMember") Boolean isMusicMember);
+
+    /**
+     * 获取购买了云教练活动的学员列表
+     * @param param
+     * @return
+     */
+    int countCloudTeacherActiveDetail(Map<String, Object> param);
+
+    /**
+     * 获取购买了云教练活动的学员列表
+     * @param param
+     * @return
+     */
+    List<CloudTeacherActiveTargetDetailDto> queryCloudTeacherActiveDetail(Map<String, Object> param);
 }

+ 105 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CloudTeacherActiveTargetDetailDto.java

@@ -0,0 +1,105 @@
+package com.ym.mec.biz.dal.dto;
+
+import java.math.BigDecimal;
+
+public class CloudTeacherActiveTargetDetailDto {
+	private Integer userId;
+
+	private String username;
+
+	private String cooperationName;
+
+	private String musicGroupName;
+
+	private String chargeType;
+
+	private String subjectName;
+
+	private String currentGradeNum;
+
+	private String teacherName;
+
+	private String remark;
+
+	private BigDecimal amount = BigDecimal.ZERO;
+
+	public Integer getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Integer userId) {
+		this.userId = userId;
+	}
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
+	public String getCooperationName() {
+		return cooperationName;
+	}
+
+	public void setCooperationName(String cooperationName) {
+		this.cooperationName = cooperationName;
+	}
+
+	public String getMusicGroupName() {
+		return musicGroupName;
+	}
+
+	public void setMusicGroupName(String musicGroupName) {
+		this.musicGroupName = musicGroupName;
+	}
+
+	public String getChargeType() {
+		return chargeType;
+	}
+
+	public void setChargeType(String chargeType) {
+		this.chargeType = chargeType;
+	}
+
+	public String getSubjectName() {
+		return subjectName;
+	}
+
+	public void setSubjectName(String subjectName) {
+		this.subjectName = subjectName;
+	}
+
+	public String getCurrentGradeNum() {
+		return currentGradeNum;
+	}
+
+	public void setCurrentGradeNum(String currentGradeNum) {
+		this.currentGradeNum = currentGradeNum;
+	}
+
+	public String getTeacherName() {
+		return teacherName;
+	}
+
+	public void setTeacherName(String teacherName) {
+		this.teacherName = teacherName;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public BigDecimal getAmount() {
+		return amount;
+	}
+
+	public void setAmount(BigDecimal amount) {
+		this.amount = amount;
+	}
+}

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CloudTeacherActiveQueryInfo.java

@@ -6,6 +6,14 @@ public class CloudTeacherActiveQueryInfo extends QueryInfo {
 
     private String organIds;
 
+    private Integer chargeType;
+
+    private Integer subjectId;
+
+    private Integer teacherId;
+
+    private String remarkType;
+
     public String getOrganIds() {
         return organIds;
     }
@@ -13,4 +21,36 @@ public class CloudTeacherActiveQueryInfo extends QueryInfo {
     public void setOrganIds(String organIds) {
         this.organIds = organIds;
     }
+
+    public Integer getChargeType() {
+        return chargeType;
+    }
+
+    public void setChargeType(Integer chargeType) {
+        this.chargeType = chargeType;
+    }
+
+    public Integer getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public String getRemarkType() {
+        return remarkType;
+    }
+
+    public void setRemarkType(String remarkType) {
+        this.remarkType = remarkType;
+    }
 }

+ 21 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -52,6 +52,9 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     private MusicGroupDao musicGroupDao;
 
     @Autowired
+    private ChargeTypeDao chargeTypeDao;
+
+    @Autowired
     private PracticeGroupDao practiceGroupDao;
 
     @Autowired
@@ -69,6 +72,9 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     private CloudTeacherDao cloudTeacherDao;
 
     @Autowired
+    private CloudTeacherOrderDao cloudTeacherOrderDao;
+
+    @Autowired
     private OrganizationDao organizationDao;
 
     @Autowired
@@ -909,7 +915,21 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 
     @Override
     public Object countCloudTeacherActiveDetail(CloudTeacherActiveQueryInfo queryInfo) {
+        PageInfo<CloudTeacherActiveTargetDetailDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
 
-        return null;
+        List<CloudTeacherActiveTargetDetailDto> dataList = null;
+        int count = cloudTeacherOrderDao.countCloudTeacherActiveDetail(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = cloudTeacherOrderDao.queryCloudTeacherActiveDetail(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
     }
 }

+ 11 - 0
mec-biz/src/main/resources/config/mybatis/ChargeTypeMapper.xml

@@ -81,4 +81,15 @@
     <select id="queryNameByIds" resultType="java.util.Map" parameterType="list">
         SELECT id_ `key`,name_ `value` FROM charge_type WHERE FIND_IN_SET(id_,#{chargeTypeIds})
     </select>
+    <select id="queryNormalChargeName" resultType="java.util.Map">
+        SELECT sr.user_id_ 'key',GROUP_CONCAT(DISTINCT ct.name_) 'value' FROM student_registration sr
+        LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
+        LEFT JOIN charge_type ct ON ct.id_ = mg.charge_type_id_
+        WHERE mg.status_ = 'PROGRESS' AND sr.music_group_status_ = 'NORMAL'
+        AND sr.user_id_ IN
+        <foreach collection="studentIds" item="userId" open="(" close=")" separator=",">
+            #{userId}
+        </foreach>
+        GROUP BY sr.user_id_
+    </select>
 </mapper>

+ 60 - 0
mec-biz/src/main/resources/config/mybatis/CloudTeacherOrderMapper.xml

@@ -208,4 +208,64 @@
         </if>
         GROUP BY student_id_
     </select>
+    <resultMap id="CloudTeacherActiveTargetDetailDto" type="com.ym.mec.biz.dal.dto.CloudTeacherActiveTargetDetailDto">
+        <result property="userId" column="student_id_"/>
+        <result property="username" column="username_"/>
+        <result property="amount" column="amount_"/>
+        <result property="remark" column="remark_"/>
+        <result property="cooperationName" column="cooperation_name_"/>
+        <result property="musicGroupName" column="music_group_name_"/>
+        <result property="chargeType" column="charge_type_name_"/>
+        <result property="subjectName" column="subject_name_"/>
+        <result property="currentGradeNum" column="current_grade_num_"/>
+        <result property="teacherName" column="teacher_name_"/>
+    </resultMap>
+    <select id="queryCloudTeacherActiveDetail" resultMap="CloudTeacherActiveTargetDetailDto">
+        SELECT su.username_,cto.remark_,cto.amount_,cto.student_id_,GROUP_CONCAT(DISTINCT co.name_) cooperation_name_,
+        GROUP_CONCAT(DISTINCT mg.name_) music_group_name_,GROUP_CONCAT(DISTINCT ct.name_) charge_type_name_,
+        sj.name_ subject_name_,st.current_grade_num_,sus.real_name_ teacher_name_
+        FROM cloud_teacher_order cto
+        LEFT JOIN sys_user su ON su.id_ = cto.student_id_
+        LEFT JOIN student_registration sr ON sr.user_id_ = cto.student_id_ AND sr.music_group_status_ = 'NORMAL'
+        LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_ AND mg.status_ = 'PROGRESS'
+        LEFT JOIN cooperation_organ co ON co.id_ = mg.cooperation_organ_id_
+        LEFT JOIN charge_type ct ON ct.id_ = mg.charge_type_id_
+        LEFT JOIN student st ON st.user_id_ = cto.student_id_
+        LEFT JOIN sys_user sus ON sus.id_ = st.teacher_id_
+        LEFT JOIN `subject` sj ON sj.id_ = st.user_id_
+        <include refid="queryCloudTeacherActiveDetailSql"/>
+        GROUP BY cto.id_
+        <include refid="global.limit"/>
+    </select>
+    <select id="countCloudTeacherActiveDetail" resultType="int">
+        SELECT COUNT(DISTINCT cto.id_)
+        FROM cloud_teacher_order cto
+        LEFT JOIN sys_user su ON su.id_ = cto.student_id_
+        LEFT JOIN student_registration sr ON sr.user_id_ = cto.student_id_ AND sr.music_group_status_ = 'NORMAL'
+        LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_ AND mg.status_ = 'PROGRESS'
+        <include refid="queryCloudTeacherActiveDetailSql"/>
+    </select>
+    <sql id="queryCloudTeacherActiveDetailSql">
+        <where>
+            <if test="organIds != null and organIds != ''">
+                AND FIND_IN_SET(su.organ_id_,#{organIds})
+            </if>
+            <if test="search != null and search != ''">
+                AND (su.id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR mg.id_ LIKE CONCAT('%',#{search},'%'))
+            </if>
+            <if test="chargeType != null">
+                AND mg.charge_type_id_ = #{chargeType}
+            </if>
+            <if test="subjectId != null">
+                AND s.subject_id_list_ = #{subjectId}
+            </if>
+            <if test="teacherId != null">
+                AND s.teacher_id_ = #{teacherId}
+            </if>
+            <if test="remarkType != null and remarkType != ''">
+                AND cto.active_remark_ = #{remarkType}
+            </if>
+        </where>
+    </sql>
+
 </mapper>