瀏覽代碼

Merge branch 'exits_music_group_5_6'

周箭河 4 年之前
父節點
當前提交
7a8eaa7b93

+ 3 - 10
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentInstrumentDao.java

@@ -77,25 +77,18 @@ public interface StudentInstrumentDao extends BaseDAO<Long, StudentInstrument> {
     StudentRegistration findStudentMusicGroup(@Param("userId") Integer userId);
 
     /**
-     * 退学生乐保
-     *
-     * @param studentId
-     * @return
-     */
-    int quitMaintenance(@Param("studentId") Integer studentId);
-
-    /**
      * 获取学生在有效期内的乐保数量
      *
      * @param studentIds
      * @return
      */
-    List<StudentInstrument> getStudentsMaintenanceNum(@Param("studentIds") List<Integer> studentIds);
+    List<StudentInstrument> getStudentsMaintenanceNum(@Param("studentIds") List<Integer> studentIds, @Param("musicGroupId") String musicGroupId);
 
     /**
      * 获取学生有效期内的乐保数量
+     *
      * @param studentId
      * @return
      */
-    int getStudentMaintenanceNum(@Param("studentId") Integer studentId);
+    StudentInstrument getStudentMaintenance(@Param("studentId") Integer studentId, @Param("musicGroupId") String musicGroupId);
 }

+ 12 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1846,14 +1846,17 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
             //退乐保费用
             if (maintenanceFee != null) {
+                StudentInstrument studentMaintenance = studentInstrumentDao.getStudentMaintenance(userId, musicGroupId);
                 if (maintenanceFee.compareTo(BigDecimal.ZERO) > 0) {
-                    int maintenanceNum = studentInstrumentDao.getStudentMaintenanceNum(userId);
-                    if (maintenanceNum <= 0) {
+                    if (studentMaintenance == null) {
                         throw new BizException("学生没有有效期内的乐保,不能退乐保费用");
                     }
                 }
                 amount = amount.add(maintenanceFee);
-                studentInstrumentDao.quitMaintenance(userId);
+                if (studentMaintenance != null) {
+                    studentMaintenance.setDelFlag(1);
+                    studentInstrumentDao.update(studentMaintenance);
+                }
             }
 
             if (amount.doubleValue() > 0) {
@@ -2047,14 +2050,17 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         //退乐保费用
         if (maintenanceFee != null) {
+            StudentInstrument studentMaintenance = studentInstrumentDao.getStudentMaintenance(userId, musicGroupId);
             if (maintenanceFee.compareTo(BigDecimal.ZERO) > 0) {
-                int maintenanceNum = studentInstrumentDao.getStudentMaintenanceNum(userId);
-                if (maintenanceNum <= 0) {
+                if (studentMaintenance == null) {
                     throw new BizException("学生没有有效期内的乐保,不能退乐保费用");
                 }
             }
             amount = amount.add(maintenanceFee);
-            studentInstrumentDao.quitMaintenance(userId);
+            if (studentMaintenance != null) {
+                studentMaintenance.setDelFlag(1);
+                studentInstrumentDao.update(studentMaintenance);
+            }
         }
 
         if (amount.doubleValue() > 0) {

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

@@ -366,7 +366,7 @@ public class StudentInstrumentServiceImpl extends BaseServiceImpl<Long, StudentI
             studentInstrument = new StudentInstrument();
             studentInstrument.setStudentId(subjectChange.getStudentId());
             studentInstrument.setOrganId(subjectChange.getOrganId());
-            studentInstrument.setOrderId(subjectChange.getOrderId().longValue());
+            studentInstrument.setOrderId(subjectChange.getOriginalOrderId().longValue());
             studentInstrument.setStatus(0);
         }
         studentInstrument.setChangeOrderId(subjectChange.getOrderId().longValue());

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

@@ -510,7 +510,7 @@ public class StudentManageServiceImpl implements StudentManageService {
             List<SubjectChange> waitPayChange = subjectChangeDao.getMusicGroupWaitPay(queryInfo.getMusicGroupId());
             Map<Integer, List<SubjectChange>> studentWaitPayChange = waitPayChange.stream().collect(Collectors.groupingBy(SubjectChange::getStudentId));
             //查询是否有有效期内乐保
-            List<StudentInstrument> studentsMaintenanceNum = studentInstrumentDao.getStudentsMaintenanceNum(collect);
+            List<StudentInstrument> studentsMaintenanceNum = studentInstrumentDao.getStudentsMaintenanceNum(collect,queryInfo.getMusicGroupId());
             Map<Integer, Integer> studentMaintenanceMap = studentsMaintenanceNum.stream().collect(Collectors.toMap(StudentInstrument::getStudentId, StudentInstrument::getGoodsId));
 
             dataList.forEach(e->{

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

@@ -176,7 +176,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             List<SubjectChange> waitPayChange = subjectChangeDao.getMusicGroupWaitPay(queryInfo.getMusicGroupId());
             Map<Integer, List<SubjectChange>> studentWaitPayChange = waitPayChange.stream().collect(Collectors.groupingBy(SubjectChange::getStudentId));
             //查询是否有有效期内乐保
-            List<StudentInstrument> studentsMaintenanceNum = studentInstrumentDao.getStudentsMaintenanceNum(studentIds);
+            List<StudentInstrument> studentsMaintenanceNum = studentInstrumentDao.getStudentsMaintenanceNum(studentIds,queryInfo.getMusicGroupId());
             Map<Integer, Integer> studentMaintenanceMap = studentsMaintenanceNum.stream().collect(Collectors.toMap(StudentInstrument::getStudentId, StudentInstrument::getGoodsId));
             dataList.forEach(e -> {
                 if (StringUtils.isNotBlank(subjectMap.get(e.getActualSubjectId()))) {

+ 26 - 15
mec-biz/src/main/resources/config/mybatis/StudentInstrumentMapper.xml

@@ -269,16 +269,22 @@
         LIMIT 1
     </select>
 
-    <update id="quitMaintenance">
-        UPDATE student_instrument
-        SET del_flag_=1,
-            update_time=NOW()
-        WHERE student_id_ = #{studentId}
-          AND del_flag_ = 0
-    </update>
-
     <select id="getStudentsMaintenanceNum" resultMap="StudentInstrument">
-        SELECT student_id_,COUNT(*) goods_id_ FROM student_instrument WHERE student_id_ IN
+        SELECT student_id_,COUNT(*) goods_id_
+        FROM student_instrument
+        WHERE order_id_ IN (
+        SELECT MAX(id_)
+        FROM student_payment_order
+        WHERE type_ = 'APPLY'
+        AND music_group_id_ = #{musicGroupId}
+        AND status_ = 'SUCCESS'
+        AND user_id_ IN
+        <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
+            #{studentId}
+        </foreach>
+        GROUP BY user_id_
+        )
+        AND student_id_ IN
         <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
             #{studentId}
         </foreach>
@@ -286,12 +292,17 @@
         GROUP BY student_id_
     </select>
 
-    <select id="getStudentMaintenanceNum" resultType="int">
-        SELECT student_id_, COUNT(*)
-        FROM student_instrument
-        WHERE student_id_ = #{studentId}
-          AND del_flag_ = 0
-          AND end_time_ > NOW()
+    <select id="getStudentMaintenance" resultMap="StudentInstrument">
+        SELECT * FROM student_instrument
+        WHERE order_id_ = (
+        SELECT MAX(id_)
+        FROM student_payment_order
+        WHERE type_ = 'APPLY'
+        AND music_group_id_ = #{musicGroupId}
+        AND status_ = 'SUCCESS'
+        AND user_id_ = #{studentId}
+        )
+        AND student_id_ = #{studentId} AND del_flag_ = 0 AND end_time_ > NOW()
     </select>
 
 </mapper>

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

@@ -185,7 +185,7 @@
 			vip_group_activity
 		WHERE
 			FIND_IN_SET( #{categoryId}, vip_group_category_id_list_ )
-			AND (NOW() &lt; end_time_ OR end_time_ IS NULL)
+			AND (end_time_ IS NULL OR NOW() BETWEEN start_time_ AND end_time_)
 			AND del_flag_=0
 			AND INTE_ARRAY(organ_id_,#{organIds})
 	</select>

+ 2 - 4
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupQuitController.java

@@ -78,11 +78,9 @@ public class MusicGroupQuitController extends BaseController {
 
         if (musicGroupQuitPageInfo.getRows() != null && musicGroupQuitPageInfo.getRows().size() > 0) {
             //查询是否有有效期内乐保
-            List<Integer> studentIds = musicGroupQuitPageInfo.getRows().stream().map(MusicGroupQuit::getUserId).collect(Collectors.toList());
-            List<StudentInstrument> studentsMaintenanceNum = studentInstrumentDao.getStudentsMaintenanceNum(studentIds);
-            Map<Integer, Integer> studentMaintenanceMap = studentsMaintenanceNum.stream().collect(Collectors.toMap(StudentInstrument::getStudentId, StudentInstrument::getGoodsId));
             for (MusicGroupQuit row : musicGroupQuitPageInfo.getRows()) {
-                if (studentMaintenanceMap.containsKey(row.getUserId())) {
+                StudentInstrument studentMaintenance = studentInstrumentDao.getStudentMaintenance(row.getUserId(), row.getMusicGroupId());
+                if (studentMaintenance != null) {
                     row.setHasMaintenance(true);
                 }
             }