java:json:拼json并返回

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38750084/article/details/86594503
import com.alibaba.fastjson.JSONObject;


/**
     * 通过时间范围查询职位统计结果
     * @param startMonth
     * @param endMonth
     * @return
     */
    @Override
    public String queryPositionByMonthOfYear(String startMonth, String endMonth) {

        int sumNewPosn =0;
        int sumCurrPosn =0;
        int dailyAverage =0;
        Map<String, Object> resultMap=null;
        JSONObject jo =null;
        JSONObject jod =null;
        String endMonthTmp=null;
        String sql="";
        List<Map<String,Object>> lis = null;
        try {
            int tmp = Integer.valueOf(endMonth.split("-")[1])+1;
            endMonthTmp=Integer.valueOf(endMonth.split("-")[0])+"-"+tmp;
            sql = "select left(statistic_time,7) time ,sum(new_position) newPosition ,sum(curr_position) nowRecruitPosition  from t_cal_positions " +
                        "where statistic_time > '"+startMonth+"' and statistic_time <'"+endMonthTmp+"' group by left(statistic_time,7)";
            LogUtil.print("sql:  "+sql);
            Query query = em.createNativeQuery(sql);
            query.unwrap(org.hibernate.SQLQuery.class)
                    .setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
                List<Map<String, Object>> rows  = query.getResultList();
                if(null!=rows &&  rows.size()>0){
                        resultMap  = new HashMap<String, Object>();
                        lis= new ArrayList<Map<String,Object>>();
                        for (Map<String, Object> map : rows) {
                            if(map.get("time").equals(endMonth)){
//                              int daynum = DateUtil.getDayOfMonth(Integer.valueOf(endMonth.split("-")[0]),Integer.valueOf(endMonth.split("-")[1]));
                                dailyAverage=Integer.valueOf(String.valueOf(map.get("nowRecruitPosition")))/DateUtil.getDateOfMonth();
                            }
                              lis.add(map);
                        }
                        jo = new JSONObject();
                        jod = new JSONObject();
                        jod.put("dailyAverage",dailyAverage);
                        jod.put("list",lis);
                        jo.put("code", EnumHttpStatusType.success.getCode());
                        jo.put("msg",EnumHttpStatusType.success.getStatus());
                        jo.put("data",jod);
                        return jo.toString();
                    }
        } catch (Exception e) {
            LogUtil.print("sql:  "+sql);
            e.printStackTrace();
            LogUtil.error("通过时间查询当月在招职位统计结果,错误信息:", e.getMessage(), e);
            jo = new JSONObject();
            jod = new JSONObject();
            jod.put("dailyAverage",dailyAverage);
            if(lis!=null && lis.size()>0){
                jo.put("data", lis);
            }else{
                jo.put("data", "");
            }
            jo.put("code", EnumHttpStatusType.success.getCode());
            jo.put("msg",EnumHttpStatusType.success.getStatus());
            jo.put("data",jod);
            return jo.toString();
        }
        return null;
    }

JSONObject 中 put 键值,键自己可定义,值可以为list,map,字符串,JSONObject 等格式,最后toString后返回。

注意controller中定义返回格式为json便于前端解析:

@CrossOrigin //跨域 如web访问 service
@PostMapping(value = "/getPositionByMonthOfYear", produces = {"application/json;charset=UTF-8"})

猜你喜欢

转载自blog.csdn.net/weixin_38750084/article/details/86594503