提交 7db8e145 作者: 洪东保

cmeeting独立部署:

 1. 表从aigc库中独立出来
父级 94260694
...@@ -2,7 +2,7 @@ package com.cmeeting; ...@@ -2,7 +2,7 @@ package com.cmeeting;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.cmeeting.email.EmailSender; import com.cmeeting.email.EmailSender;
import com.cmeeting.mapper.primary.AuthMapper; import com.cmeeting.mapper.tertiary.AuthMapper;
import com.cmeeting.mapper.primary.UserIdMapper; import com.cmeeting.mapper.primary.UserIdMapper;
import com.cmeeting.mapper.secondary.SysUserMapper; import com.cmeeting.mapper.secondary.SysUserMapper;
import com.cmeeting.mapper.secondary.SysUserSysMapper; import com.cmeeting.mapper.secondary.SysUserSysMapper;
......
...@@ -15,14 +15,6 @@ public interface UserService { ...@@ -15,14 +15,6 @@ public interface UserService {
String auth(String userId, String nick, String role); String auth(String userId, String nick, String role);
List<String> getRoleIdByUserId(String tenantId, String userId, String path);
/**
* 获取登录后授权的菜单
* @param sysMenuList
* @return
*/
RoleTree getLoginMenus(List<SysMenu> sysMenuList);
Object list(String search, Integer type, Integer userType, String categoryId, Integer authType); Object list(String search, Integer type, Integer userType, String categoryId, Integer authType);
......
...@@ -2,7 +2,7 @@ package com.cmeeting.ad.service.impl; ...@@ -2,7 +2,7 @@ package com.cmeeting.ad.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cmeeting.ad.entity.SysTenant; import com.cmeeting.ad.entity.SysTenant;
import com.cmeeting.mapper.primary.SysTenantMapper; import com.cmeeting.mapper.tertiary.SysTenantMapper;
import com.cmeeting.ad.service.ISysTenantService; import com.cmeeting.ad.service.ISysTenantService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
......
package com.cmeeting.ad.service.impl; package com.cmeeting.ad.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.cmeeting.ad.entity.*; import com.cmeeting.ad.entity.*;
import com.cmeeting.ad.util.SecurityUtil; import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.ad.vo.UserVo; import com.cmeeting.ad.vo.UserVo;
import com.cmeeting.constant.RecordTemplateConstant; import com.cmeeting.constant.RecordTemplateConstant;
import com.cmeeting.dto.UserDTO;
import com.cmeeting.exception.RobotBaseException; import com.cmeeting.exception.RobotBaseException;
import com.cmeeting.mapper.primary.AuthMapper; import com.cmeeting.mapper.tertiary.AuthMapper;
import com.cmeeting.mapper.primary.CommonMapper;
import com.cmeeting.ad.service.ILdapService; import com.cmeeting.ad.service.ILdapService;
import com.cmeeting.ad.service.ISysTenantService; import com.cmeeting.ad.service.ISysTenantService;
import com.cmeeting.ad.service.UserService; import com.cmeeting.ad.service.UserService;
import com.cmeeting.ad.util.JwtUtil; import com.cmeeting.ad.util.JwtUtil;
import com.cmeeting.constant.CategoryConstant;
import com.cmeeting.constant.UserAdminRouteConstant; import com.cmeeting.constant.UserAdminRouteConstant;
import com.cmeeting.mapper.secondary.SysUserSysMapper; import com.cmeeting.mapper.secondary.SysUserSysMapper;
import com.cmeeting.pojo.CoreModulePermissions; import com.cmeeting.pojo.CoreModulePermissions;
...@@ -36,9 +30,7 @@ import org.springframework.util.CollectionUtils; ...@@ -36,9 +30,7 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.*; import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
...@@ -70,8 +62,6 @@ public class UserServiceImpl implements UserService { ...@@ -70,8 +62,6 @@ public class UserServiceImpl implements UserService {
@Resource @Resource
private JwtUtil jwtUtil; private JwtUtil jwtUtil;
@Resource @Resource
private CommonMapper commonMapper;
@Resource
private SysUserSysMapper sysUserSysMapper; private SysUserSysMapper sysUserSysMapper;
@Resource @Resource
private AuthMapper authMapper; private AuthMapper authMapper;
...@@ -109,70 +99,6 @@ public class UserServiceImpl implements UserService { ...@@ -109,70 +99,6 @@ public class UserServiceImpl implements UserService {
} }
@Override @Override
public List<String> getRoleIdByUserId(String tenantId, String userId, String path) {
List<ModulePermissions> permissions = commonMapper.getRoleByTenantId(tenantId);
Map<String, List<ModulePermissions>> userMap = permissions.stream().filter(per -> per.getType() == 1).collect(Collectors.groupingBy(ModulePermissions::getRelId));
Map<String, List<ModulePermissions>> deptMap = permissions.stream().filter(per -> per.getType() == 0).collect(Collectors.groupingBy(ModulePermissions::getRelId));
List<String> roleList = new ArrayList<>();
if (userMap.containsKey(userId)) {
List<ModulePermissions> tempPers = userMap.get(userId);
for (ModulePermissions tempPer : tempPers) {
roleList.add(tempPer.getTargetId());
}
}
if (path == null && tenantId.equals("1")) {
List<String> admin = new ArrayList<>();
admin.add("1");
return admin;
}
if (StrUtil.isNotBlank(path)) {
String[] split = path.split(CategoryConstant.ROOT_PATH);
List<String> deptList = Arrays.asList(split).stream().filter(StrUtil::isNotBlank).collect(Collectors.toList());
for (String dept : deptList) {
if (deptMap.containsKey(dept)) {
List<ModulePermissions> tempPers = deptMap.get(dept);
for (ModulePermissions tempPer : tempPers) {
roleList.add(tempPer.getTargetId());
}
}
}
}
return roleList;
}
@Override
public RoleTree getLoginMenus(List<SysMenu> menuList) {
RoleTree roleTree = new RoleTree();
if (CollUtil.isEmpty(menuList)) {
return roleTree;
}
menuList.forEach(it -> {
if (it.getParentId() != 0 && StrUtil.isNotBlank(it.getPath())) {
if (it.getParentSystem().contains("tenantCenter")) {
roleTree.getTenantCenter().add(it.getPerms());
} else if (it.getParentSystem().contains("interactCenter")) {
roleTree.getInteractCenter().add(it.getPerms());
} else if (it.getParentSystem().contains("knowledgeCenter")) {
roleTree.getKnowledgeCenter().add(it.getPerms());
} else if (it.getParentSystem().contains("llmCenter")) {
roleTree.getLlmCenter().add(it.getPerms());
} else if (it.getParentSystem().contains("statisticsCenter")) {
roleTree.getStatisticsCenter().add(it.getPerms());
} else if (it.getParentSystem().contains("securityCenter")) {
roleTree.getSecurityCenter().add(it.getPerms());
} else if (it.getParentSystem().contains("robotCenter")) {
roleTree.getRobotCenter().add(it.getPerms());
} else if (it.getParentSystem().contains("staffCenter")) {
roleTree.getStaffCenter().add(it.getPerms());
} else if (it.getParentSystem().contains("processCenter")) {
roleTree.getProcessCenter().add(it.getPerms());
}
}
});
return roleTree;
}
@Override
public Object list(String search, Integer type, Integer userType, String categoryId, Integer authType) { public Object list(String search, Integer type, Integer userType, String categoryId, Integer authType) {
String url = userAdminConfig.getUserAdminDomain() + UserAdminRouteConstant.SysUser.FIND_NAME; String url = userAdminConfig.getUserAdminDomain() + UserAdminRouteConstant.SysUser.FIND_NAME;
JSONObject body = new JSONObject(); JSONObject body = new JSONObject();
......
package com.cmeeting.config;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
// 从数据源配置
@Configuration
@MapperScan(basePackages = "com.cmeeting.mapper.tertiary", sqlSessionFactoryRef = "tertiarySqlSessionFactory")
public class TertiaryDataSourceConfig {
@Bean(name = "tertiaryDataSource")
@ConfigurationProperties(prefix = "spring.datasource.tertiary")
public DataSource tertiaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "tertiarySqlSessionFactory")
public SqlSessionFactory tertiarySqlSessionFactory(@Qualifier("tertiaryDataSource") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/tertiary/*.xml"));
return bean.getObject();
}
@Bean(name = "tertiarySqlSessionTemplate")
public SqlSessionTemplate tertiarySqlSessionTemplate(@Qualifier("tertiarySqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
package com.cmeeting.mapper.primary;
import com.baomidou.mybatisplus.annotation.SqlParser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cmeeting.ad.entity.ModulePermissions;
import com.cmeeting.ad.entity.SysMenu;
import com.cmeeting.ad.vo.ApplicationVo;
import com.cmeeting.pojo.User;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 租户表 Mapper 接口
* </p>
*
* @author robot
* @since 2019-08-10
*/
public interface CommonMapper extends BaseMapper<User> {
/**
* 根据租户id获取菜单列表
* @param tenantId
* @return
*/
@SqlParser(filter = true)
List<SysMenu> getMenuList(@Param("tenantId")String tenantId);
@SqlParser(filter = true)
List<ModulePermissions> getRoleByTenantId(@Param("tenantId") String tenantId);
@SqlParser(filter = true)
List<SysMenu> getMenuByRoleList(@Param("roleIdList") List<String> roleIdList, @Param("tenantId") String tenantId);
@SqlParser(filter = true)
ApplicationVo getApplicationNoTenantId(@Param("applicationId")String applicationId);
}
package com.cmeeting.mapper.primary;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UnifiedMapper {
}
package com.cmeeting.mapper.primary;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface UserCompanyMapper {
/**
* 根据 userId 查询 email
*
* @param userId 用户 ID
* @return 对应的 email(如果存在),否则返回 null
*/
String selectEmailByUserId(@Param("userId") String userId);
}
// mapper/UserMapper.java
package com.cmeeting.mapper.primary;
import com.cmeeting.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.context.annotation.Bean;
@Mapper
public interface UserMapper {
User findByUsername(@Param("username") String username);
}
\ No newline at end of file
package com.cmeeting.mapper.primary; package com.cmeeting.mapper.tertiary;
import com.cmeeting.pojo.CoreModulePermissions; import com.cmeeting.pojo.CoreModulePermissions;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
......
package com.cmeeting.mapper.primary; package com.cmeeting.mapper.tertiary;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cmeeting.ad.entity.SysTenant; import com.cmeeting.ad.entity.SysTenant;
......
package com.cmeeting.service.impl; package com.cmeeting.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cmeeting.constant.PermissionPruposeType;
import com.cmeeting.constant.MeetingState; import com.cmeeting.constant.MeetingState;
import com.cmeeting.dto.UserDTO; import com.cmeeting.dto.UserDTO;
import com.cmeeting.log.service.ProcessLogService; import com.cmeeting.log.service.ProcessLogService;
import com.cmeeting.mapper.primary.AuthMapper; import com.cmeeting.mapper.tertiary.AuthMapper;
import com.cmeeting.mapper.primary.MeetingInfoMapper; import com.cmeeting.mapper.primary.MeetingInfoMapper;
import com.cmeeting.mapper.primary.TecentMeetingMapper; import com.cmeeting.mapper.primary.TecentMeetingMapper;
import com.cmeeting.mapper.secondary.SysUserSysMapper; import com.cmeeting.mapper.secondary.SysUserSysMapper;
...@@ -46,10 +43,8 @@ import java.io.PrintWriter; ...@@ -46,10 +43,8 @@ import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
import java.math.BigInteger; import java.math.BigInteger;
import java.security.SecureRandom; import java.security.SecureRandom;
import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.*; import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function; import java.util.function.Function;
......
...@@ -43,7 +43,7 @@ spring: ...@@ -43,7 +43,7 @@ spring:
datasource: datasource:
# 主数据源 # 主数据源
master: master:
jdbc-url: jdbc:mysql://192.168.10.157:3306/zhongji-aigc?useSSL=false&characterEncoding=utf8&serverTimezone=UTC jdbc-url: jdbc:mysql://192.168.10.157:3306/zhongji-meeting?useSSL=false&characterEncoding=utf8&serverTimezone=UTC
username: root username: root
password: qizhi123 password: qizhi123
driver-class-name: com.mysql.jdbc.Driver driver-class-name: com.mysql.jdbc.Driver
...@@ -53,6 +53,11 @@ spring: ...@@ -53,6 +53,11 @@ spring:
username: root username: root
password: qizhi123 password: qizhi123
driver-class-name: com.mysql.jdbc.Driver driver-class-name: com.mysql.jdbc.Driver
tertiary:
jdbc-url: jdbc:mysql://192.168.10.157:3306/zhongji-aigc?useSSL=false&characterEncoding=utf8&serverTimezone=UTC
username: root
password: qizhi123
driver-class-name: com.mysql.jdbc.Driver
redis: redis:
database: ${REDIS_DATABASE} database: ${REDIS_DATABASE}
host: ${REDIS_ADDRESS} host: ${REDIS_ADDRESS}
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC
"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cmeeting.mapper.primary.CommonMapper">
<select id="getMenuList" resultType="com.cmeeting.ad.entity.SysMenu">
select t1.*
from sys_menu t1
<if test="tenantId != '' and tenantId != 1">
inner join rel_menu_tenant t2 on t2.menu_id = t1.id and t2.tenant_id = #{tenantId}
</if>
where 1 = 1
<choose>
<when test="tenantId != '' and tenantId == 1">
and is_admin = 1
</when>
<otherwise>
and is_admin = 0
</otherwise>
</choose>
</select>
<select id="getRoleByTenantId" resultType="com.cmeeting.ad.entity.ModulePermissions">
select *
from core_module_permissions
where tenant_id = #{tenantId}
and source = 0;
</select>
<select id="getMenuByRoleList" resultType="com.cmeeting.ad.entity.SysMenu">
select distinct t1.*
from sys_menu t1
inner join rel_role_menu t2
on t1.id = t2.menu_id
<if test="tenantId!=null and tenantId!=''">
and t2.tenant_id = #{tenantId}
</if>
<if test="roleIdList!= null">
and role_id in
<foreach collection="roleIdList" close=")" open="(" separator="," item="id">
#{id}
</foreach>
</if>
inner join sys_role t3
on t3.disabled = 0
<if test="tenantId!=null and tenantId!=''">
and t3.tenant_id = #{tenantId}
</if>
</select>
<select id="getApplicationNoTenantId" resultType="com.cmeeting.ad.vo.ApplicationVo">
SELECT
t1.id as applicationId,
t1.`name` as applicationName,
t1.tenant_id as tenantId
FROM
assistant_info t1
where t1.is_del = 0
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cmeeting.mapper.primary.UserCompanyMapper">
<!-- 根据 userId 查询 email -->
<select id="selectEmailByUserId" parameterType="string" resultType="string">
SELECT email
FROM user_company
WHERE user_id = #{userId}
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cmeeting.mapper.primary.UserMapper">
<select id="findByUsername" resultType="com.cmeeting.pojo.User">
SELECT * FROM user WHERE username = #{username}
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cmeeting.mapper.primary.AuthMapper"> <mapper namespace="com.cmeeting.mapper.tertiary.AuthMapper">
<select id="getAuthByTargetId" resultType="com.cmeeting.pojo.CoreModulePermissions"> <select id="getAuthByTargetId" resultType="com.cmeeting.pojo.CoreModulePermissions">
SELECT SELECT
......
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
<!DOCTYPE mapper PUBLIC <!DOCTYPE mapper PUBLIC
"-//mybatis.org//DTD Mapper 3.0//EN" "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cmeeting.mapper.primary.SysTenantMapper"> <mapper namespace="com.cmeeting.mapper.tertiary.SysTenantMapper">
</mapper> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论