Explorar o código

Merge branch 'children_day' of http://git.dayaedu.com/yonge/mec

zouxuan %!s(int64=4) %!d(string=hai) anos
pai
achega
0ee557aa58

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChildrenDayDegreeDetailDao.java

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.ChildrenDayDegreeDetail;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface ChildrenDayDegreeDetailDao extends BaseDAO<Integer, ChildrenDayDegreeDetail> {
+
+}

+ 27 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChildrenDayReserveDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 
+import com.ym.mec.biz.dal.dto.ChildrenStatisticsDetailDto;
 import com.ym.mec.biz.dal.dto.ChildrenStatisticsDto;
 import com.ym.mec.biz.dal.entity.ChildrenDayReserve;
 import com.ym.mec.common.dal.BaseDAO;
@@ -11,9 +12,19 @@ import java.util.Map;
 
 public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReserve> {
 
-    List<ChildrenStatisticsDto> queryChildrenStatistics(Map<String, Object> map);
+    /**
+     * 获取后台考级活动列表
+     * @param params
+     * @return
+     */
+    List<ChildrenStatisticsDto> queryChildrenStatistics(Map<String, Object> params);
 
-    Integer countChildrenStatistics(Map<String, Object> map);
+    /**
+     * 获取后台考级活动列表
+     * @param params
+     * @return
+     */
+    int countChildrenStatistics(Map<String, Object> params);
 
     /**
      * 根据用户id获取用户预约信息
@@ -21,4 +32,18 @@ public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReser
      * @return
      */
     ChildrenDayReserve getByUserId(@Param("userId") Integer userId);
+
+    /**
+     * 获取后台考级活动详情列表
+     * @param params
+     * @return
+     */
+    int countChildrenStatisticsDetail(Map<String, Object> params);
+
+    /**
+     * 获取后台考级活动详情列表
+     * @param params
+     * @return
+     */
+    List<ChildrenStatisticsDetailDto> queryChildrenStatisticsDetail(Map<String, Object> params);
 }

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

@@ -0,0 +1,43 @@
+package com.ym.mec.biz.dal.dto;
+
+public class ChildrenStatisticsDetailDto {
+    private String username;
+
+    private String phone;
+
+    private Integer userId;
+
+    private boolean isReserve;
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public boolean getIsReserve() {
+        return isReserve;
+    }
+
+    public void setIsReserve(boolean reserve) {
+        isReserve = reserve;
+    }
+}

+ 160 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ChildrenDayDegreeDetail.java

@@ -0,0 +1,160 @@
+package com.ym.mec.biz.dal.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@ApiModel(value="com-domain-ChindrenDayDegreeDetail")
+public class ChildrenDayDegreeDetail {
+    @ApiModelProperty(value="")
+    private Integer id;
+
+    /**
+    * 预约id
+    */
+    @ApiModelProperty(value="预约id")
+    private Integer reserveId;
+
+    /**
+    * 学生id
+    */
+    @ApiModelProperty(value="学生id")
+    private Integer userId;
+
+    /**
+    * 类型 1-乐器考级 2-乐理考级 3-vip 4-乐理
+    */
+    @ApiModelProperty(value="类型 1-乐器考级 2-乐理考级 3-vip 4-乐理")
+    private Integer type;
+
+    /**
+    * 声部id
+    */
+    @ApiModelProperty(value="声部id")
+    private Integer subjectId;
+
+    /**
+    * 考级等级
+    */
+    @ApiModelProperty(value="考级等级")
+    private Integer level;
+
+    /**
+    * 价格
+    */
+    @ApiModelProperty(value="价格")
+    private BigDecimal price;
+
+    /**
+    * 1-支付中 2-已支付 3-支付失败
+    */
+    @ApiModelProperty(value="1-支付中 2-已支付 3-支付失败")
+    private Integer status;
+
+    @ApiModelProperty(value="")
+    private Date createTime;
+
+    @ApiModelProperty(value="")
+    private Date updateTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getReserveId() {
+        return reserveId;
+    }
+
+    public void setReserveId(Integer reserveId) {
+        this.reserveId = reserveId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public Integer getLevel() {
+        return level;
+    }
+
+    public void setLevel(Integer level) {
+        this.level = level;
+    }
+
+    public BigDecimal getPrice() {
+        return price;
+    }
+
+    public void setPrice(BigDecimal price) {
+        this.price = price;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", reserveId=").append(reserveId);
+        sb.append(", userId=").append(userId);
+        sb.append(", type=").append(type);
+        sb.append(", subjectId=").append(subjectId);
+        sb.append(", level=").append(level);
+        sb.append(", price=").append(price);
+        sb.append(", status=").append(status);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

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

@@ -10,6 +10,26 @@ public class ChildrenReserveQueryInfo extends QueryInfo {
 
     private String musicGroupId;
 
+    private Integer isReserve;
+
+    private Integer subjectId;
+
+    public Integer getIsReserve() {
+        return isReserve;
+    }
+
+    public void setIsReserve(Integer isReserve) {
+        this.isReserve = isReserve;
+    }
+
+    public Integer getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
     public String getOrganId() {
         return organId;
     }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ChildrenDayReserveService.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.ChildrenStatisticsDetailDto;
 import com.ym.mec.biz.dal.dto.ChildrenStatisticsDto;
 import com.ym.mec.biz.dal.dto.DegreeFeeDto;
 import com.ym.mec.biz.dal.entity.ChildrenDayReserve;
@@ -37,4 +38,10 @@ public interface ChildrenDayReserveService extends BaseService<Integer, Children
      */
     DegreeFeeDto getFeeInfo(Integer organId);
 
+    /**
+     * 获取后台考级活动详情列表
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<ChildrenStatisticsDetailDto> queryStatisticsDetailPage(ChildrenReserveQueryInfo queryInfo);
 }

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

@@ -4,6 +4,7 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ChildrenDayReserveDao;
 import com.ym.mec.biz.dal.dao.DegreeLevelFeeDao;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dto.ChildrenStatisticsDetailDto;
 import com.ym.mec.biz.dal.dto.ChildrenStatisticsDto;
 import com.ym.mec.biz.dal.dao.OrganizationDegreeCourseFeeDao;
 import com.ym.mec.biz.dal.dto.DegreeFeeDto;
@@ -99,4 +100,24 @@ public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, Chil
         degreeFeeDto.setOrganizationDegreeCourseFee(courseFee);
         return degreeFeeDto;
     }
+
+    @Override
+    public PageInfo<ChildrenStatisticsDetailDto> queryStatisticsDetailPage(ChildrenReserveQueryInfo queryInfo) {
+        PageInfo<ChildrenStatisticsDetailDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<ChildrenStatisticsDetailDto> dataList = null;
+        int count = childrenDayReserveDao.countChildrenStatisticsDetail(params);;
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = childrenDayReserveDao.queryChildrenStatisticsDetail(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

+ 70 - 0
mec-biz/src/main/resources/config/mybatis/ChildrenDayDegreeDetailDao.xml

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ym.mec.biz.dal.dao.ChildrenDayDegreeDetailDao">
+    <resultMap id="ChildrenDayDegreeDetail" type="com.ym.mec.biz.dal.entity.ChildrenDayDegreeDetail">
+        <!--@mbg.generated-->
+        <id column="id_" property="id"/>
+        <result column="reserve_id_" property="reserveId"/>
+        <result column="user_id_" property="userId"/>
+        <result column="type_" property="type"/>
+        <result column="subject_id_" property="subjectId"/>
+        <result column="level_" property="level"/>
+        <result column="price_" property="price"/>
+        <result column="status_" property="status"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+    </resultMap>
+
+    <select id="get" parameterType="java.lang.Integer" resultMap="ChildrenDayDegreeDetail">
+        <!--@mbg.generated-->
+        select * from children_day_degree_detail
+        where id_ = #{id}
+    </select>
+    <delete id="delete" parameterType="java.lang.Integer">
+        <!--@mbg.generated-->
+        delete from children_day_degree_detail
+        where id_ = #{id}
+    </delete>
+    <insert id="insert" keyColumn="id_" keyProperty="id"
+            parameterType="com.ym.mec.biz.dal.entity.ChildrenDayDegreeDetail" useGeneratedKeys="true">
+        <!--@mbg.generated-->
+        insert into children_day_degree_detail (reserve_id_, user_id_, type_, subject_id_, level_, price_, status_,
+        create_time_, update_time)
+        values (#{reserveId}, #{userId}, #{type}, #{subjectId}, #{level}, #{price}, #{status},
+        #{createTime}, #{updateTime})
+    </insert>
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.ChildrenDayDegreeDetail">
+        <!--@mbg.generated-->
+        update children_day_degree_detail
+        <set>
+            <if test="reserveId != null">
+                reserve_id_ = #{reserveId},
+            </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="type != null">
+                type_ = #{type},
+            </if>
+            <if test="subjectId != null">
+                subject_id_ = #{subjectId},
+            </if>
+            <if test="level != null">
+                level_ = #{level},
+            </if>
+            <if test="price != null">
+                price_ = #{price},
+            </if>
+            <if test="status != null">
+                status_ = #{status},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="updateTime != null">
+                update_time = #{updateTime},
+            </if>
+        </set>
+        where id_ = #{id}
+    </update>
+</mapper>

+ 45 - 9
mec-biz/src/main/resources/config/mybatis/ChildrenDayReserveMapper.xml

@@ -87,24 +87,24 @@
         <result property="reserveNum" column="reserve_num_"/>
     </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_,
-        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_'
+        SELECT o.name_ organ_name_,co.name_ cooperation_organ_name_,mg.name_ music_group_name_,COUNT(sr.user_id_) normal_num_,
+        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_'
         FROM children_day_reserve cdr
         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'
+        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"/>
         GROUP BY cdr.music_group_id_
+        ORDER BY cdr.id_ DESC
+        <include refid="global.limit"/>
     </select>
-    <select id="countChildrenStatistics" resultType="java.lang.Integer">
-        SELECT COUNT(cdr.id_)
+    <select id="countChildrenStatistics" resultType="int">
+        SELECT COUNT(c.id_) FROM (SELECT COUNT(cdr.id_) id_
         FROM children_day_reserve cdr
         <include refid="queryChildrenStatisticsSql"/>
-        GROUP BY cdr.music_group_id_
+        GROUP BY cdr.music_group_id_) c
     </select>
     <sql id="queryChildrenStatisticsSql">
         <where>
@@ -125,4 +125,40 @@
         FROM children_day_reserve
         WHERE user_id_ = #{userId}
     </select>
+
+    <resultMap id="ChildrenStatisticsDetailDtoMap" type="com.ym.mec.biz.dal.dto.ChildrenStatisticsDetailDto">
+        <result property="username" column="username_"/>
+        <result property="userId" column="user_id_"/>
+        <result property="isReserve" column="is_reserve_"/>
+        <result property="phone" column="phone_"/>
+    </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_
+        <include refid="queryChildrenStatisticsDetailSql"/>
+    </select>
+    <select id="queryChildrenStatisticsDetail" resultMap="ChildrenStatisticsDetailDtoMap">
+        SELECT su.username_,su.phone_,cdr.user_id_,cdr.is_reserve_
+        FROM children_day_reserve cdr
+        LEFT JOIN sys_user su ON su.id_ = cdr.user_id_
+        <include refid="queryChildrenStatisticsDetailSql"/>
+        ORDER BY cdr.create_time_ DESC
+        <include refid="global.limit"/>
+    </select>
+    <sql id="queryChildrenStatisticsDetailSql">
+        <where>
+            <if test="search != null and search != ''">
+                AND (cdr.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+            </if>
+            <if test="isReserve != null">
+                AND cdr.is_reserve_ = #{isReserve}
+            </if>
+            <if test="musicGroupId != null and musicGroupId != ''">
+                AND cdr.music_group_id_ = #{musicGroupId}
+            </if>
+            <if test="musicGroupId == null">
+                AND cdr.music_group_id_ IS NULL
+            </if>
+        </where>
+    </sql>
 </mapper>

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

@@ -3,6 +3,7 @@ package com.ym.mec.web.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.dto.ChildrenStatisticsDetailDto;
 import com.ym.mec.biz.dal.dto.ChildrenStatisticsDto;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.page.ChildrenReserveQueryInfo;
@@ -35,7 +36,7 @@ public class ChildrenReserveController extends BaseController {
     @ApiOperation(value = "21年暑期考级活动统计页面")
     @GetMapping("/queryStatisticsPage")
     @PreAuthorize("@pcs.hasPermissions('childrenReserve/queryStatisticsPage')")
-    public HttpResponseResult<PageInfo<ChildrenStatisticsDto>> queryPage(ChildrenReserveQueryInfo queryInfo) {
+    public HttpResponseResult<PageInfo<ChildrenStatisticsDto>> queryStatisticsPage(ChildrenReserveQueryInfo queryInfo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed("用户信息获取失败");
@@ -53,4 +54,11 @@ public class ChildrenReserveController extends BaseController {
         }
         return succeed(childrenDayReserveService.queryStatisticsPage(queryInfo));
     }
+
+    @ApiOperation(value = "21年暑期考级活动统计详情页面")
+    @GetMapping("/queryStatisticsDetailPage")
+    @PreAuthorize("@pcs.hasPermissions('childrenReserve/queryStatisticsDetailPage')")
+    public HttpResponseResult<PageInfo<ChildrenStatisticsDetailDto>> queryStatisticsDetailPage(ChildrenReserveQueryInfo queryInfo) {
+        return succeed(childrenDayReserveService.queryStatisticsDetailPage(queryInfo));
+    }
 }