diff --git a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/config/AuthorizationServerConfig.java b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/config/AuthorizationServerConfig.java index 2827b3603..53239099b 100644 --- a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/config/AuthorizationServerConfig.java +++ b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/config/AuthorizationServerConfig.java @@ -20,24 +20,28 @@ package com.pig4cloud.pigx.auth.config; import cn.hutool.core.util.StrUtil; +import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.SecurityConstants; import com.pig4cloud.pigx.common.data.tenant.TenantContextHolder; import com.pig4cloud.pigx.common.security.component.PigxWebResponseExceptionTranslator; -import com.pig4cloud.pigx.common.security.service.PigxClientDetailsService; import com.pig4cloud.pigx.common.security.service.PigxUserDetailsService; import lombok.AllArgsConstructor; import lombok.SneakyThrows; +import org.springframework.cache.annotation.Cacheable; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.http.HttpMethod; import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.oauth2.common.exceptions.InvalidClientException; import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter; import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer; import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer; import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer; +import org.springframework.security.oauth2.provider.ClientDetails; import org.springframework.security.oauth2.provider.OAuth2Authentication; +import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService; import org.springframework.security.oauth2.provider.token.DefaultAuthenticationKeyGenerator; import org.springframework.security.oauth2.provider.token.TokenEnhancer; import org.springframework.security.oauth2.provider.token.TokenStore; @@ -64,8 +68,6 @@ public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdap @SneakyThrows public void configure(ClientDetailsServiceConfigurer clients) { PigxClientDetailsService clientDetailsService = new PigxClientDetailsService(dataSource); - clientDetailsService.setSelectClientDetailsSql(SecurityConstants.DEFAULT_SELECT_STATEMENT); - clientDetailsService.setFindClientDetailsSql(SecurityConstants.DEFAULT_FIND_STATEMENT); clients.withClientDetails(clientDetailsService); } @@ -103,3 +105,31 @@ public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdap return tokenStore; } } + +/** + * @author lengleng + * @date 2020/03/25 + *

+ * 扩展 JdbcClientDetailsService 支持多租户 + */ +class PigxClientDetailsService extends JdbcClientDetailsService { + + public PigxClientDetailsService(DataSource dataSource) { + super(dataSource); + } + + /** + * 重写原生方法支持redis缓存 + * + * @param clientId + * @return ClientDetails + * @throws InvalidClientException + */ + @Override + @Cacheable(value = CacheConstants.CLIENT_DETAILS_KEY, key = "#clientId", unless = "#result == null") + public ClientDetails loadClientByClientId(String clientId) { + super.setSelectClientDetailsSql(String.format(SecurityConstants.DEFAULT_SELECT_STATEMENT + , TenantContextHolder.getTenantId())); + return super.loadClientByClientId(clientId); + } +} \ No newline at end of file diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/constant/SecurityConstants.java b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/constant/SecurityConstants.java index d47f356f9..c0adb3867 100644 --- a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/constant/SecurityConstants.java +++ b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/constant/SecurityConstants.java @@ -134,15 +134,10 @@ public interface SecurityConstants { String BASE_FIND_STATEMENT = "select " + CLIENT_FIELDS + " from sys_oauth_client_details"; - /** - * 默认的查询语句 - */ - String DEFAULT_FIND_STATEMENT = BASE_FIND_STATEMENT + " order by client_id"; - /** * 按条件client_id 查询 */ - String DEFAULT_SELECT_STATEMENT = BASE_FIND_STATEMENT + " where client_id = ?"; + String DEFAULT_SELECT_STATEMENT = BASE_FIND_STATEMENT + " where client_id = ? and del_flag = 0 and tenant_id = %s"; /** * 资源服务器默认bean名称 diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxClientDetailsService.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxClientDetailsService.java deleted file mode 100644 index 01e664f50..000000000 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxClientDetailsService.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2018-2025, lengleng All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * Neither the name of the pig4cloud.com developer nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * Author: lengleng (wangiegie@gmail.com) - */ - -package com.pig4cloud.pigx.common.security.service; - -import com.pig4cloud.pigx.common.core.constant.CacheConstants; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.security.oauth2.common.exceptions.InvalidClientException; -import org.springframework.security.oauth2.provider.ClientDetails; -import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService; - -import javax.sql.DataSource; - -/** - * @author lengleng - * @date 2018/10/22 - *

- * see JdbcClientDetailsService - */ -public class PigxClientDetailsService extends JdbcClientDetailsService { - - public PigxClientDetailsService(DataSource dataSource) { - super(dataSource); - } - - /** - * 重写原生方法支持redis缓存 - * - * @param clientId - * @return - * @throws InvalidClientException - */ - @Override - @Cacheable(value = CacheConstants.CLIENT_DETAILS_KEY, key = "#clientId", unless = "#result == null") - public ClientDetails loadClientByClientId(String clientId) { - return super.loadClientByClientId(clientId); - } -} diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDict.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDict.java index 7ab314d3f..5730e6597 100755 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDict.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDict.java @@ -82,10 +82,4 @@ public class SysDict extends Model { @TableLogic @ApiModelProperty(value = "删除标记,1:已删除,0:正常") private String delFlag; - /** - * 所属租户 - */ - @ApiModelProperty(value = "所属租户") - private Integer tenantId; - } diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDictItem.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDictItem.java index 93d2dedf3..a3582c5ea 100755 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDictItem.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDictItem.java @@ -94,10 +94,4 @@ public class SysDictItem extends Model { @TableLogic @ApiModelProperty(value = "删除标记,1:已删除,0:正常") private String delFlag; - /** - * 所属租户 - */ - @ApiModelProperty(value = "所属租户id") - private Integer tenantId; - } diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysLog.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysLog.java index c1f0c80ac..3fe6fc18a 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysLog.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysLog.java @@ -124,6 +124,4 @@ public class SysLog implements Serializable { @ApiModelProperty(value = "删除标记,1:已删除,0:正常") private String delFlag; - - } diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysOauthClientDetails.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysOauthClientDetails.java index 99d67b30a..18b4f4518 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysOauthClientDetails.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysOauthClientDetails.java @@ -21,6 +21,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.extension.activerecord.Model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -43,11 +44,15 @@ import javax.validation.constraints.NotBlank; public class SysOauthClientDetails extends Model { private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "id") + private Integer id; + /** * 客户端ID */ @NotBlank(message = "client_id 不能为空") - @TableId(value = "client_id", type = IdType.INPUT) @ApiModelProperty(value = "客户端id") private String clientId; /** @@ -102,4 +107,10 @@ public class SysOauthClientDetails extends Model { */ @ApiModelProperty(value = "是否自动放行") private String autoapprove; + /** + * 删除标记 + */ + @TableLogic + @ApiModelProperty(value = "删除标记,1:已删除,0:正常") + private String delFlag; } diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysSocialDetails.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysSocialDetails.java index 6e11a125b..abe7342d7 100755 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysSocialDetails.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysSocialDetails.java @@ -90,10 +90,4 @@ public class SysSocialDetails extends Model { @TableLogic @ApiModelProperty(value = "删除标记,1:已删除,0:正常") private String delFlag; - /** - * 租户ID - */ - @ApiModelProperty(value = "所属租户") - private Integer tenantId; - } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/DynamicRouteInitRunner.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/DynamicRouteInitRunner.java index aa0d7cfe4..9e71e54f5 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/DynamicRouteInitRunner.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/DynamicRouteInitRunner.java @@ -61,7 +61,7 @@ public class DynamicRouteInitRunner { Boolean result = redisTemplate.delete(CacheConstants.ROUTE_KEY); log.info("初始化网关路由 {} ", result); - routeConfService.routes().forEach(route -> { + routeConfService.list().forEach(route -> { RouteDefinitionVo vo = new RouteDefinitionVo(); vo.setRouteName(route.getRouteName()); vo.setId(route.getRouteId()); diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysClientController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysClientController.java index b3f216cc8..5326cea0c 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysClientController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysClientController.java @@ -50,12 +50,14 @@ public class SysClientController { /** * 通过ID查询 * - * @param id ID + * @param clientId clientId * @return SysOauthClientDetails */ - @GetMapping("/{id}") - public R getById(@PathVariable Integer id) { - return R.ok(clientDetailsService.getById(id)); + @GetMapping("/{clientId}") + public R getByClientId(@PathVariable String clientId) { + return R.ok(clientDetailsService.list(Wrappers + .lambdaQuery() + .eq(SysOauthClientDetails::getClientId, clientId))); } @@ -87,14 +89,14 @@ public class SysClientController { /** * 删除 * - * @param id ID + * @param clientId ID * @return success/false */ @SysLog("删除终端") - @DeleteMapping("/{id}") + @DeleteMapping("/{clientId}") @PreAuthorize("@pms.hasPermission('sys_client_del')") - public R removeById(@PathVariable String id) { - return R.ok(clientDetailsService.removeClientDetailsById(id)); + public R removeById(@PathVariable String clientId) { + return R.ok(clientDetailsService.removeByClientId(clientId)); } /** @@ -107,6 +109,6 @@ public class SysClientController { @PutMapping @PreAuthorize("@pms.hasPermission('sys_client_edit')") public R update(@Valid @RequestBody SysOauthClientDetails sysOauthClientDetails) { - return R.ok(clientDetailsService.updateClientDetailsById(sysOauthClientDetails)); + return R.ok(clientDetailsService.updateClientById(sysOauthClientDetails)); } } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysDictController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysDictController.java index 0ce592b87..eae9a7869 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysDictController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysDictController.java @@ -84,7 +84,7 @@ public class SysDictController { * @return 同类型字典 */ @GetMapping("/type/{type}") - @Cacheable(value = CacheConstants.DICT_DETAILS, key = "#type", unless = "#result == null") + @Cacheable(value = CacheConstants.DICT_DETAILS, key = "#type", unless = "#result.data.size == 0") public R getDictByType(@PathVariable String type) { return R.ok(sysDictItemService.list(Wrappers .query().lambda() diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysMenuService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysMenuService.java index 754c8de5e..726114ede 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysMenuService.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysMenuService.java @@ -74,9 +74,9 @@ public interface SysMenuService extends IService { /** * 查询菜单 * - * @param menuVOSet + * @param voSet * @param parentId * @return */ - List filterMenu(Set menuVOSet, String type, Integer parentId); + List filterMenu(Set voSet, String type, Integer parentId); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysOauthClientDetailsService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysOauthClientDetailsService.java index a4a09d511..21256f9d2 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysOauthClientDetailsService.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysOauthClientDetailsService.java @@ -34,16 +34,16 @@ public interface SysOauthClientDetailsService extends IService { - /** - * 获取全部路由 - *

- * RedisRouteDefinitionWriter.java - * PropertiesRouteDefinitionLocator.java - * - * @return - */ - List routes(); - /** * 更新路由信息 * diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java index cff06cd0f..c54240582 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java @@ -60,7 +60,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl private final SysRoleMenuMapper sysRoleMenuMapper; @Override - @Cacheable(value = CacheConstants.MENU_DETAILS, key = "#roleId + '_menu'", unless = "#result == null") + @Cacheable(value = CacheConstants.MENU_DETAILS, key = "#roleId + '_menu'", unless = "#result.size() == 0") public List findMenuByRoleId(Integer roleId) { return baseMapper.listMenusByRoleId(roleId); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysOauthClientDetailsServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysOauthClientDetailsServiceImpl.java index 74e6432fa..985d24dd0 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysOauthClientDetailsServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysOauthClientDetailsServiceImpl.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.admin.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.pig4cloud.pigx.admin.api.entity.SysOauthClientDetails; import com.pig4cloud.pigx.admin.mapper.SysOauthClientDetailsMapper; @@ -46,8 +47,9 @@ public class SysOauthClientDetailsServiceImpl extends ServiceImpllambdaQuery() + .eq(SysOauthClientDetails::getClientId, id)); } /** @@ -58,7 +60,7 @@ public class SysOauthClientDetailsServiceImpl extends ServiceImpl - * RedisRouteDefinitionWriter.java - * PropertiesRouteDefinitionLocator.java - * - * @return - */ - @Override - public List routes() { - return baseMapper.selectList(Wrappers.emptyWrapper()); - } - /** * 更新路由信息 * diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysTenantServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysTenantServiceImpl.java index ce9db2d23..144a33916 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysTenantServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysTenantServiceImpl.java @@ -38,6 +38,7 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -51,7 +52,9 @@ import java.util.stream.Collectors; @AllArgsConstructor public class SysTenantServiceImpl extends ServiceImpl implements SysTenantService { private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder(); + private final SysOauthClientDetailsService clientServices; private final SysDeptRelationService deptRelationService; + private final SysRouteConfService routeConfService; private final SysUserRoleService userRoleService; private final SysRoleMenuService roleMenuService; private final SysDictItemService dictItemService; @@ -84,10 +87,12 @@ public class SysTenantServiceImpl extends ServiceImpl dictList = dictService.list(Wrappers.lambdaQuery() - .eq(SysDict::getSystem, DictTypeEnum.SYSTEM.getType())) - .stream().map(dict -> { - SysDict sysDict = new SysDict(); - BeanUtils.copyProperties(dict, sysDict, "tenantId"); - return sysDict; - }).collect(Collectors.toList()); + List dictList = new ArrayList<>(dictService.list()); // 查询系统内置字典项目 List dictIdList = dictList.stream().map(SysDict::getId) .collect(Collectors.toList()); - List dictItemList = dictItemService.list(Wrappers.lambdaQuery() - .in(SysDictItem::getDictId, dictIdList)) - .stream().map(item -> { - SysDictItem sysDictItem = new SysDictItem(); - BeanUtils.copyProperties(item, sysDictItem, "tenantId"); - return sysDictItem; - }).collect(Collectors.toList()); - + List dictItemList = new ArrayList<>(dictItemService + .list(Wrappers.lambdaQuery() + .in(SysDictItem::getDictId, dictIdList))); + // 查询当前租户菜单 + List menuList = menuService.list(); + // 查询客户端配置 + List clientDetailsList = clientServices.list(); + // 查询路由配置 + List routeConfList = routeConfService.list(); // 保证插入租户为新的租户 TenantContextHolder.setTenantId(sysTenant.getId()); Configuration config = getConfig(); @@ -139,19 +139,20 @@ public class SysTenantServiceImpl extends ServiceImpl collect = menuService.list() - .stream().map(menu -> { - SysRoleMenu roleMenu = new SysRoleMenu(); - roleMenu.setRoleId(role.getRoleId()); - roleMenu.setMenuId(menu.getMenuId()); - return roleMenu; - }).collect(Collectors.toList()); + List collect = menuList.stream().map(menu -> { + SysRoleMenu roleMenu = new SysRoleMenu(); + roleMenu.setRoleId(role.getRoleId()); + roleMenu.setMenuId(menu.getMenuId()); + return roleMenu; + }).collect(Collectors.toList()); roleMenuService.saveBatch(collect); // 插入系统字典 dictService.saveBatch(dictList); @@ -161,6 +162,11 @@ public class SysTenantServiceImpl extends ServiceImpl item.getType().equals(dict.getType())) .peek(item -> item.setDictId(dict.getId()))) .collect(Collectors.toList()); + + //插入客户端 + clientServices.saveBatch(clientDetailsList); + // 插入路由 + routeConfService.saveBatch(routeConfList); return dictItemService.saveBatch(itemList); } diff --git a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysDictItemMapper.xml b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysDictItemMapper.xml index 7f4833308..94c211c7a 100755 --- a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysDictItemMapper.xml +++ b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysDictItemMapper.xml @@ -35,6 +35,5 @@ - diff --git a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysDictMapper.xml b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysDictMapper.xml index 9e1c8625e..0cd77cdb7 100644 --- a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysDictMapper.xml +++ b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysDictMapper.xml @@ -31,6 +31,5 @@ - diff --git a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysOauthClientDetailsMapper.xml b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysOauthClientDetailsMapper.xml index 04ce22d32..ec0db5556 100644 --- a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysOauthClientDetailsMapper.xml +++ b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysOauthClientDetailsMapper.xml @@ -24,7 +24,8 @@ - + +