Преглед на файлове

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/dal/enums/VipGroupStatusEnum.java
Joburgess преди 5 години
родител
ревизия
341517103e

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

@@ -264,4 +264,11 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * @return
      */
     int updateUser(@Param("id") Integer id,@Param("realName") String realName, @Param("idCardNo") String idCardNo);
+
+    /**
+     * 获取乐团在读人数
+     * @param musicGroupIds
+     * @return
+     */
+    List<Map<String,Integer>> countNormalNum(String musicGroupIds);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupClassGroupDto.java

@@ -28,12 +28,23 @@ public class MusicGroupClassGroupDto {
     @ApiModelProperty(value = "当前课次", required = true)
     private Integer currentClassTimes;
 
+    @ApiModelProperty(value = "总课时", required = true)
+    private Integer totalClassTimes;
+
     @ApiModelProperty(value = "跟班人数", required = true)
     private Integer studyNum;
 
     @ApiModelProperty(value = "退班人数", required = true)
     private Integer quitNum;
 
+    public Integer getTotalClassTimes() {
+        return totalClassTimes;
+    }
+
+    public void setTotalClassTimes(Integer totalClassTimes) {
+        this.totalClassTimes = totalClassTimes;
+    }
+
     public Integer getClassGroupId() {
         return classGroupId;
     }

+ 21 - 25
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/VipGroupStatusEnum.java

@@ -6,37 +6,33 @@ import com.ym.mec.common.enums.BaseEnum;
  * @Author Joburgess
  * @Date 2019/10/2
  */
-public enum  VipGroupStatusEnum implements BaseEnum<Integer, VipGroupStatusEnum> {
+public enum VipGroupStatusEnum implements BaseEnum<Integer, VipGroupStatusEnum> {
 
-    NOT_START(0, "未开始"),
-    APPLYING(1, "报名中"),
-    FINISH(2, "报名已结束"),
-    CANCEL(3, "取消"),
-    COURSE_FINISH(4, "课程已结束");
+	NOT_START(0, "未开始"), APPLYING(1, "报名中"), PROGRESS(2, "进行中"), FINISHED(4, "已结束"), CANCEL(3, "取消");
 
-    private Integer code;
+	private Integer code;
 
-    private String msg;
+	private String msg;
 
-    VipGroupStatusEnum(Integer code, String msg) {
-        this.code = code;
-        this.msg = msg;
-    }
+	VipGroupStatusEnum(Integer code, String msg) {
+		this.code = code;
+		this.msg = msg;
+	}
 
-    public void setCode(Integer code) {
-        this.code = code;
-    }
+	public void setCode(Integer code) {
+		this.code = code;
+	}
 
-    public String getMsg() {
-        return msg;
-    }
+	public String getMsg() {
+		return msg;
+	}
 
-    public void setMsg(String msg) {
-        this.msg = msg;
-    }
+	public void setMsg(String msg) {
+		this.msg = msg;
+	}
 
-    @Override
-    public Integer getCode() {
-        return this.code;
-    }
+	@Override
+	public Integer getCode() {
+		return this.code;
+	}
 }

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

@@ -82,7 +82,7 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 
 	/**
 	 * 学生注册缴费订单
-	 * @param userId
+	 * @param studentRegistration
 	 * @param amount
 	 * @param courseFee
 	 * @param goodsGroups

+ 7 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -146,7 +146,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if(musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT){
             Set<Integer> roleIds = new HashSet<>(1);
             roleIds.add(SysUserRole.SECTION_MANAGER);
-            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,"");
+            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,"",sysUser.getUsername());
         }
         // 保存乐团付费主体列表
         //批量新增
@@ -315,7 +315,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupDao.update(musicGroup);
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,"");
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,"",sysUser.getUsername());
     }
 
     @Override
@@ -854,8 +854,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         // 获取乐团编号列表
         Set<String> musicGroupIds = musicGroupList.stream().map(e -> e.getId()).collect(Collectors.toSet());
         // 统计乐团在读人数
-        List<Map<String, Long>> payNums = musicGroupDao.countPayNum(StringUtils.join(musicGroupIds,","));
-        Map<String, String> payNumMap = MapUtil.convertMybatisMap(payNums);
+//        List<Map<String, Long>> payNums = musicGroupDao.countPayNum(StringUtils.join(musicGroupIds,","));
+//        Map<String, String> payNumMap = MapUtil.convertMybatisMap(payNums);
+
+        Map<String, Integer> payNumMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(studentRegistrationDao.countNormalNum(StringUtils.join(musicGroupIds,",")))),HashMap.class);
 
         // 获取收费类型编号列表
         Set<Integer> chargeTypeIds = musicGroupList.stream().map(e -> e.getChargeTypeId()).collect(Collectors.toSet());
@@ -878,7 +880,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             e.setCooperationOrganName(cooperationOrganNames.get(e.getCooperationOrganId()));
             e.setEducationalTeacherName(educationalTeacherNameMap.get(e.getEducationalTeacherId()));
             e.setTeamTeacherName(teamTeacherNameMap.get(e.getTeamTeacherId()));
-            e.setPayNum(payNumMap.get(e.getId()) == null ? 0 : Integer.parseInt(payNumMap.get(e.getId())));
+            e.setPayNum(payNumMap.get(e.getId()) == null ? 0 : payNumMap.get(e.getId()));
             e.setChargeTypeName(chargeTypeNameMap.get(e.getChargeTypeId()));
         });
         return musicGroupPageInfo;

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

@@ -253,7 +253,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
         studentPaymentOrderDetailList.add(studentPaymentOrderDetail);
         //乐器及打包辅件
-        if (goodsGroups != null &&goodsGroups.size() >0) {
+        if (goodsGroups != null && goodsGroups.size() > 0) {
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail();
                 OrderDetailTypeEnum type = null;
@@ -275,7 +275,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         }
 
         //单独辅件
-        if (goodsList != null) {
+        if (goodsList != null && goodsList.size() > 0) {
             for (Goods goods : goodsList) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
                 OrderDetailTypeEnum orderDetailType = goods.getType().equals(GoodsType.INSTRUMENT) ? OrderDetailTypeEnum.MUSICAL : OrderDetailTypeEnum.ACCESSORIES;
@@ -289,7 +289,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             }
         }
         //单独教谱
-        if (otherGoodsList != null) {
+        if (otherGoodsList != null && otherGoodsList.size() > 0) {
             for (Goods goods : otherGoodsList) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4otherGoods = new StudentPaymentOrderDetail();
                 studentPaymentOrderDetail4otherGoods.setType(OrderDetailTypeEnum.TEACHING);
@@ -343,7 +343,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
         studentPaymentOrderDetailList.add(studentPaymentOrderDetail);
         //乐器及打包辅件
-        if (goodsGroups != null &&goodsGroups.size() >0) {
+        if (goodsGroups != null && goodsGroups.size() > 0) {
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail();
                 OrderDetailTypeEnum type = null;
@@ -365,7 +365,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         }
 
         //单独辅件
-        if (goodsList != null) {
+        if (goodsList != null && goodsList.size() > 0) {
             for (Goods goods : goodsList) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
                 OrderDetailTypeEnum orderDetailType = goods.getType().equals(GoodsType.INSTRUMENT) ? OrderDetailTypeEnum.MUSICAL : OrderDetailTypeEnum.ACCESSORIES;
@@ -380,7 +380,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             }
         }
         //单独教谱
-        if (otherGoodsList != null) {
+        if (otherGoodsList != null && otherGoodsList.size() > 0) {
             for (Goods goods : otherGoodsList) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4otherGoods = new StudentPaymentOrderDetail();
                 studentPaymentOrderDetail4otherGoods.setType(OrderDetailTypeEnum.TEACHING);
@@ -513,7 +513,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 studentPaymentOrderService.insert(studentPaymentOrder);
                 //生成订单明细
                 List<StudentPaymentOrderDetail> studentPaymentOrderDetails = studentAddDto.getStudentPaymentOrderDetails();
-                if(studentPaymentOrderDetails != null && studentPaymentOrderDetails.size() > 0){
+                if (studentPaymentOrderDetails != null && studentPaymentOrderDetails.size() > 0) {
                     studentPaymentOrderDetails.forEach(e -> {
                         e.setPaymentOrderId(studentPaymentOrder.getId());
                     });
@@ -558,7 +558,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 waitPayOrder.setStatus(DealStatusEnum.CLOSE);
                 studentPaymentOrderService.update(waitPayOrder);
                 //添加学生
-                classGroupStudentMapperService.addStudents(studentRegistration.getClassGroupId(),studentRegistration.getUserId().toString(),GroupType.MUSIC);
+                classGroupStudentMapperService.addStudents(waitPayOrder.getClassGroupId(), studentRegistration.getUserId().toString(), GroupType.MUSIC);
             }
 
             if (studentRegistration.getTemporaryCourseFee() == null) {
@@ -736,7 +736,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         update(student);
         studentRegistrationDao.updateUser(student.getUserId(), student.getParentsName(), student.getIdCardNo());
         // 添加用户电子签章账户
-        contractService.register(student.getUserId(),student.getParentsName(), student.getIdCardNo(), student.getParentsPhone());
+        contractService.register(student.getUserId(), student.getParentsName(), student.getIdCardNo(), student.getParentsPhone());
         return student;
     }
 }

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

@@ -209,7 +209,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			teacherAttendance=new TeacherAttendance();
 			teacherAttendance.setGroupType(courseSchedule.getGroupType());
 			teacherAttendance.setCourseScheduleId(courseScheduleId.longValue());
-			teacherAttendance.setCurrentClassTimes(classGroup.getCurrentClassTimes());
 			teacherAttendance.setTeacherId(userId);
 			teacherAttendance.setMusicGroupId(classGroup.getMusicGroupId());
 			teacherAttendance.setClassGroupId(classGroup.getId());
@@ -277,6 +276,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			}else {
 				throw new BizException("签退时间异常");
 			}
+			teacherAttendance.setCurrentClassTimes(classGroup.getCurrentClassTimes() + 1);
 			teacherAttendance.setSignOutTime(date);
 			teacherAttendanceDao.update(teacherAttendance);
 			//教师签退后,给未签到学员添加旷课记录

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -231,7 +231,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		vipGroupApplyBaseInfoDto.setTotalPrice(costInfo.get("totalPrice"));
 		if(StringUtils.isNotBlank(studentIds)){
-			vipGroupApplyBaseInfoDto.setStatus(VipGroupStatusEnum.FINISH);
+			vipGroupApplyBaseInfoDto.setStatus(VipGroupStatusEnum.PROGRESS);
 		}else{
 			vipGroupApplyBaseInfoDto.setStatus(VipGroupStatusEnum.APPLYING);
 		}
@@ -837,7 +837,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Integer studentPaymentNum=studentPaymentOrderDao.countStudentPaymentNum(vipGroupId.toString());
 		if(studentPaymentNum.equals(classGroup.getExpectStudentNum())&&updateVipStatus){
 			classGroup.setDelFlag(YesOrNoEnum.NO);
-			vipGroup.setStatus(VipGroupStatusEnum.FINISH);
+			vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
 			vipGroupDao.update(vipGroup);
 			createVipGroupCourseScheInfo(vipGroupId);
 		}
@@ -1325,7 +1325,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     	if(CollectionUtils.isEmpty(maps)||(maps.size()==1&&Objects.isNull(maps.get(0)))){
 			vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
 			vipGroupDao.update(vipGroup);
-			if(vipGroup.getStatus().equals(VipGroupStatusEnum.FINISH)){
+			if(vipGroup.getStatus().equals(VipGroupStatusEnum.PROGRESS)){
 				courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
 				courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
 			}

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

@@ -493,11 +493,12 @@
         <result property="classGroupName" column="class_group_name_"/>
         <result property="classGroupType" column="class_group_type_"/>
         <result property="currentClassTimes" column="current_class_times_"/>
+        <result property="totalClassTimes" column="total_class_times_"/>
         <result property="classGroupId" column="class_group_id_"/>
     </resultMap>
     <select id="queryMusicGroupClassGroup" resultMap="MusicGroupClassGroupDto">
         SELECT cg.name_ class_group_name_,cg.type_ class_group_type_,
-        cg.current_class_times_,cg.id_ class_group_id_
+        cg.current_class_times_,cg.id_ class_group_id_,cg.total_class_times_
         FROM class_group cg
         WHERE cg.music_group_id_ = #{search} AND cg.del_flag_ = 0
         <include refid="global.limit"/>

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

@@ -774,7 +774,7 @@
         FROM
         student_attendance sa
         LEFT JOIN sys_user su ON sa.user_id_=su.id_
-        WHERE sa.course_schedule_id_=#{courseScheduleId}
+        WHERE sa.course_schedule_id_=#{courseScheduleId} AND status_ = 'NORMAL'
     </select>
     <select id="findVipGroupCourseSchedules" resultMap="CourseSchedule">
         SELECT

+ 6 - 3
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -314,7 +314,7 @@
         <result property="actualPrice" column="actual_price_"/>
     </resultMap>
     <select id="queryStudentPayment" resultMap="StudentPaymentDto">
-        SELECT cs.class_date_,cs.start_class_time_,cs.type_ class_group_type_ ,cs.name_ class_group_name_,
+        SELECT cs.class_date_,cs.start_class_time_,cs.type_ class_group_type_ ,cg.name_ class_group_name_,
         cg.total_class_times_,sa.current_class_times_,sa.status_,cssp.expect_price_,cssp.actual_price_
         FROM course_schedule_student_payment cssp
         LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
@@ -386,7 +386,7 @@
         SELECT sr.user_id_,su.username_ real_name_,su.gender_,sr.parents_phone_,sr.current_grade_,
         sr.current_class_,sr.music_group_status_,sr.payment_status_,
         s.name_ subject_name_,sr.music_group_id_,
-        IF(sr.create_time_ > mg.payment_expire_date_,1,0) is_new_student_
+        IF(DATE_FORMAT(sr.create_time_,'%Y-%m-%d') > DATE_FORMAT(mg.payment_expire_date_,'%Y-%m-%d'),1,0) is_new_student_
         FROM student_registration sr
         LEFT JOIN sys_user su ON sr.user_id_ = su.id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
@@ -395,6 +395,7 @@
         ORDER BY sr.create_time_ DESC
         <include refid="global.limit"/>
     </select>
+
     <select id="countMusicGroupStudent" resultType="java.lang.Integer">
         SELECT COUNT(sr.user_id_)
         FROM student_registration sr
@@ -402,11 +403,13 @@
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
         <include refid="queryMusicGroupStudentSql"/>
     </select>
+
     <select id="countStudyNum" resultType="java.lang.Integer">
         SELECT COUNT(sr.user_id_) FROM student_registration sr
         WHERE sr.music_group_id_ = #{musicGroupId}
         AND sr.music_group_status_ != 'QUIT'
     </select>
+
     <select id="countQuitNum" resultType="java.lang.Integer">
         SELECT COUNT(sr.user_id_) FROM student_registration sr
         WHERE sr.music_group_id_ = #{musicGroupId}
@@ -426,7 +429,7 @@
         <result property="courseScheduleName" column="name_"/>
     </resultMap>
     <select id="queryMusicGroupStudentsSign" resultMap="MusicGroupStudentSignDto">
-        SELECT sa.create_time_,su.real_name_,sa.status_,cs.name_
+        SELECT sa.create_time_,su.username_ real_name_,sa.status_,cs.name_
         FROM student_attendance sa
         LEFT JOIN sys_user su ON sa.user_id_ = su.id_
         LEFT JOIN course_schedule cs ON sa.course_schedule_id_ = cs.id_

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

@@ -183,7 +183,7 @@
             <if test="actualSubjectId != null">
             actual_subject_id_ = #{actualSubjectId},
             </if>
-            <if test="actualSubjectId != null">
+            <if test="classGroupId != null">
                 class_group_id_ = #{classGroupId},
             </if>
             <if test="temporaryCourseFee != null">
@@ -520,6 +520,11 @@
     <select id="findMusicGroupStudentNum" resultType="integer">
         SELECT Count(*) FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND payment_status_ = '2' AND music_group_status_ != 'QUIT'
     </select>
+    <select id="countNormalNum" resultType="java.util.Map">
+        SELECT sr.music_group_id_ 'key',COUNT(DISTINCT sr.user_id_) 'value' FROM student_registration sr
+        WHERE sr.payment_status_ = 2 AND sr.music_group_status_ != 'QUIT' AND FIND_IN_SET(sr.music_group_id_,#{musicGroupIds})
+        GROUP BY sr.music_group_id_
+    </select>
 
     <update id="updateUser">
         UPDATE sys_user SET real_name_ = #{realName},id_card_no_=#{idCardNo} WHERE id_=#{id}

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

@@ -31,7 +31,7 @@
 	<sql id="queryCondition">
 		<where>
 			<if test="userId != null">
-				and user_id_ = #{userId,jdbcType=BIGINT}
+				and user_id_ = #{userId}
 			</if>
 			<if test="receiver != null">
 				and receiver_ like '%' #{receiver} '%'

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

@@ -206,7 +206,7 @@
         t.job_nature_,t.is_probation_period_,GROUP_CONCAT(s.name_) subject_name_
         FROM teacher t LEFT JOIN sys_user su ON t.id_ = su.id_
         LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)
-        WHERE su.user_type_ LIKE '%TEACHER%' AND su.del_flag_ = 0
+        WHERE su.user_type_ = 'TEACHER' AND su.del_flag_ = 0
         <include refid="queryPageMap"/>
         GROUP BY t.id_
         ORDER BY t.update_time_ DESC

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

@@ -43,7 +43,7 @@ public class ClassGroupController extends BaseController {
     @Autowired
     private StudentRegistrationService studentRegistrationService;
 
-    @ApiOperation(value = "小班课报名")
+    @ApiOperation(value = "基础提高班报名")
     @PostMapping("/highReg")
     @ApiImplicitParams({@ApiImplicitParam(name = "classGroupId", value = "班级id", required = true, dataType = "int")})
     public HttpResponseResult highReg(Integer classGroupId) {

+ 10 - 0
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -130,6 +130,10 @@ public class MusicGroupController extends BaseController {
             return failed("您已缴费,请等待乐团开启");
         }
 
+        if (studentRegistration.getTemporaryCourseFee() == null && !musicGroup.getStatus().equals(MusicGroupStatusEnum.PAY)) {
+            return failed("乐团已截止缴费");
+        }
+
         if (!studentRegistration.getPaymentStatus().equals(PaymentStatusEnum.OPEN)) {
             return failed("乐团还未开启缴费,请等待通知");
         }
@@ -233,6 +237,9 @@ public class MusicGroupController extends BaseController {
         if (studentRegistration.getTemporaryCourseFee() != null) {
             List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailService.findUserApplyOrder(studentRegistration.getUserId(), DealStatusEnum.WAIT_PAY);
             for (StudentPaymentOrderDetail orderDetail : orderDetails) {
+                if (orderDetail == null || orderDetail.getPrice() == null){
+                    continue;
+                }
                 MusicGroupSubjectGoodsGroup musicGroupSubjectGoodsGroup = new MusicGroupSubjectGoodsGroup();
                 GoodsType goodsType = orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL) ? GoodsType.INSTRUMENT : GoodsType.ACCESSORIES;
                 musicGroupSubjectGoodsGroup.setType(goodsType);
@@ -337,6 +344,9 @@ public class MusicGroupController extends BaseController {
         if (studentRegistration.getTemporaryCourseFee() != null) {
             List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailService.findUserApplyOrder(studentRegistration.getUserId(), DealStatusEnum.WAIT_PAY);
             for (StudentPaymentOrderDetail orderDetail : orderDetails) {
+                if (orderDetail == null || orderDetail.getPrice() == null){
+                    continue;
+                }
                 MusicGroupSubjectGoodsGroup musicGroupSubjectGoodsGroup = new MusicGroupSubjectGoodsGroup();
                 GoodsType goodsType = orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL) ? GoodsType.INSTRUMENT : GoodsType.ACCESSORIES;
                 musicGroupSubjectGoodsGroup.setType(goodsType);