|
@@ -180,13 +180,14 @@ public class UserServiceImpl implements UserService {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
public void offline(String clientId, Integer userId, Integer status) {
|
|
|
Collection<OAuth2AccessToken> c = tokenStore.findTokensByClientIdAndUserName(clientId, String.valueOf(userId));
|
|
|
- System.out.println(c.size());
|
|
|
for (OAuth2AccessToken oAuth2AccessToken : c) {
|
|
|
String accessToken = oAuth2AccessToken.getValue();
|
|
|
String tokenKey = "offlineStatus:" + accessToken;
|
|
|
- redisUtil.setExpire(tokenKey.getBytes(), ByteArrayUtils.objectToBytes(status).get(), 1800);//15分钟过期
|
|
|
+ // 15分钟过期
|
|
|
+ redisUtil.setExpire(tokenKey.getBytes(), ByteArrayUtils.objectToBytes(status).get(), 1800);
|
|
|
tokenStore.removeAccessToken(oAuth2AccessToken);
|
|
|
}
|
|
|
}
|
|
@@ -236,7 +237,7 @@ public class UserServiceImpl implements UserService {
|
|
|
String key = null;
|
|
|
try {
|
|
|
// 验证加密的内容是否正确 32
|
|
|
- encryptValue=encryptValue.replaceAll(" ","+");
|
|
|
+ encryptValue = encryptValue.replaceAll(" ","+");
|
|
|
key = DESUtil.decrypt(encryptValue,appSecret);
|
|
|
// 截取里面的时间
|
|
|
String date = key.substring(key.lastIndexOf("_") + 1, key.length());
|
|
@@ -257,47 +258,42 @@ public class UserServiceImpl implements UserService {
|
|
|
public User chooseUser(User user) {
|
|
|
|
|
|
LoginUser currentUser = UserUtil.getCurrentUser();
|
|
|
-
|
|
|
- if(currentUser.getTenantId()!=null){
|
|
|
+ if (currentUser.getTenantId() != null){
|
|
|
user.setPhone(currentUser.getPhoneNumber());
|
|
|
user.setTenantId(currentUser.getTenantId());
|
|
|
}
|
|
|
- user=findUser(user);
|
|
|
+
|
|
|
+ user = this.findUser(user);
|
|
|
UserDto userDto=new UserDto();
|
|
|
userDto.setPhone(user.getPhone());
|
|
|
-
|
|
|
-
|
|
|
- List<ProgramItem>programItems=new ArrayList<>();
|
|
|
-
|
|
|
- Permission permission= findPermission(user);
|
|
|
-
|
|
|
- boolean returnFlag=false;
|
|
|
- if((permission!=null&&permission.getRoleState()==0)){
|
|
|
+ List<ProgramItem> programItems = new ArrayList<>();
|
|
|
+ Permission permission = findPermission(user);
|
|
|
+ boolean returnFlag = false;
|
|
|
+ if ((permission != null && permission.getRoleState() == 0)){
|
|
|
user.setEnableState("0");
|
|
|
- returnFlag=true;
|
|
|
+ returnFlag = true;
|
|
|
|
|
|
}
|
|
|
- if((user.getTenantState()!=null&&user.getTenantState()==0)){
|
|
|
+ if ((user.getTenantState() != null && user.getTenantState() == 0)){
|
|
|
user.setEnableState("0");
|
|
|
- returnFlag=true;
|
|
|
+ returnFlag = true;
|
|
|
}
|
|
|
- if((user.getCompanyOrgState()!=null&&user.getCompanyOrgState()==0)){
|
|
|
+ if ((user.getCompanyOrgState() != null && user.getCompanyOrgState() == 0)){
|
|
|
user.setEnableState("0");
|
|
|
- returnFlag=true;
|
|
|
+ returnFlag = true;
|
|
|
}
|
|
|
- if((user.getDepartmentOrgState()!=null&&user.getDepartmentOrgState()==0)){
|
|
|
+ if ((user.getDepartmentOrgState() != null && user.getDepartmentOrgState() == 0)){
|
|
|
user.setEnableState("0");
|
|
|
- returnFlag=true;
|
|
|
+ returnFlag = true;
|
|
|
}
|
|
|
if("0".equals(user.getEnableState())){
|
|
|
- returnFlag=true;
|
|
|
+ returnFlag = true;
|
|
|
}
|
|
|
- if(returnFlag){
|
|
|
+
|
|
|
+ if (returnFlag) {
|
|
|
return user;
|
|
|
}
|
|
|
offline("smart-city-v2",user.getId(),1);
|
|
|
-
|
|
|
-
|
|
|
getDataPermission(permission.getPermissionType(),user,programItems);
|
|
|
//角色必须是ROLE_开头,其余的是用户功能权限
|
|
|
/*
|
|
@@ -321,7 +317,7 @@ public class UserServiceImpl implements UserService {
|
|
|
Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
|
|
|
OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) SecurityContextHolder.getContext().getAuthentication();
|
|
|
LoginUser loginUser = (LoginUser) oAuth2Authentication.getPrincipal();
|
|
|
- //放置系统级菜单对应用户appid
|
|
|
+ // 放置系统级菜单对应用户appid
|
|
|
loginUser.setAppIds(findUserFirstMenu(user.getTenantId(),user.getId(),user.getUserType()));
|
|
|
loginUser.setProgramItemList(programItems);
|
|
|
loginUser.setName(user.getUsername());
|
|
@@ -336,15 +332,15 @@ public class UserServiceImpl implements UserService {
|
|
|
loginUser.setPermissonType(permission.getPermissionType());
|
|
|
loginUser.setRoleId(permission.getRoleId());
|
|
|
loginUser.setLoginToken(UUID.randomUUID().toString());
|
|
|
-
|
|
|
+ loginUser.setCustomerId(user.getCustomerId());
|
|
|
MobileLoginAuthenticationToken authenticationTokenReslut = new MobileLoginAuthenticationToken(loginUser,oAuth2Authentication.getCredentials(),loginUser.getAuthorities());
|
|
|
authenticationTokenReslut.setDetails(oAuth2Authentication.getDetails());
|
|
|
OAuth2Authentication oAuth2AuthenticationNew = new OAuth2Authentication(oAuth2Authentication.getOAuth2Request(), authenticationTokenReslut);
|
|
|
|
|
|
OAuth2AccessToken accessToken = authorizationServerTokenServices.createAccessToken(oAuth2AuthenticationNew);
|
|
|
- //可以加一个映射表
|
|
|
+ // 可以加一个映射表
|
|
|
String iotToken=getLoginIotToken(user.getIotPhoneNumber());
|
|
|
- if(iotToken!=null){
|
|
|
+ if (iotToken != null) {
|
|
|
String iotTokenKey = "iotToken:" + accessToken.getValue();
|
|
|
redisUtil.set(iotTokenKey,iotToken);
|
|
|
redisUtil.setExpire(iotTokenKey,60*30);
|
|
@@ -353,6 +349,7 @@ public class UserServiceImpl implements UserService {
|
|
|
user.setToken(accessToken.getValue());
|
|
|
return user;
|
|
|
}
|
|
|
+
|
|
|
public String getLoginIotToken(String account){
|
|
|
log.info("begin IotService login account={}",account);
|
|
|
String url = iotUrl + "/api/integration/auth/login";
|
|
@@ -367,25 +364,26 @@ public class UserServiceImpl implements UserService {
|
|
|
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map,headers);
|
|
|
ResponseEntity<JSONObject> responseEntity = restTemplate.postForEntity(url, request, JSONObject.class);
|
|
|
log.info("responseEntity ={}", JSONObject.toJSONString(responseEntity));
|
|
|
- if(responseEntity !=null && responseEntity.getStatusCode() == HttpStatus.OK){
|
|
|
+ if (responseEntity !=null && responseEntity.getStatusCode() == HttpStatus.OK) {
|
|
|
JSONObject jsonObject = responseEntity.getBody();
|
|
|
- if(jsonObject != null){
|
|
|
- if(jsonObject.getInteger("status")==0){
|
|
|
+ if (jsonObject != null) {
|
|
|
+ if (jsonObject.getInteger("status")==0) {
|
|
|
String token = jsonObject.getString("data");
|
|
|
log.info("IotService getLoginIotToken success res={}",token);
|
|
|
return token;
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
log.info("IotService getLoginIotToken fail");
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return null;
|
|
|
}
|
|
|
+
|
|
|
private void getDataPermission(int permissionType,User user, List<ProgramItem> programItemList){
|
|
|
ProgramItem defaultProgramItem=new ProgramItem();
|
|
|
defaultProgramItem.setOrgCompanyId(-999);
|
|
@@ -404,19 +402,19 @@ public class UserServiceImpl implements UserService {
|
|
|
getOrg(user.getCompanyOrgId(),allOrgs,programItemList);
|
|
|
programItemList.add(programItem);
|
|
|
|
|
|
- }else if(permissionType==3&&user.getDeptOrgId()!=null){
|
|
|
+ }else if(permissionType==3 && user.getDeptOrgId()!=null){
|
|
|
ProgramItem programItem=new ProgramItem();
|
|
|
programItem.setOrgId(user.getDeptOrgId());
|
|
|
programItem.setOrgDeparmtmentId(user.getDeptOrgId());
|
|
|
programItemList.add(programItem);
|
|
|
- }else if(permissionType==4&&user.getDeptOrgId()!=null) {
|
|
|
+ }else if(permissionType==4 && user.getDeptOrgId()!=null) {
|
|
|
ProgramItem programItem=new ProgramItem();
|
|
|
programItem.setOrgId(user.getDeptOrgId());
|
|
|
programItem.setOrgDeparmtmentId(user.getDeptOrgId());
|
|
|
Map<Integer, List<Org>> allOrgs = getAllOrgs("department",user.getTenantId());
|
|
|
getOrg(user.getDeptOrgId(),allOrgs,programItemList);
|
|
|
programItemList.add(programItem);
|
|
|
- }else if(permissionType==5){
|
|
|
+ }else if( permissionType == 5 ){
|
|
|
programItemList.addAll( userMapper.findOrgRole(user));
|
|
|
programItemList.forEach(programItem -> {
|
|
|
if("company".equals(programItem.getNewType())){
|
|
@@ -474,30 +472,32 @@ public class UserServiceImpl implements UserService {
|
|
|
// case "2"://普通用户按角色查询租户菜单
|
|
|
// menuEntities = menuMapper.findUserFirstMenu(currentUser.getTenantId(),userId);
|
|
|
// break;
|
|
|
- case "-9999"://超级管理员查询所有系统菜单
|
|
|
+ // 超级管理员查询所有系统菜单
|
|
|
+ case "-9999":
|
|
|
menuEntities = userMapper.findAllFirstMenu();
|
|
|
break;
|
|
|
- case "-999"://租户管理员查询租户菜单
|
|
|
+ // 租户管理员查询租户菜单
|
|
|
+ case "-999":
|
|
|
menuEntities = userMapper.findTenantFirstMenu(tenantId);
|
|
|
break;
|
|
|
default: //其他租户用户暂时不区分类型
|
|
|
menuEntities = userMapper.findUserFirstMenu(tenantId,userId);
|
|
|
break;
|
|
|
}
|
|
|
- List<String>appIds=new ArrayList<>();
|
|
|
-
|
|
|
+ List<String> appIds = new ArrayList<>();
|
|
|
menuEntities.forEach(menuEntity -> {
|
|
|
appIds.add(menuEntity.getAppId());
|
|
|
});
|
|
|
return appIds;
|
|
|
}
|
|
|
+
|
|
|
@Override
|
|
|
public boolean logOut(String token) {
|
|
|
-
|
|
|
boolean flag=consumerTokenServices.revokeToken(token);
|
|
|
insertLoginLog(UserUtil.getCurrentUser(),"登出");
|
|
|
return flag;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 新增注册数据
|
|
|
* @author yjy
|
|
@@ -508,6 +508,7 @@ public class UserServiceImpl implements UserService {
|
|
|
public int insertRegister(User user) {
|
|
|
return this.userMapper.insertRegister(user);
|
|
|
}
|
|
|
+
|
|
|
private void insertLoginLog(LoginUser loginUser,String type){
|
|
|
LoginLog loginLog=new LoginLog();
|
|
|
loginLog.setName(loginUser.getName());
|