Prechádzať zdrojové kódy

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

周箭河 4 rokov pred
rodič
commit
ff17b2b636

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

@@ -46,4 +46,11 @@ public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReser
      * @return
      */
     List<ChildrenStatisticsDetailDto> queryChildrenStatisticsDetail(Map<String, Object> params);
+
+    /**
+     * 统计
+     * @param params
+     * @return
+     */
+    ChildrenStatisticsDto childrenStatistics(Map<String, Object> params);
 }

+ 70 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ChildrenStatisticsDetailDto.java

@@ -9,6 +9,76 @@ public class ChildrenStatisticsDetailDto {
 
     private boolean isReserve = false;
 
+    private String subjectName;
+
+    private String theoryLevel;
+
+    private String gradeLeave;
+
+    private boolean buyVip1v1Flag;
+
+    private boolean buyVip1v2Flag;
+
+    private boolean buyTheoryCourseFlag;
+
+    private boolean totalAmount;
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
+    public String getTheoryLevel() {
+        return theoryLevel;
+    }
+
+    public void setTheoryLevel(String theoryLevel) {
+        this.theoryLevel = theoryLevel;
+    }
+
+    public String getGradeLeave() {
+        return gradeLeave;
+    }
+
+    public void setGradeLeave(String gradeLeave) {
+        this.gradeLeave = gradeLeave;
+    }
+
+    public boolean isBuyVip1v1Flag() {
+        return buyVip1v1Flag;
+    }
+
+    public void setBuyVip1v1Flag(boolean buyVip1v1Flag) {
+        this.buyVip1v1Flag = buyVip1v1Flag;
+    }
+
+    public boolean isBuyVip1v2Flag() {
+        return buyVip1v2Flag;
+    }
+
+    public void setBuyVip1v2Flag(boolean buyVip1v2Flag) {
+        this.buyVip1v2Flag = buyVip1v2Flag;
+    }
+
+    public boolean isBuyTheoryCourseFlag() {
+        return buyTheoryCourseFlag;
+    }
+
+    public void setBuyTheoryCourseFlag(boolean buyTheoryCourseFlag) {
+        this.buyTheoryCourseFlag = buyTheoryCourseFlag;
+    }
+
+    public boolean isTotalAmount() {
+        return totalAmount;
+    }
+
+    public void setTotalAmount(boolean totalAmount) {
+        this.totalAmount = totalAmount;
+    }
+
     public String getPhone() {
         return phone;
     }

+ 44 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ChildrenReserveQueryInfo.java

@@ -14,6 +14,50 @@ public class ChildrenReserveQueryInfo extends QueryInfo {
 
     private Integer subjectId;
 
+    //是否参加器乐
+    private Boolean gradeFlag;
+
+    //是否参加乐理
+    private Boolean theoryFlag;
+
+    //是否购买VIP
+    private Boolean vipFlag;
+
+    //是否购买乐理课
+    private Boolean theoryPriceFlag;
+
+    public Boolean getGradeFlag() {
+        return gradeFlag;
+    }
+
+    public void setGradeFlag(Boolean gradeFlag) {
+        this.gradeFlag = gradeFlag;
+    }
+
+    public Boolean getTheoryFlag() {
+        return theoryFlag;
+    }
+
+    public void setTheoryFlag(Boolean theoryFlag) {
+        this.theoryFlag = theoryFlag;
+    }
+
+    public Boolean getVipFlag() {
+        return vipFlag;
+    }
+
+    public void setVipFlag(Boolean vipFlag) {
+        this.vipFlag = vipFlag;
+    }
+
+    public Boolean getTheoryPriceFlag() {
+        return theoryPriceFlag;
+    }
+
+    public void setTheoryPriceFlag(Boolean theoryPriceFlag) {
+        this.theoryPriceFlag = theoryPriceFlag;
+    }
+
     public Integer getIsReserve() {
         return isReserve;
     }

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

@@ -119,6 +119,8 @@ public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, Chil
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = childrenDayReserveDao.queryChildrenStatistics(params);
+            //统计
+            pageInfo.setStatInfo(childrenDayReserveDao.childrenStatistics(params));
             //获取乐团在读人数
             List<String> musicGroupIds = dataList.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toList());
             Map<String, Long> normalNum = MapUtil.convertIntegerMap(studentRegistrationService.countNormalNum(musicGroupIds));

+ 67 - 1
mec-biz/src/main/resources/config/mybatis/ChildrenDayReserveMapper.xml

@@ -122,6 +122,24 @@
         <include refid="queryChildrenStatisticsSql"/>
         GROUP BY cdr.music_group_id_) c
     </select>
+
+    <select id="childrenStatistics" resultMap="ChildrenStatisticsDtoMap">
+        SELECT  SUM(CASE WHEN cdd.grade_price_ > 0 THEN 1 ELSE NULL END) 'instrumental_music_num_',
+                SUM(CASE WHEN cdd.theory_price_ > 0 THEN 1 ELSE NULL END) 'music_theory_num_',
+                SUM(CASE WHEN cdd.vip_1v1_price_ > 0 THEN 1 ELSE NULL END) 'buy_vip1_num_',
+                SUM(cdd.vip_1v1_price_) 'buy_vip1_amount_',
+                SUM(CASE WHEN cdd.vip_1v2_price_ > 0 THEN 1 ELSE NULL END) 'buy_vip2_num_',
+                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.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_
+        <include refid="queryChildrenStatisticsSql"/>
+    </select>
     <sql id="queryChildrenStatisticsSql">
         <where>
             <if test="cooperationId != null">
@@ -147,16 +165,29 @@
         <result property="userId" column="user_id_"/>
         <result property="isReserve" column="is_reserve_"/>
         <result property="phone" column="phone_"/>
+        <result property="subjectName" column="subject_name_"/>
+        <result property="gradeLeave" column="grade_level_"/>
+        <result property="theoryLevel" column="theory_level_"/>
+        <result property="buyVip1v1Flag" column="buy_vip_1v1_flag_"/>
+        <result property="buyVip1v2Flag" column="buy_vip_1v2_flag_"/>
+        <result property="buyTheoryCourseFlag" column="buy_theory_course_flag_"/>
+        <result property="totalAmount" column="total_amount_"/>
     </resultMap>
     <select id="countChildrenStatisticsDetail" resultType="int">
         SELECT COUNT(cdr.id_) FROM children_day_reserve cdr
         LEFT JOIN sys_user su ON su.id_ = cdr.user_id_
+        LEFT JOIN children_day_degree_info cdd ON cdr.id_ = cdd.reserve_id_
         <include refid="queryChildrenStatisticsDetailSql"/>
     </select>
     <select id="queryChildrenStatisticsDetail" resultMap="ChildrenStatisticsDetailDtoMap">
-        SELECT su.username_,su.phone_,cdr.user_id_,cdr.is_reserve_
+        SELECT su.username_,su.phone_,cdr.user_id_,cdr.is_reserve_,s.name_ subject_name_,cdd.grade_level_,cdd.theory_level_,
+        CASE WHEN cdd.vip_1v1_price_ > 0 THEN 1 ELSE 0 END buy_vip_1v1_flag_,
+        CASE WHEN cdd.vip_1v2_price_ > 0 THEN 1 ELSE 0 END buy_vip_1v2_flag_,
+        CASE WHEN cdd.theory_course_price_ > 0 THEN 1 ELSE 0 END buy_theory_course_flag_,cdd.total_amount_
         FROM children_day_reserve cdr
+        LEFT JOIN children_day_degree_info cdd ON cdr.id_ = cdd.reserve_id_
         LEFT JOIN sys_user su ON su.id_ = cdr.user_id_
+        LEFT JOIN `subject` s ON s.id_ = cdd.subject_id_
         <include refid="queryChildrenStatisticsDetailSql"/>
         ORDER BY cdr.create_time_ DESC
         <include refid="global.limit"/>
@@ -175,6 +206,41 @@
             <if test="musicGroupId == null">
                 AND cdr.music_group_id_ IS NULL
             </if>
+            <if test="subjectId != null">
+                AND cdd.subject_id_ = #{subjectId}
+            </if>
+            <if test="gradeFlag != null">
+                <if test="gradeFlag == 'true'">
+                    AND cdd.grade_level_ IS NOT NULL
+                </if>
+                <if test="gradeFlag != 'false'">
+                    AND cdd.grade_level_ IS NULL
+                </if>
+            </if>
+            <if test="theoryFlag != null">
+                <if test="theoryFlag == 'true'">
+                    AND cdd.theory_level_ IS NOT NULL
+                </if>
+                <if test="theoryFlag != 'false'">
+                    AND cdd.theory_level_ IS NULL
+                </if>
+            </if>
+            <if test="vipFlag != null">
+                <if test="vipFlag == 'true'">
+                    AND (cdd.vip_1v1_price_ > 0 OR cdd.vip_1v2_price_ > 0)
+                </if>
+                <if test="vipFlag != 'false'">
+                    AND (cdd.vip_1v1_price_ &lt;= 0 OR cdd.vip_1v2_price_ &lt;= 0)
+                </if>
+            </if>
+            <if test="theoryPriceFlag != null">
+                <if test="theoryPriceFlag == 'true'">
+                    AND cdd.theory_course_price_ > 0
+                </if>
+                <if test="theoryPriceFlag != 'false'">
+                    AND cdd.theory_course_price_ &lt;= 0
+                </if>
+            </if>
         </where>
     </sql>
 </mapper>

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

@@ -33,7 +33,7 @@ public class ChildrenReserveController extends BaseController {
     @Autowired
     private EmployeeDao employeeDao;
 
-    @ApiOperation(value = "21年暑期考级活动统计页面")
+    @ApiOperation(value = "21年暑期考级活动统计列表页面")
     @GetMapping("/queryStatisticsPage")
     @PreAuthorize("@pcs.hasPermissions('childrenReserve/queryStatisticsPage')")
     public HttpResponseResult<PageInfo<ChildrenStatisticsDto>> queryStatisticsPage(ChildrenReserveQueryInfo queryInfo) {
@@ -55,7 +55,7 @@ public class ChildrenReserveController extends BaseController {
         return succeed(childrenDayReserveService.queryStatisticsPage(queryInfo));
     }
 
-    @ApiOperation(value = "21年暑期考级活动统计详情页面")
+    @ApiOperation(value = "21年暑期考级活动统计详情列表页面")
     @GetMapping("/queryStatisticsDetailPage")
     @PreAuthorize("@pcs.hasPermissions('childrenReserve/queryStatisticsDetailPage')")
     public HttpResponseResult<PageInfo<ChildrenStatisticsDetailDto>> queryStatisticsDetailPage(ChildrenReserveQueryInfo queryInfo) {