yonge 4 年 前
コミット
58781e554a

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

@@ -632,4 +632,6 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
     List<StudentRegistration> queryMemberEndAutoQuitMusic(@Param("memberEndAutoQuitMusic") String memberEndAutoQuitMusic,
                                                           @Param("educationUserId") Integer educationUserId,
                                                           @Param("organIds") String organIds);
+    
+    List<SubjectApplyDetailDto> queryStudentApplyDetail(@Param("musicGroupId") String musicGroupId);
 }

+ 45 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SubjectApplyDetailDto.java

@@ -19,7 +19,7 @@ public class SubjectApplyDetailDto {
     @ApiModelProperty(value = "预计招收人数",required = false)
     private Integer expectedStudentNum;
 
-    @ApiModelProperty(value = "实际招收人数",required = false)
+    @ApiModelProperty(value = "报名人数",required = false)
     private Integer applyStudentNum;
 
     @ApiModelProperty(value = "缴费人数",required = false)
@@ -34,6 +34,18 @@ public class SubjectApplyDetailDto {
     @ApiModelProperty(value = "审核中人数",required = false)
     private Integer checkNum=0;
 
+    @ApiModelProperty(value = "在读人数",required = false)
+    private Integer normalNum=0;
+    
+    @ApiModelProperty(value = "购买云教练人数",required = false)
+    private Integer buyCloudTeacherNum = 0;
+    
+    @ApiModelProperty(value = "购买乐器未入团人数", required = false)
+    private Integer cloudTeacherStudentNumOfApply = 0;
+    
+    @ApiModelProperty(value = "没买云教练入团人数", required = false)
+    private Integer noCloudTeacherStudentNumOfNormal = 0;
+
     public Integer getMusicGroupSubjectPlanId() {
         return musicGroupSubjectPlanId;
     }
@@ -105,4 +117,36 @@ public class SubjectApplyDetailDto {
     public void setCheckNum(Integer checkNum) {
         this.checkNum = checkNum;
     }
+
+	public Integer getNormalNum() {
+		return normalNum;
+	}
+
+	public void setNormalNum(Integer normalNum) {
+		this.normalNum = normalNum;
+	}
+
+	public Integer getBuyCloudTeacherNum() {
+		return buyCloudTeacherNum;
+	}
+
+	public void setBuyCloudTeacherNum(Integer buyCloudTeacherNum) {
+		this.buyCloudTeacherNum = buyCloudTeacherNum;
+	}
+
+	public Integer getCloudTeacherStudentNumOfApply() {
+		return cloudTeacherStudentNumOfApply;
+	}
+
+	public void setCloudTeacherStudentNumOfApply(Integer cloudTeacherStudentNumOfApply) {
+		this.cloudTeacherStudentNumOfApply = cloudTeacherStudentNumOfApply;
+	}
+
+	public Integer getNoCloudTeacherStudentNumOfNormal() {
+		return noCloudTeacherStudentNumOfNormal;
+	}
+
+	public void setNoCloudTeacherStudentNumOfNormal(Integer noCloudTeacherStudentNumOfNormal) {
+		this.noCloudTeacherStudentNumOfNormal = noCloudTeacherStudentNumOfNormal;
+	}
 }

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

@@ -234,6 +234,8 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
         	subjectChange.setOriginalOrderId(studentOriginal.getOrderId());
         	subjectChange.setOriginalCost(studentOriginal.getOriginalCost());
         	subjectChange.setOriginalAccessories(studentOriginal.getOriginalAccessories());
+            subjectChange.setOriginalKitGroupPurchaseType(
+            studentOriginal.getOriginalKitGroupPurchaseType() == null ? KitGroupPurchaseTypeEnum.OWNED : studentOriginal.getOriginalKitGroupPurchaseType());
         }
         subjectChange.setStatus(SubjectChangeStatusEnum.WAIT_PAY);
         MusicGroup musicGroup = musicGroupDao.get(subjectChange.getMusicGroupId());
@@ -244,8 +246,6 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
         BigDecimal goodsMargin = subjectChange.getChangeMusicalPrice().add(subjectChange.getChangeAccessoriesPrice())
                 .subtract(subjectChange.getOriginalMusicalPrice()).subtract(subjectChange.getOriginalAccessoriesPrice());
         subjectChange.setGoodsMargin(goodsMargin);
-        subjectChange.setOriginalKitGroupPurchaseType(
-                studentOriginal.getOriginalKitGroupPurchaseType() == null ? KitGroupPurchaseTypeEnum.OWNED : studentOriginal.getOriginalKitGroupPurchaseType());
         String goodsIds = "";
         if (subjectChange.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.OWNED)) {
             subjectChange.setChangeMusical(null);

+ 40 - 26
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectServiceImpl.java

@@ -1,15 +1,34 @@
 package com.ym.mec.biz.service.impl;
 
-import com.alibaba.fastjson.JSONObject;
-import com.ym.mec.biz.dal.dao.*;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import com.ym.mec.biz.dal.dao.ChargeTypeOrganizationFeeDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
+import com.ym.mec.biz.dal.dao.SubjectDao;
+import com.ym.mec.biz.dal.dao.SubjectGoodsMapperDao;
 import com.ym.mec.biz.dal.dto.ConditionDto;
+import com.ym.mec.biz.dal.dto.MusicGroupRegAndMoneyDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 import com.ym.mec.biz.dal.dto.SubjectApplyDetailDto;
 import com.ym.mec.biz.dal.entity.ChargeTypeOrganizationFee;
-import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SubjectGoodsMapper;
-import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.SubjectQueryInfo;
 import com.ym.mec.biz.service.SubjectService;
@@ -17,14 +36,6 @@ import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject> implements SubjectService {
@@ -75,21 +86,24 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject> implem
     @Override
     public List<SubjectApplyDetailDto> findSubApplyDetail(String musicGroupId) {
         List<SubjectApplyDetailDto> subApplyDetail = subjectDao.findSubApplyDetail(musicGroupId);
-        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-//        //统计当前乐团不同声部的报名人数
-        Map<Integer, Integer> applyNum = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(studentRegistrationDao.countApplyNum(musicGroupId))), HashMap.class);
-        Map<Integer, Integer> payNumMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(studentRegistrationDao.countPayNum(musicGroupId))), HashMap.class);
-        Map<Integer, Integer> payingMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(studentRegistrationDao.countPayingNum(musicGroupId, 1))), HashMap.class);
-        Map<Integer, Integer> payCheckMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(studentRegistrationDao.countPayingNum(musicGroupId, 2))), HashMap.class);
+        
+        List<SubjectApplyDetailDto> registers = studentRegistrationDao.queryStudentApplyDetail(musicGroupId);
+        
+        Map<Integer,SubjectApplyDetailDto> map = registers.stream().collect(Collectors.toMap(SubjectApplyDetailDto :: getSubjectId, t -> t));
+        
         subApplyDetail.forEach(detail -> {
-            Integer num = payNumMap.get(detail.getSubjectId());
-            detail.setPayNum(num == null ? 0 : num);
-            num = applyNum.get(detail.getSubjectId());
-            detail.setApplyStudentNum(num == null ? 0 : num);
-            num = payingMap.get(detail.getSubjectId());
-            detail.setPayingNum(num == null ? 0 : num);
-            num = payCheckMap.get(detail.getSubjectId());
-            detail.setCheckNum(num == null ? 0 : num);
+        	if(map.containsKey(detail.getSubjectId())){
+        		SubjectApplyDetailDto dto = map.get(detail.getSubjectId());
+        		
+        		detail.setPayNum(dto.getPayNum());
+                detail.setApplyStudentNum(dto.getApplyStudentNum());
+                detail.setPayingNum(dto.getPayingNum());
+                detail.setCheckNum(dto.getCheckNum());
+                detail.setNormalNum(dto.getNormalNum());
+                detail.setBuyCloudTeacherNum(dto.getBuyCloudTeacherNum());
+                detail.setCloudTeacherStudentNumOfApply(dto.getCloudTeacherStudentNumOfApply());
+                detail.setNoCloudTeacherStudentNumOfNormal(dto.getNoCloudTeacherStudentNumOfNormal());
+        	}
         });
         return subApplyDetail;
     }

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

@@ -1563,4 +1563,17 @@
             AND (MAX(cto.id_) IS NULL OR DATEDIFF(MAX(cto.end_time_),NOW()) &lt; 0)
         </if>
     </select>
+    
+    <select id="queryStudentApplyDetail" resultType="com.ym.mec.biz.dal.dto.SubjectApplyDetailDto">
+        SELECT music_group_id_ musicGroupId,actual_subject_id_ subjectId, COUNT(*) applyStudentNum,SUM(IF(payment_status_ = '2',1,0)) payNum,
+        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 paying_status_ != 2),1,0)) normalNum,
+        SUM(IF((music_group_status_= 'NORMAL' and has_cloud_teacher_ = 0),1,0)) noCloudTeacherStudentNumOfNormal,
+        SUM(IF((music_group_status_ != 'NORMAL' and payment_status_= '2'),1,0)) cloudTeacherStudentNumOfApply,
+        SUM(IF((paying_status_ = '1'),1,0)) payingNum
+        FROM student_registration
+        WHERE music_group_id_ = #{musicGroupId}
+        AND music_group_status_ != 'QUIT'
+        GROUP BY music_group_id_,actual_subject_id_
+    </select>
 </mapper>