Jelajahi Sumber

Merge remote-tracking branch 'origin/online1' into online1

Joburgess 4 tahun lalu
induk
melakukan
5f05399a51

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectChangeServiceImpl.java

@@ -237,6 +237,11 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
             throw new BizException("已有未支付的声部更改,请勿重复创建");
         }
         
+        studentWaitPay = subjectChangeDao.getStudentLastChange(subjectChange.getStudentId(), musicGroupId);
+        if (studentWaitPay != null) {
+            throw new BizException("声部更换只能操作一次,请勿重复操作");
+        }
+        
         Set<String> musicGroupIds = new HashSet<String>();
         musicGroupIds.add(musicGroupId);
         

+ 7 - 3
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -984,12 +984,16 @@
     </select>
 
     <select id="getMoneyInMusicApply" resultMap="Mapper">
-        SELECT sum(spo.expect_amount_) value_,spo.music_group_id_ key_ 
-        FROM student_payment_order spo WHERE spo.music_group_id_ IN
+        SELECT spo.music_group_id_ key_, sum(case when a.id_ is null then spo.expect_amount_ else (spo.expect_amount_ + a.goods_margin_) end) value_ from student_payment_order spo LEFT JOIN
+		(
+		SELECT * FROM subject_change WHERE id_ in
+		(SELECT max(sc.id_) id_ from subject_change sc WHERE sc.status_ = 2 GROUP BY music_group_id_,student_id_ ORDER BY id_ desc)
+		) a on spo.music_group_id_ = a.music_group_id_ and spo.user_id_ = a.student_id_
+		WHERE spo.music_group_id_ IN
         <foreach collection="musicGroupIds" item="musicGroupId" open="(" close=")" separator=",">
             #{musicGroupId}
         </foreach>
         AND spo.type_ = 'APPLY' and spo.status_ = 'SUCCESS'
-        GROUP BY spo.music_group_id_
+		GROUP BY spo.music_group_id_
     </select>
 </mapper>

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

@@ -181,7 +181,8 @@ public class MusicGroupController extends BaseController {
         	//判断是否所有类型都购买完
 			if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
 				if ((typeList.contains(OrderDetailTypeEnum.MUSICAL) || typeList.contains(OrderDetailTypeEnum.ACCESSORIES))
-						&& (typeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER) || typeList.contains(OrderDetailTypeEnum.COURSE)
+						&& typeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER)
+						&& (typeList.contains(OrderDetailTypeEnum.COURSE)
 								|| typeList.contains(OrderDetailTypeEnum.HIGH_ONLINE_COURSE) || typeList.contains(OrderDetailTypeEnum.SINGLE)
 								|| typeList.contains(OrderDetailTypeEnum.MIX) || typeList.contains(OrderDetailTypeEnum.HIGH)
 								|| typeList.contains(OrderDetailTypeEnum.VIP) || typeList.contains(OrderDetailTypeEnum.DEMO)