Browse Source

修改评分

mengkang 5 years ago
parent
commit
05914fc375

+ 32 - 8
business/base-service/src/main/java/com/yihu/jw/evaluate/score/service/BaseEvaluateScoreService.java

@ -3,6 +3,7 @@ package com.yihu.jw.evaluate.score.service;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.base.score.BaseEvaluateScoreDO;
import com.yihu.jw.evaluate.score.dao.BaseEvaluateScoreDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
@ -39,11 +40,23 @@ public class BaseEvaluateScoreService extends BaseJpaService<BaseEvaluateScoreDO
     */
    public Map<String, Object> getScoreAndPercentage(String area, int level){
        HashMap<String, Object> map = new HashMap<>();
        //今日凌晨、当前时间
        String startTime = DateUtil.getStringDateShort()+" 00:00:00";
        String nowTime = DateUtil.getStringDate();
        //昨日时间
        String oneDayAgo = DateUtil.getNextDay(startTime, -1);
        String oneStrTime = oneDayAgo + " 00:00:00";
        String oneEndTime = oneDayAgo + " 23:59:59";
        //七天之前时间
        String sevenDayAgo = DateUtil.getNextDay(startTime, -7);
        String sevenStrTime = sevenDayAgo + " 00:00:00";
        String sevenEndTime = sevenDayAgo + " 23:59:59";
        //服务总评分
        Double avgScore = getAvgScore(null, null, area, level);
        map.put("totalAvgScore",avgScore);
        map.put("weekJudge",judgeScore(1.00,1.00));
        map.put("dayJudge",judgeScore(1.00,1.00));
        map.put("totalAvgScore",getAvgScore(null, null, area, level));
        //周同比
        map.put("weekJudge",judgeScore(getAvgScore(startTime, nowTime, area, level),getAvgScore(sevenStrTime, sevenEndTime, area, level)));
        //日环比
        map.put("dayJudge",judgeScore(getAvgScore(startTime, nowTime, area, level),getAvgScore(oneStrTime, oneEndTime, area, level)));
        return map;
    }
@ -77,8 +90,14 @@ public class BaseEvaluateScoreService extends BaseJpaService<BaseEvaluateScoreDO
        double total = 0d;
        double score = 0d;
        if(rstotal != null && rstotal.size()>0){
            if (null == rstotal.get(0).get("score")){
                return 0.0;
            }
            total = Double.valueOf((rstotal.get(0).get("total")).toString());
            score = Double.valueOf((rstotal.get(0).get("score")).toString());
            if (0 == total || 0 == score){
                return 0.0;
            }
        }
        double avgScore = score / total;
        DecimalFormat df = new DecimalFormat("0.0");//格式化小数,不足的补0
@ -95,10 +114,15 @@ public class BaseEvaluateScoreService extends BaseJpaService<BaseEvaluateScoreDO
    private Object judgeScore(Double nowScore, Double oldScore){
        JSONObject object = new JSONObject();
        if (nowScore > oldScore){
            Double difScore = nowScore - oldScore;
            String percentage = getPercentage((float) (difScore.intValue()), (float) oldScore.intValue());
            object.put("trend",1);
            object.put("percentage",percentage);
            if (oldScore == 0){
                object.put("trend",1);
                object.put("percentage","100%");
            }else {
                Double difScore = nowScore - oldScore;
                String percentage = getPercentage((float) (difScore.intValue()), (float) oldScore.intValue());
                object.put("trend",1);
                object.put("percentage",percentage);
            }
        }else if (nowScore < oldScore){
            Double difScore = oldScore - nowScore;
            String percentage = getPercentage((float) (difScore.intValue()), (float) oldScore.intValue());