Bläddra i källkod

Merge remote-tracking branch 'origin/children_day' into children_day

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChildrenDayReserveDao.java
周箭河 4 år sedan
förälder
incheckning
ba4940375b

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChildrenDayReserveDao.java

@@ -78,6 +78,7 @@ public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReser
      */
     List<ChildrenStatisticsDetailDto> getSendMsgList(@Param("msgDtos") List<ChildrenDayMsgDto> msgDtos);
 
+
     /**
      * 修改发送短信的状态
      *

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ChildrenStatisticsDto.java

@@ -38,8 +38,28 @@ public class ChildrenStatisticsDto {
 
     private BigDecimal buyMusicTheoryAmount = BigDecimal.ZERO;
 
+    private BigDecimal theoryPrice = BigDecimal.ZERO;
+
+    private BigDecimal gradePrice = BigDecimal.ZERO;
+
     private BigDecimal totalAmount = BigDecimal.ZERO;
 
+    public BigDecimal getTheoryPrice() {
+        return theoryPrice;
+    }
+
+    public void setTheoryPrice(BigDecimal theoryPrice) {
+        this.theoryPrice = theoryPrice;
+    }
+
+    public BigDecimal getGradePrice() {
+        return gradePrice;
+    }
+
+    public void setGradePrice(BigDecimal gradePrice) {
+        this.gradePrice = gradePrice;
+    }
+
     public Integer getOrganId() {
         return organId;
     }

+ 26 - 5
mec-biz/src/main/resources/config/mybatis/ChildrenDayReserveMapper.xml

@@ -83,6 +83,8 @@
         <result property="buyVip1Num" column="buy_vip1_num_"/>
         <result property="buyVip2Amount" column="buy_vip2_amount_"/>
         <result property="buyVip2Num" column="buy_vip2_num_"/>
+        <result property="gradePrice" column="grade_price_"/>
+        <result property="theoryPrice" column="theory_price_"/>
         <result property="totalAmount" column="total_amount_"/>
         <result property="cooperationOrganName" column="cooperation_organ_name_"/>
         <result property="instrumentalMusicNum" column="instrumental_music_num_"/>
@@ -99,8 +101,8 @@
     <select id="queryChildrenStatistics" resultMap="ChildrenStatisticsDtoMap">
         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(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(DISTINCT cdrr.user_id_) 'reserve_num_',
+        COUNT(DISTINCT cdrn.user_id_) '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_',
@@ -109,14 +111,20 @@
         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.grade_price_) 'grade_price_',
+        SUM(cdd.theory_price_) 'theory_price_',
         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 cooperation_organ co ON co.id_ = cdr.cooperation_organ_id_
         LEFT JOIN organization o ON o.id_ = cdr.organ_id_
+        LEFT JOIN (SELECT * FROM children_day_reserve cdr WHERE cdr.is_reserve_ = 1
+            <include refid="queryChildrenStatisticsSql1"/>) cdrr ON cdrr.id_ = cdr.id_
+        LEFT JOIN (SELECT * FROM children_day_reserve cdr WHERE cdr.is_reserve_ = 0
+        <include refid="queryChildrenStatisticsSql1"/>) cdrn ON cdrn.id_ = cdr.id_
         <include refid="queryChildrenStatisticsSql"/>
-        GROUP BY cdr.music_group_id_
+        GROUP BY cdr.music_group_id_,cdr.cooperation_organ_id_,cdr.organ_id_
         ORDER BY cdr.id_ DESC
         <include refid="global.limit"/>
     </select>
@@ -124,7 +132,7 @@
         SELECT COUNT(c.id_) FROM (SELECT COUNT(cdr.id_) id_
         FROM children_day_reserve cdr
         <include refid="queryChildrenStatisticsSql"/>
-        GROUP BY cdr.music_group_id_) c
+        GROUP BY cdr.music_group_id_,cdr.cooperation_organ_id_,cdr.organ_id_) c
     </select>
 
     <select id="childrenStatistics" resultMap="ChildrenStatisticsDtoMap">
@@ -136,6 +144,8 @@
         SUM(cdd.vip_1v2_price_) 'buy_vip2_amount_',
         SUM(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.grade_price_) 'grade_price_',
+        SUM(cdd.theory_price_) 'theory_price_',
         SUM(cdd.total_amount_) 'total_amount_'
         FROM children_day_reserve cdr
         LEFT JOIN children_day_degree_info cdd ON cdr.id_ = cdd.reserve_id_
@@ -157,6 +167,17 @@
             </if>
         </where>
     </sql>
+    <sql id="queryChildrenStatisticsSql1">
+        <if test="cooperationId != null">
+            AND cdr.cooperation_organ_id_ = #{cooperationId}
+        </if>
+        <if test="musicGroupId != null and musicGroupId != ''">
+            AND cdr.music_group_id_ = #{musicGroupId}
+        </if>
+        <if test="organId != null">
+            AND FIND_IN_SET(cdr.organ_id_,#{organId})
+        </if>
+    </sql>
 
     <select id="getByUserId" resultMap="ChildrenDayReserve">
         SELECT *
@@ -276,7 +297,7 @@
                     AND (cdd.vip_1v1_price_ > 0 OR cdd.vip_1v2_price_ > 0)
                 </if>
                 <if test="vipFlag == 0">
-                    AND (cdd.vip_1v1_price_ &lt;= 0 OR cdd.vip_1v2_price_ &lt;= 0)
+                    AND cdd.vip_1v1_price_ &lt;= 0 AND cdd.vip_1v2_price_ &lt;= 0
                 </if>
             </if>
             <if test="theoryPriceFlag != null">