有关门禁系统中的人脸推送到大屏使用的webSocket布控推送记录一下

突然感觉之前紫萼的都不是很认真,从进以后写一点每天上班都用到的一些东西下面这个就是推送之前的基本逻辑,注释掉的东西是 由于原本的抓拍的图片不是很清晰,所以采用人员注册时的上传的图片保存到本地的写法;

**
 * 商汤盒子
 * @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!";
   }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值