Browse Source

Merge branch 'musicGroup_found_change'

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
#	mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
周箭河 4 years ago
parent
commit
96df92202c

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

@@ -380,4 +380,12 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
     List<String> getNoClassStudentMusicGroupIds(@Param("organIds") List<Integer> organIds);
 
     CooperationOrgan findCooperationOrganEduTeacher(@Param("id") Integer id);
+
+    /**
+     * 获取乐团合作单位进行中 、暂停、关闭 的乐团
+     * @param cooperationOrganId
+     * @param musicGroupId
+     * @return
+     */
+    Integer getCooperationMusicGroupNum(@Param("cooperationOrganId") Integer cooperationOrganId, @Param("musicGroupId") String musicGroupId);
 }

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

@@ -495,8 +495,16 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
     StudentRegistration getByUserIdAndMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
 
     List<NoClassMusicStudentDto> queryNoClassMusicStudents(Map<String, Object> params);
+
     int countNoClassMusicStudents(Map<String, Object> params);
 
 
     List<StudentClassInfoDto> getStudentClassInfo(@Param("studentIds") List<Integer> studentIds);
+
+    /**
+     * 获取乐团已缴费学员数量
+     * @param musicGroupId
+     * @return
+     */
+    Integer getPaymentStudentNum(@Param("musicGroupId") String musicGroupId);
 }

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

@@ -2742,23 +2742,17 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         } else {
             throw new BizException("当前乐团状态不支持此操作");
         }
+        //新建团:(乐团合作单位没有进行中 、暂停、关闭 的乐团)
+        //若乐团新建团,则操作【确认开团】时,若【已缴费】学员达到98人,则无需对【未缴费】学员新增回访
+        //若乐团不是新建团,则操作【确认开团】时,若【已缴费】学员达到58人,则无需对【未缴费】学员新增回访
         //报名未交费的学生,完成回访才能到下一步
-        boolean hasNoVisit = false;
-        StringBuilder tipsMsg = new StringBuilder();
-        List<StudentRegistration> noPaymentStudents = studentRegistrationDao.getNoPaymentStudent(musicGroupId);
-        if (noPaymentStudents.size() > 0) {
-            tipsMsg.append("以下学生未完成回访,");
-            List<Integer> studentIds = noPaymentStudents.stream().map(StudentRegistration::getUserId).collect(Collectors.toList());
-            List<Integer> musicGroupVisitStudent = studentVisitDao.getMusicGroupVisitStudent(musicGroupId, studentIds);
-            for (StudentRegistration noPaymentStudent : noPaymentStudents) {
-                if (!musicGroupVisitStudent.contains(noPaymentStudent.getUserId())) {
-                    hasNoVisit = true;
-                    tipsMsg.append(noPaymentStudent.getName()).append("(").append(noPaymentStudent.getUserId()).append(")、");
-                }
-            }
-        }
-        if (hasNoVisit) {
-            throw new BizException(tipsMsg.append("请完成回访").toString());
+
+        //获取乐团合作单位乐团数量
+        Integer cooperationMusicGroupNum = musicGroupDao.getCooperationMusicGroupNum(musicGroup.getCooperationOrganId(), musicGroupId);
+        Integer paymentStudentNum = studentRegistrationDao.getPaymentStudentNum(musicGroupId);
+
+        if((cooperationMusicGroupNum > 0 && paymentStudentNum < 98) || (cooperationMusicGroupNum <= 0 && paymentStudentNum < 58)){
+            checkStudentVisit(musicGroupId);
         }
 
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, event, sysUser.getId(), ""));
@@ -2788,6 +2782,30 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING, "", musicGroup.getName());
     }
 
+    /**
+     * 校验回访
+     * @param musicGroupId
+     */
+    private void checkStudentVisit(String musicGroupId){
+        boolean hasNoVisit = false;
+        StringBuilder tipsMsg = new StringBuilder();
+        List<StudentRegistration> noPaymentStudents = studentRegistrationDao.getNoPaymentStudent(musicGroupId);
+        if (noPaymentStudents.size() > 0) {
+            tipsMsg.append("以下学生未完成回访,");
+            List<Integer> studentIds = noPaymentStudents.stream().map(StudentRegistration::getUserId).collect(Collectors.toList());
+            List<Integer> musicGroupVisitStudent = studentVisitDao.getMusicGroupVisitStudent(musicGroupId, studentIds);
+            for (StudentRegistration noPaymentStudent : noPaymentStudents) {
+                if (!musicGroupVisitStudent.contains(noPaymentStudent.getUserId())) {
+                    hasNoVisit = true;
+                    tipsMsg.append(noPaymentStudent.getName()).append("(").append(noPaymentStudent.getUserId()).append(")、");
+                }
+            }
+        }
+        if (hasNoVisit) {
+            throw new BizException(tipsMsg.append("请完成回访").toString());
+        }
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public List<StudentRegistration> addMusicGroupRegs(String musicGroupId, List<Long> registerIds) throws Exception {

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

@@ -713,6 +713,12 @@
             </if>
     </select>
 
+    <select id="getCooperationMusicGroupNum" resultType="java.lang.Integer">
+        SELECT COUNT(*) FROM  music_group
+        WHERE cooperation_organ_id_ = #{cooperationOrganId} AND status_ IN ('PROGRESS','PAUSE','CLOSE')
+        AND id_ != #{musicGroupId}
+    </select>
+
     <select id="findCooperationOrganEduTeacher" resultMap="com.ym.mec.biz.dal.dao.CooperationOrganDao.CooperationOrgan">
         SELECT co.name_,su.real_name_ linkman_
         FROM music_group mg

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

@@ -955,4 +955,8 @@
             </foreach>
         </if>
     </select>
+
+    <select id="getPaymentStudentNum" resultType="int">
+        SELECT COUNT(*) FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND payment_status_ = 2 AND music_group_status_ = 'NORMAL'
+    </select>
 </mapper>