Sfoglia il codice sorgente

update:
1.合作单位导出加字段
2.报名统计加字段

yonge 4 anni fa
parent
commit
a479ac666b

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupRegAndMoneyDto.java

@@ -44,6 +44,15 @@ public class MusicGroupRegAndMoneyDto {
 
     @ApiModelProperty(value = "回款金额", required = false)
     private BigDecimal money = BigDecimal.ZERO;
+    
+    @ApiModelProperty(value = "入团人数", required = false)
+    private Integer studentNumOfNormal = 0;
+    
+    @ApiModelProperty(value = "入团未购云教练人数", required = false)
+    private Integer noCloudTeacherStudentNumOfNormal = 0;
+    
+    @ApiModelProperty(value = "购买乐器未入团人数", required = false)
+    private Integer cloudTeacherStudentNumOfApply = 0;
 
     public String getMusicGroupId() {
         return musicGroupId;
@@ -140,4 +149,28 @@ public class MusicGroupRegAndMoneyDto {
     public void setMoney(BigDecimal money) {
         this.money = money;
     }
+
+	public Integer getStudentNumOfNormal() {
+		return studentNumOfNormal;
+	}
+
+	public void setStudentNumOfNormal(Integer studentNumOfNormal) {
+		this.studentNumOfNormal = studentNumOfNormal;
+	}
+
+	public Integer getNoCloudTeacherStudentNumOfNormal() {
+		return noCloudTeacherStudentNumOfNormal;
+	}
+
+	public void setNoCloudTeacherStudentNumOfNormal(Integer noCloudTeacherStudentNumOfNormal) {
+		this.noCloudTeacherStudentNumOfNormal = noCloudTeacherStudentNumOfNormal;
+	}
+
+	public Integer getCloudTeacherStudentNumOfApply() {
+		return cloudTeacherStudentNumOfApply;
+	}
+
+	public void setCloudTeacherStudentNumOfApply(Integer cloudTeacherStudentNumOfApply) {
+		this.cloudTeacherStudentNumOfApply = cloudTeacherStudentNumOfApply;
+	}
 }

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

@@ -723,6 +723,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         
         studentRegistration.setMusicGroupPaymentCalenderId(musicGroupRegCalender.getId());
         studentRegistration.setOrganId(musicGroup.getOrganId());
+        
         studentRegistration.setPayingStatus(1);
 
         Date date = new Date();
@@ -741,7 +742,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			}
             
             orderAmount = orderAmount.add(cloudTeacherPrice);
-            studentRegistration.setHasCloudTeacher(1);
+            studentRegistration.setHasCloudTeacher(0);
             
 
             //创建订单
@@ -975,7 +976,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			}
             
             orderAmount = orderAmount.add(cloudTeacherPrice);
-            studentRegistration.setHasCloudTeacher(1);
+            studentRegistration.setHasCloudTeacher(0);
             
 
             //创建订单

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

@@ -525,26 +525,30 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
         //增加缴费学生数,0元订单不增加报名人数(没买云教练/云教练+的)
         boolean paidZeroFlag = false;
-        boolean firstPaidZeroFlag = false;
 
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
-        if (musicOneSubjectClassPlan.getPaidStudentNum() >= musicOneSubjectClassPlan.getExpectedStudentNum()) {
-            throw new BizException("乐团该声部人数暂时已满,请稍后再试");
-        }
+        
+        //判断之前是否已有订单
+        List<StudentPaymentOrder> oldStudentPaymentOrderList = studentPaymentOrderService.queryByCondition(GroupType.MUSIC, studentRegistration.getMusicGroupId(), studentRegistration.getUserId(),DealStatusEnum.SUCCESS , OrderTypeEnum.APPLY);
         
         int paidNum = musicOneSubjectClassPlan.getPaidStudentNum() == null ? 0 : musicOneSubjectClassPlan.getPaidStudentNum();
         int paidZeroNum = musicOneSubjectClassPlan.getPaidZeroNum() == null ? 0 : musicOneSubjectClassPlan.getPaidZeroNum();
         if ((musicGroup.getCourseViewType().equals(CourseViewTypeEnum.MEMBER_FEE) && !buyCloudTeacher))
         {
             paidZeroFlag = true;
-            if (studentRegistration.getNoneNeedCloudTeacher().equals(1)) {
+            if (studentRegistration.getNoneNeedCloudTeacher().equals(1) && (oldStudentPaymentOrderList == null || oldStudentPaymentOrderList.size() == 0)) {
                 musicOneSubjectClassPlan.setPaidZeroNum(paidZeroNum + 1);
                 musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
-                firstPaidZeroFlag = true;
             }
         } else {
-            musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
+			if (oldStudentPaymentOrderList == null || oldStudentPaymentOrderList.size() == 0) {
+				musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
+			}
+        }
+        if (musicOneSubjectClassPlan.getPaidStudentNum() > musicOneSubjectClassPlan.getExpectedStudentNum()) {
+            throw new BizException("乐团该声部人数暂时已满,请稍后再试");
         }
+        
         int count = musicGroupSubjectPlanService.update(musicOneSubjectClassPlan);
         if (count <= 0) {
             throw new BizException("排队人数过多,请重试");
@@ -1025,7 +1029,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         Date nowDate = new Date();
 
         //成功报名状态变更
-        StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(studentPaymentOrder.getUserId(), studentPaymentOrder.getMusicGroupId());
+        StudentRegistration studentRegistration = studentRegistrationDao.lockWithUserAndMusic(studentPaymentOrder.getUserId(), studentPaymentOrder.getMusicGroupId());
 
         if (studentRegistration.getPaymentStatus().equals(YES)) {
             return studentPaymentOrder;
@@ -1033,7 +1037,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
 
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
-            MusicGroup musicGroup = musicGroupDao.getLocked(studentRegistration.getMusicGroupId());
+            MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
 
             if (studentRegistration.getTemporaryCourseFee() != null) {
                 studentRegistration.setTemporaryCourseFee(new BigDecimal(0));
@@ -1059,10 +1063,16 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             List<OrderDetailTypeEnum> orderTypeList = allDetails.stream().map(t -> t.getType()).collect(Collectors.toList());
             
 			if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
-				if (studentRegistration.getNoneNeedCloudTeacher() == 1 || orderTypeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER)
+
+				if(studentRegistration.getNoneNeedCloudTeacher() == 1){
+					studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
+				}
+				
+				if (orderTypeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER)
 						|| orderTypeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER_PLUS)) {
 					studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
 					studentRegistration.setNoneNeedCloudTeacher(1);
+					studentRegistration.setHasCloudTeacher(1);
 				}
 			} else {
 				studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
@@ -1177,7 +1187,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.FAILED)) {
             MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
             studentRegistration.setPayingStatus(0);
-            studentRegistration.setHasCloudTeacher(0);
             studentRegistrationDao.update(studentRegistration);
 
             //减去缴费人数(器乐收费,0元时不减缴费人数)

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

@@ -1513,7 +1513,10 @@
     <!-- 获取报名相关数据 -->
     <select id="getRegisters" resultType="com.ym.mec.biz.dal.dto.MusicGroupRegAndMoneyDto">
         SELECT music_group_id_ musicGroupId, COUNT(*) regNum,SUM(IF(payment_status_ = '2',1,0)) payNum,
-        SUM(IF(paying_status_='2',1,0)) checkNum,SUM(IF((music_group_status_= 'NORMAL' and has_cloud_teacher_=1),1,0)) buyCloudTeacherNum
+        SUM(IF(paying_status_='2',1,0)) checkNum,SUM(IF((payment_status_= '2' and has_cloud_teacher_=1),1,0)) buyCloudTeacherNum,
+        SUM(IF((music_group_status_= 'NORMAL' and none_need_cloud_teacher_ = 0),1,0)) studentNumOfNormal,
+        SUM(IF((music_group_status_= 'NORMAL' and has_cloud_teacher_ = 0),1,0)) noCloudTeacherStudentNumOfNormal,
+        SUM(IF((music_group_status_ != 'NORMAL' and none_need_cloud_teacher_ = 1),1,0)) cloudTeacherStudentNumOfApply
         FROM student_registration
         WHERE music_group_id_ IN
         <foreach collection="musicGroupIds" item="musicGroupId" open="(" close=")" separator=",">

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

@@ -2141,8 +2141,8 @@ public class ExportController extends BaseController {
         OutputStream outputStream = response.getOutputStream();
         try {
 
-            String[] header = {"分部", "单位编号", "单位名称", "联系人", "职位", "手机号", "是否启用"};
-            String[] body = {"organization.name", "id", "name", "linkman", "job", "mobileNo", "isEnable == true ? '是':'否'"};
+            String[] header = {"分部", "单位编号", "单位名称", "是否启用","乐团主管","是否全职资源"};
+            String[] body = {"organization.name", "id", "name", "isEnable == true ? '是':'否'", "realName", "fullJobResource == 1 ? '是' : '否'"};
             HSSFWorkbook workbook = POIUtil.exportExcel(header, body, pageList.getRows());
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=cooperationOrgan-" + DateUtil.getDate(new Date()) + ".xls");