This commit is contained in:
zhangchenbiao
2023-06-08 20:36:44 +08:00
parent 0545d37b91
commit 9e749062d0
4 changed files with 11 additions and 24 deletions

View File

@@ -10,11 +10,7 @@ public class CurrentUser {
private String name; private String name;
private String enterpriseId; private String corpId;
private String dingCorpId;
private String appType;
private String accessToken; private String accessToken;
@@ -23,19 +19,10 @@ public class CurrentUser {
*/ */
private String roleIds; private String roleIds;
private String dbName;
/** /**
* 钉钉管理员和数智门店无关 * 钉钉管理员和数智门店无关
*/ */
private Boolean isAdmin; private Boolean isAdmin;
/**
* 角色权限
*/
private String roleAuth;
private String mainCorpId;
private SysRoleDO sysRoleDO; private SysRoleDO sysRoleDO;
} }

View File

@@ -80,6 +80,8 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
enterpriseUserRoleDAO.batchInsertOrUpdate(userRoleInsertOrUpdateList); enterpriseUserRoleDAO.batchInsertOrUpdate(userRoleInsertOrUpdateList);
//删除不存在的角色? //删除不存在的角色?
sysRoleDAO.deleteRole(DataSourceEnum.SYNC, roleIds); sysRoleDAO.deleteRole(DataSourceEnum.SYNC, roleIds);
}else {
//如果为空 是不是得删除角色 及用户角色信息?
} }
} }

View File

@@ -18,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.crypto.RandomNumberGenerator; import org.apache.shiro.crypto.RandomNumberGenerator;
import org.apache.shiro.crypto.SecureRandomNumberGenerator; import org.apache.shiro.crypto.SecureRandomNumberGenerator;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -40,6 +41,8 @@ public class LoginServiceImpl implements LoginService {
private RedisUtilPool redisUtilPool; private RedisUtilPool redisUtilPool;
@Resource @Resource
private EnterpriseUserRoleDAO enterpriseUserRoleDAO; private EnterpriseUserRoleDAO enterpriseUserRoleDAO;
@Value("${corpId:null}")
private String corpId;
@Override @Override
public Object feiShuLogin(String userId, Boolean needRefreshToken, String avatar) { public Object feiShuLogin(String userId, Boolean needRefreshToken, String avatar) {
@@ -73,25 +76,19 @@ public class LoginServiceImpl implements LoginService {
enterpriseUser.setFaceUrl(finalAvatar); enterpriseUser.setFaceUrl(finalAvatar);
currentUser.setUserId(enterpriseUser.getUserId()); currentUser.setUserId(enterpriseUser.getUserId());
currentUser.setIsAdmin(enterpriseUser.getIsAdmin()); currentUser.setIsAdmin(enterpriseUser.getIsAdmin());
//设置当前登录人使用的企业相关信息
//currentUser.setRoleAuth(sysRole.getRoleAuth());
currentUser.setSysRoleDO(sysRole); currentUser.setSysRoleDO(sysRole);
currentUser.setCorpId(corpId);
//生成令牌 //生成令牌
RandomNumberGenerator randomNumberGenerator = new SecureRandomNumberGenerator(); RandomNumberGenerator randomNumberGenerator = new SecureRandomNumberGenerator();
String token = randomNumberGenerator.nextBytes().toHex(); String token = randomNumberGenerator.nextBytes().toHex();
String refreshToken = randomNumberGenerator.nextBytes().toHex(); String refreshToken = randomNumberGenerator.nextBytes().toHex();
currentUser.setName(enterpriseUser.getName()); currentUser.setName(enterpriseUser.getName());
currentUser.setAccessToken(token); currentUser.setAccessToken(token);
JSONObject jsonObject = new JSONObject();
jsonObject.put("action_token", token);
jsonObject.put("user", currentUser);
redisUtilPool.setString(CommonConstants.ACCESS_TOKEN_KEY + ":" + token, JSON.toJSONString(currentUser), CommonConstants.ACTION_TOKEN_EXPIRE); redisUtilPool.setString(CommonConstants.ACCESS_TOKEN_KEY + ":" + token, JSON.toJSONString(currentUser), CommonConstants.ACTION_TOKEN_EXPIRE);
jsonObject.put("expire", CommonConstants.ACTION_TOKEN_EXPIRE);
redisUtilPool.setString(currentUser.getUserId(), token); redisUtilPool.setString(currentUser.getUserId(), token);
redisUtilPool.setString(CommonConstants.REFRESH_TOKEN_KEY+":"+refreshToken,JSON.toJSONString(refreshUser), CommonConstants.REFRESH_TOKEN_EXPIRE); redisUtilPool.setString(CommonConstants.REFRESH_TOKEN_KEY+":"+refreshToken,JSON.toJSONString(refreshUser), CommonConstants.REFRESH_TOKEN_EXPIRE);
jsonObject.put("refresh_token",refreshToken);
log.info("[" + enterpriseUser.getName() + "; action_token"+ token + "; userId" + currentUser.getUserId() +"]登入系统成功"); log.info("[" + enterpriseUser.getName() + "; action_token"+ token + "; userId" + currentUser.getUserId() +"]登入系统成功");
return jsonObject; return currentUser;
} }
} }

View File

@@ -7,6 +7,7 @@ import com.cool.store.enums.AppTypeEnum;
import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ServiceException; import com.cool.store.exception.ServiceException;
import com.cool.store.http.ISVHttpRequest; import com.cool.store.http.ISVHttpRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.LoginService; import com.cool.store.service.LoginService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -34,7 +35,7 @@ public class LoginController {
@PostMapping(value = "/feiShuLogin") @PostMapping(value = "/feiShuLogin")
public Object feiShuLogin(@RequestBody FeiShuLoginDTO param) { public ResponseResult feiShuLogin(@RequestBody FeiShuLoginDTO param) {
log.info("feiShuLogin data={}", JSONObject.toJSONString(param)); log.info("feiShuLogin data={}", JSONObject.toJSONString(param));
String code = param.getCode(); String code = param.getCode();
try { try {
@@ -45,7 +46,7 @@ public class LoginController {
} }
log.info("userInfo:{}", JSONObject.toJSONString(userInfo)); log.info("userInfo:{}", JSONObject.toJSONString(userInfo));
String userId = userInfo.getOpenId(); String userId = userInfo.getOpenId();
return loginService.feiShuLogin(userId, Boolean.TRUE, StringUtils.EMPTY); return ResponseResult.success(loginService.feiShuLogin(userId, Boolean.TRUE, StringUtils.EMPTY));
} catch (ServiceException e) { } catch (ServiceException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new ServiceException(ErrorCodeEnum.LOGIN_ERROR); throw new ServiceException(ErrorCodeEnum.LOGIN_ERROR);