From 2b559984aac61a3f450754f367845eef0b310616 Mon Sep 17 00:00:00 2001 From: Wang YiHang <3060234389@qq.com> Date: Tue, 8 Oct 2024 20:41:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=BA=90=E7=9A=84=E4=BB=A3=E7=A0=81=E4=BB=8E=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E5=B1=82=E8=BD=AC=E7=A7=BB=E5=88=B0=E4=B8=9A=E5=8A=A1=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysFirmController.java | 119 +--------------- .../muyu/system/domain/req/SysFirmReq.java | 30 ---- .../muyu/system/service/ISysFirmService.java | 2 + .../service/impl/SysFirmServiceImpl.java | 134 +++++++++++++++++- 4 files changed, 136 insertions(+), 149 deletions(-) delete mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysFirmReq.java diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmController.java index ef6b67b..7028916 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmController.java @@ -9,11 +9,8 @@ import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.system.domain.SysDept; import com.muyu.common.system.domain.SysEnt; -import com.muyu.common.system.domain.SysRole; import com.muyu.common.system.domain.SysUser; import com.muyu.system.domain.SysFirm; -import com.muyu.system.domain.SysMenu; -import com.muyu.system.domain.req.SysFirmReq; import com.muyu.system.service.ISysFirmService; import com.muyu.system.service.SysEntService; import com.muyu.system.service.impl.SysConfigServiceImpl; @@ -32,7 +29,6 @@ import java.sql.SQLException; import java.sql.Statement; import java.util.Arrays; import java.util.List; -import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -48,21 +44,6 @@ public class SysFirmController extends BaseController { @Resource private ISysFirmService sysFirmService; - @Resource - private SysEntService sysEntService; - @Resource - private SysRoleController sysRoleController; - @Resource - private SysMenuController sysMenuController; - @Resource - private SysUserController sysUserController; - @Resource - private SysDeptController sysDeptController; - - - private static final String FIRM_CREDIT_CODE = "^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$"; - @Autowired - private SysConfigServiceImpl sysConfigServiceImpl; /** * 查询企业基础信息列表 @@ -103,108 +84,10 @@ public class SysFirmController extends BaseController */ @RequiresPermissions("firm:firmInfo:add") @PostMapping - public Result add(@Validated @RequestBody SysFirmReq sysFirm) { - String firmName = sysFirm.getFirmName(); - String firmCode = sysFirm.getFirmCode(); - String firmCreditCode = sysFirm.getFirmCreditCode(); - - // 验证企业基础信息是否为空 - if (StringUtils.isAllBlank(firmName, firmCode, firmCreditCode)) { - return error("新增 企业基础信息 '" + sysFirm + "'失败,企业基础信息信息为空"); - } - - // 检查企业基础信息是否已存在 - if (sysFirmService.checkIdUnique(sysFirm)) { - return error("新增 企业基础信息 '" + sysFirm + "'失败,企业基础信息已存在"); - } - - // 验证统一社会信用代码格式 - if (!isValidFirmCreditCode(firmCreditCode)) { - return error("新增 企业基础信息 '" + sysFirm + "'失败,统一社会信用代码格式不正确"); - } - - //添加部门 - SysDept sysDept = new SysDept(); - sysDept.setFirmCode(firmCode); - sysDept.setParentId(100L); - sysDept.setDeptName(firmName); - sysDept.setAncestors("0,100"); - sysDept.setOrderNum(3); - sysDept.setStatus("0"); - sysDept.setDelFlag("0"); - - sysDeptController.add(sysDept); - - // 设置创建者和状态 - sysFirm.setCreateBy(SecurityUtils.getUsername()); - - //添加用户与用户角色 - SysUser sysUser = new SysUser(); - sysUser.setFirmCode(firmCode); - sysUser.setUserName(sysFirm.getFirmCode()+"-admin"); - sysUser.setNickName(sysFirm.getFirmName()+"管理员"); - sysUser.setPassword(sysConfigServiceImpl.selectConfigByKey("sys.user.initPassword")); - sysUser.setDeptId(sysDept.getDeptId()); - sysUser.setRoleIds(new Long[]{119L}); - sysUserController.add(sysUser); - - // 创建数据库和表 - try { - createDatabaseAndTables(firmCode); - } catch (SQLException e) { - return error("数据库操作失败: " + e.getMessage()); - } - - // 保存企业信息 - SysEnt sysEnt = new SysEnt(); - sysEnt.setUserName("root"); - sysEnt.setPassword("bawei2112A"); - sysEnt.setEntCode(firmCode); - sysEnt.setDbName(firmCode); - sysEnt.setIp("47.116.173.119"); - sysEnt.setPort(3306); - sysEntService.save(sysEnt); - - sysFirm.setMemberId(1L); - + public Result add(@Validated @RequestBody SysFirm sysFirm) { return toAjax(sysFirmService.save(sysFirm)); } - // - private boolean isValidFirmCreditCode(String firmCreditCode) { - Pattern pattern = Pattern.compile(FIRM_CREDIT_CODE); - Matcher matcher = pattern.matcher(firmCreditCode); - return matcher.matches(); - } - - private void createDatabaseAndTables(String firmCode) throws SQLException { - String url = "jdbc:mysql://47.116.173.119:3306/?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"; - try (Connection connection = DriverManager.getConnection(url, "root", "bawei2112A"); - Statement statement = connection.createStatement()) { - - // 创建数据库 - statement.executeUpdate("CREATE DATABASE IF NOT EXISTS " + firmCode); - } - - // 切换到新的数据库连接 - Connection connection = null; - try { - url = "jdbc:mysql://47.116.173.119:3306/" + firmCode + "?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"; - String user = "root"; - String pwd = "bawei2112A"; - String driverClassName = "com.mysql.cj.jdbc.Driver"; - Class.forName(driverClassName); - connection = DriverManager.getConnection(url, user, pwd); - } catch (ClassNotFoundException e) { - throw new RuntimeException(e); - } - ClassPathResource rc = new ClassPathResource("static/saas_operation.sql"); - EncodedResource er = new EncodedResource(rc, "utf-8"); - ScriptUtils.executeSqlScript(connection, er); - - } - - /** * 修改企业基础信息 */ diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysFirmReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysFirmReq.java deleted file mode 100644 index 0912f00..0000000 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysFirmReq.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.muyu.system.domain.req; - -import com.muyu.common.core.annotation.Excel; -import com.muyu.system.domain.SysFirm; -import jakarta.validation.constraints.NotBlank; -import lombok.*; -import lombok.experimental.SuperBuilder; - -@Data -@SuperBuilder -@NoArgsConstructor -@AllArgsConstructor -public class SysFirmReq extends SysFirm { - - /** - * 用户账号 - */ - @Excel(name = "登录名称") - private String userName; - - /** 统一社会信用代码 */ - @NotBlank(message = "统一社会信用代码不可为空") - private String firmCreditCode; - /** - * 密码 - */ - private String password; - - -} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/ISysFirmService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/ISysFirmService.java index 728ad11..dd91286 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/ISysFirmService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/ISysFirmService.java @@ -36,4 +36,6 @@ public interface ISysFirmService extends IService { */ Boolean checkIdUnique(SysFirm sysFirm); + + boolean save(SysFirm sysFirm); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysFirmServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysFirmServiceImpl.java index 5e5ffcd..1107336 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysFirmServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysFirmServiceImpl.java @@ -3,15 +3,34 @@ package com.muyu.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.util.StringUtil; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.common.system.domain.SysDept; +import com.muyu.common.system.domain.SysEnt; +import com.muyu.common.system.domain.SysUser; +import com.muyu.system.controller.SysDeptController; +import com.muyu.system.controller.SysMenuController; +import com.muyu.system.controller.SysRoleController; +import com.muyu.system.controller.SysUserController; import com.muyu.system.domain.SysFirm; import com.muyu.system.mapper.SysFirmMapper; import com.muyu.system.service.ISysFirmService; +import com.muyu.system.service.SysEntService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.support.EncodedResource; +import org.springframework.jdbc.datasource.init.ScriptUtils; import org.springframework.stereotype.Service; import org.springframework.util.Assert; -import org.springframework.util.StringUtils; import javax.annotation.Resource; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * 企业基础信息Service业务层处理 @@ -26,6 +45,17 @@ public class SysFirmServiceImpl @Resource private SysFirmMapper sysFirmMapper; + @Resource + private SysEntService sysEntService; + @Resource + private SysUserController sysUserController; + @Resource + private SysDeptController sysDeptController; + @Autowired + private SysConfigServiceImpl sysConfigServiceImpl; + + private static final String FIRM_CREDIT_CODE = "^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$"; + /** * 精确查询企业基础信息 @@ -78,6 +108,108 @@ public class SysFirmServiceImpl return this.count(queryWrapper) > 0; } + @Override + public boolean save(SysFirm sysFirm) { + String firmName = sysFirm.getFirmName(); + String firmCode = sysFirm.getFirmCode(); + String firmCreditCode = sysFirm.getFirmCreditCode(); + + // 验证企业基础信息是否为空 + if (StringUtils.isAllBlank(firmName, firmCode, firmCreditCode)) { + throw new RuntimeException("新增 企业基础信息 '" + sysFirm + "'失败,企业基础信息信息为空"); + } + + // 检查企业基础信息是否已存在 + if (this.checkIdUnique(sysFirm)) { + throw new RuntimeException("新增 企业基础信息 '" + sysFirm + "'失败,企业基础信息已存在"); + } + + // 验证统一社会信用代码格式 + if (!isValidFirmCreditCode(firmCreditCode)) { + throw new RuntimeException("新增 企业基础信息 '" + sysFirm + "'失败,统一社会信用代码格式不正确"); + } + + //添加部门 + SysDept sysDept = new SysDept(); + sysDept.setFirmCode(firmCode); + sysDept.setParentId(100L); + sysDept.setDeptName(firmName); + sysDept.setAncestors("0,100"); + sysDept.setOrderNum(3); + sysDept.setStatus("0"); + sysDept.setDelFlag("0"); + + sysDeptController.add(sysDept); + + // 设置创建者和状态 + sysFirm.setCreateBy(SecurityUtils.getUsername()); + + //添加用户与用户角色 + SysUser sysUser = new SysUser(); + sysUser.setFirmCode(firmCode); + sysUser.setUserName(sysFirm.getFirmCode()+"-admin"); + sysUser.setNickName(sysFirm.getFirmName()+"管理员"); + sysUser.setPassword(sysConfigServiceImpl.selectConfigByKey("sys.user.initPassword")); + sysUser.setDeptId(sysDept.getDeptId()); + sysUser.setRoleIds(new Long[]{119L}); + sysUserController.add(sysUser); + + // 创建数据库和表 + try { + createDatabaseAndTables(firmCode); + } catch (SQLException e) { + throw new RuntimeException("数据库操作失败: " + e.getMessage()); + } + + // 保存企业信息 + SysEnt sysEnt = new SysEnt(); + sysEnt.setUserName("root"); + sysEnt.setPassword("bawei2112A"); + sysEnt.setEntCode(firmCode); + sysEnt.setDbName(firmCode); + sysEnt.setIp("47.116.173.119"); + sysEnt.setPort(3306); + sysEntService.save(sysEnt); + + sysFirm.setMemberId(1L); + + return true; + } + + + + private boolean isValidFirmCreditCode(String firmCreditCode) { + Pattern pattern = Pattern.compile(FIRM_CREDIT_CODE); + Matcher matcher = pattern.matcher(firmCreditCode); + return matcher.matches(); + } + + private void createDatabaseAndTables(String firmCode) throws SQLException { + String url = "jdbc:mysql://47.116.173.119:3306/?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"; + try (Connection connection = DriverManager.getConnection(url, "root", "bawei2112A"); + Statement statement = connection.createStatement()) { + + // 创建数据库 + statement.executeUpdate("CREATE DATABASE IF NOT EXISTS " + firmCode); + } + + // 切换到新的数据库连接 + Connection connection = null; + try { + url = "jdbc:mysql://47.116.173.119:3306/" + firmCode + "?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"; + String user = "root"; + String pwd = "bawei2112A"; + String driverClassName = "com.mysql.cj.jdbc.Driver"; + Class.forName(driverClassName); + connection = DriverManager.getConnection(url, user, pwd); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + ClassPathResource rc = new ClassPathResource("static/saas_operation.sql"); + EncodedResource er = new EncodedResource(rc, "utf-8"); + ScriptUtils.executeSqlScript(connection, er); + + } }