| | |
| | | package com.thhy.staff.modules.biz.face.service.impl; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | 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.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.mapper.PlatUserMapper; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Service |
| | | public class FaceServerImpl implements FaceServer { |
| | | |
| | | @Autowired |
| | | private FaceDeviceMapper faceDeviceMapper; |
| | | |
| | | @Autowired |
| | | private PlatUserMapper userMapper; |
| | | |
| | | @Autowired |
| | | private EmqxConfig emqxConfig; |
| | |
| | | FaceResult faceResult = new FaceResult(true,faceDevice,emqxConfig.toString()); |
| | | return faceResult; |
| | | } |
| | | |
| | | @Override |
| | | public JSONObject syncPerson(String mess) { |
| | | JSONObject reqJson = JSONObject.parseObject(mess); |
| | | JSONObject paramJson = reqJson.getJSONObject("path_params"); |
| | | |
| | | List<UserFaceVo> faceVoList = userMapper.queryUserFace(paramJson.getIntValue("offset"),paramJson.getIntValue("limit")); |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("code",0); |
| | | jsonObject.put("msg","OK"); |
| | | jsonObject.put("success",true); |
| | | jsonObject.put("offset",paramJson.getIntValue("offset")+paramJson.getIntValue("limit")); |
| | | jsonObject.put("person_list",faceVoList); |
| | | return jsonObject; |
| | | } |
| | | |
| | | @Override |
| | | public JSONObject syncPersonSingle(String mess) { |
| | | JSONObject reqJson = JSONObject.parseObject(mess); |
| | | JSONObject paramJson = reqJson.getJSONObject("path_params"); |
| | | JSONArray userIdArray = paramJson.getJSONArray("person_list"); |
| | | String userId = userIdArray.getString(0); |
| | | |
| | | UserFaceVo userFaceVo = userMapper.queryUserFaceSingle(userId); |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("code",0); |
| | | jsonObject.put("msg","OK"); |
| | | jsonObject.put("success",true); |
| | | jsonObject.put("offset",0); |
| | | List<UserFaceVo> faceVoList = new ArrayList<>(); |
| | | faceVoList.add(userFaceVo); |
| | | jsonObject.put("person_list",faceVoList); |
| | | return jsonObject; |
| | | } |
| | | |
| | | @Override |
| | | public void personNotify(String mess) { |
| | | JSONObject reqJson = JSONObject.parseObject(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 failJsonArray = reqJson.getJSONArray("failed"); |
| | | if(failJsonArray.size()>0){ |
| | | for(Object obj : failJsonArray){ |
| | | JSONObject failUserInfo = JSON.parseObject(obj.toString()); |
| | | String userId = failUserInfo.getString("person_id"); |
| | | JSONArray failInfoArray = failUserInfo.getJSONArray("info"); |
| | | String failReason = failInfoArray.getJSONObject(0).getString("reason"); |
| | | userMapper.syncFail(userId,failReason); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |