Ver código fonte

统计接口更改

wangyu 5 anos atrás
pai
commit
9e28bbecab

+ 21 - 0
zzcx-service/src/main/java/com/diagbot/aggregate/OptAggregate.java

@@ -56,6 +56,27 @@ public class OptAggregate {
         return optDTO;
     }
 
+
+    @DataProvider("getAllOptSumNoDays")
+    public OptDTO getAllOptSumNoDays(
+            @InvokeParameter("optVO") OptVO optVO,
+            @DataConsumer("getPVSum") Long pvSum,
+            @DataConsumer("getUVSum") Long uvSum,
+            @DataConsumer("getZZSum") Long zzSum) {
+        OptDTO optDTO = new OptDTO();
+        if (null != pvSum) {
+            optDTO.setPvSum(pvSum);
+        }
+        if (null != uvSum) {
+            optDTO.setUvSum(uvSum);
+        }
+        if (null != zzSum) {
+            optDTO.setZzSum(zzSum);
+        }
+        return optDTO;
+    }
+
+
     @DataProvider("getPV")
     public List<PVDTO> getPV(@InvokeParameter("optVO") OptVO optVO) {
         return optInfoFacade.getPV(optVO);

+ 22 - 0
zzcx-service/src/main/java/com/diagbot/dto/HospItemDTO.java

@@ -0,0 +1,22 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2020/2/3 9:27
+ */
+@Getter
+@Setter
+public class HospItemDTO {
+    //医院名称
+    private String hospitalCode;
+    // pvSum
+    private Long pvSum = 0L;
+    //uvSum
+    private Long uvSum = 0L;
+    //zzSum
+    private Long zzSum = 0L;
+}

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

@@ -1,5 +1,6 @@
 package com.diagbot.facade;
 
+import com.diagbot.dto.HospItemDTO;
 import com.diagbot.dto.HospNameDTO;
 import com.diagbot.dto.OptDTO;
 import com.diagbot.dto.OptHospDTO;
@@ -12,6 +13,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.OptHospVO;
 import com.diagbot.vo.OptVO;
 import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -82,6 +84,41 @@ public class OptInfoFacade extends OptInfoServiceImpl {
     }
 
 
+    public OptDTO getOptSumNoDays(OptVO optVO) {
+        //入参验证
+        if (null != optVO && null != optVO.getStartDate()) {
+            optVO.setStartDate(DateUtil.getFirstTimeOfDay(optVO.getStartDate()));
+        }
+        if (null != optVO && null != optVO.getEndDate()) {
+            optVO.setEndDate(DateUtil.getLastTimeOfDay(optVO.getEndDate()));
+        }
+
+        if (null != optVO && null != optVO.getStartDate() && null != optVO.getEndDate()) {
+            if (DateUtil.after(optVO.getStartDate(), optVO.getEndDate())) {
+                throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "开始时间大于结束时间!");
+            }
+        }
+
+        //获取统计数据
+        OptDTO optDTO = new OptDTO();
+
+        try {
+            Map<String, Object> invokeParams = new HashMap<>();
+            invokeParams.put("optVO", optVO);
+            optDTO
+                    = dataBeanAggregateQueryFacade.get("getAllOptSumNoDays", invokeParams, OptDTO.class);
+        } catch (Exception e) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
+        }
+        //        optDTO.setPvdto(this.getPV(optVO));
+        //        optDTO.setPvSum(this.getPVSum(optVO));
+        //        optDTO.setUvdto(this.getUV(optVO));
+        //        optDTO.setUvSum(this.getUVSum(optVO));
+        //        optDTO.setZzdto(this.getZZ(optVO));
+        //        optDTO.setZzSum(this.getZZSum(optVO));
+        return optDTO;
+    }
+
 
     public OptHospDTO getOptSumHosp(OptVO optVO) {
         //入参验证
@@ -113,6 +150,25 @@ public class OptInfoFacade extends OptInfoServiceImpl {
         return optHospDTO;
     }
 
+
+    public List<HospItemDTO> getOptSumHospNoDays(OptHospVO optHospVO) {
+        //入参验证
+        if (null != optHospVO && null != optHospVO.getStartDate()) {
+            optHospVO.setStartDate(DateUtil.getFirstTimeOfDay(optHospVO.getStartDate()));
+        }
+        if (null != optHospVO && null != optHospVO.getEndDate()) {
+            optHospVO.setEndDate(DateUtil.getLastTimeOfDay(optHospVO.getEndDate()));
+        }
+
+        if (null != optHospVO && null != optHospVO.getStartDate() && null != optHospVO.getEndDate()) {
+            if (DateUtil.after(optHospVO.getStartDate(), optHospVO.getEndDate())) {
+                throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "开始时间大于结束时间!");
+            }
+        }
+        return this.getHospitalPUZ(optHospVO);
+    }
+
+
     public HospNameDTO getAllHospitalName(){
         HospNameDTO hospNameDTO = new HospNameDTO();
         List<String> hospitalList = optInfoFacade.getAllHospital();

+ 5 - 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.diagbot.dto.HospItemDTO;
 import com.diagbot.dto.PVDTO;
 import com.diagbot.dto.PVHospDTO;
 import com.diagbot.dto.PVHospSumDTO;
@@ -11,6 +12,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.OptHospVO;
 import com.diagbot.vo.OptVO;
 
 import java.util.List;
@@ -50,4 +52,7 @@ public interface OptInfoMapper extends BaseMapper<OptInfo> {
     List<ZZHospSumDTO> getZZSumHosp(OptVO optVO);
 
     List<String> getAllHospital();
+
+    List<HospItemDTO> getHospitalPUZ(OptHospVO optHospVO);
+
 }

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

@@ -1,5 +1,7 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.HospItemDTO;
 import com.diagbot.dto.PVDTO;
 import com.diagbot.dto.PVHospDTO;
 import com.diagbot.dto.PVHospSumDTO;
@@ -10,7 +12,7 @@ import com.diagbot.dto.ZZDTO;
 import com.diagbot.dto.ZZHospDTO;
 import com.diagbot.dto.ZZHospSumDTO;
 import com.diagbot.entity.OptInfo;
-import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.OptHospVO;
 import com.diagbot.vo.OptVO;
 
 import java.util.List;
@@ -52,4 +54,5 @@ public interface OptInfoService extends IService<OptInfo> {
 
     List<String> getAllHospital();
 
+    List<HospItemDTO> getHospitalPUZ(OptHospVO optHospVO);
 }

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

@@ -1,6 +1,7 @@
 package com.diagbot.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.HospItemDTO;
 import com.diagbot.dto.PVDTO;
 import com.diagbot.dto.PVHospDTO;
 import com.diagbot.dto.PVHospSumDTO;
@@ -13,6 +14,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.OptHospVO;
 import com.diagbot.vo.OptVO;
 import org.springframework.stereotype.Service;
 
@@ -80,4 +82,10 @@ public class OptInfoServiceImpl extends ServiceImpl<OptInfoMapper, OptInfo> impl
     public List<String> getAllHospital(){
         return this.baseMapper.getAllHospital();
     }
+
+    @Override
+    public List<HospItemDTO> getHospitalPUZ(OptHospVO optHospVO) {
+        return baseMapper.getHospitalPUZ(optHospVO);
+    }
+
 }

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

@@ -0,0 +1,31 @@
+package com.diagbot.vo;
+
+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: gaodm
+ * @time: 2020/2/3 9:21
+ */
+@Getter
+@Setter
+public class OptHospVO {
+
+    //开始时间
+    @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;
+}

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

@@ -6,6 +6,7 @@ import lombok.Setter;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @Description:
@@ -25,4 +26,7 @@ public class OptVO {
     @ApiModelProperty(value="结束时间,格式为:2018-11-28 17:25:30")
     @DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
     private Date endDate;
+
+    //医院名称列表
+    private List<String> hospitalCodeList;
 }

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

@@ -1,12 +1,14 @@
 package com.diagbot.web;
 
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.HospItemDTO;
 import com.diagbot.dto.HospNameDTO;
 import com.diagbot.dto.OptDTO;
 import com.diagbot.dto.OptHospDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.OptInfoFacade;
 import com.diagbot.vo.HospitalVO;
+import com.diagbot.vo.OptHospVO;
 import com.diagbot.vo.OptVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -17,6 +19,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * <p>
  * 操作信息 前端控制器
@@ -69,4 +73,30 @@ public class OptInfoController {
     public RespDTO<HospNameDTO> getAllHospitalName() {
         return RespDTO.onSuc(optInfoFacade.getAllHospitalName());
     }
+
+
+    @ApiOperation(value = "获取合计数据不带医院名称,只统计总数据,不统计每天数据[by:zhoutg]",
+            notes = "hospitalCode: 医院名称,String<br>" +
+                    "startDate: 开始时间,Date<br>" +
+                    "endDate: 结束时间,Date<br>" +
+                    "出参:<br>" +
+                    "pvSum:访问总量<br>" +
+                    "uvSum:用户总量<br>" +
+                    "zzSum:完成问诊总量<br>")
+    @PostMapping("/getOptSumNoDays")
+    @SysLogger("getOptSumNoDays")
+    public RespDTO<OptDTO> getOptSumNoDays(@RequestBody OptVO optVO) {
+        return RespDTO.onSuc(optInfoFacade.getOptSumNoDays(optVO));
+    }
+
+
+    @ApiOperation(value = "获取合计数据带医院名称,只统计总数,不统计每天数据[by:zhoutg]",
+            notes = "hospitalCodeList: 医院名称列表,List<br>" +
+                    "startDate: 开始时间,Date<br>" +
+                    "endDate: 结束时间,Date<br>")
+    @PostMapping("/getOptSumHospNoDays")
+    @SysLogger("getOptSumHospNoDays")
+    public RespDTO<List<HospItemDTO>> getOptSumHospNoDays(@RequestBody OptHospVO optHospVO) {
+        return RespDTO.onSuc(optInfoFacade.getOptSumHospNoDays(optHospVO));
+    }
 }

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

@@ -348,7 +348,76 @@
     </select>
 
     <select id="getAllHospital" resultType="java.lang.String">
-        SELECT DISTINCT(hospital_code) AS hospitalCode FROM `zzcx_opt_info`;
+        SELECT DISTINCT(hospital_code) AS hospitalCode FROM `zzcx_opt_info` order by hospital_code
     </select>
 
+    <select id="getHospitalPUZ" 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>