Merge remote-tracking branch 'origin/dev.processing.beautify' into dev
commit
e31070e5ba
|
@ -34,7 +34,7 @@ public class TokenController {
|
||||||
@PostMapping("login")
|
@PostMapping("login")
|
||||||
public Result<?> login (@RequestBody LoginBody form) {
|
public Result<?> login (@RequestBody LoginBody form) {
|
||||||
// 用户登录
|
// 用户登录
|
||||||
LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
|
LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(),form.getFirmId());
|
||||||
// 获取登录token
|
// 获取登录token
|
||||||
return Result.success(tokenService.createToken(userInfo));
|
return Result.success(tokenService.createToken(userInfo));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,19 @@
|
||||||
package com.muyu.auth.form;
|
package com.muyu.auth.form;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户登录对象
|
* 用户登录对象
|
||||||
*
|
*
|
||||||
* @author muyu
|
* @author muyu
|
||||||
*/
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
public class LoginBody {
|
public class LoginBody {
|
||||||
/**
|
/**
|
||||||
* 用户名
|
* 用户名
|
||||||
|
@ -16,19 +25,9 @@ public class LoginBody {
|
||||||
*/
|
*/
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
public String getUsername () {
|
/**
|
||||||
return username;
|
* 公司Id
|
||||||
}
|
*/
|
||||||
|
private Long firmId;
|
||||||
|
|
||||||
public void setUsername (String username) {
|
|
||||||
this.username = username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPassword () {
|
|
||||||
return password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPassword (String password) {
|
|
||||||
this.password = password;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,14 +37,15 @@ public class SysLoginService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisService redisService;
|
private RedisService redisService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录
|
* 登录
|
||||||
*/
|
*/
|
||||||
public LoginUser login (String username, String password) {
|
public LoginUser login (String username, String password, Long firmId) {
|
||||||
// 用户名或密码为空 错误
|
// 用户名或密码为空 错误
|
||||||
if (StringUtils.isAnyBlank(username, password)) {
|
if (StringUtils.isAnyBlank(username, password,String.valueOf(firmId))) {
|
||||||
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写");
|
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写");
|
||||||
throw new ServiceException("用户/密码必须填写");
|
throw new ServiceException("用户/密码/公司 必须填写");
|
||||||
}
|
}
|
||||||
// 密码如果不在指定范围内 错误
|
// 密码如果不在指定范围内 错误
|
||||||
if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
|
if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
|
||||||
|
@ -60,12 +61,21 @@ public class SysLoginService {
|
||||||
}
|
}
|
||||||
// IP黑名单校验
|
// IP黑名单校验
|
||||||
String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST));
|
String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST));
|
||||||
|
|
||||||
if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) {
|
if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) {
|
||||||
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单");
|
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单");
|
||||||
throw new ServiceException("很遗憾,访问IP已被列入系统黑名单");
|
throw new ServiceException("很遗憾,访问IP已被列入系统黑名单");
|
||||||
}
|
}
|
||||||
// 查询用户信息
|
|
||||||
Result<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
|
Result<LoginUser> userResult = null;
|
||||||
|
|
||||||
|
if (firmId == 1){
|
||||||
|
userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
|
||||||
|
}else {
|
||||||
|
userResult = remoteUserService.getFirmUserInfo(username, firmId,SecurityConstants.INNER);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) {
|
if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) {
|
||||||
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在");
|
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在");
|
||||||
|
|
|
@ -16,6 +16,11 @@ public class ServiceNameConstants {
|
||||||
*/
|
*/
|
||||||
public static final String SYSTEM_SERVICE = "cloud-system";
|
public static final String SYSTEM_SERVICE = "cloud-system";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统模块的serviceid
|
||||||
|
*/
|
||||||
|
public static final String ENTERPRISE_SERVICE = "cloud-car";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件服务的serviceid
|
* 文件服务的serviceid
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -151,6 +151,17 @@ public class JwtUtils {
|
||||||
return getValue(claims, SecurityConstants.DETAILS_USERNAME);
|
return getValue(claims, SecurityConstants.DETAILS_USERNAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据身份信息获取用户名
|
||||||
|
*
|
||||||
|
* @param claims 身份信息
|
||||||
|
*
|
||||||
|
* @return 用户名
|
||||||
|
*/
|
||||||
|
public static String getDatabaseName (Claims claims) {
|
||||||
|
return getValue(claims, SecurityConstants.DATABASE_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据身份信息获取键值
|
* 根据身份信息获取键值
|
||||||
*
|
*
|
||||||
|
|
|
@ -9,9 +9,12 @@ import com.muyu.cloud.common.many.datasource.factory.DruidDataSourceFactory;
|
||||||
import com.muyu.cloud.common.many.datasource.role.DynamicDataSource;
|
import com.muyu.cloud.common.many.datasource.role.DynamicDataSource;
|
||||||
import com.muyu.cloud.common.saas.domain.model.EntInfo;
|
import com.muyu.cloud.common.saas.domain.model.EntInfo;
|
||||||
import com.muyu.cloud.common.saas.exception.SaaSException;
|
import com.muyu.cloud.common.saas.exception.SaaSException;
|
||||||
|
import com.muyu.common.core.constant.SecurityConstants;
|
||||||
import com.muyu.common.core.domain.Result;
|
import com.muyu.common.core.domain.Result;
|
||||||
import com.muyu.common.core.utils.SpringUtils;
|
import com.muyu.common.core.utils.SpringUtils;
|
||||||
|
import com.muyu.common.system.domain.SysFirm;
|
||||||
import com.muyu.common.system.domain.SysUser;
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
import com.muyu.common.system.domain.resp.SysFirmResp;
|
||||||
import com.muyu.common.system.remote.RemoteUserService;
|
import com.muyu.common.system.remote.RemoteUserService;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import org.springframework.boot.ApplicationArguments;
|
import org.springframework.boot.ApplicationArguments;
|
||||||
|
@ -20,6 +23,7 @@ import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -36,22 +40,25 @@ import java.util.Map;
|
||||||
@AutoConfiguration(before = MybatisPlusAutoConfiguration.class)
|
@AutoConfiguration(before = MybatisPlusAutoConfiguration.class)
|
||||||
public class ManyDataSource implements ApplicationRunner{
|
public class ManyDataSource implements ApplicationRunner{
|
||||||
|
|
||||||
|
|
||||||
private List<EntInfo> dataSourceInfoList(){
|
private List<EntInfo> dataSourceInfoList(){
|
||||||
RemoteUserService remoteUserService = SpringUtils.getBean(RemoteUserService.class);
|
RemoteUserService remoteUserService = SpringUtils.getBean(RemoteUserService.class);
|
||||||
Result<List<SysUser>> tableDataInfoResult = remoteUserService.companyList();
|
Result<List<SysFirmResp>> firmList = remoteUserService.getFirmList(SecurityConstants.INNER);
|
||||||
if (tableDataInfoResult==null){
|
if (firmList==null) {
|
||||||
throw new SaaSException("saas远调数据源错误");
|
throw new SaaSException("saas远调数据源错误");
|
||||||
}
|
}
|
||||||
List<SysUser> data = tableDataInfoResult.getData();
|
|
||||||
if (tableDataInfoResult.getCode() == Result.SUCCESS && data !=null){
|
List<SysFirmResp> data = firmList.getData();
|
||||||
|
if (firmList.getCode() == Result.SUCCESS && data !=null){
|
||||||
List<EntInfo> list = new ArrayList<>();
|
List<EntInfo> list = new ArrayList<>();
|
||||||
for (SysUser row : data) {
|
for (SysFirmResp row : data) {
|
||||||
list.add(
|
list.add(
|
||||||
EntInfo.builder()
|
EntInfo.builder()
|
||||||
.entCode(row.getDatabaseName())
|
.url(row.getSysFirmDatasource().getUrl())
|
||||||
.ip(DatasourceContent.IP)
|
.entCode(row.getSysFirmDatasource().getDatabase())
|
||||||
.port(DatasourceContent.PORT)
|
.ip(row.getSysFirmDatasource().getIp())
|
||||||
|
.port(row.getSysFirmDatasource().getPort())
|
||||||
|
.password(row.getSysFirmDatasource().getPassword())
|
||||||
|
.username(row.getSysFirmDatasource().getUsername())
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -79,7 +86,7 @@ public class ManyDataSource implements ApplicationRunner{
|
||||||
Map<Object, Object> dataSourceMap = new HashMap<>();
|
Map<Object, Object> dataSourceMap = new HashMap<>();
|
||||||
dataSourceInfoList()
|
dataSourceInfoList()
|
||||||
.stream()
|
.stream()
|
||||||
.map(entInfo -> DataSourceInfo.hostAndPortBuild(entInfo.getEntCode(), entInfo.getIp(), entInfo.getPort()))
|
.map(entInfo -> DataSourceInfo.hostAndPortBuild(entInfo))
|
||||||
.forEach(dataSourceInfo -> {
|
.forEach(dataSourceInfo -> {
|
||||||
dataSourceMap.put(dataSourceInfo.getKey(), druidDataSourceFactory.create(dataSourceInfo));
|
dataSourceMap.put(dataSourceInfo.getKey(), druidDataSourceFactory.create(dataSourceInfo));
|
||||||
});
|
});
|
||||||
|
@ -98,7 +105,7 @@ public class ManyDataSource implements ApplicationRunner{
|
||||||
DynamicDataSource dynamicDataSource = SpringUtils.getBean(DynamicDataSource.class);
|
DynamicDataSource dynamicDataSource = SpringUtils.getBean(DynamicDataSource.class);
|
||||||
for (EntInfo entInfo : dataSourceInfoList()) {
|
for (EntInfo entInfo : dataSourceInfoList()) {
|
||||||
DataSourceInfo dataSourceInfo = DataSourceInfo.hostAndPortBuild(
|
DataSourceInfo dataSourceInfo = DataSourceInfo.hostAndPortBuild(
|
||||||
entInfo.getEntCode(), entInfo.getIp(), entInfo.getPort()
|
entInfo
|
||||||
);
|
);
|
||||||
DruidDataSource druidDataSource = druidDataSourceFactory.create(dataSourceInfo);
|
DruidDataSource druidDataSource = druidDataSourceFactory.create(dataSourceInfo);
|
||||||
dynamicDataSource.put(dataSourceInfo.getKey(), druidDataSource);
|
dynamicDataSource.put(dataSourceInfo.getKey(), druidDataSource);
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package com.muyu.cloud.common.many.datasource.domain.model;
|
package com.muyu.cloud.common.many.datasource.domain.model;
|
||||||
|
|
||||||
import com.muyu.cloud.common.many.datasource.constents.DatasourceContent;
|
import com.muyu.cloud.common.many.datasource.constents.DatasourceContent;
|
||||||
|
import com.muyu.cloud.common.saas.domain.model.EntInfo;
|
||||||
import com.muyu.common.core.utils.StringUtils;
|
import com.muyu.common.core.utils.StringUtils;
|
||||||
|
import com.muyu.common.system.domain.SysFirmDatasource;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -39,12 +41,12 @@ public class DataSourceInfo {
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
|
|
||||||
public static DataSourceInfo hostAndPortBuild(String key, String host, Integer port) {
|
public static DataSourceInfo hostAndPortBuild(EntInfo entInfo) {
|
||||||
return DataSourceInfo.builder()
|
return DataSourceInfo.builder()
|
||||||
.key(key)
|
.key(entInfo.getEntCode())
|
||||||
.url(StringUtils.format(DatasourceContent.DATASOURCE_URL, host, port, key))
|
.url(StringUtils.format(entInfo.getUrl(), entInfo.getIp(), entInfo.getPort(), entInfo.getEntCode()))
|
||||||
.password(DatasourceContent.PASSWORD)
|
.password(entInfo.getUsername())
|
||||||
.userName(DatasourceContent.USER_NAME)
|
.userName(entInfo.getPassword())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,13 @@ public class EntInfo {
|
||||||
|
|
||||||
private String entCode;
|
private String entCode;
|
||||||
|
|
||||||
|
private String url;
|
||||||
|
|
||||||
private String ip;
|
private String ip;
|
||||||
|
|
||||||
private Integer port;
|
private Integer port;
|
||||||
|
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
private String password;
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class TokenService {
|
||||||
claimsMap.put(SecurityConstants.USER_KEY, token);
|
claimsMap.put(SecurityConstants.USER_KEY, token);
|
||||||
claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
|
claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
|
||||||
claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
|
claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
|
||||||
claimsMap.put(SecurityConstants.DATABASE_NAME, loginUser.getSysUser().getDatabaseName());
|
claimsMap.put(SecurityConstants.DATABASE_NAME, loginUser.getSysUser().getDatabase());
|
||||||
// 接口返回信息
|
// 接口返回信息
|
||||||
Map<String, Object> rspMap = new HashMap<String, Object>();
|
Map<String, Object> rspMap = new HashMap<String, Object>();
|
||||||
rspMap.put("access_token", JwtUtils.createToken(claimsMap));
|
rspMap.put("access_token", JwtUtils.createToken(claimsMap));
|
||||||
|
|
|
@ -78,6 +78,10 @@ public class SysDept extends BaseEntity {
|
||||||
* 父部门名称
|
* 父部门名称
|
||||||
*/
|
*/
|
||||||
private String parentName;
|
private String parentName;
|
||||||
|
/**
|
||||||
|
* 公司Id
|
||||||
|
*/
|
||||||
|
private Long firmId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子部门
|
* 子部门
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.muyu.common.system.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.SuperBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.system.domain
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:SysFirm
|
||||||
|
* @Date:2024/10/8 19:41
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@SuperBuilder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@TableName("sys_firm")
|
||||||
|
public class SysFirm {
|
||||||
|
@TableId(type = IdType.AUTO)
|
||||||
|
private Integer firmId;
|
||||||
|
private String firmName;
|
||||||
|
private String firmCode;
|
||||||
|
private Integer datasourceId;
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
package com.muyu.common.system.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.SuperBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.system.domain
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:SysFirmDatasource
|
||||||
|
* @Date:2024/10/8 19:44
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@SuperBuilder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@TableName("sys_firm_datasource")
|
||||||
|
public class SysFirmDatasource {
|
||||||
|
@TableId(type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
private String url;
|
||||||
|
private String ip;
|
||||||
|
private Integer port;
|
||||||
|
private String database;
|
||||||
|
private String username;
|
||||||
|
private String password;
|
||||||
|
}
|
|
@ -55,6 +55,11 @@ public class SysUser extends BaseEntity {
|
||||||
@Excel(name = "用户名称")
|
@Excel(name = "用户名称")
|
||||||
private String nickName;
|
private String nickName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户类型
|
||||||
|
*/
|
||||||
|
private String userType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户邮箱
|
* 用户邮箱
|
||||||
*/
|
*/
|
||||||
|
@ -106,6 +111,9 @@ public class SysUser extends BaseEntity {
|
||||||
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
|
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
|
||||||
private Date loginDate;
|
private Date loginDate;
|
||||||
|
|
||||||
|
|
||||||
|
private String database;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 部门对象
|
* 部门对象
|
||||||
*/
|
*/
|
||||||
|
@ -136,10 +144,10 @@ public class SysUser extends BaseEntity {
|
||||||
private Long roleId;
|
private Long roleId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据库名称
|
* 公司Id
|
||||||
* @param userId
|
* @param userId
|
||||||
*/
|
*/
|
||||||
private String databaseName;
|
private String firmId;
|
||||||
|
|
||||||
|
|
||||||
public SysUser (Long userId) {
|
public SysUser (Long userId) {
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
package com.muyu.common.system.domain.resp;
|
||||||
|
|
||||||
|
import com.muyu.common.system.domain.SysFirm;
|
||||||
|
import com.muyu.common.system.domain.SysFirmDatasource;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.common.system.domain
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:SysFirmDTO
|
||||||
|
* @Date:2024/10/8 20:23
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class SysFirmResp {
|
||||||
|
/**
|
||||||
|
* 公司信息
|
||||||
|
*/
|
||||||
|
private SysFirm sysFirm;
|
||||||
|
/**
|
||||||
|
* 公司数据源信息
|
||||||
|
*/
|
||||||
|
private SysFirmDatasource sysFirmDatasource;
|
||||||
|
}
|
|
@ -3,7 +3,9 @@ package com.muyu.common.system.remote;
|
||||||
import com.muyu.common.core.constant.SecurityConstants;
|
import com.muyu.common.core.constant.SecurityConstants;
|
||||||
import com.muyu.common.core.constant.ServiceNameConstants;
|
import com.muyu.common.core.constant.ServiceNameConstants;
|
||||||
import com.muyu.common.core.domain.Result;
|
import com.muyu.common.core.domain.Result;
|
||||||
|
import com.muyu.common.system.domain.SysFirm;
|
||||||
import com.muyu.common.system.domain.SysUser;
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
import com.muyu.common.system.domain.resp.SysFirmResp;
|
||||||
import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory;
|
import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory;
|
||||||
import com.muyu.common.system.domain.LoginUser;
|
import com.muyu.common.system.domain.LoginUser;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
@ -40,6 +42,8 @@ public interface RemoteUserService {
|
||||||
@PostMapping("/user/register")
|
@PostMapping("/user/register")
|
||||||
public Result<Boolean> registerUserInfo (@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
public Result<Boolean> registerUserInfo (@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
@GetMapping("/user/companyList")
|
@GetMapping("/firm/firmInnList")
|
||||||
public Result<List<SysUser>> companyList ();
|
Result<List<SysFirmResp>> getFirmList(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
@GetMapping("/user/firmUserInfo/{username}/{firmId}")
|
||||||
|
Result<LoginUser> getFirmUserInfo(@PathVariable("username") String username,@PathVariable("firmId") Long firmId,@RequestHeader(SecurityConstants.FROM_SOURCE) String inner);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.muyu.common.system.remote.factory;
|
package com.muyu.common.system.remote.factory;
|
||||||
|
|
||||||
import com.muyu.common.core.domain.Result;
|
import com.muyu.common.core.domain.Result;
|
||||||
|
import com.muyu.common.system.domain.resp.SysFirmResp;
|
||||||
import com.muyu.common.system.remote.RemoteUserService;
|
import com.muyu.common.system.remote.RemoteUserService;
|
||||||
import com.muyu.common.system.domain.SysUser;
|
import com.muyu.common.system.domain.SysUser;
|
||||||
import com.muyu.common.system.domain.LoginUser;
|
import com.muyu.common.system.domain.LoginUser;
|
||||||
|
@ -33,9 +34,15 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
|
||||||
public Result<Boolean> registerUserInfo (SysUser sysUser, String source) {
|
public Result<Boolean> registerUserInfo (SysUser sysUser, String source) {
|
||||||
return Result.error("注册用户失败:" + throwable.getMessage());
|
return Result.error("注册用户失败:" + throwable.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result<List<SysUser>> companyList() {
|
public Result<List<SysFirmResp>> getFirmList(String source) {
|
||||||
return Result.error("saas连接system失败:" + throwable.getMessage());
|
return Result.error("注册用户失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result<LoginUser> getFirmUserInfo(String username, Long firmId, String inner) {
|
||||||
|
return Result.error("注册用户失败:" + throwable.getMessage());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,6 +71,7 @@ public class AuthFilter implements GlobalFilter, Ordered {
|
||||||
addHeader(mutate, SecurityConstants.USER_KEY, userkey);
|
addHeader(mutate, SecurityConstants.USER_KEY, userkey);
|
||||||
addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
|
addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
|
||||||
addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username);
|
addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username);
|
||||||
|
addHeader(mutate,SecurityConstants.DATABASE_NAME, JwtUtils.getDatabaseName(claims));
|
||||||
// 内部请求来源参数清除
|
// 内部请求来源参数清除
|
||||||
removeHeader(mutate, SecurityConstants.FROM_SOURCE);
|
removeHeader(mutate, SecurityConstants.FROM_SOURCE);
|
||||||
return chain.filter(exchange.mutate().request(mutate.build()).build());
|
return chain.filter(exchange.mutate().request(mutate.build()).build());
|
||||||
|
|
|
@ -0,0 +1,152 @@
|
||||||
|
package com.muyu.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.muyu.common.core.web.domain.BaseEntity;
|
||||||
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.SuperBuilder;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.domain
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:FirmUser
|
||||||
|
* @Date:2024/10/8 18:59
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@SuperBuilder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@TableName("sys_user")
|
||||||
|
@Tag(name = "企业用户")
|
||||||
|
public class FirmUser extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
@Schema(name = "用户ID")
|
||||||
|
@TableId(type = IdType.AUTO)
|
||||||
|
private Long userId;
|
||||||
|
/**
|
||||||
|
* 部门ID
|
||||||
|
*/
|
||||||
|
@Schema(name = "部门ID")
|
||||||
|
private Long deptId;
|
||||||
|
/**
|
||||||
|
* 用户账号
|
||||||
|
*/
|
||||||
|
@Schema(name = "用户账号")
|
||||||
|
private String userName;
|
||||||
|
/**
|
||||||
|
* 用户昵称
|
||||||
|
*/
|
||||||
|
@Schema(name = "用户昵称")
|
||||||
|
private String nickName;
|
||||||
|
/**
|
||||||
|
* 用户类型(00系统用户)
|
||||||
|
*/
|
||||||
|
@Schema(name = "用户类型(00系统用户)")
|
||||||
|
private String userType;
|
||||||
|
/**
|
||||||
|
* 用户邮箱
|
||||||
|
*/
|
||||||
|
@Schema(name = "用户邮箱")
|
||||||
|
private String email;
|
||||||
|
/**
|
||||||
|
* 手机号码
|
||||||
|
*/
|
||||||
|
@Schema(name = "手机号码")
|
||||||
|
private String phonenumber;
|
||||||
|
/**
|
||||||
|
* 用户性别(0男 1女 2未知)
|
||||||
|
*/
|
||||||
|
@Schema(name = "用户性别(0男 1女 2未知)")
|
||||||
|
private String sex;
|
||||||
|
/**
|
||||||
|
* 头像地址
|
||||||
|
*/
|
||||||
|
@Schema(name = "头像地址")
|
||||||
|
private String avatar;
|
||||||
|
/**
|
||||||
|
* 密码
|
||||||
|
*/
|
||||||
|
@Schema(name = "密码")
|
||||||
|
private String password;
|
||||||
|
/**
|
||||||
|
* 帐号状态(0正常 1停用)
|
||||||
|
*/
|
||||||
|
@Schema(name = "帐号状态(0正常 1停用)")
|
||||||
|
private String status;
|
||||||
|
/**
|
||||||
|
* 删除标志(0代表存在 2代表删除)
|
||||||
|
*/
|
||||||
|
@Schema(name = "删除标志(0代表存在 2代表删除)")
|
||||||
|
private String delFlag;
|
||||||
|
/**
|
||||||
|
* 最后登录IP
|
||||||
|
*/
|
||||||
|
@Schema(name = "最后登录IP")
|
||||||
|
private String loginIp;
|
||||||
|
/**
|
||||||
|
* 最后登录时间
|
||||||
|
*/
|
||||||
|
@Schema(name = "最后登录时间")
|
||||||
|
private Date loginDate;
|
||||||
|
|
||||||
|
public static FirmUser builderFirmUser(SysUser sysUser) {
|
||||||
|
return FirmUser.builder()
|
||||||
|
.userId(sysUser.getUserId())
|
||||||
|
.deptId(sysUser.getDeptId())
|
||||||
|
.userType(sysUser.getUserType())
|
||||||
|
.userName(sysUser.getUserName())
|
||||||
|
.nickName(sysUser.getNickName())
|
||||||
|
.email(sysUser.getEmail())
|
||||||
|
.phonenumber(sysUser.getPhonenumber())
|
||||||
|
.sex(sysUser.getSex())
|
||||||
|
.avatar(sysUser.getAvatar())
|
||||||
|
.password(sysUser.getPassword())
|
||||||
|
.status(sysUser.getStatus())
|
||||||
|
.delFlag(sysUser.getDelFlag())
|
||||||
|
.loginIp(sysUser.getLoginIp())
|
||||||
|
.loginDate(sysUser.getLoginDate())
|
||||||
|
.createBy(sysUser.getCreateBy())
|
||||||
|
.createTime(sysUser.getCreateTime())
|
||||||
|
.updateBy(sysUser.getUpdateBy())
|
||||||
|
.updateTime(sysUser.getUpdateTime())
|
||||||
|
.remark(sysUser.getRemark())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
public static SysUser builderSysUser(FirmUser sysUser) {
|
||||||
|
return SysUser.builder()
|
||||||
|
.userId(sysUser.getUserId())
|
||||||
|
.deptId(sysUser.getDeptId())
|
||||||
|
.userName(sysUser.getUserName())
|
||||||
|
.userType(sysUser.getUserType())
|
||||||
|
.nickName(sysUser.getNickName())
|
||||||
|
.email(sysUser.getEmail())
|
||||||
|
.phonenumber(sysUser.getPhonenumber())
|
||||||
|
.sex(sysUser.getSex())
|
||||||
|
.avatar(sysUser.getAvatar())
|
||||||
|
.password(sysUser.getPassword())
|
||||||
|
.status(sysUser.getStatus())
|
||||||
|
.delFlag(sysUser.getDelFlag())
|
||||||
|
.loginIp(sysUser.getLoginIp())
|
||||||
|
.loginDate(sysUser.getLoginDate())
|
||||||
|
.createBy(sysUser.getCreateBy())
|
||||||
|
.createTime(sysUser.getCreateTime())
|
||||||
|
.updateBy(sysUser.getUpdateBy())
|
||||||
|
.updateTime(sysUser.getUpdateTime())
|
||||||
|
.remark(sysUser.getRemark())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.muyu</groupId>
|
||||||
|
<artifactId>cloud-modules-enterprise</artifactId>
|
||||||
|
<version>3.6.3</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>cloud-modules-enterprise-remote</artifactId>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>17</maven.compiler.source>
|
||||||
|
<maven.compiler.target>17</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.muyu</groupId>
|
||||||
|
<artifactId>cloud-modules-enterprise-common</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.muyu.enterprise.remote;
|
||||||
|
|
||||||
|
import com.muyu.common.core.constant.SecurityConstants;
|
||||||
|
import com.muyu.common.core.constant.ServiceNameConstants;
|
||||||
|
import com.muyu.common.core.domain.Result;
|
||||||
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
import com.muyu.enterprise.remote.factory.RemoteFirmUserFallbackFactory;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestHeader;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.enterpries.remote
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:RemoteFirmUserService
|
||||||
|
* @Date:2024/10/8 19:58
|
||||||
|
*/
|
||||||
|
@FeignClient(contextId = "remoteFirmUserService",
|
||||||
|
value = ServiceNameConstants.ENTERPRISE_SERVICE,
|
||||||
|
fallbackFactory = RemoteFirmUserFallbackFactory.class)
|
||||||
|
public interface RemoteFirmUserService {
|
||||||
|
|
||||||
|
@GetMapping("/firm/query_by_username/{username}")
|
||||||
|
Result<SysUser> queryByUsername(@PathVariable("username") String username,@RequestHeader(SecurityConstants.INNER) String source,@RequestHeader("ent_code") String databaseName);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
package com.muyu.enterprise.remote.factory;
|
||||||
|
|
||||||
|
import com.muyu.common.core.domain.Result;
|
||||||
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
import com.muyu.common.system.remote.factory.RemoteFileFallbackFactory;
|
||||||
|
import com.muyu.enterprise.remote.RemoteFirmUserService;
|
||||||
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.enterprise.remote.factory
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:RemoteFirmUserFallbackFactory
|
||||||
|
* @Date:2024/10/8 20:01
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Log4j2
|
||||||
|
public class RemoteFirmUserFallbackFactory implements FallbackFactory<RemoteFirmUserService>
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public RemoteFirmUserService create(Throwable cause) {
|
||||||
|
log.error("文件服务调用失败:{}", cause.getMessage());
|
||||||
|
return new RemoteFirmUserService() {
|
||||||
|
@Override
|
||||||
|
public Result<SysUser> queryByUsername(String username, String source,String databaseName) {
|
||||||
|
return Result.error("saas连接失败:" + cause.getMessage());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
com.muyu.enterprise.remote.factory.RemoteFirmUserFallbackFactory
|
|
@ -23,6 +23,12 @@
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>com.muyu</groupId>-->
|
||||||
|
<!-- <artifactId>cloud-common-saas</artifactId>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
|
||||||
<!-- SpringCloud Alibaba Nacos -->
|
<!-- SpringCloud Alibaba Nacos -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.alibaba.cloud</groupId>
|
<groupId>com.alibaba.cloud</groupId>
|
||||||
|
|
|
@ -1,15 +1,24 @@
|
||||||
package com.muyu.enterprise;
|
package com.muyu.enterprise;
|
||||||
|
|
||||||
|
import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure;
|
||||||
|
import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration;
|
||||||
import com.muyu.common.security.annotation.EnableCustomConfig;
|
import com.muyu.common.security.annotation.EnableCustomConfig;
|
||||||
import com.muyu.common.security.annotation.EnableMyFeignClients;
|
import com.muyu.common.security.annotation.EnableMyFeignClients;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
||||||
|
|
||||||
@Log4j2
|
@Log4j2
|
||||||
@EnableCustomConfig
|
@EnableCustomConfig
|
||||||
@EnableMyFeignClients
|
@EnableMyFeignClients
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
|
// (
|
||||||
|
// exclude = {
|
||||||
|
// DataSourceAutoConfiguration.class,
|
||||||
|
// DruidDataSourceAutoConfigure.class,
|
||||||
|
// DynamicDataSourceAutoConfiguration.class
|
||||||
|
// })
|
||||||
public class CloudEnterpriseApplication {
|
public class CloudEnterpriseApplication {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
SpringApplication.run(CloudEnterpriseApplication.class,args);
|
SpringApplication.run(CloudEnterpriseApplication.class,args);
|
||||||
|
|
|
@ -78,9 +78,8 @@ public class ElectController extends BaseController {
|
||||||
//获取用户信息
|
//获取用户信息
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
//获取租户唯一标识
|
//获取租户唯一标识
|
||||||
String databaseName = loginUser.getSysUser().getDatabaseName();
|
|
||||||
//将信息存到Redis
|
//将信息存到Redis
|
||||||
fenceCahceService.put(databaseName+fence.getCoordinates(),fence);
|
fenceCahceService.put(fence.getCoordinates(),fence);
|
||||||
return Result.success(save?"操作成功":"操作失败");
|
return Result.success(save?"操作成功":"操作失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,104 @@
|
||||||
|
package com.muyu.enterprise.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.muyu.common.core.domain.Result;
|
||||||
|
import com.muyu.common.core.web.controller.BaseController;
|
||||||
|
import com.muyu.common.security.annotation.InnerAuth;
|
||||||
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
import com.muyu.domain.FirmUser;
|
||||||
|
import com.muyu.enterprise.service.FirmUserService;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.enterprise.controller
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:SysUserController
|
||||||
|
* @Date:2024/10/8 18:59
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/firm_user")
|
||||||
|
@Tag(name = "企业用户控制层")
|
||||||
|
public class FirmUserController extends BaseController {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 企业用户业务层
|
||||||
|
*/
|
||||||
|
@Resource
|
||||||
|
private FirmUserService firmUserService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 企业用户列表
|
||||||
|
* @return 返回企业用户列表
|
||||||
|
*/
|
||||||
|
@Schema(description = "企业用户列表")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public Result<FirmUser> list(){
|
||||||
|
return success(firmUserService.list());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询企业用户
|
||||||
|
* @param userId 主键
|
||||||
|
* @return 返回用户信息
|
||||||
|
*/
|
||||||
|
@Schema(description = "查询企业用户")
|
||||||
|
@GetMapping("/query/{userId}")
|
||||||
|
public Result<FirmUser> query(@PathVariable("userId") Long userId){
|
||||||
|
return success(firmUserService.getById(userId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Schema(description = "根据用户名查询企业用户")
|
||||||
|
@GetMapping("/query_by_username/{username}")
|
||||||
|
@InnerAuth
|
||||||
|
public Result<SysUser> queryByUsername(@PathVariable("username") String username){
|
||||||
|
LambdaQueryWrapper<FirmUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(FirmUser::getUserName, username);
|
||||||
|
FirmUser firmUser = firmUserService.getOne(queryWrapper);
|
||||||
|
return success(FirmUser.builderSysUser(firmUser));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增企业用户
|
||||||
|
* @param sysUser 新增参数
|
||||||
|
* @return 返回新增主键
|
||||||
|
*/
|
||||||
|
@Schema(description = "新增企业用户")
|
||||||
|
@PostMapping("/add")
|
||||||
|
public Result<Long> add(@RequestBody SysUser sysUser){
|
||||||
|
FirmUser firmUser = FirmUser.builderFirmUser(sysUser);
|
||||||
|
firmUserService.save(firmUser);
|
||||||
|
return success(firmUser.getUserId());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改企业用户
|
||||||
|
* @param sysUser 修改参数
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Schema(description = "修改企业用户")
|
||||||
|
@PutMapping("/edit")
|
||||||
|
public Result edit(@RequestBody SysUser sysUser){
|
||||||
|
FirmUser firmUser = FirmUser.builderFirmUser(sysUser);
|
||||||
|
firmUserService.updateById(firmUser);
|
||||||
|
return success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除企业用户
|
||||||
|
* @param userId 主键
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Schema(description = "删除企业用户")
|
||||||
|
@DeleteMapping("/remove/{userId}")
|
||||||
|
public Result remove(@PathVariable("userId") Long userId){
|
||||||
|
firmUserService.removeById(userId);
|
||||||
|
return success();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -62,9 +62,9 @@ public class MessageTemplateController {
|
||||||
//获取用户信息
|
//获取用户信息
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
//获取租户唯一标识
|
//获取租户唯一标识
|
||||||
String databaseName = loginUser.getSysUser().getDatabaseName();
|
|
||||||
//添加到缓存
|
//添加到缓存
|
||||||
templateCacheService.put(databaseName+messageTemplateAddReq.getMessageTemplateName(), MessageTemplate.addBuild(messageTemplateAddReq));
|
templateCacheService.put(messageTemplateAddReq.getMessageTemplateName(), MessageTemplate.addBuild(messageTemplateAddReq));
|
||||||
return Result.success(save? "新增成功" : "新增失败");
|
return Result.success(save? "新增成功" : "新增失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -107,10 +107,8 @@ public class VehicleController extends BaseController {
|
||||||
boolean save = vehicleService.save(Vehicle.addBuild(vehicleAddReq));
|
boolean save = vehicleService.save(Vehicle.addBuild(vehicleAddReq));
|
||||||
//获取用户信息
|
//获取用户信息
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
//获取租户唯一标识
|
|
||||||
String databaseName = loginUser.getSysUser().getDatabaseName();
|
|
||||||
//存到redis
|
//存到redis
|
||||||
vehicleCacheService.put(databaseName+vehicleAddReq.getVehicleVin(), Vehicle.addBuild(vehicleAddReq));
|
vehicleCacheService.put(vehicleAddReq.getVehicleVin(), Vehicle.addBuild(vehicleAddReq));
|
||||||
return Result.success(save? "新增成功" : "新增失败");
|
return Result.success(save? "新增成功" : "新增失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,8 +67,7 @@ public class WarnRuleController {
|
||||||
//获取用户信息
|
//获取用户信息
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
//获取租户唯一标识
|
//获取租户唯一标识
|
||||||
String databaseName = loginUser.getSysUser().getDatabaseName();
|
warnRuleCacheService.put(warnRule.getRuleName(),warnRule);
|
||||||
warnRuleCacheService.put(databaseName+warnRule.getRuleName(),warnRule);
|
|
||||||
return Result.success(save);
|
return Result.success(save);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.muyu.enterprise.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.muyu.domain.FirmUser;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.enterprise.mapper
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:FirmUserMapper
|
||||||
|
* @Date:2024/10/8 19:05
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface FirmUserMapper extends BaseMapper<FirmUser> {
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.muyu.enterprise.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.muyu.domain.FirmUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.enterprise.service
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:FirmUserService
|
||||||
|
* @Date:2024/10/8 19:04
|
||||||
|
*/
|
||||||
|
public interface FirmUserService extends IService<FirmUser> {
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.muyu.enterprise.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.muyu.domain.FirmUser;
|
||||||
|
import com.muyu.enterprise.mapper.FirmUserMapper;
|
||||||
|
import com.muyu.enterprise.service.FirmUserService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.enterprise.service.impl
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:FirmUserServiceImpl
|
||||||
|
* @Date:2024/10/8 19:05
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class FirmUserServiceImpl
|
||||||
|
extends ServiceImpl<FirmUserMapper, FirmUser>
|
||||||
|
implements FirmUserService {
|
||||||
|
}
|
|
@ -24,6 +24,7 @@
|
||||||
<module>cloud-modules-enterprise-common</module>
|
<module>cloud-modules-enterprise-common</module>
|
||||||
<module>cloud-modules-enterprise-server</module>
|
<module>cloud-modules-enterprise-server</module>
|
||||||
<module>cloud-modules-enterprise-cache</module>
|
<module>cloud-modules-enterprise-cache</module>
|
||||||
|
<module>cloud-modules-enterprise-remote</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
|
@ -72,7 +72,7 @@ public class OnLineMonitoringConsumer {
|
||||||
Object breakdown = faultCacheService.get(vin);
|
Object breakdown = faultCacheService.get(vin);
|
||||||
Vehicle vehicle = vehicleCacheService.get(vin);
|
Vehicle vehicle = vehicleCacheService.get(vin);
|
||||||
WarnRule warnRule = warnRuleCacheService.get(vin);
|
WarnRule warnRule = warnRuleCacheService.get(vin);
|
||||||
WarnRuleResp warnStrategy = warnStrategyCacheService.get(vin);
|
WarnRuleResp warnRuleResp = warnStrategyCacheService.get(vin);
|
||||||
VehicleManageResp vehicleManageResp = allVehicleCacheService.get(vin);
|
VehicleManageResp vehicleManageResp = allVehicleCacheService.get(vin);
|
||||||
// 封装从redis中获得的数据
|
// 封装从redis中获得的数据
|
||||||
HashMap<String, Object> map = new HashMap<>();
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
|
@ -80,7 +80,7 @@ public class OnLineMonitoringConsumer {
|
||||||
map.put("breakdown",breakdown);
|
map.put("breakdown",breakdown);
|
||||||
map.put("vehicle",vehicle);
|
map.put("vehicle",vehicle);
|
||||||
map.put("warnRule",warnRule);
|
map.put("warnRule",warnRule);
|
||||||
map.put("warnStrategy",warnStrategy);
|
map.put("warnRuleResp",warnRuleResp);
|
||||||
map.put("vehicleManageResp",vehicleManageResp);
|
map.put("vehicleManageResp",vehicleManageResp);
|
||||||
// 添加到本地缓存中
|
// 添加到本地缓存中
|
||||||
cacheUtil.put(vin,map);
|
cacheUtil.put(vin,map);
|
||||||
|
|
|
@ -25,7 +25,7 @@ import javax.annotation.Resource;
|
||||||
public class TestKafka {
|
public class TestKafka {
|
||||||
|
|
||||||
private static final String TIPSY = "tipsy";
|
private static final String TIPSY = "tipsy";
|
||||||
private static final String VIN = "1123wsdfr54323wsd";
|
private static final String VIN = "63YCZDY6336C8H4CA";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上线监听队列名称
|
* 上线监听队列名称
|
||||||
|
|
|
@ -7,7 +7,7 @@ nacos:
|
||||||
addr: 47.101.49.53:8848
|
addr: 47.101.49.53:8848
|
||||||
user-name: nacos
|
user-name: nacos
|
||||||
password: nacos
|
password: nacos
|
||||||
namespace: dev
|
namespace: seven
|
||||||
# SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all
|
# SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all
|
||||||
# Spring
|
# Spring
|
||||||
spring:
|
spring:
|
||||||
|
|
|
@ -17,6 +17,16 @@
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.muyu</groupId>
|
||||||
|
<artifactId>cloud-modules-enterprise-remote</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.muyu</groupId>
|
||||||
|
<artifactId>cloud-modules-enterprise-remote</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- SpringCloud Alibaba Nacos -->
|
<!-- SpringCloud Alibaba Nacos -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.alibaba.cloud</groupId>
|
<groupId>com.alibaba.cloud</groupId>
|
||||||
|
|
|
@ -29,6 +29,7 @@ public class SysDeptController extends BaseController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysDeptService deptService;
|
private SysDeptService deptService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取部门列表
|
* 获取部门列表
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
package com.muyu.system.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.muyu.common.core.domain.Result;
|
||||||
|
import com.muyu.common.core.web.controller.BaseController;
|
||||||
|
import com.muyu.common.security.annotation.InnerAuth;
|
||||||
|
import com.muyu.common.system.domain.SysFirm;
|
||||||
|
import com.muyu.common.system.domain.SysFirmDatasource;
|
||||||
|
import com.muyu.common.system.domain.resp.SysFirmResp;
|
||||||
|
import com.muyu.system.service.SysFirmDatasourceService;
|
||||||
|
import com.muyu.system.service.SysFirmService;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 企业控制层
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.system.controller
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:SysFirmController
|
||||||
|
* @Date:2024/10/8 19:41
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/firm")
|
||||||
|
public class SysFirmController extends BaseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SysFirmService sysFirmService;
|
||||||
|
@Resource
|
||||||
|
private SysFirmDatasourceService sysFirmDatasourceService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 企业下拉框列表
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/firmList")
|
||||||
|
public Result<List<SysFirm>> firmList(){
|
||||||
|
return success(sysFirmService.list());
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/firmInnList")
|
||||||
|
@InnerAuth
|
||||||
|
public Result<List<SysFirmResp>> firmInnList(){
|
||||||
|
LambdaQueryWrapper<SysFirm> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.ne(SysFirm::getFirmId, 1);
|
||||||
|
return success(sysFirmService.list(wrapper)
|
||||||
|
.stream()
|
||||||
|
.map(sysFirm ->
|
||||||
|
SysFirmResp.builder()
|
||||||
|
.sysFirm(sysFirm)
|
||||||
|
.sysFirmDatasource(
|
||||||
|
sysFirmDatasourceService.getById(sysFirm.getDatasourceId())
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.muyu.system.controller;
|
||||||
|
|
||||||
|
import com.muyu.common.core.web.controller.BaseController;
|
||||||
|
import com.muyu.system.service.SysFirmDatasourceService;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据源管理
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.system.controller
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:SysFirmDatasourceController
|
||||||
|
* @Date:2024/10/8 19:49
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/firmDatasource")
|
||||||
|
public class SysFirmDatasourceController extends BaseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SysFirmDatasourceService sysFirmDatasourceService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package com.muyu.system.controller;
|
package com.muyu.system.controller;
|
||||||
|
|
||||||
|
import com.muyu.common.core.constant.SecurityConstants;
|
||||||
import com.muyu.common.core.domain.Result;
|
import com.muyu.common.core.domain.Result;
|
||||||
import com.muyu.common.core.utils.StringUtils;
|
import com.muyu.common.core.utils.StringUtils;
|
||||||
import com.muyu.common.core.utils.poi.ExcelUtil;
|
import com.muyu.common.core.utils.poi.ExcelUtil;
|
||||||
|
@ -10,10 +11,8 @@ import com.muyu.common.log.enums.BusinessType;
|
||||||
import com.muyu.common.security.annotation.InnerAuth;
|
import com.muyu.common.security.annotation.InnerAuth;
|
||||||
import com.muyu.common.security.annotation.RequiresPermissions;
|
import com.muyu.common.security.annotation.RequiresPermissions;
|
||||||
import com.muyu.common.security.utils.SecurityUtils;
|
import com.muyu.common.security.utils.SecurityUtils;
|
||||||
import com.muyu.common.system.domain.SysDept;
|
import com.muyu.common.system.domain.*;
|
||||||
import com.muyu.common.system.domain.SysRole;
|
import com.muyu.enterprise.remote.RemoteFirmUserService;
|
||||||
import com.muyu.common.system.domain.SysUser;
|
|
||||||
import com.muyu.common.system.domain.LoginUser;
|
|
||||||
import com.muyu.system.domain.resp.AuthRoleResp;
|
import com.muyu.system.domain.resp.AuthRoleResp;
|
||||||
import com.muyu.system.domain.resp.UserDetailInfoResp;
|
import com.muyu.system.domain.resp.UserDetailInfoResp;
|
||||||
import com.muyu.system.domain.resp.UserInfoResp;
|
import com.muyu.system.domain.resp.UserInfoResp;
|
||||||
|
@ -25,6 +24,8 @@ import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -55,6 +56,31 @@ public class SysUserController extends BaseController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysConfigService configService;
|
private SysConfigService configService;
|
||||||
|
@Resource
|
||||||
|
private RemoteFirmUserService remoteFirmUserService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SysFirmDatasourceService sysFirmDatasourceService;
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/firmUserInfo/{username}/{firmId}")
|
||||||
|
@InnerAuth
|
||||||
|
Result<LoginUser> getFirmUserInfo(@PathVariable("username") String username,@PathVariable("firmId") Long firmId){
|
||||||
|
SysFirmDatasource sysFirmDatasource = sysFirmDatasourceService.getById(firmId);
|
||||||
|
Result<SysUser> sysUserResult = remoteFirmUserService.queryByUsername(username, SecurityConstants.INNER, sysFirmDatasource.getDatabase());
|
||||||
|
List<SysRole> sysRoles = roleService.selectRolesByUserId(firmId);
|
||||||
|
SysUser sysUser = sysUserResult.getData();
|
||||||
|
// 角色集合
|
||||||
|
Set<String> roles = permissionService.getRolePermission(sysUser);
|
||||||
|
// 权限集合
|
||||||
|
Set<String> permissions = permissionService.getMenuPermission(sysUser);
|
||||||
|
LoginUser loginUser = new LoginUser();
|
||||||
|
loginUser.setSysUser(sysUser);
|
||||||
|
loginUser.setRoles(roles);
|
||||||
|
loginUser.setPermissions(permissions);
|
||||||
|
|
||||||
|
return success(loginUser);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户列表
|
* 获取用户列表
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.muyu.system.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.muyu.common.system.domain.SysFirmDatasource;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.system.mapper
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:SysFirmDatasourceMapper
|
||||||
|
* @Date:2024/10/8 19:47
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface SysFirmDatasourceMapper extends BaseMapper<SysFirmDatasource> {
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.muyu.system.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.muyu.common.system.domain.SysFirm;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.system.mapper
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:SysFirmMapper
|
||||||
|
* @Date:2024/10/8 19:45
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface SysFirmMapper extends BaseMapper<SysFirm> {
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.muyu.system.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.muyu.common.system.domain.SysFirmDatasource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.system.service.impl
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:SysFirmDatasourceService
|
||||||
|
* @Date:2024/10/8 19:48
|
||||||
|
*/
|
||||||
|
public interface SysFirmDatasourceService extends IService<SysFirmDatasource> {
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.muyu.system.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.muyu.common.system.domain.SysFirm;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.system.service
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:SysFirmService
|
||||||
|
* @Date:2024/10/8 19:46
|
||||||
|
*/
|
||||||
|
public interface SysFirmService extends IService<SysFirm> {
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.muyu.system.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.muyu.common.system.domain.SysFirmDatasource;
|
||||||
|
import com.muyu.system.mapper.SysFirmDatasourceMapper;
|
||||||
|
import com.muyu.system.service.SysFirmDatasourceService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.system.service.impl
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:SysFirmDatasourceServiceImpl
|
||||||
|
* @Date:2024/10/8 19:48
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SysFirmDatasourceServiceImpl
|
||||||
|
extends ServiceImpl<SysFirmDatasourceMapper, SysFirmDatasource>
|
||||||
|
implements SysFirmDatasourceService {
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.muyu.system.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.muyu.common.system.domain.SysFirm;
|
||||||
|
import com.muyu.system.mapper.SysFirmMapper;
|
||||||
|
import com.muyu.system.service.SysFirmService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:杨鹏
|
||||||
|
* @Package:com.muyu.system.service.im
|
||||||
|
* @Project:cloud-vehicle
|
||||||
|
* @name:SysFirmServiceImpl
|
||||||
|
* @Date:2024/10/8 19:46
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SysFirmServiceImpl
|
||||||
|
extends ServiceImpl<SysFirmMapper, SysFirm>
|
||||||
|
implements SysFirmService {
|
||||||
|
}
|
|
@ -23,7 +23,6 @@
|
||||||
<result property="updateBy" column="update_by"/>
|
<result property="updateBy" column="update_by"/>
|
||||||
<result property="updateTime" column="update_time"/>
|
<result property="updateTime" column="update_time"/>
|
||||||
<result property="remark" column="remark"/>
|
<result property="remark" column="remark"/>
|
||||||
<result property="databaseName" column="database_name"/>
|
|
||||||
<association property="dept" javaType="com.muyu.common.system.domain.SysDept" resultMap="deptResult"/>
|
<association property="dept" javaType="com.muyu.common.system.domain.SysDept" resultMap="deptResult"/>
|
||||||
<collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
|
<collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
@ -64,7 +63,6 @@
|
||||||
u.create_by,
|
u.create_by,
|
||||||
u.create_time,
|
u.create_time,
|
||||||
u.remark,
|
u.remark,
|
||||||
u.database_name,
|
|
||||||
d.dept_id,
|
d.dept_id,
|
||||||
d.parent_id,
|
d.parent_id,
|
||||||
d.ancestors,
|
d.ancestors,
|
||||||
|
|
15
pom.xml
15
pom.xml
|
@ -267,18 +267,33 @@
|
||||||
<version>${muyu.version}</version>
|
<version>${muyu.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- kafka消息中间件 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.muyu</groupId>
|
<groupId>com.muyu</groupId>
|
||||||
<artifactId>cloud-common-kafka</artifactId>
|
<artifactId>cloud-common-kafka</artifactId>
|
||||||
<version>${muyu.version}</version>
|
<version>${muyu.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- saas模块 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.muyu</groupId>
|
||||||
|
<artifactId>cloud-common-saas</artifactId>
|
||||||
|
<version>${muyu.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!--企业业务平台公共模块-->
|
<!--企业业务平台公共模块-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.muyu</groupId>
|
<groupId>com.muyu</groupId>
|
||||||
<artifactId>cloud-modules-enterprise-common</artifactId>
|
<artifactId>cloud-modules-enterprise-common</artifactId>
|
||||||
<version>${muyu.version}</version>
|
<version>${muyu.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!--企业业务平台远调-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.muyu</groupId>
|
||||||
|
<artifactId>cloud-modules-enterprise-remote</artifactId>
|
||||||
|
<version>${muyu.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue