突然感觉之前紫萼的都不是很认真,从进以后写一点每天上班都用到的一些东西下面这个就是推送之前的基本逻辑,注释掉的东西是 由于原本的抓拍的图片不是很清晰,所以采用人员注册时的上传的图片保存到本地的写法;
**
* 商汤盒子
* @author Administrator
*/
@RestController
public class SenseBoxController { //别人给的数据
@Value("${server.port}")
private String port;
/**注册 type =1*/
private final String picture_url = "picture";
/**身份证 type =2*/
private final String ident_url = "ident";
@Value("${Upload_URL}")
private String Upload_URL;
@Autowired
private HrStudentUserinfoMapper studentMapper;
//#\u51fa\u5165\u56ed\u63d0\u9192
//school_gate_id=v5yDuVLSUUD9NJXLNGO84M8qF_JsEznn1QYK9C1GP00
/**出入 园提醒*/
@Value("${school_gate_id}")
private String school_gate_id;
private final String gate_1_title = "大门出入提醒";
private final String gate_2_title = "请假出入提醒";
private final String gate_3_title = "宿舍出入提醒";
/*@Autowired
private GetAccessTokenTask getAccessTokenTask;*/
/**
* key=json;value=
* * {"data": {"camera_name": "honoo",
* * "channel": 1,
* * "device_id": "ID",
* * "img_id": "1d92751a-4486-4f9f-b7a1-b132ae47f6e1",
* * "img_path": "img/1_1d92751a-4486-4f9f-b7a1-b132ae47f6e1.jpg",
* * "lib_id": 1, "lib_name": "honoo", "lib_type": 2, "person_addr":
* * "China", "person_age": "95", "person_gender": "1",
* * "person_idcard": "130826********5011", "person_name": "卢延吉",
* * "pos_bottom": 492, "pos_left": 165, "pos_right": 494, "pos_top": 164,
* * "position": "", "quality": 86, "similarity": 97, "snap_age": 26,
* * "snap_beard": 0,
* * "snap_feat": "179.000000,440.000000,258.000000,178.000000,161.000000,232.000000,32.000000,289.000000,233.000000,26.000000,401.000000,367.000000,72.000000,504.000000,124.000000,289.000000,178.000000,320.000000,326.000000,320.000000,365.000000,367.000000,239.000000,124.000000,179.000000,289.000000,111.000000,111.000000,458.000000,178.000000,32.000000,280.000000,209.000000,134.000000,239.000000,84.000000,119.000000,178.000000,280.000000,410.000000,288.000000,2.000000,169.000000,289.000000,326.000000,209.000000,401.000000,258.000000,495.000000,367.000000,209.000000,242.000000,124.000000,143.000000,233.000000,242.000000,134.000000,161.000000,196.000000,161.000000,192.000000,59.000000,249.000000,335.000000,119.000000,239.000000,106.000000,464.000000,84.000000,247.000000,395.000000,391.000000,501.000000,315.000000,277.000000,119.000000,182.000000,84.000000,365.000000,365.000000,209.000000,242.000000,247.000000,365.000000,335.000000,410.000000,353.000000,289.000000,449.000000,143.000000,247.000000,184.000000,49.000000,233.000000,495.000000,289.000000,320.000000,32.000000,192.000000,335.000000,335.000000,495.000000,365.000000,32.000000,391.000000,401.000000,111.000000,249.000000,410.000000,192.000000,270.000000,182.000000,428.000000,410.000000,449.000000,327.000000,192.000000,242.000000,124.000000,204.000000,440.000000,501.000000,163.000000,288.000000,440.000000,179.000000,326.000000,320.000000,482.000000,289.000000,209.000000,119.000000,249.000000,482.000000,119.000000,196.000000,249.000000,501.000000,161.000000,72.000000,169.000000,204.000000,391.000000,367.000000,202.000000,391.000000,204.000000,289.000000,204.000000,192.000000,106.000000,247.000000,111.000000,143.000000,270.000000,124.000000,247.000000,143.000000,232.000000,353.000000,504.000000,244.000000,504.000000,163.000000,178.000000,270.000000,326.000000,239.000000,180.000000,421.000000,72.000000,143.000000,32.000000,335.000000,391.000000,482.000000,192.000000,32.000000,280.000000,143.000000,249.000000,233.000000,410.000000,315.000000,299.000000,394.000000,277.000000,209.000000,247.000000,391.000000,315.000000,242.000000,179.000000,280.000000,280.000000,504.000000,204.000000,495.000000,178.000000,143.000000,124.000000,233.000000,32.000000,280.000000,289.000000,92.000000,326.000000,192.000000,192.000000,192.000000,289.000000,124.000000,134.000000,299.000000,244.000000,482.000000,401.000000,365.000000,495.000000,244.000000,504.000000,161.000000,161.000000,84.000000,163.000000,124.000000,179.000000,365.000000,247.000000,32.000000,449.000000,233.000000,365.000000,458.000000,249.000000,209.000000,84.000000,111.000000,249.000000,482.000000,49.000000,192.000000,249.000000,209.000000,464.000000,244.000000,32.000000,367.000000,277.000000,169.000000,289.000000,440.000000,202.000000,179.000000,446.000000,315.000000,",
* * "snap_gender": 1, "snap_glasses": 0, "snap_id": "92ab4981-6ecf-4068-8070-ff45056bc55f",
* * "snap_mask": 0, "snap_path": "record/92ab4981-6ecf-4068-8070-ff45056bc55f.jpg",
* "snap_race": 0, "snap_zangjiang": 0, "threshold": 85, "trigger": "2019-12-16 10:07:17"}, "msg_id": 774}
*/
@RequestMapping("/sense_box_record")
public String sense_box_record(HttpServletRequest request,
@RequestParam(required=false,name="snap") MultipartFile snap) throws IOException {
/** 声明一个流文件*/
try {
/**获得请求参数的集合*/
Map<String, String[]> parameterMap = request.getParameterMap();
/**输出请求的参数集合*/
System.out.println("Sense box:"+parameterMap);
/**循环输出请求中所有的 key ="json" 的key值的集合*/
for(String key :parameterMap.keySet()){
if("json".equals(key)){//json
/**获得key对应的值*/
String string = parameterMap.get(key)[0];
/**把对应的值转换成JsonObject*/
JSONObject parseObject = JSONObject.parseObject(string);
/**获取到名字为 date的对象*/
System.out.println("转换之后的这个值的对象是"+parseObject);
String data = parseObject.getString("data");
System.out.println("获取到的名字为date的对象的数据是"+data);
/**把data对象转换成 data_info 的JSONObject对象*/
JSONObject data_info = JSONObject.parseObject(data);
if(StringUtils.isNotBlank(data_info.getString("channel"))){
if(snap!=null) {
/**
* 组织数据发送至客户端 姓名 时间 图片
* 通过 image_id(代表人员pin) 找到 配置文件中的图片上传的图片路径
* picture 和 ident 两个目录 pin+#.jpg
*/
//(1)获取 image_id
BoxBean bean = new BoxBean();
String image_id =data_info.getString("image_id");
/*获取picture的 InputStream文件*/
//InputStream imageInputStream = FileUploadUtils.getImageInputStream(image_id, Upload_URL, picture_url, ident_url);
// if(imageInputStream!=null){
/** 保存 照片*/
//snap.transferTo(new File("d://"+snap.getName()+".jpg"));
/**设置 image*/
bean.setImage(Base64Utils.getImageStr(snap.getInputStream()));
/**设置 name*/
bean.setName(data_info.getString("person_name"));
/**设置 时间*/
bean.setDatetime(data_info.getString("trigger"));
/**web服务器端 推送消息到 web客户端*/
WebSocketSenseBox.sendInfo(JsonUtils.objectToJson(bean));//webServer send information to ClientServer
/**wx 推送*/
TemplateInfo templateInfo = new TemplateInfo();
/**调用微信信息推送的方法*/
Integer errCode = templateInfo.send_message_to_wx(image_id, data_info);
// }
}
}
break;
}
for(int i=0;i<parameterMap.get(key).length;i++){
//打印所有请求参数值
System.out.println("key="+key+";value="+parameterMap.get(key)[i].toString());
}
}
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "ok!";
}
}
推送的工具类在这里
**
* 商汤盒子
* @author Administrator
*/
@RestController
public class SenseBoxController { //别人给的数据
@Value("${server.port}")
private String port;
/**注册 type =1*/
private final String picture_url = "picture";
/**身份证 type =2*/
private final String ident_url = "ident";
@Value("${Upload_URL}")
private String Upload_URL;
@Autowired
private HrStudentUserinfoMapper studentMapper;
//#\u51fa\u5165\u56ed\u63d0\u9192
//school_gate_id=v5yDuVLSUUD9NJXLNGO84M8qF_JsEznn1QYK9C1GP00
/**出入 园提醒*/
@Value("${school_gate_id}")
private String school_gate_id;
private final String gate_1_title = "大门出入提醒";
private final String gate_2_title = "请假出入提醒";
private final String gate_3_title = "宿舍出入提醒";
/*@Autowired
private GetAccessTokenTask getAccessTokenTask;*/
/**
* key=json;value=
* * {"data": {"camera_name": "honoo",
* * "channel": 1,
* * "device_id": "ID",
* * "img_id": "1d92751a-4486-4f9f-b7a1-b132ae47f6e1",
* * "img_path": "img/1_1d92751a-4486-4f9f-b7a1-b132ae47f6e1.jpg",
* * "lib_id": 1, "lib_name": "honoo", "lib_type": 2, "person_addr":
* * "China", "person_age": "95", "person_gender": "1",
* * "person_idcard": "130826********5011", "person_name": "卢延吉",
* * "pos_bottom": 492, "pos_left": 165, "pos_right": 494, "pos_top": 164,
* * "position": "", "quality": 86, "similarity": 97, "snap_age": 26,
* * "snap_beard": 0,
* * "snap_feat": "179.000000,440.000000,258.000000,178.000000,161.000000,232.000000,32.000000,289.000000,233.000000,26.000000,401.000000,367.000000,72.000000,504.000000,124.000000,289.000000,178.000000,320.000000,326.000000,320.000000,365.000000,367.000000,239.000000,124.000000,179.000000,289.000000,111.000000,111.000000,458.000000,178.000000,32.000000,280.000000,209.000000,134.000000,239.000000,84.000000,119.000000,178.000000,280.000000,410.000000,288.000000,2.000000,169.000000,289.000000,326.000000,209.000000,401.000000,258.000000,495.000000,367.000000,209.000000,242.000000,124.000000,143.000000,233.000000,242.000000,134.000000,161.000000,196.000000,161.000000,192.000000,59.000000,249.000000,335.000000,119.000000,239.000000,106.000000,464.000000,84.000000,247.000000,395.000000,391.000000,501.000000,315.000000,277.000000,119.000000,182.000000,84.000000,365.000000,365.000000,209.000000,242.000000,247.000000,365.000000,335.000000,410.000000,353.000000,289.000000,449.000000,143.000000,247.000000,184.000000,49.000000,233.000000,495.000000,289.000000,320.000000,32.000000,192.000000,335.000000,335.000000,495.000000,365.000000,32.000000,391.000000,401.000000,111.000000,249.000000,410.000000,192.000000,270.000000,182.000000,428.000000,410.000000,449.000000,327.000000,192.000000,242.000000,124.000000,204.000000,440.000000,501.000000,163.000000,288.000000,440.000000,179.000000,326.000000,320.000000,482.000000,289.000000,209.000000,119.000000,249.000000,482.000000,119.000000,196.000000,249.000000,501.000000,161.000000,72.000000,169.000000,204.000000,391.000000,367.000000,202.000000,391.000000,204.000000,289.000000,204.000000,192.000000,106.000000,247.000000,111.000000,143.000000,270.000000,124.000000,247.000000,143.000000,232.000000,353.000000,504.000000,244.000000,504.000000,163.000000,178.000000,270.000000,326.000000,239.000000,180.000000,421.000000,72.000000,143.000000,32.000000,335.000000,391.000000,482.000000,192.000000,32.000000,280.000000,143.000000,249.000000,233.000000,410.000000,315.000000,299.000000,394.000000,277.000000,209.000000,247.000000,391.000000,315.000000,242.000000,179.000000,280.000000,280.000000,504.000000,204.000000,495.000000,178.000000,143.000000,124.000000,233.000000,32.000000,280.000000,289.000000,92.000000,326.000000,192.000000,192.000000,192.000000,289.000000,124.000000,134.000000,299.000000,244.000000,482.000000,401.000000,365.000000,495.000000,244.000000,504.000000,161.000000,161.000000,84.000000,163.000000,124.000000,179.000000,365.000000,247.000000,32.000000,449.000000,233.000000,365.000000,458.000000,249.000000,209.000000,84.000000,111.000000,249.000000,482.000000,49.000000,192.000000,249.000000,209.000000,464.000000,244.000000,32.000000,367.000000,277.000000,169.000000,289.000000,440.000000,202.000000,179.000000,446.000000,315.000000,",
* * "snap_gender": 1, "snap_glasses": 0, "snap_id": "92ab4981-6ecf-4068-8070-ff45056bc55f",
* * "snap_mask": 0, "snap_path": "record/92ab4981-6ecf-4068-8070-ff45056bc55f.jpg",
* "snap_race": 0, "snap_zangjiang": 0, "threshold": 85, "trigger": "2019-12-16 10:07:17"}, "msg_id": 774}
*/
@RequestMapping("/sense_box_record")
public String sense_box_record(HttpServletRequest request,
@RequestParam(required=false,name="snap") MultipartFile snap) throws IOException {
/** 声明一个流文件*/
try {
/**获得请求参数的集合*/
Map<String, String[]> parameterMap = request.getParameterMap();
/**输出请求的参数集合*/
System.out.println("Sense box:"+parameterMap);
/**循环输出请求中所有的 key ="json" 的key值的集合*/
for(String key :parameterMap.keySet()){
if("json".equals(key)){//json
/**获得key对应的值*/
String string = parameterMap.get(key)[0];
/**把对应的值转换成JsonObject*/
JSONObject parseObject = JSONObject.parseObject(string);
/**获取到名字为 date的对象*/
System.out.println("转换之后的这个值的对象是"+parseObject);
String data = parseObject.getString("data");
System.out.println("获取到的名字为date的对象的数据是"+data);
/**把data对象转换成 data_info 的JSONObject对象*/
JSONObject data_info = JSONObject.parseObject(data);
if(StringUtils.isNotBlank(data_info.getString("channel"))){
if(snap!=null) {
/**
* 组织数据发送至客户端 姓名 时间 图片
* 通过 image_id(代表人员pin) 找到 配置文件中的图片上传的图片路径
* picture 和 ident 两个目录 pin+#.jpg
*/
//(1)获取 image_id
BoxBean bean = new BoxBean();
String image_id =data_info.getString("image_id");
/*获取picture的 InputStream文件*/
//InputStream imageInputStream = FileUploadUtils.getImageInputStream(image_id, Upload_URL, picture_url, ident_url);
// if(imageInputStream!=null){
/** 保存 照片*/
//snap.transferTo(new File("d://"+snap.getName()+".jpg"));
/**设置 image*/
bean.setImage(Base64Utils.getImageStr(snap.getInputStream()));
/**设置 name*/
bean.setName(data_info.getString("person_name"));
/**设置 时间*/
bean.setDatetime(data_info.getString("trigger"));
/**web服务器端 推送消息到 web客户端*/
WebSocketSenseBox.sendInfo(JsonUtils.objectToJson(bean));//webServer send information to ClientServer
/**wx 推送*/
TemplateInfo templateInfo = new TemplateInfo();
/**调用微信信息推送的方法*/
Integer errCode = templateInfo.send_message_to_wx(image_id, data_info);
// }
}
}
break;
}
for(int i=0;i<parameterMap.get(key).length;i++){
//打印所有请求参数值
System.out.println("key="+key+";value="+parameterMap.get(key)[i].toString());
}
}
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "ok!";
}
}