diff --git a/yanzhu-common/yanzhu-common-core/src/main/java/com/yanzhu/common/core/constant/CacheConstants.java b/yanzhu-common/yanzhu-common-core/src/main/java/com/yanzhu/common/core/constant/CacheConstants.java index d8300778..74c29b50 100644 --- a/yanzhu-common/yanzhu-common-core/src/main/java/com/yanzhu/common/core/constant/CacheConstants.java +++ b/yanzhu-common/yanzhu-common-core/src/main/java/com/yanzhu/common/core/constant/CacheConstants.java @@ -78,5 +78,5 @@ public class CacheConstants */ public static final String PRO_PROJECT = "pro_project:"; - public static final String UNI_AUTH = "pro_project_uni_auth2:"; + public static final String UNI_AUTH = "pro_project_uni_auth3:"; } diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IUniService.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IUniService.java index c6837d39..b23ecbdd 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IUniService.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IUniService.java @@ -30,7 +30,7 @@ public interface IUniService { * @param data * @return */ - public boolean admitUpdate(JSONObject data); + public String admitUpdate(JSONObject data); /** * 人员接口-识别主体删除 @@ -133,5 +133,5 @@ public interface IUniService { * @param userId * @param projectId */ - public Long syncUniUser(Long userId, ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers); + public Long syncUniUser(Long userId, Long projectId); } diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java index 7b943032..3a1d8f2a 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java @@ -74,7 +74,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu }else{ remoteUserService.updateUserInfo(user,SecurityConstants.INNER).getData(); } - uniService.syncUniUser(user.getUserId(),proProjectInfoSubdeptsUsers); + uniService.syncUniUser(user.getUserId(),proProjectInfoSubdeptsUsers.getProjectId()); return proProjectInfoSubdeptsUsersMapper.insertProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers); } @@ -97,7 +97,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu }else{ remoteUserService.updateUserInfo(user,SecurityConstants.INNER).getData(); } - uniService.syncUniUser(user.getUserId(),proProjectInfoSubdeptsUsers); + uniService.syncUniUser(user.getUserId(),proProjectInfoSubdeptsUsers.getProjectId()); return proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers); } diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/UniServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/UniServiceImpl.java index 6e2cd207..36759dbd 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/UniServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/UniServiceImpl.java @@ -42,6 +42,10 @@ public class UniServiceImpl implements IUniService{ @Autowired private RemoteUserService remoteUserService; + private void clearAuthCache(long projectId){ + String cacheKey=CacheConstants.UNI_AUTH+projectId; + redisService.deleteObject(cacheKey); + } @Override public Map auth(long projectId) { @@ -102,11 +106,15 @@ public class UniServiceImpl implements IUniService{ if(jo.getLong("result").intValue()==1){ return jo.getJSONObject("data").getString("admitGuid"); } + if("token is illegal".equals(jo.getString("msg"))){ + clearAuthCache(projectId); + return admitCreate(data); + } return null; } @Override - public boolean admitUpdate(JSONObject data) { + public String admitUpdate(JSONObject data) { long projectId=data.getLong("projectId"); data.remove("projectId"); Request request=new Request.Builder() @@ -116,7 +124,12 @@ public class UniServiceImpl implements IUniService{ .build(); String res=UniUtils.getResult(request); JSONObject jo=JSON.parseObject(res); - return jo.getLong("result").intValue()==1; + if("token is illegal".equals(jo.getString("msg"))){ + clearAuthCache(projectId); + return admitUpdate(data); + } + + return jo.getString("msg"); } @Override @@ -130,6 +143,10 @@ public class UniServiceImpl implements IUniService{ .build(); String res=UniUtils.getResult(request); JSONObject jo=JSON.parseObject(res); + if("token is illegal".equals(jo.getString("msg"))){ + clearAuthCache(projectId); + return admitDeletee(data); + } return jo.getLong("result").intValue()==1; } @@ -157,6 +174,10 @@ public class UniServiceImpl implements IUniService{ if(jo.getLong("result").intValue()==1){ return jo.getJSONObject("data"); } + if("token is illegal".equals(jo.getString("msg"))){ + clearAuthCache(projectId); + return faceRegister(data); + } return null; } @@ -171,6 +192,10 @@ public class UniServiceImpl implements IUniService{ .build(); String res=UniUtils.getResult(request); JSONObject jo=JSON.parseObject(res); + if("token is illegal".equals(jo.getString("msg"))){ + clearAuthCache(projectId); + return faceDelete(data); + } return jo.getLong("result").intValue()==1; } @@ -215,15 +240,16 @@ public class UniServiceImpl implements IUniService{ } @Override - public Long syncUniUser(Long userId, ProProjectInfoSubdeptsUsers prjUser) { + public Long syncUniUser(Long userId, Long projectId) { SysUser user=remoteUserService.getSysUserInfo(userId, SecurityConstants.INNER).getData(); JSONObject jo=JSON.parseObject(user.getUserInfos()); String admitGuid=jo.getString("admitGuid"); + String faceGuid=jo.getString("faceGuid"); JSONObject userJo=new JSONObject(); - userJo.put("projectId",prjUser.getProjectId()); + userJo.put("projectId",projectId); userJo.put("name",user.getUserName()); userJo.put("phone",user.getPhonenumber()); - userJo.put("tag",prjUser.getActiveProjectName()); + userJo.put("tag",user.getNickName()); userJo.put("cardNo",user.getUserId()); userJo.put("idCardNo",user.getCardCode()); userJo.put("password","123456"); @@ -236,16 +262,32 @@ public class UniServiceImpl implements IUniService{ hasUpdate=true; }else{ //已注册 - admitUpdate(userJo); + userJo.put("admitGuid",admitGuid); + String upMsg= admitUpdate(userJo); + if("admit not exist".equals(upMsg)){ + userJo.remove("admitGuid"); + userJo.put("projectId",projectId); + admitGuid=admitCreate(userJo); + jo.put("admitGuid",admitGuid); + hasUpdate=true; + } } JSONObject faceJo=new JSONObject(); - faceJo.put("projectId",prjUser.getProjectId()); + faceJo.put("projectId",projectId); faceJo.put("base64",""); faceJo.put("admitGuid",admitGuid); - faceJo.put("url",user.getUserPicture()); + //faceJo.put("url",user.getUserPicture()); + faceJo.put("url","https://uniubi-aiot.oss-cn-hangzhou.aliyuncs.com/detect/20241007/211204-71D9BCBE526C4F57B8D31ECAE03AEBFB"); faceJo.put("faceTag",""); HttpServletRequest request =((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); String url= request.getRemoteAddr(); + if(StringUtils.isNotEmpty(faceGuid)){ + JSONObject faceDel=new JSONObject(); + faceDel.put("projectId",projectId); + faceDel.put("admitGuid",admitGuid); + faceDel.put("faceGuid",faceGuid); + faceDelete(faceDel); + } //注册图像 JSONObject faceRes= faceRegister(faceJo); if(faceRes!=null) { diff --git a/yanzhu-ui-vue3/src/views/manage/proProjectInfoSubdeptsUsers/index.vue b/yanzhu-ui-vue3/src/views/manage/proProjectInfoSubdeptsUsers/index.vue index f8922e02..2598afac 100644 --- a/yanzhu-ui-vue3/src/views/manage/proProjectInfoSubdeptsUsers/index.vue +++ b/yanzhu-ui-vue3/src/views/manage/proProjectInfoSubdeptsUsers/index.vue @@ -600,6 +600,18 @@ function submitForm() { proxy.$refs["proProjectInfoSubdeptsUsersRef"].validate(valid => { if (valid) { let depts = data.subdepts.filter(d => d.id == form.value.subDeptId); + let info=form.value.info; + info.nation=form.value.nation; + info.educationalType=form.value.educationalType; + info.birthDay=form.value.birthDay; + info.nativePlace=form.value.nativePlace; + info.address=form.value.address; + info.emergencyContact=form.value.emergencyContact; + info.emergencyContact= form.value.emergencyContact; + info.contactPhone=form.value.contactPhone; + info.bankName=form.value.bankName; + info.bankCardNo= form.value.bankCardNo; + info.bankOffice= form.value.bankOffice; form.value.subDeptName = depts.length > 0 ? depts[0].subDeptName : ''; form.value.comId = depts.length > 0 ? depts[0].comId : ''; let groups = data.deptGroups.filter(d => d.id == form.value.subDeptGroup); @@ -617,18 +629,7 @@ function submitForm() { userPicture: imgUrl(form.value.faceImage), cardImgPos: form.value.certificatePhoto1, cardImgInv: form.value.certificatePhoto2, - userInfos: JSON.stringify({ - nation: form.value.nation, - educationalType: form.value.educationalType, - birthDay: form.value.birthDay, - nativePlace: form.value.nativePlace, - address: form.value.address, - emergencyContact: form.value.emergencyContact, - contactPhone: form.value.contactPhone, - bankName: form.value.bankName, - bankCardNo: form.value.bankCardNo, - bankOffice: form.value.bankOffice - }), + userInfos: JSON.stringify(info), phonenumber: form.value.userPhone, sex: form.value.sex, avatar: form.value.faceImage