zouxuan преди 4 години
родител
ревизия
719673a516

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

@@ -6,9 +6,14 @@ import com.ym.mec.biz.dal.entity.ChildrenDayReserve;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+import java.util.Map;
+
 public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReserve> {
 
-    ChildrenStatisticsDto queryChildrenStatisticsList();
+    List<ChildrenStatisticsDto> queryChildrenStatistics(Map<String, Object> map);
+
+    Integer countChildrenStatistics(Map<String, Object> map);
 
     /**
      * 根据用户id获取用户预约信息

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

@@ -0,0 +1,36 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+public class ChildrenReserveQueryInfo extends QueryInfo {
+
+    private String organId;
+
+    private Integer cooperationId;
+
+    private String musicGroupId;
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+
+    public Integer getCooperationId() {
+        return cooperationId;
+    }
+
+    public void setCooperationId(Integer cooperationId) {
+        this.cooperationId = cooperationId;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+}

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

@@ -2,7 +2,10 @@ package com.ym.mec.biz.service;
 
 
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.ChildrenStatisticsDto;
 import com.ym.mec.biz.dal.entity.ChildrenDayReserve;
+import com.ym.mec.biz.dal.page.ChildrenReserveQueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 public interface ChildrenDayReserveService extends BaseService<Integer, ChildrenDayReserve> {
@@ -24,4 +27,5 @@ public interface ChildrenDayReserveService extends BaseService<Integer, Children
      */
     ChildrenDayReserve getUserReserve(Integer userId);
 
+    PageInfo<ChildrenStatisticsDto> queryStatisticsPage(ChildrenReserveQueryInfo queryInfo);
 }

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

@@ -3,16 +3,25 @@ package com.ym.mec.biz.service.impl;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ChildrenDayReserveDao;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dto.ChildrenStatisticsDto;
 import com.ym.mec.biz.dal.entity.ChildrenDayReserve;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.page.ChildrenReserveQueryInfo;
 import com.ym.mec.biz.service.ChildrenDayReserveService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 @Service
 public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, ChildrenDayReserve> implements ChildrenDayReserveService {
 
@@ -50,5 +59,23 @@ public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, Chil
         return childrenDayReserveDao.getByUserId(userId);
     }
 
+    @Override
+    public PageInfo<ChildrenStatisticsDto> queryStatisticsPage(ChildrenReserveQueryInfo queryInfo) {
+        PageInfo<ChildrenStatisticsDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
 
+        List<ChildrenStatisticsDto> dataList = null;
+        int count = childrenDayReserveDao.countChildrenStatistics(params);;
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = childrenDayReserveDao.queryChildrenStatistics(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

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

@@ -86,7 +86,7 @@
         <result property="organName" column="organ_name_"/>
         <result property="reserveNum" column="reserve_num_"/>
     </resultMap>
-    <select id="queryChildrenStatisticsList" resultMap="ChildrenStatisticsDtoMap">
+    <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_'
@@ -95,8 +95,28 @@
                  LEFT JOIN student_registration sr ON sr.music_group_id_ = cdr.music_group_id_ AND sr.music_group_status_ = 'NORMAL'
                  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_
     </select>
+    <select id="countChildrenStatistics" resultType="java.lang.Integer">
+        SELECT COUNT(cdr.id_)
+        FROM children_day_reserve cdr
+        <include refid="queryChildrenStatisticsSql"/>
+        GROUP BY cdr.music_group_id_
+    </select>
+    <sql id="queryChildrenStatisticsSql">
+        <where>
+            <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>
+        </where>
+    </sql>
 
     <select id="getByUserId" resultMap="ChildrenDayReserve">
         SELECT *

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

@@ -1,12 +1,56 @@
 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.ChildrenStatisticsDto;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.page.ChildrenReserveQueryInfo;
+import com.ym.mec.biz.service.ChildrenDayReserveService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Arrays;
+import java.util.List;
+
 @RequestMapping("childrenReserve")
 @Api(tags = "儿童节活动")
 @RestController
 public class ChildrenReserveController extends BaseController {
 
+    @Autowired
+    private ChildrenDayReserveService childrenDayReserveService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private EmployeeDao employeeDao;
+
+    @ApiOperation(value = "21年暑期考级活动统计页面")
+    @GetMapping("/queryStatisticsPage")
+    @PreAuthorize("@pcs.hasPermissions('childrenReserve/queryStatisticsPage')")
+    public HttpResponseResult<PageInfo<ChildrenStatisticsDto>> queryPage(ChildrenReserveQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        Employee employee = employeeDao.get(sysUser.getId());
+        if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+            queryInfo.setOrganId(employee.getOrganIdList());
+        }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+            return failed("用户所在分部异常");
+        }else {
+            List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+            if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+                return failed("非法请求");
+            }
+        }
+        return succeed(childrenDayReserveService.queryStatisticsPage(queryInfo));
+    }
 }