| | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alibaba.nacos.api.utils.StringUtils; |
| | | import com.thhy.general.utils.DeepCopyUtils; |
| | | import com.thhy.staff.config.EmqxConfig; |
| | | import com.thhy.staff.config.EmqxProperties; |
| | | import com.thhy.staff.config.FaceConfig; |
| | | import com.thhy.staff.modules.biz.face.entity.FaceDevice; |
| | | import com.thhy.staff.modules.biz.face.entity.FaceResult; |
| | | import com.thhy.staff.modules.biz.face.entity.UserFaceVo; |
| | | import com.thhy.staff.modules.biz.face.mapper.FaceDeviceMapper; |
| | | import com.thhy.staff.modules.biz.face.service.FaceServer; |
| | | import com.thhy.staff.modules.biz.platuser.entity.DoorLis; |
| | | import com.thhy.staff.modules.biz.platuser.mapper.PlatUserMapper; |
| | | import com.thhy.staff.utils.MqUtils; |
| | | import org.checkerframework.checker.units.qual.A; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | |
| | | @Autowired |
| | | private EmqxConfig emqxConfig; |
| | | |
| | | @Value("${file.vfprefix}") |
| | | private String vfPrefix; |
| | | |
| | | @Autowired |
| | | private FaceConfig faceConfig; |
| | | |
| | | private Logger logger = LoggerFactory.getLogger(FaceServer.class); |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | FaceResult faceResult = new FaceResult(true,faceDevice,emqxConfig.toString()); |
| | | logger.info("人脸设备返回:++++++++++"+JSON.toJSONString(faceResult)); |
| | | return faceResult; |
| | | } |
| | | |
| | |
| | | |
| | | UserFaceVo userFaceVo = userMapper.queryUserFaceSingle(userId); |
| | | |
| | | List<String> url = new ArrayList<>(); |
| | | url.add(vfPrefix+userFaceVo.getPhoto()); |
| | | userFaceVo.setTemplateImgUrl(url); |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("code",0); |
| | | jsonObject.put("msg","OK"); |
| | |
| | | jsonObject.put("offset",0); |
| | | List<UserFaceVo> faceVoList = new ArrayList<>(); |
| | | faceVoList.add(userFaceVo); |
| | | jsonObject.put("person_list",JSONObject.parseObject(JSON.toJSONString(faceVoList))); |
| | | jsonObject.put("person_list",faceVoList); |
| | | logger.info("设备查询人员结果:"+JSON.toJSONString(faceVoList)); |
| | | return jsonObject; |
| | | } |
| | | |
| | | @Override |
| | | public void personNotify(String mess) { |
| | | JSONObject reqJson = JSONObject.parseObject(mess); |
| | | logger.info("接收设备下发结果通知################"+mess); |
| | | if(reqJson.containsKey("success")&&reqJson.getBooleanValue("success")){ |
| | | String userIds = reqJson.getString("successful"); |
| | | if(!StringUtils.isEmpty(userIds)){ |
| | | String[] userIdArray = new String[]{userIds}; |
| | | if(userIds.contains(",")){ |
| | | userIdArray = userIds.split(","); |
| | | } |
| | | userMapper.syncResult(1,userIdArray); |
| | | JSONArray jsonArray = JSONArray.parseArray(userIds); |
| | | logger.info("成功通知结果解析数组"+jsonArray.toJSONString()); |
| | | |
| | | List<String> userIdList = JSONArray.parseArray(userIds,String.class); |
| | | |
| | | userMapper.syncResult(1,userIdList); |
| | | } |
| | | JSONArray failJsonArray = reqJson.getJSONArray("failed"); |
| | | if(failJsonArray.size()>0){ |
| | |
| | | JSONObject failUserInfo = JSON.parseObject(obj.toString()); |
| | | String userId = failUserInfo.getString("person_id"); |
| | | JSONArray failInfoArray = failUserInfo.getJSONArray("info"); |
| | | String failReason = failInfoArray.getJSONObject(0).getString("reason"); |
| | | String failReason = ""; |
| | | if(failInfoArray.size()>0) failReason = failInfoArray.getJSONObject(0).getString("reason"); |
| | | userMapper.syncFail(userId,failReason); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void record(String mess) { |
| | | JSONObject jsonObject = JSON.parseObject(mess); |
| | | DoorLis doorLis = new DoorLis(jsonObject); |
| | | userMapper.insertDoorLis(doorLis); |
| | | } |
| | | |
| | | @Override |
| | | public void queryPer(String perId) { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("method","get_person"); |
| | | jsonObject.put("params",new JSONObject()); |
| | | JSONObject dataJson = new JSONObject(); |
| | | dataJson.put("path",faceConfig.getUrlPrefix()+"getPersonDetail"); |
| | | dataJson.put("person_id",perId); |
| | | jsonObject.put("data",dataJson); |
| | | List<String> sns = faceDeviceMapper.queryDevSn(); |
| | | String content = jsonObject.toJSONString(); |
| | | logger.info("查询人员"+perId+":"+content); |
| | | MqUtils.createClient(emqxConfig,sns,content); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void deleteNotify() { |
| | | String mess = "{}"; |
| | | logger.info("删除人员通知"+mess); |
| | | JSONObject jsonObject = JSON.parseObject(mess); |
| | | if(jsonObject.containsKey("success")&&jsonObject.getBooleanValue("success")){ |
| | | JSONObject paramJson = jsonObject.getJSONObject("param"); |
| | | List<String> userIds = JSONArray.parseArray(paramJson.getString("userIds"),String.class); |
| | | userMapper.syncResult(3,userIds); |
| | | } |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("method","delete_person"); |
| | | jsonObject.put("notify","http://111.30.93.212:15002/staff/face/"+"deleteNotify"); |
| | | JSONObject userIdJSON = new JSONObject(); |
| | | String[] userIdArray = new String[]{"02e6d1c4ded41512d0ca3622"}; |
| | | userIdJSON.put("userIds",userIdArray); |
| | | |
| | | |
| | | jsonObject.put("params",userIdJSON); |
| | | JSONObject dataJson = new JSONObject(); |
| | | dataJson.put("person_list",userIdArray); |
| | | dataJson.put("person_type","4"); |
| | | jsonObject.put("data",dataJson); |
| | | String content = jsonObject.toJSONString(); |
| | | System.out.println("删除指令打印"+content); |
| | | |
| | | EmqxConfig emqxConfig = new EmqxConfig(); |
| | | emqxConfig.setHost("111.30.93.215"); |
| | | emqxConfig.setPort("1883"); |
| | | emqxConfig.setQos(1); |
| | | emqxConfig.setLogin("thhy"); |
| | | emqxConfig.setPassword("Thhy@123"); |
| | | |
| | | List<String> sns = new ArrayList<>(); |
| | | sns.add("0A:0C:E1:25:75:2C"); |
| | | MqUtils.createClient(emqxConfig,sns,content); |
| | | } |
| | | } |