yonge 4 năm trước cách đây
mục cha
commit
b14340003f

+ 14 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDetailDao.java

@@ -1,16 +1,18 @@
 package com.ym.mec.biz.dal.dao;
 
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.ym.mec.biz.dal.dto.MusicGroupRegAndMoneyDto;
 import com.ym.mec.biz.dal.dto.MusicalListDetailDto;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
-import org.apache.ibatis.annotations.Param;
-
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
 
 public interface StudentPaymentOrderDetailDao extends BaseDAO<Long, StudentPaymentOrderDetail> {
 
@@ -144,4 +146,11 @@ public interface StudentPaymentOrderDetailDao extends BaseDAO<Long, StudentPayme
      * @return
      */
     List<StudentPaymentOrderDetail> getOrderDetailByOrderId(@Param("orderId") Long orderId);
+    
+    /**
+     * 查询乐团报名的回款金额和乐器购买人数
+     * @param musicGroupIds
+     * @return
+     */
+    List<MusicGroupRegAndMoneyDto> getMoneyAndInstrumentNumInMusicApply(@Param("musicGroupIds") List<String> musicGroupIds);
 }

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

@@ -252,7 +252,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
             return musicalListDetailDtos;
         }
         List<Long> paymentOrderNo = musicalListDetailDtos.stream().map(MusicalListDetailDto::getPaymentOrderId).collect(Collectors.toList());
-        List<Integer> userIds = musicalListDetailDtos.stream().map(MusicalListDetailDto::getUserId).collect(Collectors.toList());
+        List<Integer> userIds = musicalListDetailDtos.stream().distinct().map(MusicalListDetailDto::getUserId).collect(Collectors.toList());
         //商品名称
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         Organization organization = organizationDao.get(musicGroup.getOrganId());

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

@@ -1031,9 +1031,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         //成功报名状态变更
         StudentRegistration studentRegistration = studentRegistrationDao.lockWithUserAndMusic(studentPaymentOrder.getUserId(), studentPaymentOrder.getMusicGroupId());
 
-        if (studentRegistration.getPaymentStatus().equals(YES)) {
-            return studentPaymentOrder;
-        }
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
 
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {

+ 17 - 2
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml

@@ -28,6 +28,12 @@
             <result column="complement_goods_id_list_" property="complementGoodsIdList"/>
         </collection>
     </resultMap>
+    
+    <resultMap type="com.ym.mec.biz.dal.dto.MusicGroupRegAndMoneyDto" id="MusicGroupRegAndMoneyDto">
+        <result column="money_" property="money"/>
+        <result column="buyCloudTeacherNum" property="buyCloudTeacherNum"/>
+        <result column="musicGroupId" property="musicGroupId"/>
+    </resultMap>
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="StudentPaymentOrderDetail">
@@ -161,7 +167,7 @@
         <result property="goodsNames" column="goods_names_"/>
     </resultMap>
     <select id="getMusicalListDetail" resultMap="musicalListDetailDtoMap">
-        SELECT MAX(spo.id_) payment_order_id_, spo.user_id_
+        SELECT spo.id_ payment_order_id_, spo.user_id_
         FROM student_payment_order spo
                  LEFT JOIN student_registration sr ON spo.user_id_ = sr.user_id_
         WHERE spo.music_group_id_ = #{musicGroupId}
@@ -171,7 +177,6 @@
           AND spo.status_ = 'SUCCESS'
           AND sr.music_group_id_ = #{musicGroupId}
           AND sr.music_group_status_ != 'QUIT'
-        GROUP BY spo.user_id_
     </select>
     <select id="queryGoodsNames" resultType="java.util.Map">
         SELECT spod.payment_order_id_ 'key',GROUP_CONCAT(g.name_) 'value'
@@ -293,4 +298,14 @@
     <select id="getOrderDetailByOrderId" resultMap="StudentPaymentOrderDetail">
         SELECT * FROM student_payment_order_detail WHERE payment_order_id_ = #{orderId}
     </select>
+
+    <select id="getMoneyAndInstrumentNumInMusicApply" resultMap="MusicGroupRegAndMoneyDto">
+        SELECT count(distinct spo.user_id_) buyCloudTeacherNum,sum(spo.expect_amount_) money_,spo.music_group_id_ musicGroupId FROM student_payment_order_detail spod left join student_payment_order spo on spod.payment_order_id_ = spo.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_
+    </select>
 </mapper>

+ 11 - 10
mec-web/src/main/java/com/ym/mec/web/controller/education/EduRegisterController.java

@@ -3,7 +3,6 @@ package com.ym.mec.web.controller.education;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
-import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -20,13 +19,12 @@ import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.biz.dal.dao.CooperationOrganDao;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
 import com.ym.mec.biz.dal.dao.StudentPreRegistrationDao;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dto.MusicGroupRegAndMoneyDto;
-import com.ym.mec.biz.dal.dto.MusicalListDetailDto;
 import com.ym.mec.biz.dal.entity.CooperationOrgan;
 import com.ym.mec.biz.dal.entity.Employee;
-import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
 import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -47,6 +45,8 @@ public class EduRegisterController extends BaseController {
     @Autowired
     private StudentPaymentOrderDetailService studentPaymentOrderDetailService;
     @Autowired
+    private StudentPaymentOrderDetailDao studentPaymentOrderDetailDao;
+    @Autowired
     private EmployeeDao employeeDao;
     @Autowired
     private CooperationOrganDao cooperationOrganDao;
@@ -92,15 +92,16 @@ public class EduRegisterController extends BaseController {
         //预报名人数
         List<MusicGroupRegAndMoneyDto> preRegisters = studentPreRegistrationDao.getPreRegisterNum(musicGroupIds);
         List<MusicGroupRegAndMoneyDto> registers = studentRegistrationDao.getRegisters(musicGroupIds);
+        List<MusicGroupRegAndMoneyDto> applyMoneyAndStudents = studentPaymentOrderDetailDao.getMoneyAndInstrumentNumInMusicApply(musicGroupIds);
 
         for (MusicGroupRegAndMoneyDto musicGroup : musicGroups) {
-            List<MusicalListDetailDto> musicalList = studentPaymentOrderDetailService.getMusicalListDetail(musicGroup.getMusicGroupId(), null);
-            if (musicalList != null && musicalList.size() > 0) {
-                Long instrumentNum = musicalList.stream().filter(e -> KitGroupPurchaseTypeEnum.GROUP.equals(e.getKitGroupPurchaseTypeEnum())).count();
-                BigDecimal money = musicalList.stream().filter(e -> e.getOrderAmount() != null).map(MusicalListDetailDto::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-                musicGroup.setBuyInstrumentNum(instrumentNum.intValue());
-                musicGroup.setMoney(money == null ? BigDecimal.ZERO : money);
-            }
+            
+			for (MusicGroupRegAndMoneyDto dto : applyMoneyAndStudents) {
+				if (!musicGroup.getMusicGroupId().equals(dto.getMusicGroupId()))
+					continue;
+				musicGroup.setBuyInstrumentNum(dto.getBuyInstrumentNum());
+				musicGroup.setMoney(dto.getMoney());
+			}
 
             for (MusicGroupRegAndMoneyDto preRegister : preRegisters) {
                 if (!musicGroup.getMusicGroupId().equals(preRegister.getMusicGroupId())) continue;