浏览代码

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDetailDao.java
#	mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml
周箭河 5 年之前
父节点
当前提交
519ed2dc94
共有 17 个文件被更改,包括 250 次插入81 次删除
  1. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java
  2. 4 10
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDetailDao.java
  3. 40 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalenderDetail.java
  4. 21 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupStudentFee.java
  5. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderService.java
  6. 12 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  7. 0 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupStudentFeeServiceImpl.java
  8. 7 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OnlineMusicGroupServiceImpl.java
  9. 16 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml
  10. 2 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  11. 42 33
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml
  12. 31 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml
  13. 4 0
      mec-im/src/main/java/com/ym/pojo/RoomMember.java
  14. 14 5
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java
  15. 7 0
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderController.java
  16. 29 0
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupStudentFeeController.java
  17. 7 7
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduOnlineMusicGroupController.java

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java

@@ -371,4 +371,11 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
                                                     @Param("groupType") GroupType groupType,
                                                     @Param("userId") Integer userId,
                                                     @Param("status") ClassGroupStudentStatusEnum status);
+
+    /**
+     * 获取学员教务老师
+     * @param studentIds
+     * @return
+     */
+    List<Map<Integer, Integer>> getStudentEducationalTeachers(@Param("studentIds") List<Integer> studentIds);
 }

+ 4 - 10
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDetailDao.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
@@ -11,7 +12,6 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 批量新增
-	 *
 	 * @param musicGroupPaymentCalenderDetailList
 	 * @return
 	 */
@@ -19,7 +19,6 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 获取列表
-	 *
 	 * @param ids
 	 * @return
 	 */
@@ -27,14 +26,12 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 批量修改
-	 *
 	 * @param calenderDetails
 	 */
 	void batchUpdate(@Param("calenderDetails") List<MusicGroupPaymentCalenderDetail> calenderDetails);
 
 	/**
 	 * 根据指定的日历编号查询
-	 *
 	 * @param musicGroupPaymentCalenderId
 	 * @return
 	 */
@@ -42,7 +39,6 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 根据声部获取乐团下完成缴费的学员
-	 *
 	 * @param musicGroupId
 	 * @param subjectId
 	 * @return
@@ -50,12 +46,10 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 	List<SimpleUserDto> findMusicGroupStudentWithSubject(@Param("musicGroupId") String musicGroupId,
 														 @Param("subjectId") Integer subjectId);
 
-
 	/**
-	 * 获取学生最后一期续费记录
-	 * @param musicGroupId
-	 * @param userId
+	 * 统计实际收款金额
+	 * @param id
 	 * @return
 	 */
-	MusicGroupPaymentCalenderDetail getUserLastCalenderDetail(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
+	BigDecimal sumActualAmount(@Param("id") Long id);
 }

+ 40 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalenderDetail.java

@@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 
+import java.util.Date;
+
 /**
  * 对应数据库表(music_group_payment_calender_detail):
  */
@@ -30,9 +32,18 @@ public class MusicGroupPaymentCalenderDetail {
 	
 	/**  */
 	private String userStatus;
+
+	/**1是0否  */
+	private Integer open;
 	
 	/**  */
 	private java.util.Date payTime;
+
+	/**  */
+	private java.util.Date startPaymentDate;
+
+	/**  */
+	private java.util.Date deadlinePaymentDate;
 	
 	/**  */
 	private java.util.Date updateTime;
@@ -42,14 +53,38 @@ public class MusicGroupPaymentCalenderDetail {
 
 	private SysUser sysUser = new SysUser();
 
-	private Student student = new Student();
+	private StudentRegistration studentRegistration = new StudentRegistration();
+
+	public Date getStartPaymentDate() {
+		return startPaymentDate;
+	}
+
+	public void setStartPaymentDate(Date startPaymentDate) {
+		this.startPaymentDate = startPaymentDate;
+	}
+
+	public Date getDeadlinePaymentDate() {
+		return deadlinePaymentDate;
+	}
+
+	public void setDeadlinePaymentDate(Date deadlinePaymentDate) {
+		this.deadlinePaymentDate = deadlinePaymentDate;
+	}
+
+	public Integer getOpen() {
+		return open;
+	}
+
+	public void setOpen(Integer open) {
+		this.open = open;
+	}
 
-	public Student getStudent() {
-		return student;
+	public StudentRegistration getStudentRegistration() {
+		return studentRegistration;
 	}
 
-	public void setStudent(Student student) {
-		this.student = student;
+	public void setStudentRegistration(StudentRegistration studentRegistration) {
+		this.studentRegistration = studentRegistration;
 	}
 
 	public SysUser getSysUser() {

+ 21 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupStudentFee.java

@@ -1,12 +1,10 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import io.swagger.annotations.ApiModelProperty;
-
 import java.math.BigDecimal;
 import java.util.Date;
-
 import org.apache.commons.lang3.builder.ToStringBuilder;
-
 import com.ym.mec.common.enums.BaseEnum;
 
 /**
@@ -79,6 +77,10 @@ public class MusicGroupStudentFee {
 	/**  */
 	private java.util.Date updateTime;
 
+	private SysUser sysUser;
+
+	private String subjectName;
+
 	public MusicGroupStudentFee(String musicGroupId, Integer userId, Integer subjectId,
 								BigDecimal courseFee, Date nextPaymentDate, BigDecimal temporaryCourseFee,PaymentStatus paymentStatus) {
 		this.musicGroupId = musicGroupId;
@@ -94,6 +96,22 @@ public class MusicGroupStudentFee {
 	public MusicGroupStudentFee() {
 	}
 
+	public SysUser getSysUser() {
+		return sysUser;
+	}
+
+	public void setSysUser(SysUser sysUser) {
+		this.sysUser = sysUser;
+	}
+
+	public String getSubjectName() {
+		return subjectName;
+	}
+
+	public void setSubjectName(String subjectName) {
+		this.subjectName = subjectName;
+	}
+
 	public Integer getIsLock() {
 		return isLock;
 	}

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderService.java

@@ -48,4 +48,11 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 	 * @param id
 	 */
 	void del(Long id);
+
+	/**
+	 * 获取明细
+	 * @param id
+	 * @return
+	 */
+    Object getDetail(Long id);
 }

+ 12 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -2,11 +2,8 @@ package com.ym.mec.biz.service.impl;
 
 import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.NO;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import org.apache.commons.lang3.StringUtils;
@@ -247,4 +244,14 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		}
 		musicGroupPaymentCalenderDao.delete(id);
 	}
+
+	@Override
+	public Object getDetail(Long id) {
+		MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(id);
+		BigDecimal sumActualAmount = musicGroupPaymentCalenderDetailDao.sumActualAmount(id);
+		Map<String,Object> result = new HashMap<>(2);
+		result.put("calender",calender);
+		result.put("sumActualAmount",sumActualAmount);
+		return result;
+	}
 }

+ 0 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupStudentFeeServiceImpl.java

@@ -1,7 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dto.UpdateStudentFeeDto;
@@ -9,7 +8,6 @@ import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
 import com.ym.mec.biz.service.MusicGroupStudentFeeService;
 import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.biz.service.SysMessageService;
@@ -21,9 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.math.BigDecimal;
 import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class MusicGroupStudentFeeServiceImpl extends BaseServiceImpl<Long, MusicGroupStudentFee> implements MusicGroupStudentFeeService {
@@ -40,9 +36,6 @@ public class MusicGroupStudentFeeServiceImpl extends BaseServiceImpl<Long, Music
 	@Autowired
 	private SysMessageService sysMessageService;
 
-	@Autowired
-	private MusicGroupPaymentCalenderService musicGroupPaymentCalenderService;
-
 	@Override
 	public BaseDAO<Long, MusicGroupStudentFee> getDAO() {
 		return musicGroupStudentFeeDao;

+ 7 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OnlineMusicGroupServiceImpl.java

@@ -236,7 +236,7 @@ public class OnlineMusicGroupServiceImpl implements OnlineMusicGroupService {
 
         List<Integer> allTeacherIds = organAndSubjectTeachers.stream().map(TeacherBasicDto::getId).collect(Collectors.toList());
 
-        List<CourseSchedule> userCourses = courseScheduleDao.findUserCourses2(studentId, allTeacherIds);
+        List<CourseSchedule> userCourses = courseScheduleDao.findUserCourses3(studentId, allTeacherIds);
 
         if (!CollectionUtils.isEmpty(userCourses)) {
             Map<GroupType, List<CourseSchedule>> courseTypeCourseMap = userCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getGroupType));
@@ -376,8 +376,12 @@ public class OnlineMusicGroupServiceImpl implements OnlineMusicGroupService {
         LocalDate startDay = LocalDate.now().plusDays(1);
         LocalDate endDay = startDay.plusDays(14);
 
-        Map<Integer, List<String>> weekNumApplyTimesMap = eduPracticeGroupService.getEnableApplyDatesWithWeek(startDay.getDayOfWeek().getValue());
-        List<CourseSchedule> allTeacherCourses = courseScheduleDao.findTeacherCoursesWithDateRangeWithoutMusicGroup(teacherId, Date.from(startDay.atStartOfDay(zoneId).toInstant()), Date.from(endDay.atStartOfDay(zoneId).toInstant()));
+        LocalDate monday = startDay.with(weekFields.dayOfWeek(), DayOfWeek.SUNDAY.getValue());
+        LocalDate sunday = endDay.with(weekFields.dayOfWeek(), DayOfWeek.SUNDAY.getValue());
+
+
+        Map<Integer, List<String>> weekNumApplyTimesMap = eduPracticeGroupService.getEnableApplyDatesWithWeek(monday.getDayOfWeek().getValue());
+        List<CourseSchedule> allTeacherCourses = courseScheduleDao.findTeacherCoursesWithDateRange(teacherId, Date.from(startDay.atStartOfDay(zoneId).toInstant()), Date.from(endDay.atStartOfDay(zoneId).toInstant()));
         allTeacherCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 
         JSONObject teacherLeaveData = null;

+ 16 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml

@@ -454,4 +454,20 @@
             </if>
         </where>
     </select>
+    <select id="getStudentEducationalTeachers" resultType="java.util.Map">
+        SELECT t.user_id_ AS 'key',MAX(t.educational_teacher_id_) AS 'value'
+        FROM (
+        SELECT cgsm.user_id_, g.educational_teacher_id_ FROM class_group_student_mapper cgsm
+        LEFT JOIN music_group g ON cgsm.music_group_id_=g.id_
+        WHERE cgsm.group_type_='MUSIC'
+        UNION ALL
+        SELECT cgsm.user_id_, g.educational_teacher_id_ FROM class_group_student_mapper cgsm
+        LEFT JOIN vip_group g ON cgsm.music_group_id_=g.id_
+        WHERE cgsm.group_type_='VIP'
+        UNION ALL
+        SELECT cgsm.user_id_, g.educational_teacher_id_ FROM class_group_student_mapper cgsm
+        LEFT JOIN practice_group g ON cgsm.music_group_id_=g.id_
+        WHERE cgsm.group_type_='PRACTICE'
+        ) t GROUP BY t.user_id_
+    </select>
 </mapper>

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -2465,6 +2465,7 @@
           AND cs.class_date_ BETWEEN DATE_FORMAT(#{startTime}, "%Y-%m-%d") AND DATE_FORMAT(#{endTime}, "%Y-%m-%d")
           AND csts.user_id_ = #{userId}
     </select>
+
     <select id="findStudentPracticeCourses" resultMap="courseScheduleDto">
         SELECT cs.id_                                            seal_class_id_,
                cs.type_,
@@ -2648,7 +2649,7 @@
         AND cgtm.`teacher_role_` = 'BISHOP'
         LEFT JOIN `course_schedule` cs ON cs.`class_group_id_` = cg.`id_`
         WHERE
-        cgsm.user_id_=#{userId}
+        cgsm.user_id_=#{studentId}
         AND cgtm.teacher_role_='BISHOP'
         AND cgsm.status_ = 'NORMAL'
         AND cg.group_type_ IN ( 'PRACTICE', 'MUSIC', 'VIP' )

+ 42 - 33
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml

@@ -13,13 +13,16 @@
 		<result column="payment_status_" property="paymentStatus" />
 		<result column="user_status_" property="userStatus" />
 		<result column="pay_time_" property="payTime" />
+		<result column="start_payment_date_" property="startPaymentDate" />
+		<result column="deadline_payment_date_" property="deadlinePaymentDate" />
 		<result column="update_time_" property="updateTime" />
 		<result column="create_time_" property="createTime" />
+		<result column="open_" property="open" />
 		<association property="sysUser" javaType="com.ym.mec.auth.api.entity.SysUser">
 			<result column="username_" property="username" />
 		</association>
-		<association property="student" javaType="com.ym.mec.biz.dal.entity.Student">
-			<result column="subject_names_" property="subjectNames" />
+		<association property="studentRegistration" javaType="com.ym.mec.biz.dal.entity.StudentRegistration">
+			<result column="subject_names_" property="subjectName" />
 		</association>
 	</resultMap>
 
@@ -37,19 +40,22 @@
 	<insert id="insert"
 		parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail"
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval 
-			AS ID FROM DUAL </selectKey> -->
 		INSERT INTO music_group_payment_calender_detail
-		(id_,music_group_payment_calender_id_,user_id_,expect_amount_,actual_amount_,payment_status_,user_status_,pay_time_,update_time_,create_time_)
-		VALUES(#{id},#{musicGroupPaymentCalenderId},#{userId},#{expectAmount},#{actualAmount},#{paymentStatus},#{userStatus},#{payTime},#{updateTime},#{createTime})
+		(id_,music_group_payment_calender_id_,user_id_,expect_amount_,actual_amount_,payment_status_,
+		user_status_,pay_time_,update_time_,create_time_,open_,start_payment_date_,deadline_payment_date_)
+		VALUES(#{id},#{musicGroupPaymentCalenderId},#{userId},#{expectAmount},#{actualAmount},#{paymentStatus},
+		#{userStatus},#{payTime},#{updateTime},#{createTime},#{open},#{startPaymentDate},#{deadlinePaymentDate})
 	</insert>
 
     <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail">
         INSERT INTO music_group_payment_calender_detail
-		(id_,music_group_payment_calender_id_,user_id_,expect_amount_,actual_amount_,payment_status_,user_status_,pay_time_,update_time_,create_time_)
+		(id_,music_group_payment_calender_id_,user_id_,expect_amount_,actual_amount_,
+		payment_status_,user_status_,pay_time_,update_time_,create_time_,open_,start_payment_date_,deadline_payment_date_)
 		VALUES
 		<foreach collection="list" item="item" separator=",">
-            (#{item.id},#{item.musicGroupPaymentCalenderId},#{item.userId},#{item.expectAmount},#{item.actualAmount},#{item.paymentStatus},#{item.userStatus},#{item.payTime},#{item.updateTime},#{item.createTime})
+            (#{item.id},#{item.musicGroupPaymentCalenderId},#{item.userId},#{item.expectAmount},
+            #{item.actualAmount},#{item.paymentStatus},#{item.userStatus},#{item.payTime},
+            #{item.updateTime},#{item.createTime},#{item.open},#{item.startPaymentDate},#{item.deadlinePaymentDate})
         </foreach>
     </insert>
 
@@ -58,6 +64,15 @@
 		parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail">
 		UPDATE music_group_payment_calender_detail
 		<set>
+			<if test="startPaymentDate != null">
+				start_payment_date_ = #{startPaymentDate},
+			</if>
+			<if test="deadlinePaymentDate != null">
+				deadline_payment_date_ = #{deadlinePaymentDate},
+			</if>
+			<if test="open != null">
+				open_ = #{open},
+			</if>
 			<if test="userId != null">
 				user_id_ = #{userId},
 			</if>
@@ -67,9 +82,6 @@
 			<if test="paymentStatus != null">
 				payment_status_ = #{paymentStatus},
 			</if>
-			<if test="id != null">
-				id_ = #{id},
-			</if>
 			<if test="expectAmount != null">
 				expect_amount_ = #{expectAmount},
 			</if>
@@ -85,9 +97,6 @@
 			<if test="payTime != null">
 				pay_time_ = #{payTime},
 			</if>
-			<if test="createTime != null">
-				create_time_ = #{createTime},
-			</if>
 		</set>
 		WHERE id_ = #{id}
 	</update>
@@ -95,6 +104,9 @@
 		<foreach collection="calenderDetails" item="item" index="index" open="" close="" separator=";">
 			UPDATE music_group_payment_calender_detail
 			<set>
+				<if test="item.open != null">
+					open_ = #{item.open},
+				</if>
 				<if test="item.userId != null">
 					user_id_ = #{item.userId},
 				</if>
@@ -135,20 +147,20 @@
 		SELECT mgpc.*,su.username_,st.name_ subject_names_
 		FROM music_group_payment_calender_detail mgpc
 		LEFT JOIN sys_user su ON su.id_ = mgpc.user_id_
-		LEFT JOIN student s ON s.user_id_ = mgpc.user_id_
-		LEFT JOIN `subject` st ON FIND_IN_SET(st.id_,s.subject_id_list_)
+		LEFT JOIN student_registration sr ON sr.user_id_ = mgpc.user_id_
+		LEFT JOIN `subject` st ON st.id_ = sr.actual_subject_id_
 		<where>
 			<if test="userId != null">
-				mgpc.user_id_ = #{userId}
+				AND mgpc.user_id_ = #{userId}
 			</if>
 			<if test="id != null">
-				mgpc.music_group_payment_calender_id_ = #{id}
+				AND mgpc.music_group_payment_calender_id_ = #{id}
 			</if>
 			<if test="paymentStatus != null">
-				mgpc.payment_status_ = #{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+				AND mgpc.payment_status_ = #{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 			</if>
 			<if test="subjectId != null">
-				FIND_IN_SET(#{subjectId},s.subject_id_list_)
+				AND #{subjectId} = sr.actual_subject_id_
 			</if>
 		</where>
 		ORDER BY mgpc.create_time_
@@ -158,20 +170,20 @@
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(mgpc.id_) FROM music_group_payment_calender_detail mgpc
-		LEFT JOIN student s ON s.user_id_ = mgpc.user_id_
-		LEFT JOIN `subject` st ON FIND_IN_SET(st.id_,s.subject_id_list_)
+		LEFT JOIN student_registration sr ON sr.user_id_ = mgpc.user_id_
+		LEFT JOIN `subject` st ON st.id_ = sr.actual_subject_id_
 		<where>
 			<if test="userId != null">
-				user_id_ = #{userId}
+				AND mgpc.user_id_ = #{userId}
 			</if>
 			<if test="id != null">
-				mgpc.music_group_payment_calender_id_ = #{id}
+				AND mgpc.music_group_payment_calender_id_ = #{id}
 			</if>
 			<if test="subjectId != null">
-				FIND_IN_SET(#{subjectId},s.subject_id_list_)
+				AND #{subjectId} = sr.actual_subject_id_
 			</if>
 			<if test="paymentStatus != null">
-				payment_status_ = #{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+				AND mgpc.payment_status_ = #{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 			</if>
 		</where>
 	</select>
@@ -192,14 +204,11 @@
 		AND sr.subject_id_= #{subjectId}
 		AND music_group_payment_calender_id_ IN
 		(SELECT id_ FROM (SELECT id_ FROM music_group_payment_calender
-		WHERE music_group_id_=#{musicGroupId} AND payment_status_ IN ('PAID_COMPLETED', 'PROCESSING')
+		WHERE music_group_id_=#{musicGroupId} AND payment_status_ IN (1,2)
 		ORDER BY start_payment_date_ DESC LIMIT 1) t);
 	</select>
-
-	<select id="getUserLastCalenderDetail" resultMap="MusicGroupPaymentCalenderDetail">
-		SELECT * FROM music_group_payment_calender_detail mgpcd
-		LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
-		WHERE mgpc.music_group_id_=#{musicGroupId} AND mgpcd.user_id_=#{userId} AND mgpcd.payment_status_ = 'PROCESSING'
-		ORDER BY mgpc.start_payment_date_ DESC
+	<select id="sumActualAmount" resultType="java.math.BigDecimal">
+		SELECT SUM(mgpcd.actual_amount_) FROM music_group_payment_calender_detail mgpcd
+		WHERE mgpcd.music_group_payment_calender_id_ = #{id} AND mgpcd.payment_status_ = "PAID_COMPLETED"
 	</select>
 </mapper>

+ 31 - 2
mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml

@@ -11,6 +11,7 @@
         <result column="music_group_id_" property="musicGroupId"/>
         <result column="user_id_" property="userId"/>
         <result column="subject_id_" property="subjectId"/>
+        <result column="subject_name_" property="subjectName"/>
         <result column="course_fee_" property="courseFee"/>
         <result column="next_payment_date_" property="nextPaymentDate"/>
         <result column="latest_paid_time_" property="latestPaidTime"/>
@@ -21,6 +22,10 @@
         <result column="temporary_course_fee_" property="temporaryCourseFee"/>
         <result column="is_lock_" property="isLock"/>
         <result column="payment_period_list_" property="paymentPeriodList"/>
+        <association property="sysUser" javaType="com.ym.mec.auth.api.entity.SysUser">
+            <result column="username_" property="username" />
+            <result column="phone_" property="phone" />
+        </association>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -121,13 +126,37 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="MusicGroupStudentFee" parameterType="map">
-        SELECT * FROM music_group_student_fee_ ORDER BY id_
+        SELECT mgsf.*,su.username_,su.phone_,s.name_ subject_name_ FROM music_group_student_fee_ mgsf
+        LEFT JOIN sys_user su ON su.id_ = mgsf.user_id_
+        LEFT JOIN `subject` s ON s.id_ = mgsf.subject_id_
+        <where>
+            <if test="search != null and search != ''">
+                AND (mgsf.user_id_ = #{search}
+                OR su.username_ LIKE CONCAT('%',#{search},'%')
+                OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+            </if>
+            <if test="subjectId != null">
+                AND mgsf.subject_id_ = #{subjectId}
+            </if>
+        </where>
+        ORDER BY mgsf.update_time_ DESC
         <include refid="global.limit"/>
     </select>
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM music_group_student_fee_
+        SELECT COUNT(mgsf.id_) FROM music_group_student_fee_ mgsf
+        LEFT JOIN sys_user su ON su.id_ = mgsf.user_id_
+        <where>
+            <if test="search != null and search != ''">
+                AND (mgsf.user_id_ = #{search}
+                OR su.username_ LIKE CONCAT('%',#{search},'%')
+                OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+            </if>
+            <if test="subjectId != null">
+                AND mgsf.subject_id_ = #{subjectId}
+            </if>
+        </where>
 	</select>
 
     <select id="findByUser" resultMap="MusicGroupStudentFee">

+ 4 - 0
mec-im/src/main/java/com/ym/pojo/RoomMember.java

@@ -33,6 +33,10 @@ public class RoomMember {
         this.rid = rid;
     }
 
+    public RoomMember(String uid) {
+        this.uid = uid;
+    }
+
     @Override
     public String toString() {
         return "RoomMember{" +

+ 14 - 5
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -16,7 +16,10 @@ import com.ym.mec.biz.dal.dao.CourseScheduleDao;
 import com.ym.mec.biz.dal.dao.StudentDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.StudentAttendance;
+import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.entity.TeacherAttendance;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.SignStatusEnum;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
@@ -46,8 +49,6 @@ import org.springframework.transaction.annotation.Transactional;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
 
 /**
  * Created by super_zou on 2019/11/28.
@@ -783,8 +784,16 @@ public class RoomServiceImpl implements RoomService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean batchControlDevice(ReqDeviceControlData data) throws Exception {
-        //获取所有的学员列表
-        List<RoomMember> roomMembers = roomMemberDao.findByRidAndRole(data.getRoomId(),RoleEnum.RoleStudent.getValue());
+        List<RoomMember> roomMembers;
+        if(StringUtils.isNotEmpty(data.getUserId())){
+            roomMembers = new ArrayList<>();
+            String[] split = data.getUserId().split(",");
+            for (int i = 0; i < split.length; i++) {
+                roomMembers.add(new RoomMember(split[i]));
+            }
+        }else {
+            roomMembers = roomMemberDao.findByRidAndRole(data.getRoomId(),RoleEnum.RoleStudent.getValue());
+        }
         if(roomMembers.size() == 0){
             return false;
         }

+ 7 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderController.java

@@ -64,4 +64,11 @@ public class MusicGroupPaymentCalenderController extends BaseController {
     public Object queryPage(MusicCalenderQueryInfo queryInfo) {
         return succeed(musicGroupPaymentCalenderService.queryPage(queryInfo));
     }
+
+    @ApiOperation(value = "获取缴费信息")
+    @GetMapping("/getDetail")
+    @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/getDetail')")
+    public Object getDetail(Long id) {
+        return succeed(musicGroupPaymentCalenderService.getDetail(id));
+    }
 }

+ 29 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupStudentFeeController.java

@@ -0,0 +1,29 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.biz.dal.page.MusicCalenderDetailQueryInfo;
+import com.ym.mec.biz.service.MusicGroupStudentFeeService;
+import com.ym.mec.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("musicGroupStudentFee")
+@Api(tags = "乐团学生费用")
+@RestController
+public class MusicGroupStudentFeeController extends BaseController {
+
+    @Autowired
+    private MusicGroupStudentFeeService musicGroupStudentFeeService;
+
+    @ApiOperation(value = "列表查询")
+    @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('musicGroupStudentFee/queryPage')")
+    public Object queryPage(MusicCalenderDetailQueryInfo queryInfo) {
+        return succeed(musicGroupStudentFeeService.queryPage(queryInfo));
+    }
+
+}

+ 7 - 7
mec-web/src/main/java/com/ym/mec/web/controller/education/EduOnlineMusicGroupController.java

@@ -54,7 +54,7 @@ public class EduOnlineMusicGroupController extends BaseController {
 
     @ApiOperation(value = "分页查询乐团列表")
     @GetMapping("/findMusicGroups")
-    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/findMusicGroups')")
+//    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/findMusicGroups')")
     public HttpResponseResult findMusicGroups(MusicGroupQueryInfo queryInfo){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
@@ -67,14 +67,14 @@ public class EduOnlineMusicGroupController extends BaseController {
 
     @ApiOperation(value = "获取乐团下所有学员身上的声部列表")
     @GetMapping("/findMusicGroupAllStudentSubjects")
-    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/findMusicGroupAllStudentSubjects')")
+//    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/findMusicGroupAllStudentSubjects')")
     public HttpResponseResult findMusicGroupAllStudentSubjects(String musicGroupId){
         return succeed(studentRegistrationService.findMusicGroupAllStudentSubjects(musicGroupId));
     }
 
     @ApiOperation(value = "根据声部获取乐团下完成缴费的学员")
     @GetMapping("/findMusicGroupStudentWithSubject")
-    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/findMusicGroupStudentWithSubject')")
+//    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/findMusicGroupStudentWithSubject')")
     public HttpResponseResult findMusicGroupStudentWithSubject(String musicGroupId,Integer subjectId){
         if(Objects.isNull(subjectId)){
             return failed("请指定声部");
@@ -84,7 +84,7 @@ public class EduOnlineMusicGroupController extends BaseController {
 
     @ApiOperation(value = "获取可选择的教师")
     @GetMapping("/getEnableApplyTeachers")
-    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/getEnableApplyTeachers')")
+//    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/getEnableApplyTeachers')")
     public HttpResponseResult getEnableApplyTeachers(Integer studentId, Integer subjectId){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
@@ -98,7 +98,7 @@ public class EduOnlineMusicGroupController extends BaseController {
 
     @ApiOperation(value = "获取教师空闲时间")
     @GetMapping("/getTeacherFreeTimes")
-    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/getTeacherFreeTimes')")
+//    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/getTeacherFreeTimes')")
     public HttpResponseResult getTeacherFreeTimes(Integer studentId, Integer teacherId) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
@@ -112,7 +112,7 @@ public class EduOnlineMusicGroupController extends BaseController {
 
     @ApiOperation(value = "检测学生是否存在进行中的乐团网管课")
     @GetMapping("/checkStudentExistMusicNetwork")
-    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/checkStudentExistMusicNetwork')")
+//    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/checkStudentExistMusicNetwork')")
     public HttpResponseResult checkStudentExistMusicNetwork(Integer studentId){
         int i = courseScheduleStudentPaymentDao.countStudentNotStartCourseNumWithCourseType(studentId, CourseSchedule.CourseScheduleType.MUSIC_NETWORK);
         return succeed(i>0?1:0);
@@ -120,7 +120,7 @@ public class EduOnlineMusicGroupController extends BaseController {
 
     @ApiOperation(value = "创建乐团网管课")
     @PostMapping("/createOnlineMusicClassGroup")
-    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/createOnlineMusicClassGroup')")
+//    @PreAuthorize("@pcs.hasPermissions('eduOnlineMusic/createOnlineMusicClassGroup')")
     public HttpResponseResult createOnlineMusicClassGroup(OnlineMusicGroupCourseDto onlineMusicGroupCourseInfo){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {