【安眼】缓存用户token及用户登录信息
This commit is contained in:
+6
-2
@@ -132,7 +132,7 @@ public interface AnYanClient {
|
|||||||
* @param token
|
* @param token
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
AnYanUserInfoResult getAnYanUserInfo(String token);
|
AnYanUserInfoResult getAnYanUserInfo(String token, String username);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量拉取安眼平台AED信息 , 用于定时任务更新本地数据的AED数据
|
* 批量拉取安眼平台AED信息 , 用于定时任务更新本地数据的AED数据
|
||||||
@@ -155,7 +155,7 @@ public interface AnYanClient {
|
|||||||
* @param employeeNum 工号
|
* @param employeeNum 工号
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
CareUserListVo careUserDetails(String anYanUserId,String employeeNum);
|
CareUserListVo careUserDetails(String anYanUserId, String employeeNum);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 一人一案分页列表查询接口(用大屏首页重点关爱趋势预警弹窗列表)
|
* 一人一案分页列表查询接口(用大屏首页重点关爱趋势预警弹窗列表)
|
||||||
@@ -175,6 +175,7 @@ public interface AnYanClient {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量更新员工关键信息接口
|
* 批量更新员工关键信息接口
|
||||||
|
*
|
||||||
* @param employeeNumList
|
* @param employeeNumList
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -183,6 +184,7 @@ public interface AnYanClient {
|
|||||||
/**
|
/**
|
||||||
* 更新单个员工扩展信息
|
* 更新单个员工扩展信息
|
||||||
* 是否是借调人员 这个判断是依据 数据中是否存在currentOfficeId来决定的,存在说明是借调人员,不存在说明不是借调人员
|
* 是否是借调人员 这个判断是依据 数据中是否存在currentOfficeId来决定的,存在说明是借调人员,不存在说明不是借调人员
|
||||||
|
*
|
||||||
* @param employeeNum
|
* @param employeeNum
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -190,6 +192,7 @@ public interface AnYanClient {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 体检数据
|
* 体检数据
|
||||||
|
*
|
||||||
* @param param
|
* @param param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -197,6 +200,7 @@ public interface AnYanClient {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据id查询体检数据
|
* 根据id查询体检数据
|
||||||
|
*
|
||||||
* @param id
|
* @param id
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
|||||||
+17
-12
@@ -103,6 +103,9 @@ public class AnYanClientExecutor implements AnYanClient {
|
|||||||
ResponseEntity<AuthResult> authResult = RestTemplateUtil.postExchangeForGetTokenByPassword(AnYanApiEnum.QUERY_AUTH_TOKEN, formData, headers, AuthResult.class);
|
ResponseEntity<AuthResult> authResult = RestTemplateUtil.postExchangeForGetTokenByPassword(AnYanApiEnum.QUERY_AUTH_TOKEN, formData, headers, AuthResult.class);
|
||||||
if (HttpStatus.OK.equals(authResult.getStatusCode())
|
if (HttpStatus.OK.equals(authResult.getStatusCode())
|
||||||
&& ObjectUtils.isNotEmpty(authResult.getBody())) {
|
&& ObjectUtils.isNotEmpty(authResult.getBody())) {
|
||||||
|
String token = authResult.getBody().getAccess_token();
|
||||||
|
int expireSeconds = ObjectUtil.isNotEmpty(authResult.getBody().getExpires_in()) ? authResult.getBody().getExpires_in() : 3600;
|
||||||
|
redisClientUtil.set(new RedisKeyPrefix(expireSeconds, AnYanConstants.AN_YAN_API_USER_TOKEN_PREFIX), username, token);
|
||||||
return authResult.getBody();
|
return authResult.getBody();
|
||||||
} else {
|
} else {
|
||||||
log.error("------安眼系统获取token失败(密码模式){}------", authResult.getBody());
|
log.error("------安眼系统获取token失败(密码模式){}------", authResult.getBody());
|
||||||
@@ -143,7 +146,7 @@ public class AnYanClientExecutor implements AnYanClient {
|
|||||||
if (ObjectUtil.isNotEmpty(authResult) && StrUtil.isNotEmpty(authResult.getAccess_token())) {
|
if (ObjectUtil.isNotEmpty(authResult) && StrUtil.isNotEmpty(authResult.getAccess_token())) {
|
||||||
int expireSeconds = ObjectUtil.isNotEmpty(authResult.getExpires_in()) ? authResult.getExpires_in() : 7200;
|
int expireSeconds = ObjectUtil.isNotEmpty(authResult.getExpires_in()) ? authResult.getExpires_in() : 7200;
|
||||||
redisClientUtil.set(new RedisKeyPrefix(expireSeconds, AnYanConstants.AN_YAN_API_TOKEN_PREFIX), "publicToken", authResult.getAccess_token());
|
redisClientUtil.set(new RedisKeyPrefix(expireSeconds, AnYanConstants.AN_YAN_API_TOKEN_PREFIX), "publicToken", authResult.getAccess_token());
|
||||||
log.info("---------刷新安眼token成功-------新的token:{},剩余过期时间:{}",authResult.getAccess_token(),authResult.getExpires_in());
|
log.info("---------刷新安眼token成功-------新的token:{},剩余过期时间:{}", authResult.getAccess_token(), authResult.getExpires_in());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -293,10 +296,11 @@ public class AnYanClientExecutor implements AnYanClient {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Retryable(maxAttempts = 2)
|
@Retryable(maxAttempts = 2)
|
||||||
public AnYanUserInfoResult getAnYanUserInfo(String token) {
|
public AnYanUserInfoResult getAnYanUserInfo(String token, String username) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.add(AnYanConstants.AUTHORIZATION, AnYanConstants.TOKEN_TYPE + token);
|
headers.add(AnYanConstants.AUTHORIZATION, AnYanConstants.TOKEN_TYPE + token);
|
||||||
ResponseEntity<AnYanUserInfoResult> exchange = RestTemplateUtil.getExchange(AnYanApiEnum.USER_INFO_UNIT_V2, headers, AnYanUserInfoResult.class);
|
ResponseEntity<AnYanUserInfoResult> exchange = RestTemplateUtil.getExchange(AnYanApiEnum.USER_INFO_UNIT_V2, headers, AnYanUserInfoResult.class);
|
||||||
|
redisClientUtil.set(new RedisKeyPrefix(-1, AnYanConstants.AN_YAN_API_USERINFO_PREFIX), username, exchange);
|
||||||
return BeanUtil.toBean(exchange.getBody(), AnYanUserInfoResult.class);
|
return BeanUtil.toBean(exchange.getBody(), AnYanUserInfoResult.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -308,9 +312,10 @@ public class AnYanClientExecutor implements AnYanClient {
|
|||||||
IPage<AnYanAedInfo> aedPage = new PageResultToBeanUtil<AnYanAedInfo>().transform(result, AnYanAedInfo.class);
|
IPage<AnYanAedInfo> aedPage = new PageResultToBeanUtil<AnYanAedInfo>().transform(result, AnYanAedInfo.class);
|
||||||
return aedPage.getRecords();
|
return aedPage.getRecords();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Retryable(maxAttempts = 2)
|
@Retryable(maxAttempts = 2)
|
||||||
public List<CarePersonList> homeCarePersonList(){
|
public List<CarePersonList> homeCarePersonList() {
|
||||||
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.CARE_PERSON_BY_TIME, buildTokenHeader(), null);
|
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.CARE_PERSON_BY_TIME, buildTokenHeader(), null);
|
||||||
List<Object> listMaps = (List<Object>) result.getData();
|
List<Object> listMaps = (List<Object>) result.getData();
|
||||||
return listMaps.stream().map(lMap -> BeanUtil.toBean(lMap, CarePersonList.class)).collect(Collectors.toList());
|
return listMaps.stream().map(lMap -> BeanUtil.toBean(lMap, CarePersonList.class)).collect(Collectors.toList());
|
||||||
@@ -318,12 +323,12 @@ public class AnYanClientExecutor implements AnYanClient {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Retryable(maxAttempts = 2)
|
@Retryable(maxAttempts = 2)
|
||||||
public CareUserListVo careUserDetails(String anYanUserId,String employeeNum){
|
public CareUserListVo careUserDetails(String anYanUserId, String employeeNum) {
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
if(StrUtil.isNotEmpty(anYanUserId)){
|
if (StrUtil.isNotEmpty(anYanUserId)) {
|
||||||
param.put("id", anYanUserId);
|
param.put("id", anYanUserId);
|
||||||
}
|
}
|
||||||
if(StrUtil.isNotEmpty(employeeNum)){
|
if (StrUtil.isNotEmpty(employeeNum)) {
|
||||||
param.put("employeeNum", employeeNum);
|
param.put("employeeNum", employeeNum);
|
||||||
}
|
}
|
||||||
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.CARE_PERSON_Details, buildTokenHeader(), param);
|
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.CARE_PERSON_Details, buildTokenHeader(), param);
|
||||||
@@ -332,14 +337,14 @@ public class AnYanClientExecutor implements AnYanClient {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Retryable(maxAttempts = 2)
|
@Retryable(maxAttempts = 2)
|
||||||
public IPage<CareUserListVo> careUserDetailsPage(CareUserDetailsParam param){
|
public IPage<CareUserListVo> careUserDetailsPage(CareUserDetailsParam param) {
|
||||||
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.CARE_PERSON_PAGE_LIST, buildTokenHeader(), param);
|
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.CARE_PERSON_PAGE_LIST, buildTokenHeader(), param);
|
||||||
return new PageResultToBeanUtil<CareUserListVo>().transform(result, CareUserListVo.class);
|
return new PageResultToBeanUtil<CareUserListVo>().transform(result, CareUserListVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Retryable(maxAttempts = 2)
|
@Retryable(maxAttempts = 2)
|
||||||
public IPage<EmergencyContactVO> queryEmergencyContact(EmergencyContactParam param){
|
public IPage<EmergencyContactVO> queryEmergencyContact(EmergencyContactParam param) {
|
||||||
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.QUERY_EMPLOYEE_CARE_PERSON, buildTokenHeader(), param);
|
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.QUERY_EMPLOYEE_CARE_PERSON, buildTokenHeader(), param);
|
||||||
return new PageResultToBeanUtil<EmergencyContactVO>().transform(result, EmergencyContactVO.class);
|
return new PageResultToBeanUtil<EmergencyContactVO>().transform(result, EmergencyContactVO.class);
|
||||||
}
|
}
|
||||||
@@ -347,8 +352,8 @@ public class AnYanClientExecutor implements AnYanClient {
|
|||||||
@Override
|
@Override
|
||||||
@Retryable(maxAttempts = 2)
|
@Retryable(maxAttempts = 2)
|
||||||
public List<AnYanUpdateUserBatchInfo> updateUserBatch(List<String> employeeNumList) {
|
public List<AnYanUpdateUserBatchInfo> updateUserBatch(List<String> employeeNumList) {
|
||||||
Map<String,List<String>> map = new HashMap<>(1);
|
Map<String, List<String>> map = new HashMap<>(1);
|
||||||
map.put("employeeNumList",employeeNumList);
|
map.put("employeeNumList", employeeNumList);
|
||||||
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.FIND_VITAL_INFO, buildTokenHeader(), map);
|
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.FIND_VITAL_INFO, buildTokenHeader(), map);
|
||||||
List<Object> listMaps = (List<Object>) result.getData();
|
List<Object> listMaps = (List<Object>) result.getData();
|
||||||
return listMaps.stream().map(lMap -> BeanUtil.toBean(lMap, AnYanUpdateUserBatchInfo.class)).collect(Collectors.toList());
|
return listMaps.stream().map(lMap -> BeanUtil.toBean(lMap, AnYanUpdateUserBatchInfo.class)).collect(Collectors.toList());
|
||||||
@@ -357,8 +362,8 @@ public class AnYanClientExecutor implements AnYanClient {
|
|||||||
@Override
|
@Override
|
||||||
@Retryable(maxAttempts = 2)
|
@Retryable(maxAttempts = 2)
|
||||||
public AnYanUserEmployee updateEmployeeNum(String employeeNum) {
|
public AnYanUserEmployee updateEmployeeNum(String employeeNum) {
|
||||||
Map<String,String> map = new HashMap<>(1);
|
Map<String, String> map = new HashMap<>(1);
|
||||||
map.put("employeeNum",employeeNum);
|
map.put("employeeNum", employeeNum);
|
||||||
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.FIND_BY_EMPLOYEENUM, buildTokenHeader(), map);
|
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.FIND_BY_EMPLOYEENUM, buildTokenHeader(), map);
|
||||||
return BeanUtil.toBean(result.getData(), AnYanUserEmployee.class);
|
return BeanUtil.toBean(result.getData(), AnYanUserEmployee.class);
|
||||||
}
|
}
|
||||||
|
|||||||
+10
@@ -34,6 +34,16 @@ public interface AnYanConstants {
|
|||||||
*/
|
*/
|
||||||
String AN_YAN_API_TOKEN_PREFIX = "exterior:anyan:api:";
|
String AN_YAN_API_TOKEN_PREFIX = "exterior:anyan:api:";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 缓存安眼用户登录token
|
||||||
|
*/
|
||||||
|
String AN_YAN_API_USER_TOKEN_PREFIX = "exterior:anyan:api:access_token";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 缓存安眼用户信息
|
||||||
|
*/
|
||||||
|
String AN_YAN_API_USERINFO_PREFIX = "exterior:anyan:api:userinfo";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 部分业务接口需要代入的请求头参数Roles
|
* 部分业务接口需要代入的请求头参数Roles
|
||||||
*/
|
*/
|
||||||
|
|||||||
+1
-1
@@ -117,7 +117,7 @@ public class LoginAnYanServiceImpl implements ILoginAnYanService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 授权成功获取用户信息(统一认证的平台接口没有做统一封装,成功和失败均返回一个不同的json字符串, 这里只能判断没有获取到用户信息则认为是失败)
|
// 授权成功获取用户信息(统一认证的平台接口没有做统一封装,成功和失败均返回一个不同的json字符串, 这里只能判断没有获取到用户信息则认为是失败)
|
||||||
AnYanUserInfoResult anYanUserInfo = anYanClient.getAnYanUserInfo(anYanAuthResult.getAccess_token());
|
AnYanUserInfoResult anYanUserInfo = anYanClient.getAnYanUserInfo(anYanAuthResult.getAccess_token(), username);
|
||||||
if (anYanUserInfo == null || anYanUserInfo.getEmployeeUnitDTO() == null) {
|
if (anYanUserInfo == null || anYanUserInfo.getEmployeeUnitDTO() == null) {
|
||||||
return Result.error("登录失败,请先联系本单位掌油管理员确认个人机构信息");
|
return Result.error("登录失败,请先联系本单位掌油管理员确认个人机构信息");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user