Bläddra i källkod

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

 Conflicts:
	mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
zouxuan 4 år sedan
förälder
incheckning
89adc7e0d2

+ 0 - 13
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -239,22 +239,9 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
     List<Integer> queryPushMemberRenew(String pushMemberRenew);
 
     /**
-     * 会员结束前15天自动创建乐团缴费
-     * @param pushMemberRenew
-     * @return
-     */
-    List<Map<String,String>> queryAutoCreateStudentMap(String pushMemberRenew);
-
-    /**
      * 清空学员会员
      */
     void cleanStudentMember();
 
     void cleanMember(Integer userId);
-
-    /**
-     * 清空乐团会员时长
-     * @param userId
-     */
-    void cleanMusicMember(@Param("userId") Integer userId);
 }

+ 13 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -632,8 +632,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
     List<StudentRegistration> queryMemberEndAutoQuitMusic(@Param("memberEndAutoQuitMusic") String memberEndAutoQuitMusic,
                                                           @Param("educationUserId") Integer educationUserId,
                                                           @Param("organIds") String organIds);
-
-
+    
     /**
      * 统计指定乐团在读的声部人数
      * @param musicGroupId
@@ -647,15 +646,24 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * @return
      */
     List<Mapper> countStudentWithGradeByMusicGroupId(String musicGroupId);
-
+    
     /**
      * 查询学生报名购买的乐器详情
      * @param params
      * @return
      */
     List<StudentRegisterInstrumentsDetailDto> queryStudentRegisterInstrumentsDetailList(Map<String, Object> params);
+    
+    int queryStudentRegisterInstrumentsDetailCount(Map<String, Object> params);
+	
+	List<SubjectApplyDetailDto> queryStudentApplyDetail(@Param("musicGroupId") String musicGroupId);
 
-	int queryStudentRegisterInstrumentsDetailCount(Map<String, Object> params);
+    void cleanMusicMember(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId);
 
-    List<SubjectApplyDetailDto> queryStudentApplyDetail(@Param("musicGroupId") String musicGroupId);
+    /**
+     * 会员结束前15天自动创建乐团缴费
+     * @param pushMemberRenew
+     * @return
+     */
+    List<Map<String,String>> queryAutoCreateStudentMap(@Param("pushMemberRenew") String pushMemberRenew);
 }

+ 0 - 22
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Student.java

@@ -70,28 +70,6 @@ public class Student extends SysUser {
 	@ApiModelProperty(value = "活动排课信息")
 	private String activityCourseDetail;
 
-	//乐团会员有效期截止时间
-	private Date musicMembershipEndTime;
-
-	//会员团编号
-	private String memberMusicGroupId;
-
-	public Date getMusicMembershipEndTime() {
-		return musicMembershipEndTime;
-	}
-
-	public void setMusicMembershipEndTime(Date musicMembershipEndTime) {
-		this.musicMembershipEndTime = musicMembershipEndTime;
-	}
-
-	public String getMemberMusicGroupId() {
-		return memberMusicGroupId;
-	}
-
-	public void setMemberMusicGroupId(String memberMusicGroupId) {
-		this.memberMusicGroupId = memberMusicGroupId;
-	}
-
 	public Student(Integer userId, String subjectIdList) {
 		this.userId = userId;
 		this.subjectIdList = subjectIdList;

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

@@ -277,7 +277,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 		if(StringUtils.isEmpty(autoCreateMemberRenew)){
 			autoCreateMemberRenew = "15";
 		}
-		Map<String,String> studentMusicMap = MapUtil.convertMybatisMap(studentDao.queryAutoCreateStudentMap(autoCreateMemberRenew));
+		Map<String,String> studentMusicMap = MapUtil.convertMybatisMap(studentRegistrationDao.queryAutoCreateStudentMap(autoCreateMemberRenew));
 		if(studentMusicMap.size() > 0){
 			for (String musicGroupId : studentMusicMap.keySet()) {
 				MusicGroup musicGroup = musicGroupDao.get(musicGroupId);

+ 4 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1915,7 +1915,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             studentRegistration.setSurplusCourseFee(BigDecimal.ZERO);
             studentRegistration.setHasCloudTeacher(0);
             studentRegistration.setUpdateTime(date);
-
             studentRegistrationDao.update(studentRegistration);
 
             //更新服务指标、运营指标
@@ -2009,7 +2008,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     throw new BizException("非会员乐团不允许退云教练");
                 }
                 //删除乐团会员时长
-                studentDao.cleanMusicMember(userId);
+                studentRegistrationDao.cleanMusicMember(userId,null);
                 //退云教练费用
                 if (cloudTeacherAmount != null) {
                     Date nowDate = new Date();
@@ -2035,12 +2034,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 }
             }else {
                 //删除乐团会员时长
-                Student student = studentDao.get(userId);
-                if(StringUtils.isNotEmpty(student.getMemberMusicGroupId())){
-                    if(student.getMemberMusicGroupId().equals(musicGroupId)){
-                        studentDao.cleanMusicMember(userId);
-                    }
-                }
+                studentRegistrationDao.cleanMusicMember(userId,musicGroupId);
             }
 
             if (isRefundCourseFee) {
@@ -2202,7 +2196,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentRegistration.setSurplusCourseFee(BigDecimal.ZERO);
         studentRegistration.setHasCloudTeacher(0);
         studentRegistration.setUpdateTime(date);
-
         studentRegistrationDao.update(studentRegistration);
 
         //更新服务指标、运营指标
@@ -2295,7 +2288,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 throw new BizException("非会员乐团不允许退云教练");
             }
             //删除乐团会员时长
-            studentDao.cleanMusicMember(userId);
+            studentRegistrationDao.cleanMusicMember(userId,null);
             //退云教练费用
             if (cloudTeacherAmount != null) {
                 Date nowDate = new Date();
@@ -2321,12 +2314,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             }
         }else {
             //删除乐团会员时长
-            Student student = studentDao.get(userId);
-            if(StringUtils.isNotEmpty(student.getMemberMusicGroupId())){
-                if(student.getMemberMusicGroupId().equals(musicGroupId)){
-                    studentDao.cleanMusicMember(userId);
-                }
-            }
+            studentRegistrationDao.cleanMusicMember(userId,musicGroupId);
         }
 
         if (isRefundCourseFee) {

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

@@ -302,19 +302,18 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         }
         if(StringUtils.isNotEmpty(cloudTeacherOrder.getMusicGroupId())){
             StudentRegistration registration = studentRegistrationDao.getByUserIdAndMusicGroupId(cloudTeacherOrder.getMusicGroupId(), cloudTeacherOrder.getStudentId());
-            if(registration != null && registration.getMusicGroupStatus() == StudentMusicGroupStatusEnum.NORMAL){
-                student.setMemberMusicGroupId(cloudTeacherOrder.getMusicGroupId());
-                if (student.getMusicMembershipEndTime() == null || nowDate.after(student.getMusicMembershipEndTime())) {
+            if(registration != null && (registration.getMusicGroupStatus() == StudentMusicGroupStatusEnum.NORMAL || registration.getMusicGroupStatus() == StudentMusicGroupStatusEnum.APPLY)){
+                if (registration.getMembershipEndTime() == null || nowDate.after(registration.getMembershipEndTime())) {
                     switch (periodEnum) {
                         case DAY:
-                            student.setMusicMembershipEndTime(DateUtil.addDays(nowDate, cloudTeacherOrder.getTime()));
+                            registration.setMembershipEndTime(DateUtil.addDays(nowDate, cloudTeacherOrder.getTime()));
                             break;
                         case MONTH:
                         case YEAR_HALF:
-                            student.setMusicMembershipEndTime(DateUtil.addMonths(nowDate, cloudTeacherOrder.getTime()));
+                            registration.setMembershipEndTime(DateUtil.addMonths(nowDate, cloudTeacherOrder.getTime()));
                             break;
                         case YEAR:
-                            student.setMusicMembershipEndTime(DateUtil.addYears(nowDate, cloudTeacherOrder.getTime()));
+                            registration.setMembershipEndTime(DateUtil.addYears(nowDate, cloudTeacherOrder.getTime()));
                             break;
                         default:
                             break;
@@ -322,19 +321,20 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
                 } else {
                     switch (periodEnum) {
                         case DAY:
-                            student.setMusicMembershipEndTime(DateUtil.addDays(student.getMusicMembershipEndTime(), cloudTeacherOrder.getTime()));
+                            registration.setMembershipEndTime(DateUtil.addDays(registration.getMembershipEndTime(), cloudTeacherOrder.getTime()));
                             break;
                         case MONTH:
                         case YEAR_HALF:
-                            student.setMusicMembershipEndTime(DateUtil.addMonths(student.getMusicMembershipEndTime(), cloudTeacherOrder.getTime()));
+                            registration.setMembershipEndTime(DateUtil.addMonths(registration.getMembershipEndTime(), cloudTeacherOrder.getTime()));
                             break;
                         case YEAR:
-                            student.setMusicMembershipEndTime(DateUtil.addYears(student.getMusicMembershipEndTime(), cloudTeacherOrder.getTime()));
+                            registration.setMembershipEndTime(DateUtil.addYears(registration.getMembershipEndTime(), cloudTeacherOrder.getTime()));
                             break;
                         default:
                             break;
                     }
                 }
+                studentRegistrationDao.update(registration);
             }
         }
 

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

@@ -795,12 +795,12 @@
 			COUNT(DISTINCT mgpc.music_group_id_,mgpcd.user_id_)
 		FROM
 		music_group_payment_calender_detail mgpcd
-		LEFT JOIN student s ON s.user_id_ = mgpcd.user_id_
 		LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
 		LEFT JOIN music_group mg ON mgpc.music_group_id_ = mg.id_
+		LEFT JOIN student_registration sr ON sr.music_group_id_ = mgpc.music_group_id_ AND mgpcd.user_id_ = sr.user_id_
 		WHERE
 		mg.status_ = 'PROGRESS'
-		AND ((mgpc.member_rank_setting_id_ IS NOT NULL AND (DATEDIFF(s.music_membership_end_time_,NOW()) &lt; 0 OR s.music_membership_end_time_ IS NULL)) OR mgpc.member_rank_setting_id_ IS NULL)
+		AND ((mgpc.member_rank_setting_id_ IS NOT NULL AND (DATEDIFF(sr.membership_end_time_,NOW()) &lt; 0 OR sr.membership_end_time_ IS NULL)) OR mgpc.member_rank_setting_id_ IS NULL)
 		<if test="noPaymentType==null or noPaymentType==0">
 			AND DATE_FORMAT(NOW(),'%Y-%m-%d') > DATE_FORMAT(mgpc.deadline_payment_date_,'%Y-%m-%d')
 		</if>

+ 6 - 8
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml

@@ -400,10 +400,10 @@
 	<select id="queryNoPaymentTotalAmount" resultType="java.util.Map">
 		SELECT mgpcd.user_id_ 'key',SUM(mgpcd.expect_amount_ + mgpcd.expect_member_amount_) 'value' FROM music_group_payment_calender_detail mgpcd
 		LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
-		LEFT JOIN student s ON s.user_id_ = mgpcd.user_id_
+		LEFT JOIN student_registration sr ON sr.user_id_ = mgpcd.user_id_ AND sr.music_group_id_ = mgpc.music_group_id_
 		WHERE mgpc.batch_no_ IS NOT NULL AND mgpcd.payment_status_ = 'NON_PAYMENT' AND (mgpcd.expect_amount_ + mgpcd.expect_member_amount_) > 0
-		AND mgpc.music_group_id_ = #{musicGroupId} AND mgpc.status_ IN ('OPEN','OVER','PAID') AND mgpc.pay_user_type_ = 'STUDENT'
-		AND ((mgpc.member_rank_setting_id_ IS NOT NULL AND (DATEDIFF(s.music_membership_end_time_,NOW()) &lt; 0 OR s.music_membership_end_time_ IS NULL)) OR mgpc.member_rank_setting_id_ IS NULL)
+		  AND mgpc.music_group_id_ = #{musicGroupId} AND mgpc.status_ IN ('OPEN','OVER','PAID') AND mgpc.pay_user_type_ = 'STUDENT'
+		  AND ((mgpc.member_rank_setting_id_ IS NOT NULL AND (DATEDIFF(sr.membership_end_time_,NOW()) &lt; 0 OR sr.membership_end_time_ IS NULL)) OR mgpc.member_rank_setting_id_ IS NULL)
 		GROUP BY mgpcd.user_id_
 	</select>
 
@@ -439,7 +439,7 @@
 	<sql id="queryArrearageStudentsCondition">
 		<where>
 			mg.status_ = 'PROGRESS'
-			AND ((mgpc.member_rank_setting_id_ IS NOT NULL AND (DATEDIFF(s.music_membership_end_time_,NOW()) &lt; 0 OR s.music_membership_end_time_ IS NULL)) OR mgpc.member_rank_setting_id_ IS NULL)
+			AND ((mgpc.member_rank_setting_id_ IS NOT NULL AND (DATEDIFF(sr.membership_end_time_,NOW()) &lt; 0 OR sr.membership_end_time_ IS NULL)) OR mgpc.member_rank_setting_id_ IS NULL)
 			<if test="noPaymentType==null or noPaymentType==0">
 				AND DATE_FORMAT(NOW(),'%Y-%m-%d') > DATE_FORMAT(mgpc.deadline_payment_date_,'%Y-%m-%d')
 			</if>
@@ -488,11 +488,9 @@
 			su.phone_ phone_
 		FROM
 			music_group_payment_calender_detail mgpcd
-			LEFT JOIN student s ON s.user_id_ = mgpcd.user_id_
 			LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
 			LEFT JOIN music_group mg ON mgpc.music_group_id_ = mg.id_
-			LEFT JOIN student_registration sr ON sr.music_group_id_ = mgpc.music_group_id_
-			AND mgpcd.user_id_ = sr.user_id_
+			LEFT JOIN student_registration sr ON sr.music_group_id_ = mgpc.music_group_id_ AND mgpcd.user_id_ = sr.user_id_
 			LEFT JOIN sys_user su ON mgpcd.user_id_ = su.id_
 			LEFT JOIN sys_user_tsign sut ON sut.user_id_ = su.id_
 			LEFT JOIN sys_user edu ON edu.id_ = mg.educational_teacher_id_
@@ -510,9 +508,9 @@
 			COUNT(DISTINCT mgpc.music_group_id_,mgpcd.user_id_)
 		FROM
 			music_group_payment_calender_detail mgpcd
-			LEFT JOIN student s ON s.user_id_ = mgpcd.user_id_
 			LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
 			LEFT JOIN music_group mg ON mgpc.music_group_id_ = mg.id_
+			LEFT JOIN student_registration sr ON sr.music_group_id_ = mgpc.music_group_id_ AND mgpcd.user_id_ = sr.user_id_
 			<if test="search!=null and search!=''">
 				LEFT JOIN sys_user su ON mgpcd.user_id_ = su.id_
 			</if>

+ 0 - 17
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -29,8 +29,6 @@
         <result column="organ_name_" property="organName"/>
         <result column="phone_" property="phone"/>
         <result column="username_" property="username"/>
-        <result column="music_membership_end_time_" property="musicMembershipEndTime"/>
-        <result column="member_music_group_id_" property="memberMusicGroupId"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -98,12 +96,6 @@
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.Student">
         UPDATE student
         <set>
-            <if test="musicMembershipEndTime != null">
-                music_membership_end_time_ = #{musicMembershipEndTime},
-            </if>
-            <if test="memberMusicGroupId != null">
-                member_music_group_id_ = #{memberMusicGroupId},
-            </if>
             <if test="subjectIdList != null">
                 subject_id_list_ = #{subjectIdList},
             </if>
@@ -769,11 +761,6 @@
         GROUP BY s.user_id_ HAVING (MAX(cto.id_) IS NULL OR MIN(cto.status_) > 1)
         AND DATEDIFF(MAX(cto.end_time_),NOW()) = #{pushMemberRenew}
     </select>
-    <select id="queryAutoCreateStudentMap" resultType="java.util.Map">
-        SELECT GROUP_CONCAT(s.user_id_) 'value',s.member_music_group_id_ 'key' FROM student s
-        WHERE DATEDIFF(s.music_membership_end_time_,NOW()) + 1 = #{pushMemberRenew}
-        GROUP BY s.member_music_group_id_
-    </select>
 
     <update id="updateGrade"><![CDATA[
         UPDATE student SET current_grade_num_=current_grade_num_+1
@@ -797,8 +784,4 @@
         UPDATE student SET member_rank_setting_id_ = NULL,membership_start_time_ = NULL,membership_end_time_ = NULL
         WHERE user_id_ = #{userId}
     </update>
-    <update id="cleanMusicMember">
-        UPDATE student SET member_music_group_id_ = NULL,music_membership_end_time_ = NULL
-        WHERE user_id_ = #{userId}
-    </update>
 </mapper>

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

@@ -50,6 +50,7 @@
         <result column="none_need_cloud_teacher_" property="noneNeedCloudTeacher"/>
         <result column="membership_end_time_" property="membershipEndTime"/>
         <result column="music_group_payment_calender_id_" property="musicGroupPaymentCalenderId"/>
+        <result column="membership_end_time_" property="membershipEndTime"/>
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.StudentMusicGroupDto" id="StudentMusicGroupDto"
@@ -365,6 +366,9 @@
             <if test="noneNeedCloudTeacher != null">
                 none_need_cloud_teacher_ =#{noneNeedCloudTeacher},
             </if>
+            <if test="membershipEndTime != null">
+                membership_end_time_ =#{membershipEndTime},
+            </if>
                 music_group_payment_calender_id_ =#{musicGroupPaymentCalenderId}
         </set>
         WHERE id_ = #{id}
@@ -1360,6 +1364,13 @@
         WHERE music_group_id_ = #{musicGroupId}
         AND music_group_status_ IN ('APPLY', 'NORMAL')
     </update>
+    <update id="cleanMusicMember">
+        UPDATE student_registration SET membership_end_time_ = NULL
+        WHERE user_id_ = #{userId}
+        <if test="musicGroupId != null and musicGroupId != ''">
+            AND music_group_id_ = #{musicGroupId}
+        </if>
+    </update>
 
     <select id="countPayingNum" resultType="map">
         SELECT COUNT(DISTINCT user_id_) `value`, actual_subject_id_ `key`
@@ -1658,4 +1669,9 @@
         AND music_group_status_ != 'QUIT'
         GROUP BY music_group_id_,actual_subject_id_
     </select>
+    <select id="queryAutoCreateStudentMap" resultType="java.util.Map">
+        SELECT GROUP_CONCAT(sr.user_id_) 'value',sr.music_group_id_ 'key' FROM student_registration sr
+        WHERE sr.membership_end_time_ IS NOT NULL AND DATEDIFF(sr.membership_end_time_,NOW()) + 1 = #{pushMemberRenew}
+        GROUP BY sr.music_group_id_
+    </select>
 </mapper>