瀏覽代碼

微信接口

trick9191 8 年之前
父節點
當前提交
afdb14f3cc

+ 101 - 18
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statistics/StatisticsService.java

@ -1299,34 +1299,58 @@ public class StatisticsService extends BaseService {
            if(StringUtils.isBlank(lowLevel)){
                String timeKey = redisTemplate.opsForValue().get("quota:timeKey");
                if(StringUtils.isBlank(timeKey)){
                    return null;
                }
                //及时回复数
                String relyVal = redisTemplate.opsForValue().get("quota:23:"+level+":"+area+":3:"+timeKey);
                if(StringUtils.isBlank(relyVal)){
                    return null;
                }
                JSONArray rely = new JSONArray(relyVal);
                //咨询总数
                String relyTotal = redisTemplate.opsForValue().get("quota:3:"+level+":"+area+":3:"+timeKey);
                String relyTotal = redisTemplate.opsForValue().get("quota:25:"+level+":"+area+":3:"+timeKey);
                if(StringUtils.isBlank(relyTotal)){
                    return null;
                }
                JSONArray total = new JSONArray(relyTotal);
                //未回复数
                String onRelyTotal = redisTemplate.opsForValue().get("quota:22:"+level+":"+area+":3:"+timeKey);
                JSONArray onRely = new JSONArray(relyTotal);
                if(StringUtils.isBlank(onRelyTotal)){
                    return null;
                }
                JSONArray onRely = new JSONArray(onRelyTotal);
                result.put("resultList",getCoutList(rely,total,onRely));
            }else{
                String timeKey = redisTemplate.opsForValue().get("quota:timeKey");
                if(StringUtils.isBlank(timeKey)){
                    return null;
                }
                //及时回复数
                String relyVal = redisTemplate.opsForValue().get("quota:23:"+level+":"+area+":2:"+timeKey);
                if(StringUtils.isBlank(relyVal)){
                    return null;
                }
                JSONArray rely = new JSONArray(relyVal);
                //咨询总数
                String relyTotal = redisTemplate.opsForValue().get("quota:3:"+level+":"+area+":2:"+timeKey);
                String relyTotal = redisTemplate.opsForValue().get("quota:25:"+level+":"+area+":2:"+timeKey);
                if(StringUtils.isBlank(relyTotal)){
                    return null;
                }
                JSONArray total = new JSONArray(relyTotal);
                //未回复数
                String onRelyTotal = redisTemplate.opsForValue().get("quota:22:"+level+":"+area+":2:"+timeKey);
                JSONArray onRely = new JSONArray(relyTotal);
                if(StringUtils.isBlank(onRelyTotal)){
                    return null;
                }
                JSONArray onRely = new JSONArray(onRelyTotal);
                result.put("resultList",getCoutList(rely,total,onRely));
            }
@ -1337,40 +1361,63 @@ public class StatisticsService extends BaseService {
            //quota:23:4:350200:2:1492939333191
            String timeKey = redisTemplate.opsForValue().get("quota:timeKey");
            if(StringUtils.isBlank(timeKey)){
                return null;
            }
            //及时回复数
            String relyVal = redisTemplate.opsForValue().get("quota:23:"+level+":"+area+":2:"+timeKey);
            if(StringUtils.isBlank(relyVal)){
                return null;
            }
            JSONArray rely = new JSONArray(relyVal);
            //咨询总数
            String relyTotal = redisTemplate.opsForValue().get("quota:3:"+level+":"+area+":2:"+timeKey);
            String relyTotal = redisTemplate.opsForValue().get("quota:25:"+level+":"+area+":2:"+timeKey);
            if(StringUtils.isBlank(relyTotal)){
                return null;
            }
            JSONArray total = new JSONArray(relyTotal);
            //未回复数
            String onRelyTotal = redisTemplate.opsForValue().get("quota:22:"+level+":"+area+":2:"+timeKey);
            JSONArray onRely = new JSONArray(relyTotal);
            result.put("resultList",getCoutList(rely,total,onRely));
            String noRelyTotal = redisTemplate.opsForValue().get("quota:22:"+level+":"+area+":2:"+timeKey);
            if(StringUtils.isBlank(noRelyTotal)){
                return null;
            }
            JSONArray noRely = new JSONArray(noRelyTotal);
            result.put("resultList",getCoutList(rely,total,noRely));
        }else if(level == 2){//机构级别统计,统计所有团队
            //quota:23:4:350200:2:1492939333191
            String timeKey = redisTemplate.opsForValue().get("quota:timeKey");
            if(StringUtils.isBlank(timeKey)){
                return null;
            }
            //及时回复数
            String relyVal = redisTemplate.opsForValue().get("quota:23:"+level+":"+area+":1:"+timeKey);
            if(StringUtils.isBlank(relyVal)){
                return null;
            }
            JSONArray rely = new JSONArray(relyVal);
            //咨询总数
            String relyTotal = redisTemplate.opsForValue().get("quota:3:"+level+":"+area+":1:"+timeKey);
            String relyTotal = redisTemplate.opsForValue().get("quota:25:"+level+":"+area+":1:"+timeKey);
            if(StringUtils.isBlank(relyTotal)){
                return null;
            }
            JSONArray total = new JSONArray(relyTotal);
            //未回复数
            String onRelyTotal = redisTemplate.opsForValue().get("quota:22:"+level+":"+area+":1:"+timeKey);
            JSONArray onRely = new JSONArray(relyTotal);
            String noRelyTotal = redisTemplate.opsForValue().get("quota:22:"+level+":"+area+":1:"+timeKey);
            if(StringUtils.isBlank(noRelyTotal)){
                return null;
            }
            JSONArray noRely = new JSONArray(noRelyTotal);
            result.put("resultList",getCoutList(rely,total,onRely));
            result.put("resultList",getCoutList(rely,total,noRely));
        }
        return result;
    }
@ -1387,20 +1434,32 @@ public class StatisticsService extends BaseService {
        JSONObject result = new JSONObject();
        String timeKey = redisTemplate.opsForValue().get("quota:timeKey");
        if(StringUtils.isBlank(timeKey)){
            return null;
        }
        //及时回复数
        String relyVal = redisTemplate.opsForValue().get("quota:23:"+level+":"+area+":"+timeKey);
        if(StringUtils.isBlank(relyVal)){
            return null;
        }
        JSONObject relyObject =new JSONObject(relyVal);
        JSONArray rely = new JSONArray();
        rely.put(relyObject);
        //咨询总数
        String relyTotal = redisTemplate.opsForValue().get("quota:3:"+level+":"+area+":"+timeKey);
        JSONObject totalObject =new JSONObject(relyVal);
        String relyTotal = redisTemplate.opsForValue().get("quota:25:"+level+":"+area+":"+timeKey);
        if(StringUtils.isBlank(relyTotal)){
            return null;
        }
        JSONObject totalObject =new JSONObject(relyTotal);
        JSONArray total = new JSONArray();
        total.put(totalObject);
        //未回复数
        String onRelyTotal = redisTemplate.opsForValue().get("quota:22:"+level+":"+area+":"+timeKey);
        JSONObject onRelyObject =new JSONObject(relyVal);
        if(StringUtils.isBlank(onRelyTotal)){
            return null;
        }
        JSONObject onRelyObject =new JSONObject(onRelyTotal);
        JSONArray onRely = new JSONArray();
        onRely.put(onRelyObject);
@ -1464,33 +1523,57 @@ public class StatisticsService extends BaseService {
                    double rr = (double)relyNm/totalNm*100;
                    DecimalFormat df  = new DecimalFormat("0.00");
                    rs.put("relyRate",df.format(rr)+"%");
                    rs.put("relyDoubleRate",rr);
                }else{
                    rs.put("relyRate","0.00%");
                    rs.put("relyDoubleRate",0.0);
                }
                if(noRelyNm!=null&&noRelyNm!=0){
                    double rr = (double)noRelyNm/totalNm*100;
                    DecimalFormat df  = new DecimalFormat("0.00");
                    rs.put("noRelyRate",df.format(rr)+"%");
                    rs.put("noRelyDoubleRate",rr);
                }else{
                    rs.put("noRelyRate","0.00%");
                    rs.put("noRelyDoubleRate",0.0);
                }
            }else{
                rs.put("relyRate","0.00%");
                rs.put("relyDoubleRate",0.0);
                rs.put("noRelyRate","0.00%");
                rs.put("noRelyDoubleRate",0.0);
            }
            resultMaps.add(rs);
        }
        //根据回复数排序
        //根据为回复数排序
        Collections.sort(resultMaps, new Comparator<Map<String,Object>>(){
            public int compare(Map<String,Object> o1,Map<String,Object> o2){
                return  (Long)o1.get("relyCount")<(Long)o2.get("relyCount")?1:( (Long)o1.get("relyCount")==(Long)o2.get("relyCount")?0:-1);
                return  (double)o1.get("noRelyDoubleRate")<(double)o2.get("noRelyDoubleRate")?1:( (double)o1.get("noRelyDoubleRate")==(double)o2.get("noRelyDoubleRate")?0:-1);
            }
        });
        return resultMaps;
    }
    /**
     * 获取及时回复的时间分布
     * @param level
     * @param area
     * @return
     */
    public JSONObject getCoutListByTime(String level,String area){
        JSONObject result = new JSONObject();
        if(StringUtils.isNotBlank(level)&&StringUtils.isNotBlank(area)){
            String timeKey = redisTemplate.opsForValue().get("quota:timeKey");
            String relyVal = redisTemplate.opsForValue().get("quota:24:"+level+":"+area+":"+timeKey);
            JSONArray array = new JSONArray(relyVal);
            result.put("resultList",array);
        }
        return result;
    }
}

+ 28 - 2
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/StatisticsController.java

@ -568,7 +568,12 @@ public class StatisticsController extends BaseController {
                                               @RequestParam(required = true) String area ,
                                               @RequestParam(required = false) String lowlevel) {
        try {
            return write(200, "查询成功", "data", statisticsService.getConsultingStatisticsList(level,area,lowlevel));
            JSONObject data = statisticsService.getConsultingStatisticsList(level,area,lowlevel);
            if(data!=null){
                return write(200, "查询成功", "data", data);
            }else{
                return error(-1, "查询失败");
            }
        } catch (Exception e) {
            return error(-1, "查询失败");
        }
@ -589,7 +594,28 @@ public class StatisticsController extends BaseController {
    public String getConsultingTitle(@RequestParam(required = true) Integer level,
                                      @RequestParam(required = true) String area) {
        try {
            return write(200, "查询成功", "data", statisticsService.getConsultingTitle(level,area));
            JSONObject data = statisticsService.getConsultingTitle(level,area);
            if(data!=null){
                return write(200, "查询成功", "data", data);
            }else{
                return error(-1, "查询失败");
            }
        } catch (Exception e) {
            return error(-1, "查询失败");
        }
    }
    /**
     * 获取回复数时间分布数
     * @param level
     * @param area
     * @return
     */
    @RequestMapping("/getCoutListByTime")
    @ResponseBody
    public String getCoutListByTime(@RequestParam(required = true)String level,@RequestParam(required = true) String area){
        try {
            return write(200, "查询成功", "data", statisticsService.getCoutListByTime(level,area));
        } catch (Exception e) {
            return error(-1, "查询失败");
        }