mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-13 21:32:07 +08:00
executor模块查询新增组织ID,删除排单接口逻辑修改
This commit is contained in:
+18
@@ -114,4 +114,22 @@ public class ProcessController {
|
||||
BeanUtils.toBean(list, ProcessRespVO.class));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@GetMapping("/select")
|
||||
@Operation(summary = "查看当前登录用户的组织的工序信息")
|
||||
@Parameter(name = "userId", description = "当前登录的用户ID", required = true, example = "1")
|
||||
@PreAuthorize("@ss.hasPermission('manage:process:select')")
|
||||
public CommonResult<List<ProcessDO>> getUserPage(@Valid @RequestParam("userId") Long userId) {
|
||||
|
||||
return success(processService.getUserProcess(userId));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
+14
@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||
import com.cf.imes.module.system.controller.admin.process.vo.process.ProcessPageReqVO;
|
||||
import com.cf.imes.module.system.dal.dataobject.process.ProcessDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.process.ProcessUserDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@@ -50,4 +52,16 @@ public interface ProcessMapper extends BaseMapperX<ProcessDO> {
|
||||
}
|
||||
|
||||
int deleteById(@Param("id") Long id);
|
||||
|
||||
default List<ProcessDO> selectProcessList(Long organId,Long userId) {
|
||||
return selectJoinList(ProcessDO.class, new MPJLambdaWrapperX<ProcessDO>()
|
||||
.leftJoin(ProcessUserDO.class, ProcessUserDO::getProcessId, ProcessDO::getId)
|
||||
.eq(ProcessUserDO::getUserId, userId)
|
||||
.eq(ProcessDO::getOrganId, organId)
|
||||
.eq(ProcessDO::getIsEnabled,true)
|
||||
.selectAll(ProcessDO.class)
|
||||
.orderByDesc(ProcessDO::getId));
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
+46
-31
@@ -51,8 +51,9 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
|
||||
@Transactional
|
||||
public OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List<String> scopes,Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId, String nickname) {
|
||||
OAuth2ClientDO clientDO = oauth2ClientService.validOAuthClientFromCache(clientId);
|
||||
// 创建刷新令牌
|
||||
OAuth2RefreshTokenDO refreshTokenDO = createOAuth2RefreshToken(userId, userType, clientDO, scopes, large, dbNo, tableNo, dataCode, organId, nickname);
|
||||
// 填入访问令牌包含的字段
|
||||
OAuth2AccessTokenDO refreshTokenDO = createOAuth2ReToken(userId, userType, clientDO, scopes, large, dbNo, tableNo, dataCode, organId, nickname);
|
||||
|
||||
// 创建访问令牌
|
||||
return createOAuth2AccessToken(refreshTokenDO, clientDO);
|
||||
}
|
||||
@@ -84,25 +85,34 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
|
||||
throw exception0(GlobalErrorCodeConstants.UNAUTHORIZED.getCode(), "刷新令牌已过期");
|
||||
}
|
||||
|
||||
// 创建访问令牌
|
||||
return createOAuth2AccessToken(refreshTokenDO, clientDO);
|
||||
// // 创建访问令牌
|
||||
// return createOAuth2AccessToken(refreshTokenDO, clientDO);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2AccessTokenDO getAccessToken(String accessToken) {
|
||||
// 优先从 Redis 中获取
|
||||
OAuth2AccessTokenDO accessTokenDO = oauth2AccessTokenRedisDAO.get(accessToken);
|
||||
if (accessTokenDO != null) {
|
||||
return accessTokenDO;
|
||||
}
|
||||
// // 优先从 Redis 中获取
|
||||
// OAuth2AccessTokenDO accessTokenDO = oauth2AccessTokenRedisDAO.get(accessToken);
|
||||
// if (accessTokenDO != null) {
|
||||
// return accessTokenDO;
|
||||
// }
|
||||
//
|
||||
// // 获取不到,从 MySQL 中获取
|
||||
// accessTokenDO = oauth2AccessTokenMapper.selectByAccessToken(accessToken);
|
||||
// // 如果在 MySQL 存在,则往 Redis 中写入
|
||||
// if (accessTokenDO != null && !DateUtils.isExpired(accessTokenDO.getExpiresTime())) {
|
||||
// oauth2AccessTokenRedisDAO.set(accessTokenDO);
|
||||
// }
|
||||
// 因数据库不在存入缓存数据,所以直接从缓存中获取
|
||||
|
||||
// 获取不到,从 MySQL 中获取
|
||||
accessTokenDO = oauth2AccessTokenMapper.selectByAccessToken(accessToken);
|
||||
// 如果在 MySQL 存在,则往 Redis 中写入
|
||||
if (accessTokenDO != null && !DateUtils.isExpired(accessTokenDO.getExpiresTime())) {
|
||||
oauth2AccessTokenRedisDAO.set(accessTokenDO);
|
||||
}
|
||||
return accessTokenDO;
|
||||
// 数据库移除令牌存入,所以直接从缓存中获取
|
||||
OAuth2AccessTokenDO accessTokenDO = oauth2AccessTokenRedisDAO.get(accessToken);
|
||||
|
||||
// 有令牌的校验,代表有接口访问,延长令牌的过期时间(30分钟)
|
||||
oauth2AccessTokenRedisDAO.set(accessTokenDO.setExpiresTime(LocalDateTime.now().plusSeconds(1800)));
|
||||
|
||||
return oauth2AccessTokenRedisDAO.get(accessToken);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -136,7 +146,24 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
|
||||
return oauth2AccessTokenMapper.selectPage(reqVO);
|
||||
}
|
||||
|
||||
private OAuth2AccessTokenDO createOAuth2AccessToken(OAuth2RefreshTokenDO refreshTokenDO, OAuth2ClientDO clientDO) {
|
||||
|
||||
// 填入访问令牌包含的字段
|
||||
private OAuth2AccessTokenDO createOAuth2ReToken(Long userId, Integer userType, OAuth2ClientDO clientDO, List<String> scopes, Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId, String nickname) {
|
||||
OAuth2AccessTokenDO refreshToken = new OAuth2AccessTokenDO().setRefreshToken(generateRefreshToken())
|
||||
.setUserId(userId).setUserType(userType)
|
||||
.setClientId(clientDO.getClientId()).setScopes(scopes)
|
||||
.setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getRefreshTokenValiditySeconds()))
|
||||
.setLarge(large).setDbNo(dbNo).setTableNo(tableNo).setDataCode(dataCode)
|
||||
.setOrganId(organId).setNickname(nickname)
|
||||
;
|
||||
boolean b = securityFrameworkService.hasAnyRoles(userId,"super_admin");
|
||||
refreshToken.setIsSupAdmin(b);
|
||||
// oauth2RefreshTokenMapper.insert(refreshToken);
|
||||
return refreshToken;
|
||||
}
|
||||
|
||||
// 在Redis中新增Token,除去刷新Token字段
|
||||
private OAuth2AccessTokenDO createOAuth2AccessToken(OAuth2AccessTokenDO refreshTokenDO, OAuth2ClientDO clientDO) {
|
||||
OAuth2AccessTokenDO accessTokenDO = new OAuth2AccessTokenDO().setAccessToken(generateAccessToken())
|
||||
.setUserId(refreshTokenDO.getUserId()).setUserType(refreshTokenDO.getUserType())
|
||||
.setClientId(clientDO.getClientId()).setScopes(refreshTokenDO.getScopes())
|
||||
@@ -147,25 +174,13 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
|
||||
.setNickname(refreshTokenDO.getNickname()).setIsSupAdmin(refreshTokenDO.getIsSupAdmin())
|
||||
;
|
||||
//accessTokenDO.setOrganId(OrganContextHolder.getOrganId()); // 手动设置组织编号,避免缓存到 Redis 的时候,无对应的组织编号
|
||||
oauth2AccessTokenMapper.insert(accessTokenDO);
|
||||
// oauth2AccessTokenMapper.insert(accessTokenDO);
|
||||
// 记录到 Redis 中
|
||||
oauth2AccessTokenRedisDAO.set(accessTokenDO);
|
||||
return accessTokenDO;
|
||||
}
|
||||
|
||||
private OAuth2RefreshTokenDO createOAuth2RefreshToken(Long userId, Integer userType, OAuth2ClientDO clientDO, List<String> scopes, Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId, String nickname) {
|
||||
OAuth2RefreshTokenDO refreshToken = new OAuth2RefreshTokenDO().setRefreshToken(generateRefreshToken())
|
||||
.setUserId(userId).setUserType(userType)
|
||||
.setClientId(clientDO.getClientId()).setScopes(scopes)
|
||||
.setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getRefreshTokenValiditySeconds()))
|
||||
.setLarge(large).setDbNo(dbNo).setTableNo(tableNo).setDataCode(dataCode)
|
||||
.setOrganId(organId).setNickname(nickname)
|
||||
;
|
||||
boolean b = securityFrameworkService.hasAnyRoles(userId,"super_admin");
|
||||
refreshToken.setIsSupAdmin(b);
|
||||
oauth2RefreshTokenMapper.insert(refreshToken);
|
||||
return refreshToken;
|
||||
}
|
||||
|
||||
|
||||
private static String generateAccessToken() {
|
||||
return IdUtil.fastSimpleUUID();
|
||||
|
||||
+1
@@ -67,4 +67,5 @@ public interface ProcessService {
|
||||
*/
|
||||
List<ProcessDO> getAllProcess();
|
||||
|
||||
List<ProcessDO> getUserProcess(Long userId);
|
||||
}
|
||||
+9
@@ -189,4 +189,13 @@ public class ProcessServiceImpl implements ProcessService {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<ProcessDO> getUserProcess(Long userId) {
|
||||
|
||||
// 获取组织id
|
||||
Long organId = OrganContextHolder.getOrganId();
|
||||
return processMapper.selectProcessList(organId,userId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user