Browse Source

分页接口

wangyu 5 years ago
parent
commit
8ae26dc4ac

+ 19 - 0
zzcx-service/src/main/java/com/diagbot/facade/OptInfoFacade.java

@@ -1,5 +1,6 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.HospItemDTO;
 import com.diagbot.dto.HospNameDTO;
 import com.diagbot.dto.OptDTO;
@@ -13,6 +14,7 @@ import com.diagbot.util.HttpUtils;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.HospitalVO;
+import com.diagbot.vo.OptHospPageVO;
 import com.diagbot.vo.OptHospVO;
 import com.diagbot.vo.OptVO;
 import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
@@ -169,6 +171,23 @@ public class OptInfoFacade extends OptInfoServiceImpl {
     }
 
 
+    public IPage<HospItemDTO> getOptSumHospNoDaysPageFac(OptHospPageVO optHospPageVO) {
+        //入参验证
+        if (null != optHospPageVO && null != optHospPageVO.getStartDate()) {
+            optHospPageVO.setStartDate(DateUtil.getFirstTimeOfDay(optHospPageVO.getStartDate()));
+        }
+        if (null != optHospPageVO && null != optHospPageVO.getEndDate()) {
+            optHospPageVO.setEndDate(DateUtil.getLastTimeOfDay(optHospPageVO.getEndDate()));
+        }
+
+        if (null != optHospPageVO && null != optHospPageVO.getStartDate() && null != optHospPageVO.getEndDate()) {
+            if (DateUtil.after(optHospPageVO.getStartDate(), optHospPageVO.getEndDate())) {
+                throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "开始时间大于结束时间!");
+            }
+        }
+        return getPageHospitalPUZ(optHospPageVO);
+    }
+
     public HospNameDTO getAllHospitalName(){
         HospNameDTO hospNameDTO = new HospNameDTO();
         List<String> hospitalList = optInfoFacade.getAllHospital();

+ 3 - 0
zzcx-service/src/main/java/com/diagbot/mapper/OptInfoMapper.java

@@ -1,6 +1,7 @@
 package com.diagbot.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.HospItemDTO;
 import com.diagbot.dto.PVDTO;
 import com.diagbot.dto.PVHospDTO;
@@ -12,6 +13,7 @@ import com.diagbot.dto.ZZDTO;
 import com.diagbot.dto.ZZHospDTO;
 import com.diagbot.dto.ZZHospSumDTO;
 import com.diagbot.entity.OptInfo;
+import com.diagbot.vo.OptHospPageVO;
 import com.diagbot.vo.OptHospVO;
 import com.diagbot.vo.OptVO;
 
@@ -55,4 +57,5 @@ public interface OptInfoMapper extends BaseMapper<OptInfo> {
 
     List<HospItemDTO> getHospitalPUZ(OptHospVO optHospVO);
 
+    IPage<HospItemDTO> getPageHospitalPUZ(OptHospPageVO optHospPageVO);
 }

+ 4 - 0
zzcx-service/src/main/java/com/diagbot/service/OptInfoService.java

@@ -1,5 +1,6 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.HospItemDTO;
 import com.diagbot.dto.PVDTO;
@@ -12,6 +13,7 @@ import com.diagbot.dto.ZZDTO;
 import com.diagbot.dto.ZZHospDTO;
 import com.diagbot.dto.ZZHospSumDTO;
 import com.diagbot.entity.OptInfo;
+import com.diagbot.vo.OptHospPageVO;
 import com.diagbot.vo.OptHospVO;
 import com.diagbot.vo.OptVO;
 
@@ -55,4 +57,6 @@ public interface OptInfoService extends IService<OptInfo> {
     List<String> getAllHospital();
 
     List<HospItemDTO> getHospitalPUZ(OptHospVO optHospVO);
+
+    IPage<HospItemDTO> getPageHospitalPUZ(OptHospPageVO optHospPageVO);
 }

+ 7 - 0
zzcx-service/src/main/java/com/diagbot/service/impl/OptInfoServiceImpl.java

@@ -1,5 +1,6 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.HospItemDTO;
 import com.diagbot.dto.PVDTO;
@@ -14,6 +15,7 @@ import com.diagbot.dto.ZZHospSumDTO;
 import com.diagbot.entity.OptInfo;
 import com.diagbot.mapper.OptInfoMapper;
 import com.diagbot.service.OptInfoService;
+import com.diagbot.vo.OptHospPageVO;
 import com.diagbot.vo.OptHospVO;
 import com.diagbot.vo.OptVO;
 import org.springframework.stereotype.Service;
@@ -88,4 +90,9 @@ public class OptInfoServiceImpl extends ServiceImpl<OptInfoMapper, OptInfo> impl
         return baseMapper.getHospitalPUZ(optHospVO);
     }
 
+    @Override
+    public IPage<HospItemDTO> getPageHospitalPUZ(OptHospPageVO optHospPageVO) {
+        return baseMapper.getPageHospitalPUZ(optHospPageVO);
+    }
+
 }

+ 32 - 0
zzcx-service/src/main/java/com/diagbot/vo/OptHospPageVO.java

@@ -0,0 +1,32 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2020/2/3 9:21
+ */
+@Getter
+@Setter
+public class OptHospPageVO extends Page {
+
+    //开始时间
+    @ApiModelProperty(value="开始时间,格式为:2018-11-28 17:25:30")
+    @DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
+    private Date startDate;
+    //结束时间
+    @ApiModelProperty(value="结束时间,格式为:2018-11-28 17:25:30")
+    @DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
+    private Date endDate;
+
+    //医院名称列表
+    private List<String> hospitalCodeList;
+}

+ 1 - 1
zzcx-service/src/main/java/com/diagbot/vo/OptHospVO.java

@@ -10,7 +10,7 @@ import java.util.List;
 
 /**
  * @Description:
- * @author: gaodm
+ * @author: zhoutg
  * @time: 2020/2/3 9:21
  */
 @Getter

+ 16 - 0
zzcx-service/src/main/java/com/diagbot/web/OptInfoController.java

@@ -1,5 +1,6 @@
 package com.diagbot.web;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.HospItemDTO;
 import com.diagbot.dto.HospNameDTO;
@@ -8,6 +9,7 @@ import com.diagbot.dto.OptHospDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.OptInfoFacade;
 import com.diagbot.vo.HospitalVO;
+import com.diagbot.vo.OptHospPageVO;
 import com.diagbot.vo.OptHospVO;
 import com.diagbot.vo.OptVO;
 import io.swagger.annotations.Api;
@@ -99,4 +101,18 @@ public class OptInfoController {
     public RespDTO<List<HospItemDTO>> getOptSumHospNoDays(@RequestBody OptHospVO optHospVO) {
         return RespDTO.onSuc(optInfoFacade.getOptSumHospNoDays(optHospVO));
     }
+
+    @ApiOperation(value = "获取合计数据带医院名称,只统计总数,不统计每天数据,分页[by:zhoutg]",
+            notes = "hospitalCodeList: 医院名称列表,List<br>" +
+                    "startDate: 开始时间,Date<br>" +
+                    "endDate: 结束时间,Date<br>" +
+                    "desc:排序指标,[pvSum|uvSum|zzSum]<br>" +
+                    "page;第几页<br>" +
+                    "size:条数<br>")
+    @PostMapping("/getOptSumHospNoDaysPage")
+    @SysLogger("getOptSumHospNoDaysPage")
+    public RespDTO<IPage<HospItemDTO>> getOptSumHospNoDaysPage(@RequestBody OptHospPageVO optHospPageVO) {
+        IPage<HospItemDTO> data = optInfoFacade.getOptSumHospNoDaysPageFac(optHospPageVO);
+        return RespDTO.onSuc(data);
+    }
 }

+ 70 - 0
zzcx-service/src/main/resources/mapper/OptInfoMapper.xml

@@ -420,4 +420,74 @@
             ) a
         ) tt
     </select>
+
+    <select id="getPageHospitalPUZ" resultType="com.diagbot.dto.HospItemDTO">
+        select tt.hospitalCode, IFNULL(tt.pvSum, 0) pvSum , iFNULL(tt.uvSum, 0) uvSum,  iFNULL(tt.zzSum, 0) zzSum from (
+        select a.*,
+        (SELECT
+        count(ip)
+        FROM
+        (
+        SELECT DISTINCT
+        hospital_code AS hospitalCode,
+        DATE_FORMAT(gmt_create, '%Y-%m-%d') AS days,
+        ip
+        FROM
+        zzcx_opt_info
+        WHERE
+        opt_type = 1
+        --         AND hospital_code !='朗通通用'
+        ) t1 where t1.hospitalCode = a.hospitalCode
+        GROUP BY
+        hospitalCode
+        ORDER BY
+        hospitalCode)  AS uvSum,
+
+        (
+        SELECT
+        count(ip)
+        FROM
+        (
+        SELECT DISTINCT
+        hospital_code AS hospitalCode,
+        DATE_FORMAT(gmt_create, '%Y-%m-%d') AS days,
+        ip
+        FROM
+        zzcx_opt_info
+        WHERE
+        opt_type = 2
+        ) t2 where t2.hospitalCode = a.hospitalCode
+        GROUP BY
+        hospitalCode
+        )  AS zzSum
+
+        from
+        (
+        SELECT
+        hospital_code AS hospitalCode,
+        count(1) AS pvSum
+        FROM
+        zzcx_opt_info
+        WHERE
+        opt_type = 1
+        <if test="hospitalCodeList != null and hospitalCodeList.size > 0">
+            AND hospital_code in
+            <foreach collection="hospitalCodeList" item="item" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="startDate!=null">
+            AND gmt_create &gt;= #{startDate}
+        </if>
+        <if test="endDate!=null">
+            AND gmt_create &lt;= #{endDate}
+        </if>
+        --         AND hospital_code !='朗通通用'
+        GROUP BY
+        hospital_code
+        ORDER BY
+        hospital_code
+        ) a
+        ) tt
+    </select>
 </mapper>