diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..b9340a4 Binary files /dev/null and b/.DS_Store differ diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000..c8d5200 Binary files /dev/null and b/src/.DS_Store differ diff --git a/src/main/java/com/yupi/springbootinit/.DS_Store b/src/main/java/com/yupi/springbootinit/.DS_Store new file mode 100644 index 0000000..acfb0fa Binary files /dev/null and b/src/main/java/com/yupi/springbootinit/.DS_Store differ diff --git a/src/main/java/com/yupi/springbootinit/controller/UserController.java b/src/main/java/com/yupi/springbootinit/controller/UserController.java index 9af6952..891110c 100644 --- a/src/main/java/com/yupi/springbootinit/controller/UserController.java +++ b/src/main/java/com/yupi/springbootinit/controller/UserController.java @@ -6,6 +6,7 @@ import com.yupi.springbootinit.model.dto.user.SystemUsersDTO; import com.yupi.springbootinit.model.enums.LoginSceneEnum; import com.yupi.springbootinit.model.vo.user.SystemUsersVO; import com.yupi.springbootinit.service.SystemLoginLogService; +import com.yupi.springbootinit.service.SystemUsersService; import com.yupi.springbootinit.service.impl.LoginService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -30,6 +31,9 @@ public class UserController { @Resource private SystemLoginLogService systemLoginLogService; + @Resource + private SystemUsersService systemUsersService; + // 用户登陆接口 @PostMapping("doLogin") public BaseResponse doLogin(@RequestBody SystemUsersDTO usersDTO) { @@ -71,11 +75,19 @@ public class UserController { return ResultUtils.success(loginService.logout()); } + @GetMapping("/current") + public BaseResponse getCurrentUser() { + return ResultUtils.success(systemUsersService.getCurrentUserInfo()); + } + @PostMapping("/bigbrother-logout") public BaseResponse bigBrotherLogout(@RequestBody SystemUsersDTO usersDTO){ return ResultUtils.success(loginService.bigBrotherLogout(usersDTO)); } + + + private void recordFailedDoLoginLog(SystemUsersDTO usersDTO, RuntimeException exception) { try { systemLoginLogService.recordDoLoginLog(usersDTO, null, false); diff --git a/src/main/java/com/yupi/springbootinit/model/vo/user/SystemUsersVO.java b/src/main/java/com/yupi/springbootinit/model/vo/user/SystemUsersVO.java index 13ca75c..6fd5f5d 100644 --- a/src/main/java/com/yupi/springbootinit/model/vo/user/SystemUsersVO.java +++ b/src/main/java/com/yupi/springbootinit/model/vo/user/SystemUsersVO.java @@ -50,5 +50,15 @@ public class SystemUsersVO { private Byte webAi; + private Boolean aiReplayEnabled; + + private Boolean crawlEnabled; + + private Boolean bigBrotherEnabled; + + private Boolean aiChatEnabled; + + private Boolean webAiEnabled; + private Integer points; -} \ No newline at end of file +} diff --git a/src/main/java/com/yupi/springbootinit/service/SystemUsersService.java b/src/main/java/com/yupi/springbootinit/service/SystemUsersService.java index f76437a..6a1c057 100644 --- a/src/main/java/com/yupi/springbootinit/service/SystemUsersService.java +++ b/src/main/java/com/yupi/springbootinit/service/SystemUsersService.java @@ -7,6 +7,7 @@ package com.yupi.springbootinit.service; import com.baomidou.mybatisplus.extension.service.IService; import com.yupi.springbootinit.model.entity.SystemUsers; +import com.yupi.springbootinit.model.vo.user.SystemUsersVO; public interface SystemUsersService extends IService { @@ -26,4 +27,6 @@ public interface SystemUsersService extends IService { boolean checkAiCHatLoginRole(Long userId); boolean checkWebAILoginRole(Long userId); + + SystemUsersVO getCurrentUserInfo(); } diff --git a/src/main/java/com/yupi/springbootinit/service/impl/LoginService.java b/src/main/java/com/yupi/springbootinit/service/impl/LoginService.java index 5b827dd..c3bdd7f 100644 --- a/src/main/java/com/yupi/springbootinit/service/impl/LoginService.java +++ b/src/main/java/com/yupi/springbootinit/service/impl/LoginService.java @@ -106,23 +106,34 @@ public class LoginService { BeanUtil.copyProperties(user, vo); vo.setTokenName(StpUtil.getTokenName()); vo.setTokenValue(StpUtil.getTokenValue()); - vo.setAiExpireTime(systemTenant.getAiExpireTime()); + fillFeatureInfo(vo, user, systemTenant); return vo; case HOST: BeanUtil.copyProperties(user, vo); vo.setTokenName(StpUtil.getTokenName()); vo.setTokenValue(StpUtil.getTokenValue()); - vo.setExpireTime(systemTenant.getExpireTime()); - vo.setBrotherExpireTime(systemTenant.getBrotherExpireTime()); - vo.setAiExpireTime(systemTenant.getAiExpireTime()); - vo.setCrawl(user.getCrawl()); - vo.setAiChat(user.getAiChat()); - vo.setBigBrother(user.getBigBrother()); + fillFeatureInfo(vo, user, systemTenant); return vo; } return null; } + private void fillFeatureInfo(SystemUsersVO vo, SystemUsers user, SystemTenant tenant) { + vo.setExpireTime(tenant.getExpireTime()); + vo.setCrawlExpireTime(tenant.getCrawlExpireTime()); + vo.setBrotherExpireTime(tenant.getBrotherExpireTime()); + vo.setAiExpireTime(tenant.getAiExpireTime()); + vo.setAiReplayEnabled(isEnabled(user.getAiReplay())); + vo.setCrawlEnabled(isEnabled(user.getCrawl())); + vo.setBigBrotherEnabled(isEnabled(user.getBigBrother())); + vo.setAiChatEnabled(isEnabled(user.getAiChat())); + vo.setWebAiEnabled(isEnabled(user.getWebAi())); + } + + private boolean isEnabled(Byte value) { + return value != null && value == 1; + } + /** * 校验用户登录信息 * diff --git a/src/main/java/com/yupi/springbootinit/service/impl/SystemUsersServiceImpl.java b/src/main/java/com/yupi/springbootinit/service/impl/SystemUsersServiceImpl.java index 856baa3..5b402b5 100644 --- a/src/main/java/com/yupi/springbootinit/service/impl/SystemUsersServiceImpl.java +++ b/src/main/java/com/yupi/springbootinit/service/impl/SystemUsersServiceImpl.java @@ -1,22 +1,23 @@ package com.yupi.springbootinit.service.impl; +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.crypto.SecureUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yupi.springbootinit.common.ErrorCode; +import com.yupi.springbootinit.exception.BusinessException; import com.yupi.springbootinit.mapper.SystemTenantMapper; import com.yupi.springbootinit.model.entity.SystemTenant; import com.yupi.springbootinit.model.entity.SystemUsers; -import com.yupi.springbootinit.service.SystemTenantService; +import com.yupi.springbootinit.mapper.SystemUsersMapper; +import com.yupi.springbootinit.model.vo.user.SystemUsersVO; +import com.yupi.springbootinit.service.SystemUsersService; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import org.springframework.beans.factory.annotation.Autowired; - -import com.yupi.springbootinit.mapper.SystemUsersMapper; -import com.yupi.springbootinit.service.SystemUsersService; - import javax.annotation.Resource; /* * @author: ziin @@ -90,5 +91,43 @@ public class SystemUsersServiceImpl extends ServiceImpl