angularjs + springboot 前后台交互数据(异步)

javaservice
package com.bonc.core.service;


import com.bonc.core.mapper.oracle.MigrationMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
* Created by ljw on 2016/11/10.
*/


/*
* @Transactional 管理事务
* value:类型:String 描述:可选的限定描述符,指定使用的事务管理器
* readOnly :读写或只读事务,默认读写
* **/
/*
* 此种方法不用mybatis的逆向功能,
* **/
@Service
@Transactional(value = "oracleTransaction", readOnly = true)
public class MigrationService {


@Autowired
private MigrationMapper migrationMapper;

// selectNewAppend mapperxml 里面的标签id
/*昨日详情-昨日新增*/
public Object selectNewAppend(Map<String, Object> map1) {

Map<String,Object> map = new HashMap<String,Object>();
/**lvdian**/
List<Map<String,Object>> zrxznr = this.migrationMapper.selectNewAppend(map1);
map.put("zrxznr",zrxznr);

return map;
}
/*昨日详情-昨日到期*/
public Object selectEnd(Map<String, Object> map1) {

Map<String,Object> map = new HashMap<String,Object>();
/**lvdian**/
List<Map<String,Object>> zrgqnr = this.migrationMapper.selectEnd(map1);
map.put("zrdqnr",zrgqnr);

return map;
}

/*流口统计-性别分布*/
public Object selectSex(Map<String, Object> map1) {

Map<String,Object> map = new HashMap<String,Object>();
/*xbfbnr 是在这里定义,从后台传到前台*/
List<Map<String,Object>> man = this.migrationMapper.selectMan(map1);
List<Map<String,Object>> woman = this.migrationMapper.selectWoman(map1);
map.put("man",man);
map.put("woman", woman);
return map;
}
/*流口统计-年龄分布*/


public Object selectAge(Map<String, Object> map1) {


Map<String,Object> map = new HashMap<String,Object>();
List<Map<String,Object>> selectage = this.migrationMapper.selectAgefb(map1);
map.put("selectage",selectage);
return map;

}

/*少数名族分析*/
public Object selectSsmz(Map<String, Object> map1) {

Map<String,Object> map = new HashMap<String,Object>();
List<Map<String,Object>> selectssmz = this.migrationMapper.selectSsmz(map1);
System.out.println("-------------------------------------------------------------------------------------");
System.out.println(selectssmz);
map.put("selectssmz",selectssmz);
return map;

}
}


----------------------------------------------------------------------------------------------
javacontroller


package com.bonc.core.controllers;

import com.bonc.core.service.MigrationService;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
* Created by Administrator on 2016/11/10.
*/
/*流程:controller调用service,service调用mapper接口,mapper接口里面的方法是根据xml文件写的*/

/*RequestMapping可以在类中,也可以在方法体中默认“”内就是value值,我的理解就是路径在service中的URL值就是两个路径相加*/
@RestController
@RequestMapping("/Migration")
public class MigrationController {

@Autowired //注入 MigrationService
private MigrationService migrationService;

/*昨日新增*/
@RequestMapping(value = "/selectNewAppend", method = RequestMethod.POST)
@ResponseBody
public Object selectNewAppend(@RequestBody Map<String, Object> params) {

// System.out.println(params);
return migrationService.selectNewAppend(params);//return 的是一个map 将此map放入了responsebody中了,而不是路径

}

/*昨日到期*/
@RequestMapping(value = "/selectEnd", method = RequestMethod.POST)
@ResponseBody
public Object selectEnd(@RequestBody Map<String, Object> params) {

// System.out.println(params);
return migrationService.selectEnd(params);

}
/*性别统计*/
@RequestMapping(value = "/selectSex",method = RequestMethod.POST)
@ResponseBody
public Object selectSex(@RequestBody Map<String, Object> params){
// System.out.print(params);
return migrationService.selectSex(params) ;
}


/*年龄分布*/
@RequestMapping(value = "/selectAge",method = RequestMethod.POST)
@ResponseBody
public Object selectAge(@RequestBody Map<String, Object> params){
//System.out.print(params);
return migrationService.selectAge(params) ;
}

/*少数民族流口*/
@RequestMapping(value = "/selectSsmz",method = RequestMethod.POST)
@ResponseBody
public Object selectSSMZ(@RequestBody Map<String, Object> params){
return migrationService.selectSsmz(params) ;
}
}


----------------------------------------------------------------------------------------------

javamapper

package com.bonc.core.mapper.oracle;

import java.util.List;
import java.util.Map;
/*此处写接口和逆向不同,直接是一个interface 不用继承,接口里面的方法与mapper。xml里面的方法名要一致*/
public interface MigrationMapper {
// 昨日新增
public List<Map<String,Object>> selectNewAppend(Map<String, Object> map);
//昨日到期
public List<Map<String,Object>> selectEnd(Map<String, Object> map);


/*查询性别分布*/
public List<Map<String,Object>> selectMan(Map<String, Object> map);
public List<Map<String,Object>> selectWoman(Map<String, Object> map);


/*年龄分布*/

public List<Map<String,Object>> selectAgefb(Map<String, Object> map);


/*少数民族分析*/
public List<Map<String,Object>> selectSsmz(Map<String, Object> map);
}

mapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<!--
此种方法不用逆向工程<mapper namespace="com.bonc.core.mapper.oracle.MigrationMapper">直接在namespace路径写你的接口映射文件路径即可,头应该是固定的。
-->
<mapper namespace="com.bonc.core.mapper.oracle.MigrationMapper">
<!--昨日新增-->
<select id="selectNewAppend" parameterType="map" resultType="map">
select xm,gmsfhm,czr_xm,hfrq,xxrksj from QB_ZY_GA_LDRK where to_char(xxrksj,'yyyymmdd') like #{time,jdbcType=VARCHAR}
</select>
<!--昨日到期-->
<select id="selectEnd" parameterType="map" resultType="map">
select xm,gmsfhm,czr_xm,hfrq,xxrksj from QB_ZY_GA_LDRK where to_char(xxrksj,'yyyymmdd') like #{time,jdbcType=VARCHAR}
</select>
<!--年龄分布-->
<select id="selectAge" parameterType="map" resultType="map">

</select>
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------

service js

'use strict';
app.factory("migrationService", function($state, $http, $q, httpUrl) {
var access_token= sessionStorage.getItem('access_token');

return {
/*postData:controller调用zrxz的时候传递了参数,id和time*/
/*昨日新增*/
zrxz : function(postData) {
var deffered = $q.defer();
$http({
method: "POST",
/*注意这里的url后面的参数是后台controller里面注入的路径和方法(两个requestmapping)*/
url: httpUrl + "/Migration/selectNewAppend",
data: postData,
headers: {
"Content-Type": "application/json;charset=UTF-8"
}

}).success(function (data) {
/*data 响应消息*/
/* resolve(value):向promise对象异步执行体发送消息告诉他我已经成功完成任务,value即为发送的消息*/
deffered.resolve(data);
}).error(function (data) {
deffered.reject(null);
$state.go("login");
});

return deffered.promise;

},

/*postData:controller调用zrxz的时候传递了参数,id和time*/
/*昨日到期*/
zrdq : function(postData) {
var deffered = $q.defer();
$http({
method: "POST",
/*注意这里的url后面的参数是后台controller里面注入的路径和方法(两个requestmapping)*/
url: httpUrl + "/Migration/selectEnd",
data: postData,
headers: {
"Content-Type": "application/json;charset=UTF-8"
}

}).success(function (data) {
/*data 响应消息*/
/* resolve(value):向promise对象异步执行体发送消息告诉他我已经成功完成任务,value即为发送的消息*/
deffered.resolve(data);
}).error(function (data) {
deffered.reject(null);
$state.go("login");
});

return deffered.promise;

},
/*性别统计*/
xbfb:function(postData) {
var deffered = $q.defer();
$http({
method: "POST",
url: httpUrl+"/Migration/selectSex",
data:postData,
headers: {
"Content-Type": "application/json;charset=UTF-8"
}
}).success(function (data) {
deffered.resolve(data);
}).error(function (data) {
deffered.reject(null);
$state.go("login");
});
return deffered.promise;
},


/*年龄分布*/
nlfb:function(postData) {
var deffered = $q.defer();
$http({
method: "POST",
url: httpUrl+"/Migration/selectAge",
data:postData,
headers: {
"Content-Type": "application/json;charset=UTF-8"
}
}).success(function (data) {
deffered.resolve(data);
}).error(function (data) {
deffered.reject(null);
$state.go("login");
});
return deffered.promise;
},


/*少数民族分析*/
ssmz:function(postData) {
var deffered = $q.defer();
$http({
method: "POST",
url: httpUrl+"/Migration/selectSsmz",
data:postData,
headers: {
"Content-Type": "application/json;charset=UTF-8"
}
}).success(function (data) {
deffered.resolve(data);
}).error(function (data) {
deffered.reject(null);
$state.go("login");
});
return deffered.promise;
}
};

});
----------------------------------------------------------------------------------------------
controller js

app.controller('migrationCtrl',['$rootScope','$scope','$state','migrationService', function ($rootScope, $scope, $state, migrationService) {
/**
* Created by lpsh0 on 2016/10/15.
*/
var datas = [];
for(var i = 0;i < 50;i ++){
var onegroupdata = [];
for(var j = 0;j < 30;j ++){
var onedata = Math.round( Math.random() * 30);
onegroupdata.push(onedata);
}
datas.push(onegroupdata);
}
//console.log(datas);
// 昨日详情
var date = new Date();
var month = date.getMonth() + 1;
var strDate = date.getDate() -1;
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
//var yesterday = date.getFullYear() + "" + month + "" + strDate;
var yesterday= '20160915';
/**辖区value**/
//$rootScope 根作用域
var codeId = "00000";

//.then()方法是干什么的 migrationService调用了zrxz方法后返回的是一个promise对象,他有.then方法来处理回调,then方法中的data指的是它代表了相应对象的成功或失败信息,还可以接受两个
//可选的函数作为参数。或者可以使用success和error回调代替。

migrationService.zrxz({time: yesterday, codeId: codeId}).then(function (data) {
// console.log( data.zrxznr);
//此处应加判断,如果响应的内容为空的话前台取值有可能报错。
if(data.zrxznr.length>0){
$scope.zrxznrAll=data.zrxznr;//将数据存入scope中了,前台可以直接取到了。
console.log($scope.zrxznrAll);
}

}


);
/*昨日到期*/
migrationService.zrdq({time: yesterday, codeId: codeId}).then(function (data) {

//此处应加判断,如果响应的内容为空的话前台取值有可能报错。
if(data.zrdqnr.length>0){
$scope.zrdqnrAll=data.zrdqnr;//将数据存入scope中了,前台可以直接取到了。
// console.log($scope.zrdqnrAll);
}

}

);
/*性别分布*/
migrationService.xbfb({time: yesterday, codeId: codeId}).then(function (data) {
//alert(data.man);

//xbfbnr是后台的servie定义的
if(data.man.length>0){
$scope.manAll=data.man[0].MAN;//将数据存入scope中了,前台可以直接取到了。
// console.log($scope.manAll);

}
if(data.woman.length>0){
$scope.womanAll=data.woman[0].WOMAN;
// console.log($scope.womanAll);
}

}
);

/*年龄分布*/
var oneAll,twoAll,threeAll,fourAll,fiveAll,sixAll,sevenAll,eightAll,nighAll,tenAll;
var list51=new Array([9])
//var a = new Array([5]);
migrationService.nlfb({time: yesterday, codeId: codeId}).then(function (data) {

/*{"selectage":[{"TEN":0,"SEVEN":0,"NIGH":0,"ONE":0,"TWO":0,"THREE":2,"FOUR":3,"SIX":1,"FIVE":4,"EIGHT":0}]}*/
//xbfbnr是后台的servie定义的
if(data.selectage.length>0){
oneAll=data.selectage[0].ONE;//将数据存入scope中了,前台可以直接取到了。

twoAll=data.selectage[0].TWO;
threeAll=data.selectage[0].THREE;
fourAll=data.selectage[0].FOUR;
fiveAll=data.selectage[0].FIVE;
sixAll=data.selectage[0].SIX;
sevenAll=data.selectage[0].SEVEN;
eightAll=data.selectage[0].EIGHT;
nighAll=data.selectage[0].NIGH;
tenAll=data.selectage[0].TEN;
}

list51=[oneAll,twoAll,threeAll,fourAll,fiveAll,sixAll,sevenAll,eightAll,nighAll,tenAll];
console.log("data"+list51)

}

);


/*少数民族分布*/
migrationService.ssmz({time: yesterday, codeId: codeId}).then(function (data) {
// alert(data.selectssmz);
console.log(data.selectssmz);
if(data.selectssmz.length>0){
$scope.ssmzAll=data.selectssmz;
}

}
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值