From 262899c57e6089d4816ff735fb288f64e9d002e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=85=BE?= <3467447354@qq.com> Date: Thu, 26 Sep 2024 14:34:09 +0800 Subject: [PATCH] =?UTF-8?q?saas1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/auth/controller/TokenController.java | 2 +- .../java/com/muyu/auth/form/LoginBody.java | 6 ---- .../java/com/muyu/auth/form/RegisterBody.java | 25 +++++++++++++ .../muyu/auth/service/SysLoginService.java | 34 ++++++++++++------ .../com/muyu/common/system/domain/Firm.java | 35 +++++++++++++++++++ .../system/remote/RemoteFirmService.java | 23 ++++++++++++ .../factory/RemoteFirmFallbackFactory.java | 29 +++++++++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../system/controller/FirmController.java | 31 ++++++++++++++++ .../system/controller/SysUserController.java | 4 +-- .../com/muyu/system/mapper/FirmMapper.java | 17 +++++++++ .../com/muyu/system/service/FirmService.java | 15 ++++++++ .../system/service/impl/FirmServiceImpl.java | 28 +++++++++++++++ .../resources/mapper/system/FirmMapper.xml | 10 ++++++ 14 files changed, 241 insertions(+), 19 deletions(-) create mode 100644 cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/Firm.java create mode 100644 cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteFirmService.java create mode 100644 cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteFirmFallbackFactory.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/FirmController.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/FirmMapper.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/FirmService.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/FirmServiceImpl.java create mode 100644 cloud-modules/cloud-modules-system/src/main/resources/mapper/system/FirmMapper.xml diff --git a/cloud-auth/src/main/java/com/muyu/auth/controller/TokenController.java b/cloud-auth/src/main/java/com/muyu/auth/controller/TokenController.java index d870762..d43ec63 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/controller/TokenController.java +++ b/cloud-auth/src/main/java/com/muyu/auth/controller/TokenController.java @@ -66,7 +66,7 @@ public class TokenController { @PostMapping("register") public Result register (@RequestBody RegisterBody registerBody) { // 用户注册 - sysLoginService.register(registerBody.getUsername(), registerBody.getPassword()); + sysLoginService.register(registerBody); return Result.success(); } } diff --git a/cloud-auth/src/main/java/com/muyu/auth/form/LoginBody.java b/cloud-auth/src/main/java/com/muyu/auth/form/LoginBody.java index b774b03..ac89abb 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/form/LoginBody.java +++ b/cloud-auth/src/main/java/com/muyu/auth/form/LoginBody.java @@ -7,12 +7,6 @@ package com.muyu.auth.form; */ public class LoginBody { - /** - * 登录公司名称 - */ - private Integer firmName; - - /** * 用户名 */ diff --git a/cloud-auth/src/main/java/com/muyu/auth/form/RegisterBody.java b/cloud-auth/src/main/java/com/muyu/auth/form/RegisterBody.java index c2a4d5a..a3d1251 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/form/RegisterBody.java +++ b/cloud-auth/src/main/java/com/muyu/auth/form/RegisterBody.java @@ -1,10 +1,35 @@ package com.muyu.auth.form; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + /** * 用户注册对象 * * @author muyu */ + +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) public class RegisterBody extends LoginBody { + /** + * 公司名称 + */ + private String firmName; + + /** + * 邮件地址 + */ + private String email; + + /** + * 手机号 + */ + private String phoneNumber; } diff --git a/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java b/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java index ad14e53..e49b481 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java +++ b/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java @@ -1,5 +1,6 @@ package com.muyu.auth.service; +import com.muyu.auth.form.RegisterBody; import com.muyu.common.core.constant.CacheConstants; import com.muyu.common.core.constant.Constants; import com.muyu.common.core.constant.SecurityConstants; @@ -12,6 +13,8 @@ import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.ip.IpUtils; import com.muyu.common.redis.service.RedisService; import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.common.system.domain.Firm; +import com.muyu.common.system.remote.RemoteFirmService; import com.muyu.common.system.remote.RemoteUserService; import com.muyu.common.system.domain.SysUser; import com.muyu.common.system.domain.LoginUser; @@ -28,6 +31,9 @@ public class SysLoginService { @Autowired private RemoteUserService remoteUserService; + @Autowired + private RemoteFirmService remoteFirmService; + @Autowired private SysPasswordService passwordService; @@ -98,31 +104,39 @@ public class SysLoginService { /** * 注册 */ - public void register (String username, String password) { + public void register (RegisterBody registerBody) { // 用户名或密码为空 错误 - if (StringUtils.isAnyBlank(username, password)) { + if (StringUtils.isAnyBlank(registerBody.getUsername(), registerBody.getPassword())) { throw new ServiceException("用户/密码必须填写"); } - if (username.length() < UserConstants.USERNAME_MIN_LENGTH - || username.length() > UserConstants.USERNAME_MAX_LENGTH) { + if (registerBody.getUsername().length() < UserConstants.USERNAME_MIN_LENGTH + || registerBody.getUsername().length() > UserConstants.USERNAME_MAX_LENGTH) { throw new ServiceException("账户长度必须在2到20个字符之间"); } - if (password.length() < UserConstants.PASSWORD_MIN_LENGTH - || password.length() > UserConstants.PASSWORD_MAX_LENGTH) { + if (registerBody.getPassword().length() < UserConstants.PASSWORD_MIN_LENGTH + || registerBody.getPassword().length() > UserConstants.PASSWORD_MAX_LENGTH) { throw new ServiceException("密码长度必须在5到20个字符之间"); } + String firmName = registerBody.getFirmName(); + Result byFirmName = remoteFirmService.findByFirmName(firmName); + Firm data = byFirmName.getData(); + if (null != data){ + throw new ServiceException("公司名称已经存在"); + } + // 注册用户信息 SysUser sysUser = new SysUser(); - sysUser.setUserName(username); - sysUser.setNickName(username); - sysUser.setPassword(SecurityUtils.encryptPassword(password)); + sysUser.setUserName(registerBody.getUsername()); + sysUser.setEmail(registerBody.getEmail()); + sysUser.setPhonenumber(registerBody.getPhoneNumber()); + sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword())); Result registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER); if (Result.FAIL == registerResult.getCode()) { throw new ServiceException(registerResult.getMsg()); } - recordLogService.recordLogininfor(username, Constants.REGISTER, "注册成功"); + recordLogService.recordLogininfor(registerBody.getUsername(), Constants.REGISTER, "注册成功"); } } diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/Firm.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/Firm.java new file mode 100644 index 0000000..41b9b73 --- /dev/null +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/Firm.java @@ -0,0 +1,35 @@ +package com.muyu.common.system.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:张腾 + * @Package:com.muyu.common.system.domain + * @Project:cloud-server-8 + * @name:Firm + * @Date:2024/9/25 22:03 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Firm { + + /** + * 公司编号 + */ + private Integer firmId; + + /** + * 公司名称 + */ + private String firmName; + + /** + * 公司所属数据库 + */ + private String databaseName; +} diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteFirmService.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteFirmService.java new file mode 100644 index 0000000..fe95cbe --- /dev/null +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteFirmService.java @@ -0,0 +1,23 @@ +package com.muyu.common.system.remote; + +import com.muyu.common.core.constant.ServiceNameConstants; +import com.muyu.common.core.domain.Result; +import com.muyu.common.system.domain.Firm; +import com.muyu.common.system.remote.factory.RemoteFirmFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * @Author:张腾 + * @Package:com.muyu.common.system.remote + * @Project:cloud-server-8 + * @name:RemoteFirmService + * @Date:2024/9/25 22:21 + */ +@FeignClient(contextId = "remoteFirmService", value = ServiceNameConstants.SYSTEM_SERVICE,fallbackFactory = RemoteFirmFallbackFactory.class) +public interface RemoteFirmService { + + @RequestMapping("/firm/findByFirmName/{firmName}") + public Result findByFirmName(@PathVariable("firmName") String firmName); +} diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteFirmFallbackFactory.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteFirmFallbackFactory.java new file mode 100644 index 0000000..2b05f53 --- /dev/null +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteFirmFallbackFactory.java @@ -0,0 +1,29 @@ +package com.muyu.common.system.remote.factory; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.exception.ServiceException; +import com.muyu.common.system.domain.Firm; +import com.muyu.common.system.remote.RemoteFirmService; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * @Author:张腾 + * @Package:com.muyu.common.system.remote.factory + * @Project:cloud-server-8 + * @name:RemoteFirmFallbackFactory + * @Date:2024/9/25 22:22 + */ +@Component +public class RemoteFirmFallbackFactory implements FallbackFactory { + @Override + public RemoteFirmService create(Throwable cause) { + + return new RemoteFirmService() { + @Override + public Result findByFirmName(String firmName) { + throw new ServiceException(cause.getCause().toString()); + } + }; + } +} diff --git a/cloud-common/cloud-common-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index b9a11b8..e17c5c7 100644 --- a/cloud-common/cloud-common-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/cloud-common/cloud-common-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,3 +1,4 @@ com.muyu.common.system.remote.factory.RemoteUserFallbackFactory com.muyu.common.system.remote.factory.RemoteLogFallbackFactory com.muyu.common.system.remote.factory.RemoteFileFallbackFactory +com.muyu.common.system.remote.factory.RemoteFirmFallbackFactory diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/FirmController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/FirmController.java new file mode 100644 index 0000000..9aa5008 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/FirmController.java @@ -0,0 +1,31 @@ +package com.muyu.system.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.system.domain.Firm; +import com.muyu.system.service.FirmService; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Author:张腾 + * @Package:com.muyu.system.controller + * @Project:cloud-server-8 + * @name:FirmController + * @Date:2024/9/25 22:18 + */ +@RestController +@RequestMapping("/firm") +@AllArgsConstructor +public class FirmController { + + private final FirmService firmService; + + + @RequestMapping("/findByFirmName/{firmName}") + public Result findByFirmName(@PathVariable("firmName") String firmName){ + Firm firmServiceByFirmName = firmService.findByFirmName(firmName); + return Result.success(firmServiceByFirmName); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java index 6a4ab17..f7fe2d4 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java @@ -127,9 +127,9 @@ public class SysUserController extends BaseController { @PostMapping("/register") public Result register (@RequestBody SysUser sysUser) { String username = sysUser.getUserName(); - if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { +/* if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { return Result.error("当前系统没有开启注册功能!"); - } + }*/ if (!userService.checkUserNameUnique(sysUser)) { return Result.error("保存用户'" + username + "'失败,注册账号已存在"); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/FirmMapper.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/FirmMapper.java new file mode 100644 index 0000000..e4faaeb --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/FirmMapper.java @@ -0,0 +1,17 @@ +package com.muyu.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.common.system.domain.Firm; +import org.apache.ibatis.annotations.Param; + +/** + * @Author:张腾 + * @Package:com.muyu.system.mapper + * @Project:cloud-server-8 + * @name:FirmMapper + * @Date:2024/9/25 22:17 + */ +public interface FirmMapper extends BaseMapper { + + Firm findByFirmName(@Param("firmName") String firmName); +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/FirmService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/FirmService.java new file mode 100644 index 0000000..fccc82f --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/FirmService.java @@ -0,0 +1,15 @@ +package com.muyu.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.common.system.domain.Firm; + +/** + * @Author:张腾 + * @Package:com.muyu.system.service + * @Project:cloud-server-8 + * @name:FirmService + * @Date:2024/9/25 22:17 + */ +public interface FirmService extends IService { + Firm findByFirmName(String firmName); +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/FirmServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/FirmServiceImpl.java new file mode 100644 index 0000000..7c24d73 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/FirmServiceImpl.java @@ -0,0 +1,28 @@ +package com.muyu.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.system.domain.Firm; +import com.muyu.system.mapper.FirmMapper; +import com.muyu.system.service.FirmService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * @Author:张腾 + * @Package:com.muyu.system.service.impl + * @Project:cloud-server-8 + * @name:FirmServiceImpl + * @Date:2024/9/25 22:17 + */ +@Service +@AllArgsConstructor +public class FirmServiceImpl + extends ServiceImpl implements FirmService { + + private final FirmMapper firmMapper; + + @Override + public Firm findByFirmName(String firmName) { + return firmMapper.findByFirmName(firmName); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/FirmMapper.xml b/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/FirmMapper.xml new file mode 100644 index 0000000..7b94217 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/FirmMapper.xml @@ -0,0 +1,10 @@ + + + + + +