Browse Source

儿童节后台

zouxuan 4 years ago
parent
commit
2d31113296

+ 40 - 10
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ChildrenStatisticsDto.java

@@ -26,14 +26,20 @@ public class ChildrenStatisticsDto {
 
     private Integer musicTheoryNum = 0;
 
-    private Integer buyVipNum = 0;
+    private Integer buyVip1Num = 0;
 
-    private BigDecimal buyVipAmount = BigDecimal.ZERO;
+    private BigDecimal buyVip1Amount = BigDecimal.ZERO;
+
+    private Integer buyVip2Num = 0;
+
+    private BigDecimal buyVip2Amount = BigDecimal.ZERO;
 
     private Integer buyMusicTheoryNum = 0;
 
     private BigDecimal buyMusicTheoryAmount = BigDecimal.ZERO;
 
+    private BigDecimal totalAmount = BigDecimal.ZERO;
+
     public Integer getOrganId() {
         return organId;
     }
@@ -122,20 +128,44 @@ public class ChildrenStatisticsDto {
         this.musicTheoryNum = musicTheoryNum;
     }
 
-    public Integer getBuyVipNum() {
-        return buyVipNum;
+    public Integer getBuyVip1Num() {
+        return buyVip1Num;
+    }
+
+    public void setBuyVip1Num(Integer buyVip1Num) {
+        this.buyVip1Num = buyVip1Num;
+    }
+
+    public BigDecimal getBuyVip1Amount() {
+        return buyVip1Amount;
+    }
+
+    public void setBuyVip1Amount(BigDecimal buyVip1Amount) {
+        this.buyVip1Amount = buyVip1Amount;
+    }
+
+    public Integer getBuyVip2Num() {
+        return buyVip2Num;
+    }
+
+    public void setBuyVip2Num(Integer buyVip2Num) {
+        this.buyVip2Num = buyVip2Num;
+    }
+
+    public BigDecimal getBuyVip2Amount() {
+        return buyVip2Amount;
     }
 
-    public void setBuyVipNum(Integer buyVipNum) {
-        this.buyVipNum = buyVipNum;
+    public void setBuyVip2Amount(BigDecimal buyVip2Amount) {
+        this.buyVip2Amount = buyVip2Amount;
     }
 
-    public BigDecimal getBuyVipAmount() {
-        return buyVipAmount;
+    public BigDecimal getTotalAmount() {
+        return totalAmount;
     }
 
-    public void setBuyVipAmount(BigDecimal buyVipAmount) {
-        this.buyVipAmount = buyVipAmount;
+    public void setTotalAmount(BigDecimal totalAmount) {
+        this.totalAmount = totalAmount;
     }
 
     public Integer getBuyMusicTheoryNum() {

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

@@ -388,4 +388,10 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
      */
     Integer quitAllStudent(String musicGroupId, String remark);
 
+    /**
+     * 获取乐团在读学员数
+     * @param musicGroupIds
+     * @return
+     */
+    List<Map<String, Integer>> countNormalNum(List<String> musicGroupIds);
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ChildrenDayReserveServiceImpl.java

@@ -49,6 +49,8 @@ public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, Chil
     private StudentPaymentRouteOrderService studentPaymentRouteOrderService;
     @Autowired
     private PayService payService;
+    @Autowired
+    private StudentRegistrationService studentRegistrationService;
 
     @Override
     public BaseDAO<Integer, ChildrenDayReserve> getDAO() {
@@ -104,6 +106,12 @@ public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, Chil
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = childrenDayReserveDao.queryChildrenStatistics(params);
+            //获取乐团在读人数
+            List<String> musicGroupIds = dataList.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toList());
+            Map<String,Long> normalNum = MapUtil.convertIntegerMap(studentRegistrationService.countNormalNum(musicGroupIds));
+            dataList.forEach(e->{
+                e.setNormalNum(normalNum.get(e.getMusicGroupId())==null?0:normalNum.get(e.getMusicGroupId()).intValue());
+            });
         }
         if (count == 0) {
             dataList = new ArrayList<>();

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

@@ -1807,4 +1807,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     public Integer quitAllStudent(String musicGroupId, String remark) {
         return studentRegistrationDao.quitAllStudent(musicGroupId, remark);
     }
+
+    @Override
+    public List<Map<String, Integer>> countNormalNum(List<String> musicGroupIds) {
+        return studentRegistrationDao.countNormalNum(StringUtils.join(musicGroupIds,","));
+    }
 }

+ 18 - 6
mec-biz/src/main/resources/config/mybatis/ChildrenDayReserveMapper.xml

@@ -75,8 +75,11 @@
     <resultMap id="ChildrenStatisticsDtoMap" type="com.ym.mec.biz.dal.dto.ChildrenStatisticsDto">
         <result property="buyMusicTheoryAmount" column="buy_music_theory_amount_"/>
         <result property="buyMusicTheoryNum" column="buy_music_theory_num_"/>
-        <result property="buyVipAmount" column="buy_vip_amount_"/>
-        <result property="buyVipNum" column="buy_vip_num_"/>
+        <result property="buyVip1Amount" column="buy_vip1_amount_"/>
+        <result property="buyVip1Num" column="buy_vip1_num_"/>
+        <result property="buyVip2Amount" column="buy_vip2_amount_"/>
+        <result property="buyVip2Num" column="buy_vip2_num_"/>
+        <result property="totalAmount" column="total_amount_"/>
         <result property="cooperationOrganName" column="cooperation_organ_name_"/>
         <result property="instrumentalMusicNum" column="instrumental_music_num_"/>
         <result property="musicGroupName" column="music_group_name_"/>
@@ -90,13 +93,22 @@
         <result property="musicGroupId" column="music_group_id_"/>
     </resultMap>
     <select id="queryChildrenStatistics" resultMap="ChildrenStatisticsDtoMap">
-        SELECT o.name_ organ_name_,co.name_ cooperation_organ_name_,mg.name_ music_group_name_,COUNT(sr.user_id_) normal_num_,cdr.organ_id_,
+        SELECT o.name_ organ_name_,co.name_ cooperation_organ_name_,mg.name_ music_group_name_,cdr.organ_id_,
         cdr.cooperation_organ_id_,cdr.music_group_id_,
-        COUNT(DISTINCT CASE WHEN cdr.is_reserve_ = 1 THEN 1 ELSE NULL END) 'reserve_num_',
-        COUNT(DISTINCT CASE WHEN cdr.is_reserve_ = 0 THEN 1 ELSE NULL END) 'no_reserve_num_'
+        COUNT(CASE WHEN cdr.is_reserve_ = 1 THEN 1 ELSE NULL END) 'reserve_num_',
+        COUNT(CASE WHEN cdr.is_reserve_ = 0 THEN 1 ELSE NULL END) 'no_reserve_num_',
+        COUNT(CASE WHEN cdd.grade_price_ > 0 THEN 1 ELSE NULL END) 'instrumental_music_num_',
+        COUNT(CASE WHEN cdd.theory_price_ > 0 THEN 1 ELSE NULL END) 'music_theory_num_',
+        COUNT(CASE WHEN cdd.vip_1v1_price_ > 0 THEN 1 ELSE NULL END) 'buy_vip1_num_',
+        SUM(cdd.vip_1v1_price_) 'buy_vip1_amount_',
+        COUNT(CASE WHEN cdd.vip_1v2_price_ > 0 THEN 1 ELSE NULL END) 'buy_vip2_num_',
+        SUM(cdd.vip_1v2_price_) 'buy_vip2_amount_',
+        COUNT(CASE WHEN cdd.theory_course_price_ > 0 THEN 1 ELSE NULL END) 'buy_music_theory_num_',
+        SUM(cdd.theory_course_price_) 'buy_music_theory_amount_',
+        SUM(cdd.total_amount_) 'total_amount_'
         FROM children_day_reserve cdr
+        LEFT JOIN children_day_degree_info cdd ON cdr.id_ = cdd.reserve_id_
         LEFT JOIN music_group mg ON mg.id_ = cdr.music_group_id_
-        LEFT JOIN student_registration sr ON sr.music_group_id_ = cdr.music_group_id_ AND sr.music_group_status_ = 'NORMAL' AND cdr.user_id_ = sr.user_id_
         LEFT JOIN cooperation_organ co ON co.id_ = cdr.cooperation_organ_id_
         LEFT JOIN organization o ON o.id_ = cdr.organ_id_
         <include refid="queryChildrenStatisticsSql"/>

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

@@ -986,6 +986,16 @@
         </foreach>
         LIMIT 1
     </select>
+    <!--    <select id="findByMusicGroupIds" resultMap="StudentRegistration">
+            SELECT * FROM student_registration
+            WHERE music_group_id_ IN
+            <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
+                #{groupId}
+            </foreach>
+            <if test="musicGroupStatus!=null">
+                AND music_group_status_=#{musicGroupStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+        </select>-->
 
     <update id="quitAllStudent">
         UPDATE student_registration SET music_group_status_ = 'QUIT',remark_=#{remark} WHERE music_group_id_ = #{musicGroupId}