Browse Source

Merge remote-tracking branch 'origin/master'

周箭河 5 years ago
parent
commit
1da481ebd5

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherMapperDao.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 package com.ym.mec.biz.dal.dao;
 
 
+import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
@@ -21,10 +22,10 @@ public interface ClassGroupTeacherMapperDao extends BaseDAO<Long, ClassGroupTeac
     /**
     /**
      * 查询班级老师
      * 查询班级老师
      *
      *
-     * @param classGroupList
+     * @param classGroupIds
      * @return
      * @return
      */
      */
-    List<ClassGroupTeacherMapper> findClassGroupTeachers(@Param("classGroupList") List classGroupList);
+    List<ClassGroupTeacherMapper> findClassGroupTeachers(@Param("classGroupIds") String classGroupIds);
 
 
     /**
     /**
      * 批量删除班级的老师关联关系
      * 批量删除班级的老师关联关系

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

@@ -65,4 +65,11 @@ public interface MusicGroupStudentFeeDao extends BaseDAO<Long, MusicGroupStudent
 	 * @return
 	 * @return
 	 */
 	 */
 	List<Map<String,String>> queryUserPaymentStatus(@Param("userId") Integer userId, @Param("musicGroupIds") String musicGroupIds);
 	List<Map<String,String>> queryUserPaymentStatus(@Param("userId") Integer userId, @Param("musicGroupIds") String musicGroupIds);
+
+	/**
+	 * 获取当前乐团未缴费的学员人数
+	 * @param musicGroupId
+	 * @return
+	 */
+    Integer countStudentNoPayNum(String musicGroupId);
 }
 }

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

@@ -25,4 +25,11 @@ public interface MusicGroupSubjectPlanDao extends BaseDAO<Integer, MusicGroupSub
      * @return
      * @return
      */
      */
     MusicGroupSubjectPlan getMusicOneSubjectClassPlan(@Param("musicGroupId") String musicGroupId, @Param("subjectId") int subjectId);
     MusicGroupSubjectPlan getMusicOneSubjectClassPlan(@Param("musicGroupId") String musicGroupId, @Param("subjectId") int subjectId);
+
+    /**
+     * 批量新增乐团声部规划
+     * @param musicGroupSubjectPlans
+     * @param musicGroupId
+     */
+    void batchAdd( @Param("subjectPlans") List<MusicGroupSubjectPlan> musicGroupSubjectPlans,@Param("musicGroupId") String musicGroupId);
 }
 }

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupTeacherMapperService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 package com.ym.mec.biz.service;
 
 
+import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.common.service.BaseService;
@@ -22,7 +23,7 @@ public interface ClassGroupTeacherMapperService extends BaseService<Long, ClassG
      * @param classGroupList
      * @param classGroupList
      * @return
      * @return
      */
      */
-    List<ClassGroupTeacherMapper> findClassGroupTeachers(List classGroupList);
+    List<ClassGroupTeacherMapper> findClassGroupTeachers(List<ClassGroupTeachersDto> classGroupList);
 
 
     /**
     /**
      * 批量更新教师薪酬
      * 批量更新教师薪酬

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

@@ -136,7 +136,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * 修改乐团基本信息
 	 * 修改乐团基本信息
 	 * @param subFeeSettingDto
 	 * @param subFeeSettingDto
 	 */
 	 */
-	void updateBaseInfo(SubFeeSettingDto subFeeSettingDto);
+	void updateBaseInfo(SubFeeSettingDto subFeeSettingDto) throws Exception;
 
 
 	/**
 	/**
 	 * 获取修改乐团时的基本信息数据
 	 * 获取修改乐团时的基本信息数据

+ 4 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service.impl;
 import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
 import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
 import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
 import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
 import com.ym.mec.biz.dal.dao.TeacherDefaultMusicGroupSalaryDao;
 import com.ym.mec.biz.dal.dao.TeacherDefaultMusicGroupSalaryDao;
+import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
@@ -53,8 +54,9 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
 
 
 
     @Override
     @Override
-    public List<ClassGroupTeacherMapper> findClassGroupTeachers(List ClassGroupList) {
-        return classGroupTeacherMapperDao.findClassGroupTeachers(ClassGroupList);
+    public List<ClassGroupTeacherMapper> findClassGroupTeachers(List<ClassGroupTeachersDto> ClassGroupList) {
+        Set<Integer> collect = ClassGroupList.stream().map(ClassGroupTeachersDto::getId).collect(Collectors.toSet());
+        return classGroupTeacherMapperDao.findClassGroupTeachers(StringUtils.join(collect,","));
     }
     }
 
 
     public boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception {
     public boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception {

+ 60 - 28
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -19,6 +19,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.collection.MapUtil;
 
 
+import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -26,6 +27,8 @@ import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -110,7 +113,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         List<SubjectRegisterDto> subjectRegisters = subFeeSettingDto.getSubjectRegisters();
         List<SubjectRegisterDto> subjectRegisters = subFeeSettingDto.getSubjectRegisters();
         String musicGroupId = idGeneratorService.generatorId() + "";
         String musicGroupId = idGeneratorService.generatorId() + "";
         musicGroup.setId(musicGroupId);
         musicGroup.setId(musicGroupId);
-        musicGroup.setStatus(MusicGroupStatusEnum.PREPARE);
+        musicGroup.setStatus(MusicGroupStatusEnum.APPLY);
         // 保存乐团基本信息
         // 保存乐团基本信息
         musicGroupDao.insert(musicGroup);
         musicGroupDao.insert(musicGroup);
         // 保存乐团付费主体列表
         // 保存乐团付费主体列表
@@ -124,29 +127,28 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             musicGroupPaymentCalenderDao.batchAdd(months,musicGroupId);
             musicGroupPaymentCalenderDao.batchAdd(months,musicGroupId);
         }
         }
         // 保存乐团声部规划
         // 保存乐团声部规划
-        if (musicGroupSubjectPlans == null) {
-            musicGroupSubjectPlans = new ArrayList<>();
+        if (musicGroupSubjectPlans != null) {
+            musicGroupSubjectPlanDao.batchAdd(musicGroupSubjectPlans,musicGroupId);
         }
         }
-        musicGroupSubjectPlans.forEach(e -> {
-            e.setMusicGroupId(musicGroupId);
-            musicGroupSubjectPlanDao.insert(e);
-        });
+//        musicGroupSubjectPlans.forEach(e -> {
+//            e.setMusicGroupId(musicGroupId);
+//            musicGroupSubjectPlanDao.insert(e);
+//        });
         //乐团科目学生
         //乐团科目学生
         if (subjectRegisters != null) {
         if (subjectRegisters != null) {
             List<StudentRegistration> studentRegistrationList = new ArrayList<>();
             List<StudentRegistration> studentRegistrationList = new ArrayList<>();
             subjectRegisters.forEach(e -> {
             subjectRegisters.forEach(e -> {
-                        //原来乐团的注册学生
-                        List<StudentRegistration> musicGroupStudentRegistrationList = studentRegistrationService.findStudentListByIdList(e.getRegisterIdList());
-                        for (StudentRegistration studentRegistration : musicGroupStudentRegistrationList) {
-                            studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
-                            studentRegistration.setPaymentStatus(PaymentStatusEnum.NO);
-                            studentRegistration.setMusicGroupId(musicGroupId);
-                            studentRegistration.setSubjectId(e.getSubjectId());
-                            studentRegistration.setActualSubjectId(e.getSubjectId());
-                        }
-                        studentRegistrationList.addAll(musicGroupStudentRegistrationList);
-                    }
-            );
+                    //原来乐团的注册学生
+                List<StudentRegistration> musicGroupStudentRegistrationList = studentRegistrationService.findStudentListByIdList(e.getRegisterIdList());
+                for (StudentRegistration studentRegistration : musicGroupStudentRegistrationList) {
+                    studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
+                    studentRegistration.setPaymentStatus(PaymentStatusEnum.NO);
+                    studentRegistration.setMusicGroupId(musicGroupId);
+                    studentRegistration.setSubjectId(e.getSubjectId());
+                    studentRegistration.setActualSubjectId(e.getSubjectId());
+                }
+                studentRegistrationList.addAll(musicGroupStudentRegistrationList);
+            });
             studentRegistrationService.batchInsert(studentRegistrationList);
             studentRegistrationService.batchInsert(studentRegistrationList);
         }
         }
         // 保存乐团声部商品规划
         // 保存乐团声部商品规划
@@ -568,11 +570,46 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
 
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
-    public void updateBaseInfo(SubFeeSettingDto subFeeSettingDto) {
+    public void updateBaseInfo(SubFeeSettingDto subFeeSettingDto) throws Exception {
         MusicGroup musicGroup = subFeeSettingDto.getMusicGroup();
         MusicGroup musicGroup = subFeeSettingDto.getMusicGroup();
         String musicGroupId = musicGroup.getId();
         String musicGroupId = musicGroup.getId();
         MusicGroup group = musicGroupDao.get(musicGroupId);
         MusicGroup group = musicGroupDao.get(musicGroupId);
         if(group != null){
         if(group != null){
+            Date date = new Date();
+            List<Integer> months = subFeeSettingDto.getMonths();
+            //删除乐团相关付费周期
+            musicGroupPaymentCalenderDao.delByGroupId(musicGroupId);
+            if(months != null && months.size() > 0){
+                Integer num = musicGroupStudentFeeDao.countStudentNoPayNum(musicGroupId);
+                if(num > 0){
+                    throw new Exception("缴费周期更新失败,当前乐团有未缴费的学员");
+                }
+                //修改学员下次缴费日期
+                //获取当前月份
+                int currentMonth = Integer.parseInt(DateUtil.getMonth(date));
+                int nextMonth = currentMonth;
+                for (int i = 0;i < months.size();i++){
+                    if(i == months.size()-1 && months.get(i) <= currentMonth){
+                        nextMonth = months.get(0);
+                        break;
+                    }else if(months.get(i) > currentMonth){
+                        nextMonth = months.get(i);
+                        break;
+                    }
+                }
+                // 修改学员付费周期
+                Date nextPaymentDate = null;
+                if(nextMonth > currentMonth){
+                    nextPaymentDate = DateUtil.addMonths(date, nextMonth - currentMonth);
+                }else if(nextMonth < currentMonth) {
+                    nextPaymentDate = DateUtil.addMonths(date, 12 - currentMonth + nextMonth);
+                }else {
+                    nextPaymentDate = DateUtil.addMonths(date, 12);
+                }
+                musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId,nextPaymentDate);
+                //批量插入
+                musicGroupPaymentCalenderDao.batchAdd(months,musicGroupId);
+            }
             musicGroupDao.update(musicGroup);
             musicGroupDao.update(musicGroup);
             //修改课程里面的教学点
             //修改课程里面的教学点
             if(!group.getSchoolId().equals(musicGroup.getSchoolId())){
             if(!group.getSchoolId().equals(musicGroup.getSchoolId())){
@@ -581,14 +618,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             // 删除乐团付费主体列表
             // 删除乐团付费主体列表
             musicGroupPaymentEntitiesDao.delByGroupId(musicGroupId);
             musicGroupPaymentEntitiesDao.delByGroupId(musicGroupId);
             //批量新增
             //批量新增
-            musicGroupPaymentEntitiesDao.batchAdd(subFeeSettingDto.getMusicGroupPaymentEntities(),musicGroupId);
-
-            // 修改学员付费周期
-            List<Integer> calender = subFeeSettingDto.getMonths();
-            //删除乐团相关付费周期
-            musicGroupPaymentCalenderDao.delByGroupId(musicGroupId);
-            //批量插入
-            musicGroupPaymentCalenderDao.batchAdd(calender,musicGroupId);
+            if(subFeeSettingDto.getMusicGroupPaymentEntities() != null){
+                musicGroupPaymentEntitiesDao.batchAdd(subFeeSettingDto.getMusicGroupPaymentEntities(),musicGroupId);
+            }
         }
         }
     }
     }
 
 

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

@@ -33,7 +33,7 @@ public class SmsCodeServiceImpl implements SmsCodeService {
 		if(StringUtils.isNoneEmpty(verifyCode) && StringUtils.equalsIgnoreCase(verifyCode,authCode)){
 		if(StringUtils.isNoneEmpty(verifyCode) && StringUtils.equalsIgnoreCase(verifyCode,authCode)){
 			return true;
 			return true;
 		}
 		}
-		return true;
+		return false;
 	}
 	}
 
 
 	@Override
 	@Override

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectServiceImpl.java

@@ -73,6 +73,10 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  imple
 
 
     @Override
     @Override
     public void upSetSubject(Subject subject) {
     public void upSetSubject(Subject subject) {
+        if(subject.getDelFlag() == YesOrNoEnum.YES){
+            subjectDao.delete(subject.getId());
+            return;
+        }
         Integer parentId = upset(subject, null);
         Integer parentId = upset(subject, null);
         List<Subject> subjects = subject.getSubjects();
         List<Subject> subjects = subject.getSubjects();
         if(subjects != null && subjects.size() > 0){
         if(subjects != null && subjects.size() > 0){

+ 1 - 4
mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherMapperMapper.xml

@@ -105,10 +105,7 @@
         SELECT u.real_name_, ct.*
         SELECT u.real_name_, ct.*
         FROM sys_user u,
         FROM sys_user u,
         class_group_teacher_mapper ct
         class_group_teacher_mapper ct
-        WHERE u.id_=ct.user_id_ AND ct.class_group_id_ IN
-        <foreach collection="classGroupList" item="item" index="index" open="(" close=")" separator=",">
-            #{item.id}
-        </foreach>
+        WHERE u.id_=ct.user_id_ AND FIND_IN_SET(ct.class_group_id_,#{classGroupIds})
     </select>
     </select>
     <select id="findByClassGroupAndRole" resultMap="ClassGroupTeacherMapper">
     <select id="findByClassGroupAndRole" resultMap="ClassGroupTeacherMapper">
         SELECT u.real_name_, ct.*
         SELECT u.real_name_, ct.*

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

@@ -121,7 +121,7 @@
 				director_user_id_ = #{directorUserId},
 				director_user_id_ = #{directorUserId},
 			</if>
 			</if>
 			<if test="settlementType != null">
 			<if test="settlementType != null">
-				settlement_type = #{settlementType},
+				settlement_type_ = #{settlementType},
 			</if>
 			</if>
 		</set>
 		</set>
 		WHERE id_ = #{id}
 		WHERE id_ = #{id}

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml

@@ -133,6 +133,10 @@
         SELECT DISTINCT music_group_id_ 'key',payment_status_ 'value' FROM music_group_student_fee_
         SELECT DISTINCT music_group_id_ 'key',payment_status_ 'value' FROM music_group_student_fee_
         WHERE user_id_ = #{userId} AND FIND_IN_SET(music_group_id_,#{musicGroupIds})
         WHERE user_id_ = #{userId} AND FIND_IN_SET(music_group_id_,#{musicGroupIds})
     </select>
     </select>
+    <select id="countStudentNoPayNum" resultType="java.lang.Integer">
+        SELECT COUNT(DISTINCT sr.id_) FROM student_registration sr LEFT JOIN music_group_student_fee_ sf ON sr.user_id_ = sf.user_id_
+        WHERE sr.music_group_id_ = #{musicGroupId} AND sr.music_group_status_ != 'QUIT' AND sf.payment_status_ != 'PAID_COMPLETED'
+    </select>
 
 
     <update id="batchUpdate" parameterType="java.util.List">
     <update id="batchUpdate" parameterType="java.util.List">
     	<foreach collection="list" item="item" index="index" open="" close="" separator=";">
     	<foreach collection="list" item="item" index="index" open="" close="" separator=";">

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml

@@ -42,6 +42,15 @@
         (id_,music_group_id_,subject_id_,expected_student_num_,apply_student_num_,fee_,kit_group_purchase_type_,deposit_fee_,create_time_,update_time_)
         (id_,music_group_id_,subject_id_,expected_student_num_,apply_student_num_,fee_,kit_group_purchase_type_,deposit_fee_,create_time_,update_time_)
         VALUES(#{id},#{musicGroupId},#{subjectId},#{expectedStudentNum},#{applyStudentNum},#{fee},#{kitGroupPurchaseType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{depositFee},now(),now())
         VALUES(#{id},#{musicGroupId},#{subjectId},#{expectedStudentNum},#{applyStudentNum},#{fee},#{kitGroupPurchaseType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{depositFee},now(),now())
     </insert>
     </insert>
+    <insert id="batchAdd">
+        INSERT INTO music_group_subject_plan
+        (music_group_id_,subject_id_,expected_student_num_,apply_student_num_,fee_,kit_group_purchase_type_,deposit_fee_,create_time_,update_time_)
+        VALUES
+        <foreach collection="subjectPlans" item="item" separator=",">
+            (#{musicGroupId},#{item.subjectId},#{item.expectedStudentNum},#{item.applyStudentNum},#{item.fee},#{item.kitGroupPurchaseType,
+            #{item.depositFee},now(),now())
+        </foreach>
+    </insert>
 
 
     <!-- 根据主键查询一条记录 -->
     <!-- 根据主键查询一条记录 -->
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan">
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan">

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

@@ -58,7 +58,7 @@
 
 
     <!-- 根据主键删除一条记录 -->
     <!-- 根据主键删除一条记录 -->
     <update id="delete">
     <update id="delete">
-		UPDATE `subject` SET del_flag_ = 1 WHERE id_ = #{id} AND parent_subject_ = #{id}
+        UPDATE `subject` SET del_flag_ = 1 WHERE id_ = #{id} OR parent_subject_id_ = #{id}
 	</update>
 	</update>
 
 
     <!-- 分页查询 -->
     <!-- 分页查询 -->

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -30,7 +30,7 @@ public class MusicGroupController extends BaseController {
     @ApiOperation(value = "修改乐团基本信息")
     @ApiOperation(value = "修改乐团基本信息")
     @PostMapping("/update")
     @PostMapping("/update")
     @PreAuthorize("@pcs.hasPermissions('musicGroup/update')")
     @PreAuthorize("@pcs.hasPermissions('musicGroup/update')")
-    public Object update(@RequestBody SubFeeSettingDto subFeeSettingDto){
+    public Object update(@RequestBody SubFeeSettingDto subFeeSettingDto) throws Exception {
         musicGroupService.updateBaseInfo(subFeeSettingDto);
         musicGroupService.updateBaseInfo(subFeeSettingDto);
         return succeed();
         return succeed();
     }
     }