Commit 101727f9 authored by tianhongyang's avatar tianhongyang

Merge branch 'V20230915' of http://192.168.60.201/root/dsk-operate-sys into V20230915

parents f32d1c0f d0c2615b
...@@ -12,8 +12,11 @@ import cn.hutool.core.util.ReUtil; ...@@ -12,8 +12,11 @@ import cn.hutool.core.util.ReUtil;
import com.dsk.common.constant.Constants; import com.dsk.common.constant.Constants;
import com.dsk.common.constant.GlobalConstants; import com.dsk.common.constant.GlobalConstants;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.tenant.helper.TenantHelper; import com.dsk.common.tenant.helper.TenantHelper;
import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.redis.RedisUtils; import com.dsk.common.utils.redis.RedisUtils;
import com.dsk.jsk.util.IpUtil;
import com.dsk.system.domain.SysMenu; import com.dsk.system.domain.SysMenu;
import com.dsk.system.domain.SysUser; import com.dsk.system.domain.SysUser;
import com.dsk.common.core.domain.model.EmailLoginBody; import com.dsk.common.core.domain.model.EmailLoginBody;
...@@ -74,13 +77,12 @@ public class SysLoginController { ...@@ -74,13 +77,12 @@ public class SysLoginController {
// return R.ok(ajax); // return R.ok(ajax);
String ipAddr = IpUtil.getIpAddr(request);
LoginVo loginVo=loginService.passwordLogin(loginBody); LoginVo loginVo = loginService.passwordLogin(loginBody, ipAddr);
return R.ok(loginVo); return R.ok(loginVo);
} }
// /** // /**
// * 发送短信验证码 // * 发送短信验证码
// * // *
...@@ -107,20 +109,18 @@ public class SysLoginController { ...@@ -107,20 +109,18 @@ public class SysLoginController {
@PostMapping("/smsLogin") @PostMapping("/smsLogin")
public R<LoginVo> smsLogin(@Validated @RequestBody SmsLoginBody smsLoginBody) { public R<LoginVo> smsLogin(@Validated @RequestBody SmsLoginBody smsLoginBody) {
// 生成令牌 // 生成令牌
LoginVo loginVo=loginService.smsLogin(smsLoginBody.getPhonenumber(), smsLoginBody.getSmsCode()); LoginVo loginVo = loginService.smsLogin(smsLoginBody.getPhonenumber(), smsLoginBody.getSmsCode());
return R.ok(loginVo); return R.ok(loginVo);
} }
/** /**
* 动态切换租户 * 动态切换租户
*
*/ */
@SaCheckLogin @SaCheckLogin
@PostMapping("/switch/tenant") @PostMapping("/switch/tenant")
public R<LoginVo> switchTenant(String tenantId) { public R<LoginVo> switchTenant(String tenantId) {
LoginVo loginVo=loginService.switchTenant(tenantId); LoginVo loginVo = loginService.switchTenant(tenantId);
return R.ok(loginVo); return R.ok(loginVo);
} }
...@@ -134,7 +134,7 @@ public class SysLoginController { ...@@ -134,7 +134,7 @@ public class SysLoginController {
@PostMapping("/user/tenants") @PostMapping("/user/tenants")
public R<List<SysTenantVo>> userTenants() { public R<List<SysTenantVo>> userTenants() {
LoginUser loginUser = LoginHelper.getLoginUser(); LoginUser loginUser = LoginHelper.getLoginUser();
List<SysTenantVo> tenantList=loginService.tenantListByAccount(loginUser.getUserPhone()); List<SysTenantVo> tenantList = loginService.tenantListByAccount(loginUser.getUserPhone());
return R.ok(tenantList); return R.ok(tenantList);
} }
...@@ -146,12 +146,12 @@ public class SysLoginController { ...@@ -146,12 +146,12 @@ public class SysLoginController {
*/ */
@SaIgnore @SaIgnore
@PostMapping("/user/tenant/list") @PostMapping("/user/tenant/list")
public R<List<SysTenantVo>> userTenantList (String phone) { public R<List<SysTenantVo>> userTenantList(String phone) {
if(!ReUtil.isMatch(RegexPool.MOBILE, phone)) { if (!ReUtil.isMatch(RegexPool.MOBILE, phone)) {
return R.ok(new ArrayList<>()); return R.ok(new ArrayList<>());
} }
List<SysTenantVo> tenantList=loginService.tenantListByAccount(phone); List<SysTenantVo> tenantList = loginService.tenantListByAccount(phone);
if(CollectionUtil.isNotEmpty(tenantList)){ if (CollectionUtil.isNotEmpty(tenantList)) {
for (SysTenantVo sysTenantVo : tenantList) { for (SysTenantVo sysTenantVo : tenantList) {
sysTenantVo.setCompanyName(""); sysTenantVo.setCompanyName("");
} }
...@@ -161,21 +161,23 @@ public class SysLoginController { ...@@ -161,21 +161,23 @@ public class SysLoginController {
/** /**
* 获取当前用户默认租户 * 获取当前用户默认租户
*
* @return * @return
*/ */
@SaCheckLogin @SaCheckLogin
@PostMapping("/user/default/tenant") @PostMapping("/user/default/tenant")
public R<Map> userDefaultTenant() { public R<Map> userDefaultTenant() {
LoginUser loginUser = LoginHelper.getLoginUser(); LoginUser loginUser = LoginHelper.getLoginUser();
Assert.notNull(loginUser,"用户信息不存在!"); Assert.notNull(loginUser, "用户信息不存在!");
String defaultTenantKey = GlobalConstants.PHONE_DEFAULT_TENANT + loginUser.getUserPhone(); String defaultTenantKey = GlobalConstants.PHONE_DEFAULT_TENANT + loginUser.getUserPhone();
String defaultTenant = RedisUtils.getCacheObject(defaultTenantKey); String defaultTenant = RedisUtils.getCacheObject(defaultTenantKey);
return R.ok(MapUtil.of("tenantId",defaultTenant)); return R.ok(MapUtil.of("tenantId", defaultTenant));
} }
/** /**
* 获取当前用户默认租户 * 获取当前用户默认租户
*
* @return * @return
*/ */
@SaIgnore @SaIgnore
...@@ -185,7 +187,7 @@ public class SysLoginController { ...@@ -185,7 +187,7 @@ public class SysLoginController {
// Assert.notNull(loginUser,"用户信息不存在!"); // Assert.notNull(loginUser,"用户信息不存在!");
String defaultTenantKey = GlobalConstants.PHONE_DEFAULT_TENANT + phone; String defaultTenantKey = GlobalConstants.PHONE_DEFAULT_TENANT + phone;
String defaultTenant = RedisUtils.getCacheObject(defaultTenantKey); String defaultTenant = RedisUtils.getCacheObject(defaultTenantKey);
return R.ok(MapUtil.of("tenantId",defaultTenant)); return R.ok(MapUtil.of("tenantId", defaultTenant));
} }
/** /**
...@@ -235,8 +237,13 @@ public class SysLoginController { ...@@ -235,8 +237,13 @@ public class SysLoginController {
* @return 用户信息 * @return 用户信息
*/ */
@GetMapping("getInfo") @GetMapping("getInfo")
public R<Map<String, Object>> getInfo() { public R<Map<String, Object>> getInfo(HttpServletRequest request) {
LoginUser loginUser = LoginHelper.getLoginUser(); LoginUser loginUser = LoginHelper.getLoginUser();
//校验当前发请求的IP与登录账号的IP是否相同
String loginUserIpaddr = loginUser.getIpaddr();
if (StringUtils.isNotBlank(loginUserIpaddr) && !Objects.equals(IpUtil.getIpAddr(request), loginUserIpaddr)) {
throw new ServiceException("该账号已在其他地方登录,请求失败!", 401);
}
SysUser user = userService.selectUserById(loginUser.getUserId()); SysUser user = userService.selectUserById(loginUser.getUserId());
Map<String, Object> ajax = new HashMap<>(); Map<String, Object> ajax = new HashMap<>();
ajax.put("user", user); ajax.put("user", user);
......
...@@ -108,7 +108,7 @@ spring: ...@@ -108,7 +108,7 @@ spring:
# 端口,默认为6379 # 端口,默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引
database: 6 database: 13
# 密码 # 密码
password: Xi8$r*@d7zn5FaP2 password: Xi8$r*@d7zn5FaP2
# 密码(如没有密码请注释掉) # 密码(如没有密码请注释掉)
......
...@@ -105,7 +105,7 @@ spring: ...@@ -105,7 +105,7 @@ spring:
# 端口,默认为6379 # 端口,默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引
database: 10 database: 13
# 密码 # 密码
password: zfTFIJjaN#6xB83r password: zfTFIJjaN#6xB83r
# 密码(如没有密码请注释掉) # 密码(如没有密码请注释掉)
......
...@@ -41,162 +41,165 @@ import java.util.Map; ...@@ -41,162 +41,165 @@ import java.util.Map;
@RequiredArgsConstructor @RequiredArgsConstructor
@RequestMapping("/api/goview/project") @RequestMapping("/api/goview/project")
public class GoViewProjectAPIController extends BaseController { public class GoViewProjectAPIController extends BaseController {
private final GoviewProjectDataMapper projectDataMapper;
private final GoviewProjectDataMapper projectDataMapper;
private final GoviewProjectMapper projectMapper;
private final GoviewProjectMapper projectMapper;
private final GoviewProperties goviewProperties;
private final GoviewProperties goviewProperties;
@GetMapping("/list")
@GetMapping("/list") public ResultTable list(Tablepar tablepar, GoviewProject goviewProject) {
public ResultTable list(Tablepar tablepar, GoviewProject goviewProject) { Page page = new Page(tablepar.getPage(), tablepar.getLimit());
Page page = new Page(tablepar.getPage(), tablepar.getLimit()); Page result = projectMapper.selectPage(page, Wrappers.query(goviewProject));
Page result = projectMapper.selectPage(page, Wrappers.query(goviewProject)); ResultTable resultTable = pageTable(result.getRecords(), result.getTotal());
ResultTable resultTable = pageTable(result.getRecords(), result.getTotal()); resultTable.setCode(200);
resultTable.setCode(200); return resultTable;
return resultTable; }
}
/**
/** * 新增保存
* 新增保存 *
* @param * @param
* @return * @return
*/ */
@PostMapping("/create") @PostMapping("/create")
public AjaxResult add(@RequestBody GoviewProject goviewProject) { public AjaxResult add(@RequestBody GoviewProject goviewProject) {
projectMapper.insert(goviewProject); projectMapper.insert(goviewProject);
return AjaxResult.successData(200, goviewProject).put("msg", "创建成功"); return AjaxResult.successData(200, goviewProject).put("msg", "创建成功");
} }
/** /**
* 项目表删除 * 项目表删除
* @param ids *
* @return * @param ids
*/ * @return
@DeleteMapping("/delete") */
public AjaxResult delete(String ids) { @DeleteMapping("/delete")
projectMapper.deleteById(ids); public AjaxResult delete(String ids) {
return success(); projectMapper.deleteById(ids);
} return success();
}
@PostMapping("/edit")
public AjaxResult editSave(@RequestBody GoviewProject goviewProject) { @PostMapping("/edit")
projectMapper.updateById(goviewProject); public AjaxResult editSave(@RequestBody GoviewProject goviewProject) {
return success(); projectMapper.updateById(goviewProject);
} return success();
}
@PostMapping("/rename")
public AjaxResult rename(@RequestBody GoviewProject goviewProject) { @PostMapping("/rename")
projectMapper.updateById(goviewProject); public AjaxResult rename(@RequestBody GoviewProject goviewProject) {
return success(); projectMapper.updateById(goviewProject);
} return success();
}
// 发布/取消项目状态
@PutMapping("/publish") // 发布/取消项目状态
@ResponseBody @PutMapping("/publish")
public AjaxResult updateVisible(@RequestBody GoviewProject goviewProject) { @ResponseBody
projectMapper.updateById(goviewProject); public AjaxResult updateVisible(@RequestBody GoviewProject goviewProject) {
return success(); projectMapper.updateById(goviewProject);
} return success();
}
/**
* 获取项目存储数据 /**
* @param id 项目id * 获取项目存储数据
* @param mmap *
* @return * @param id 项目id
*/ * @param mmap
@GetMapping("/getData") * @return
public AjaxResult getData(String projectId, ModelMap map) { */
InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build()); @GetMapping("/getData")
GoviewProject goviewProject = projectMapper.selectById(projectId); public AjaxResult getData(String projectId, ModelMap map) {
InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
if (goviewProject == null) { GoviewProject goviewProject = projectMapper.selectById(projectId);
return AjaxResult.successData(200, null).put("msg", "无数据");
} if (goviewProject == null) {
return AjaxResult.successData(200, null).put("msg", "无数据");
List<GoviewProjectData> goviewProjectDataList = projectDataMapper }
.selectList(Wrappers.<GoviewProjectData>lambdaQuery().eq(GoviewProjectData::getProjectId, projectId));
if (CollUtil.isNotEmpty(goviewProjectDataList)) { List<GoviewProjectData> goviewProjectDataList = projectDataMapper
goviewProject.setContent(goviewProjectDataList.get(0).getContent()); .selectList(Wrappers.<GoviewProjectData>lambdaQuery().eq(GoviewProjectData::getProjectId, projectId));
return AjaxResult.successData(200, goviewProject).put("msg", "获取成功"); if (CollUtil.isNotEmpty(goviewProjectDataList)) {
} goviewProject.setContent(goviewProjectDataList.get(0).getContent());
return AjaxResult.successData(200, null).put("msg", "无数据"); return AjaxResult.successData(200, goviewProject).put("msg", "获取成功");
}
} return AjaxResult.successData(200, null).put("msg", "无数据");
@PostMapping("/save/data") }
public AjaxResult saveData(GoviewProjectData data) {
boolean exists = projectDataMapper @PostMapping("/save/data")
.exists(Wrappers.<GoviewProjectData>lambdaQuery().eq(GoviewProjectData::getProjectId, data.getProjectId())); public AjaxResult saveData(@RequestBody GoviewProjectData data) {
boolean exists = projectDataMapper
if (exists) { .exists(Wrappers.<GoviewProjectData>lambdaQuery().eq(GoviewProjectData::getProjectId, data.getProjectId()));
projectDataMapper.update(data,
Wrappers.<GoviewProjectData>lambdaQuery().eq(GoviewProjectData::getProjectId, data.getProjectId())); if (exists) {
} projectDataMapper.update(data,
else { Wrappers.<GoviewProjectData>lambdaQuery().eq(GoviewProjectData::getProjectId, data.getProjectId()));
projectDataMapper.insert(data); }
} else {
projectDataMapper.insert(data);
return AjaxResult.success("操作成功"); }
}
return AjaxResult.success("操作成功");
/** }
* 模拟请求
* @return /**
*/ * 模拟请求
@PostMapping("/magicHttp") *
public AjaxResult magicHttp(@RequestBody MagicHttp magicHttp) { * @return
return AjaxResult.successNullData("参数异常为null"); */
} @PostMapping("/magicHttp")
public AjaxResult magicHttp(@RequestBody MagicHttp magicHttp) {
/** return AjaxResult.successNullData("参数异常为null");
* 上传文件 }
* @param file 文件流对象
* @return /**
* @throws Exception * 上传文件
*/ *
@PostMapping("/upload") * @param file 文件流对象
@ResponseBody * @return
public AjaxResult upload(@RequestBody MultipartFile object) throws IOException { * @throws Exception
*/
File dest = new File(goviewProperties.getImgPath() + object.getOriginalFilename()); @PostMapping("/upload")
object.transferTo(dest); @ResponseBody
Map<String, String> map = new HashMap(4); public AjaxResult upload(@RequestBody MultipartFile object) throws IOException {
String url; File dest = new File(goviewProperties.getImgPath() + object.getOriginalFilename());
if (StrUtil.isNotBlank(goviewProperties.getHost())) { object.transferTo(dest);
url = goviewProperties.getHost() + goviewProperties.getGatewayPrefix() + "/api/project/get-file/" Map<String, String> map = new HashMap(4);
+ object.getOriginalFilename();
} String url;
else { if (StrUtil.isNotBlank(goviewProperties.getHost())) {
url = goviewProperties.getGatewayPrefix() + "/api/project/get-file/" + object.getOriginalFilename(); url = goviewProperties.getHost() + goviewProperties.getGatewayPrefix() + "/api/project/get-file/"
} + object.getOriginalFilename();
map.put("link", url); } else {
url = goviewProperties.getGatewayPrefix() + "/api/project/get-file/" + object.getOriginalFilename();
return AjaxResult.successData(200, map); }
map.put("link", url);
}
return AjaxResult.successData(200, map);
/**
* 文件获取 }
* @param fileName 文件名
*/ /**
@GetMapping("/get-file/{fileName}") * 文件获取
public ResponseEntity<byte[]> getFile(@PathVariable String fileName) { *
HttpHeaders headers = new HttpHeaders(); * @param fileName 文件名
// 通知浏览器以下载文件方式打开 */
ContentDisposition contentDisposition = ContentDisposition.builder("attachment").filename(fileName).build(); @GetMapping("/get-file/{fileName}")
headers.setContentDisposition(contentDisposition); public ResponseEntity<byte[]> getFile(@PathVariable String fileName) {
try { HttpHeaders headers = new HttpHeaders();
return new ResponseEntity<>( // 通知浏览器以下载文件方式打开
FileCopyUtils.copyToByteArray(new File(goviewProperties.getImgPath() + fileName)), headers, ContentDisposition contentDisposition = ContentDisposition.builder("attachment").filename(fileName).build();
HttpStatus.OK); headers.setContentDisposition(contentDisposition);
} try {
catch (IOException e) { return new ResponseEntity<>(
log.warn(e.getLocalizedMessage()); FileCopyUtils.copyToByteArray(new File(goviewProperties.getImgPath() + fileName)), headers,
} HttpStatus.OK);
return null; } catch (IOException e) {
} log.warn(e.getLocalizedMessage());
}
return null;
}
} }
...@@ -83,9 +83,10 @@ public class SysLoginService { ...@@ -83,9 +83,10 @@ public class SysLoginService {
* 登录验证 * 登录验证
* *
* @param loginBody 唯一标识 * @param loginBody 唯一标识
* @param ipAddr IP地址
* @return 结果 * @return 结果
*/ */
public LoginVo passwordLogin(LoginBody loginBody) { public LoginVo passwordLogin(LoginBody loginBody, String ipAddr) {
String tenantId = loginBody.getTenantId(); String tenantId = loginBody.getTenantId();
String username = loginBody.getUsername(); String username = loginBody.getUsername();
String password = SaBase64Util.decode(loginBody.getPassword()); String password = SaBase64Util.decode(loginBody.getPassword());
...@@ -96,12 +97,12 @@ public class SysLoginService { ...@@ -96,12 +97,12 @@ public class SysLoginService {
validateCaptcha(username, code, uuid); validateCaptcha(username, code, uuid);
} }
if(ReUtil.isMatch(RegexPool.MOBILE, username)) { if (ReUtil.isMatch(RegexPool.MOBILE, username)) {
String defaultTenantId = RedisUtils.getCacheObject(GlobalConstants.PHONE_DEFAULT_TENANT + username); String defaultTenantId = RedisUtils.getCacheObject(GlobalConstants.PHONE_DEFAULT_TENANT + username);
log.info("登录用户:{} 获取缓存默认租户:"+tenantId, username); log.info("登录用户:{} 获取缓存默认租户:" + tenantId, username);
if(StrUtil.isEmpty(tenantId)&&StrUtil.isNotBlank(defaultTenantId)){ if (StrUtil.isEmpty(tenantId) && StrUtil.isNotBlank(defaultTenantId)) {
defaultTenantId= checkDefaultTenant(defaultTenantId,username); defaultTenantId = checkDefaultTenant(defaultTenantId, username);
tenantId=defaultTenantId; tenantId = defaultTenantId;
} }
} }
...@@ -119,7 +120,7 @@ public class SysLoginService { ...@@ -119,7 +120,7 @@ public class SysLoginService {
throw new UserException("user.not.exists", username); throw new UserException("user.not.exists", username);
} }
tenantId = sysUser.getTenantId(); tenantId = sysUser.getTenantId();
}else { } else {
SysUser sysUser = sysUsers.get(0); SysUser sysUser = sysUsers.get(0);
tenantId = sysUser.getTenantId(); tenantId = sysUser.getTenantId();
} }
...@@ -143,6 +144,7 @@ public class SysLoginService { ...@@ -143,6 +144,7 @@ public class SysLoginService {
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
LoginUser loginUser = buildLoginUser(user); LoginUser loginUser = buildLoginUser(user);
// 生成token // 生成token
loginUser.setIpaddr(ipAddr);
LoginHelper.loginByDevice(loginUser, DeviceType.PC); LoginHelper.loginByDevice(loginUser, DeviceType.PC);
recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
...@@ -189,13 +191,13 @@ public class SysLoginService { ...@@ -189,13 +191,13 @@ public class SysLoginService {
} }
public LoginVo smsLogin(String username, String smsCode) { public LoginVo smsLogin(String username, String smsCode) {
String tenantId=null; String tenantId = null;
if(ReUtil.isMatch(RegexPool.MOBILE, username)) { if (ReUtil.isMatch(RegexPool.MOBILE, username)) {
String defaultTenantId = RedisUtils.getCacheObject(GlobalConstants.PHONE_DEFAULT_TENANT + username); String defaultTenantId = RedisUtils.getCacheObject(GlobalConstants.PHONE_DEFAULT_TENANT + username);
log.info("登录用户:{} 获取缓存默认租户:"+tenantId, username); log.info("登录用户:{} 获取缓存默认租户:" + tenantId, username);
if(StrUtil.isNotBlank(defaultTenantId)){ if (StrUtil.isNotBlank(defaultTenantId)) {
defaultTenantId= checkDefaultTenant(defaultTenantId,username); defaultTenantId = checkDefaultTenant(defaultTenantId, username);
tenantId=defaultTenantId; tenantId = defaultTenantId;
} }
} }
...@@ -213,7 +215,7 @@ public class SysLoginService { ...@@ -213,7 +215,7 @@ public class SysLoginService {
throw new UserException("user.not.exists", username); throw new UserException("user.not.exists", username);
} }
tenantId = sysUser.getTenantId(); tenantId = sysUser.getTenantId();
}else { } else {
SysUser sysUser = sysUsers.get(0); SysUser sysUser = sysUsers.get(0);
tenantId = sysUser.getTenantId(); tenantId = sysUser.getTenantId();
} }
...@@ -370,9 +372,9 @@ public class SysLoginService { ...@@ -370,9 +372,9 @@ public class SysLoginService {
private SysUser loadUserByUsername(String username) { private SysUser loadUserByUsername(String username) {
SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>() SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserName, SysUser::getStatus) .select(SysUser::getUserName, SysUser::getStatus)
.eq(SysUser::getUserName, username) .eq(SysUser::getUserName, username)
.or().eq(SysUser::getPhonenumber, username)); .or().eq(SysUser::getPhonenumber, username));
if (ObjectUtil.isNull(user)) { if (ObjectUtil.isNull(user)) {
log.info("登录用户:{} 不存在.", username); log.info("登录用户:{} 不存在.", username);
throw new UserException("user.not.exists", username); throw new UserException("user.not.exists", username);
...@@ -385,8 +387,8 @@ public class SysLoginService { ...@@ -385,8 +387,8 @@ public class SysLoginService {
private SysUser loadUserByPhonenumber(String phonenumber) { private SysUser loadUserByPhonenumber(String phonenumber) {
SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>() SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getPhonenumber, SysUser::getStatus) .select(SysUser::getPhonenumber, SysUser::getStatus)
.eq(SysUser::getPhonenumber, phonenumber)); .eq(SysUser::getPhonenumber, phonenumber));
if (ObjectUtil.isNull(user)) { if (ObjectUtil.isNull(user)) {
log.info("登录用户:{} 不存在.", phonenumber); log.info("登录用户:{} 不存在.", phonenumber);
throw new UserException("user.not.exists", phonenumber); throw new UserException("user.not.exists", phonenumber);
...@@ -399,8 +401,8 @@ public class SysLoginService { ...@@ -399,8 +401,8 @@ public class SysLoginService {
private SysUser loadUserByEmail(String email) { private SysUser loadUserByEmail(String email) {
SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>() SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getPhonenumber, SysUser::getStatus) .select(SysUser::getPhonenumber, SysUser::getStatus)
.eq(SysUser::getEmail, email)); .eq(SysUser::getEmail, email));
if (ObjectUtil.isNull(user)) { if (ObjectUtil.isNull(user)) {
log.info("登录用户:{} 不存在.", email); log.info("登录用户:{} 不存在.", email);
throw new UserException("user.not.exists", email); throw new UserException("user.not.exists", email);
...@@ -509,14 +511,14 @@ public class SysLoginService { ...@@ -509,14 +511,14 @@ public class SysLoginService {
log.info("登录企业:{} 已被停用.", tenant.getCompanyName()); log.info("登录企业:{} 已被停用.", tenant.getCompanyName());
throw new TenantException("company.blocked"); throw new TenantException("company.blocked");
} else if (ObjectUtil.isNotNull(tenant.getExpireTime()) } else if (ObjectUtil.isNotNull(tenant.getExpireTime())
&& new Date().after(tenant.getExpireTime())) { && new Date().after(tenant.getExpireTime())) {
log.info("登录企业:{} 已超过有效期.", tenant.getCompanyName()); log.info("登录企业:{} 已超过有效期.", tenant.getCompanyName());
throw new TenantException("company.expired"); throw new TenantException("company.expired");
} }
} }
public String checkDefaultTenant(String tenantId,String phoneNumber) { public String checkDefaultTenant(String tenantId, String phoneNumber) {
if (!TenantHelper.isEnable()) { if (!TenantHelper.isEnable()) {
return null; return null;
} }
...@@ -557,16 +559,16 @@ public class SysLoginService { ...@@ -557,16 +559,16 @@ public class SysLoginService {
if (ReUtil.isMatch(RegexPool.MOBILE, username)) { if (ReUtil.isMatch(RegexPool.MOBILE, username)) {
LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<SysUser>() LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserName, SysUser::getStatus, SysUser::getTenantId,SysUser::getDelFlag) .select(SysUser::getUserName, SysUser::getStatus, SysUser::getTenantId, SysUser::getDelFlag)
.eq(SysUser::getPhonenumber, username) .eq(SysUser::getPhonenumber, username)
.orderByDesc(SysUser::getUserId); .orderByDesc(SysUser::getUserId);
// sysUsers = userMapper.selectUserByTenantPhone(username); // sysUsers = userMapper.selectUserByTenantPhone(username);
sysUsers = userMapper.selectList(lqw); sysUsers = userMapper.selectList(lqw);
} else { } else {
LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<SysUser>() LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserName, SysUser::getStatus, SysUser::getTenantId) .select(SysUser::getUserName, SysUser::getStatus, SysUser::getTenantId)
.eq(SysUser::getUserName, username) .eq(SysUser::getUserName, username)
.orderByDesc(SysUser::getUserId); .orderByDesc(SysUser::getUserId);
// sysUsers = userMapper.selectUserByTenantUsername(username); // sysUsers = userMapper.selectUserByTenantUsername(username);
sysUsers = userMapper.selectList(lqw); sysUsers = userMapper.selectList(lqw);
} }
...@@ -582,10 +584,10 @@ public class SysLoginService { ...@@ -582,10 +584,10 @@ public class SysLoginService {
Assert.notNull(userId, "企业切换失败!"); Assert.notNull(userId, "企业切换失败!");
// 如果 切换租户和当前登录租户一致,仅保存默认租户 // 如果 切换租户和当前登录租户一致,仅保存默认租户
LoginUser loginUserVo = LoginHelper.getLoginUser(); LoginUser loginUserVo = LoginHelper.getLoginUser();
if(tenantId.equals(loginUserVo.getTenantId())){ if (tenantId.equals(loginUserVo.getTenantId())) {
//保存当前账号的默认租户 //保存当前账号的默认租户
String defaultTenantKey = GlobalConstants.PHONE_DEFAULT_TENANT + loginUserVo.getUserPhone(); String defaultTenantKey = GlobalConstants.PHONE_DEFAULT_TENANT + loginUserVo.getUserPhone();
RedisUtils.setCacheObject(defaultTenantKey,tenantId, Duration.ofDays(90)); RedisUtils.setCacheObject(defaultTenantKey, tenantId, Duration.ofDays(90));
LoginVo loginVo = new LoginVo(); LoginVo loginVo = new LoginVo();
loginVo.setTenantId(TenantHelper.getTenantId()); loginVo.setTenantId(TenantHelper.getTenantId());
loginVo.setAccessToken(StpUtil.getTokenValue()); loginVo.setAccessToken(StpUtil.getTokenValue());
...@@ -618,10 +620,10 @@ public class SysLoginService { ...@@ -618,10 +620,10 @@ public class SysLoginService {
LoginHelper.loginByDevice(loginUser, DeviceType.PC); LoginHelper.loginByDevice(loginUser, DeviceType.PC);
log.info("当前租户由"+sysUser.getTenantId()+"切换为"+tenantId); log.info("当前租户由" + sysUser.getTenantId() + "切换为" + tenantId);
//保存当前账号的默认租户 //保存当前账号的默认租户
String defaultTenantKey = GlobalConstants.PHONE_DEFAULT_TENANT + loginUser.getUserPhone(); String defaultTenantKey = GlobalConstants.PHONE_DEFAULT_TENANT + loginUser.getUserPhone();
RedisUtils.setCacheObject(defaultTenantKey,tenantId, Duration.ofDays(90)); RedisUtils.setCacheObject(defaultTenantKey, tenantId, Duration.ofDays(90));
recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
recordLoginInfo(user.getUserId(), username); recordLoginInfo(user.getUserId(), username);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment