纳税人行为分析获取山西各地市数据代码思路记录

返回给前端目标 :
一个大map
map中两个键值对,长度是2
一个是返回的数据总数 resultMap.put(“total”, total != -1 ? total : size)
一个是list集合 resultMap.put(“data”, getNsrxwfxList);

请求参数(json)
在这里插入图片描述
前端传递json数据,@RequestBody Map<String, Object> parameter 把参数接收 ,parameter 中四对键值对
在这里插入图片描述
详细Controller层

		 @RequestMapping("/getNsrxwfxMsg")
        @ResponseBody   //@rsponsebody:将返回的对象(返回值)转化成jason字符串
        public Map<String, Object> getNsrxwfxMsg(@RequestBody Map<String, Object> parameter, HttpServletRequest req) { //可以将ajax传递来的json字符串转换成java实体对象、List或Map
            System.out.println("请求成功");
            Map<String, Object> resultMap = new HashMap<String, Object>();//最后返回给前端的map
            if (!parameter.containsKey("swjgDm")) {
                parameter.put("swjgDm", UserService.getLoginDepartmentId(req));
                parameter.put("swry", UserService.getLoginUserId(req));
            }
            String rqq=(String) parameter.get("rqq");
            String rqz=(String) parameter.get("rqz");
            parameter.put("rqq", rqq);
            parameter.put("rqz", rqz);
            System.out.println("请求成功2");
            List<Map<String,Object>> getNsrxwfxList= nsrxwfxservice.getNsrxwfxMsg(parameter); /*查询结果返回list类型的map,list是最外面壳子,装了13个map 为山西13个市 每个map有这么几个键值对
            dtywl大厅业务量 dtzb大厅占比 swjg_dm bm   zzywl自助业务量 zzzb 自助占比 dzywl dzzb
            因为这些数据没法封装成对象 所以封成map比较好  适合存放零散数据
             */
            int total = PageUtil.getTotalCount();
            int size = getNsrxwfxList == null ? 0 : getNsrxwfxList.size();//总记录数
            //最后返回给前端map  map把getNsrxwfxList和size 放进去
            resultMap.put("data", getNsrxwfxList);    //map里放了个list(list里本身是键值对)
            resultMap.put("total", total != -1 ? total : size);
            System.out.println(resultMap);
            return resultMap;  
        }

dao层xml文件

    <select id="getNsrxwfxMsg" parameterType="java.util.Map" resultType="java.util.Map">
          select root_swjg_dm swjg_dm,root_swjg_bm bm,zywl,
                       dtywl,
                       nvl ((case when zywl>0
                                then  to_char(dtywl / zywl * 100,'FM990.00') end ) ,0) dtzb,
                       dz,
                         nvl ((case when zywl>0
                                then  to_char(dz / zywl * 100, 'FM990.00') end ) ,0) dzzb,
                       zz,
                        nvl ((case when zywl>0
                                then  to_char(zz / zywl * 100, 'FM990.00') end ) ,0) zzzb
                  from (select root_swjg_dm,
                               root_swjg_bm,
                               nvl( (sum(dtywl) + sum(dz) + sum(zz)),0) zywl,
                               nvl(sum(dtywl),0) dtywl,
                               nvl(sum(dz),0) dz,
                               nvl(sum(zz),0) zz
                          from (select connect_by_root swjg_dm root_swjg_dm,
                                       connect_by_root swjg_bm root_swjg_bm,
                                       swjg_dm,
                                       swjg_bm
                                  from dm_gy_swjg
                                 where swjgbz = '0'
                                   and yxbz = 'Y'
                                 start with sjswjg_dm =#{swjgDm}
                                connect by prior swjg_dm = sjswjg_dm) jg,
                               (select slswjg_dm, sum(ywl) dtywl
                                  from jscq_sxslxx_ywrtj
                                 where lrr_dm = 1
                                   AND lrrq between  #{rqq,jdbcType=VARCHAR}
		                               AND  #{rqz,jdbcType=VARCHAR}
                                   group by slswjg_dm) dt,
                               (select SWJG_DM,
                                       sum(decode(pjqd_dm, '02', ywl, 0)) dz,
                                       sum(decode(pjqd_dm, '04', ywl, 0)) zz
                                  from hcp_pjjg_dprtj
                                 WHERE 1 = 1
                                   AND pjrq between to_date(#{rqq}, 'yyyy-MM-dd')
                                   and  to_date(#{rqz}, 'yyyy-MM-dd')
                                 GROUP BY SWJG_DM) other
                         where jg.swjg_dm = dt.slswjg_dm(+)
                           and jg.swjg_dm = other.swjg_dm(+)
                         group by root_swjg_dm, root_swjg_bm)
                 order by root_swjg_dm, root_swjg_bm
    </select>

到dao层xml应该resultType写什么?
思路:可以把山西13地市数据封装成map 每一个地市是一个map list装map map中每个键值对是查出来的数据, 调用controller接口返回list即可把要查数据拿到,如下

List<Map<String,Object>> getNsrxwfxList= nsrxwfxservice.getNsrxwfxMsg(parameter);插入代码片

返回值类型始终写想让Mybatis把每一条记录封装成什么类型
所以,每一条数据是map,resultType写map的全类名java.util.Map或者mybatis提供的默认别名map
如下是getNsrxwfxList
在这里插入图片描述
最后F12查看下后端返回给前端的数据格式
在这里插入图片描述
看response更直观 如下

{
    "total": 13,
    "data": [
        {
            "dtywl": 137,
            "swjgDm": "11400001400",
            "dz": 0,
            "dtzb": "100.00",
            "bm": "二分局",
            "rowId": 1,
            "zz": 0,
            "zzzb": "0.00",
            "zywl": 137,
            "dzzb": "0.00"
        }, 
        {
            "dtywl": 7239,
            "swjgDm": "11403000000",
            "dz": 415,
            "dtzb": "94.33",
            "bm": "阳泉市",
            "rowId": 4,
            "zz": 20,
            "zzzb": "0.26",
            "zywl": 7674,
            "dzzb": "5.41"
        }
    ]
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值