Browse Source

Merge branch 'system-zyj' of uskycloud/usky-cloud into master

gez 2 months ago
parent
commit
954ce7b39c

+ 36 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysUserController.java

@@ -60,6 +60,42 @@ public class SysUserController extends BaseController
         return ApiResult.success(getDataTable(list));
     }
 
+    /**
+     * 运维管理系统-获取平台账号列表
+     */
+//    @Log(title = "用户列表", businessType = BusinessType.SELECT)
+    @GetMapping("/platAccountlist")
+    public ApiResult<TableDataInfo> platAccountlist(SysUser user)
+    {
+        startPage();
+        List<SysUser> list = userService.platAccountlist(user);
+        return ApiResult.success(getDataTable(list));
+    }
+
+    /**
+     * 新增运维管理系统-平台账号
+     */
+    @Log(title = "新增运维管理系统-平台账号", businessType = BusinessType.INSERT)
+    @Transactional
+    @PostMapping("/platAccountAdd")
+    public ApiResult<Void> platAccountAdd(@Validated @RequestBody SysUser user)
+    {
+        int row = userService.insertPlatAccount(user);
+        return toAjax(row);
+    }
+
+    /**
+     * 修改运维管理系统-平台账号
+     */
+    @Log(title = "修改运维管理系统-平台账号", businessType = BusinessType.UPDATE)
+    @Transactional
+    @PutMapping("/updatePlatAccount")
+    public ApiResult<Void> updatePlatAccount(@Validated @RequestBody SysUser user)
+    {
+        user.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(userService.updatePlatAccount(user));
+    }
+
     /**
      * 获取用户列表
      */

+ 22 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/TenantConfigController.java

@@ -55,6 +55,28 @@ public class TenantConfigController {
         return ApiResult.success();
     }
 
+    /**
+     * 租户管理-租户单位配置-克隆
+     * @param sysTenant
+     * @return
+     */
+    @PostMapping("cloneTenantData")
+    public ApiResult<Void> cloneTenantData(@RequestBody SysTenant sysTenant){
+        sysTenantService.cloneTenantData(sysTenant);
+        return ApiResult.success();
+    }
+
+    /**
+     * 租户管理-租户单位配置-删除
+     * @param tenantId
+     * @return
+     */
+    @DeleteMapping("/delTenantData/{tenantId}")
+    public ApiResult<Void> delTenantData(@PathVariable("tenantId") Integer tenantId){
+        sysTenantService.delTenantData(tenantId);
+        return ApiResult.success();
+    }
+
     /**
      * 租户管理-租户单位配置-修改
      *

+ 6 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysTenant.java

@@ -1,6 +1,7 @@
 package com.usky.system.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -115,4 +116,9 @@ public class SysTenant implements Serializable {
      */
     private String systemName;
 
+    /**
+     * 原租户Id
+     */
+    @TableField(exist = false)
+    private Integer originalTenantId;
 }

+ 19 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysTenantMapper.java

@@ -5,6 +5,7 @@ import com.usky.system.domain.SysTenant;
 import com.usky.system.service.vo.SysTenantTwoVo;
 import com.usky.system.service.vo.SysTenantVo;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
 
 import java.util.List;
 
@@ -16,6 +17,7 @@ import java.util.List;
  * @author ya
  * @since 2022-05-05
  */
+@Repository
 public interface SysTenantMapper extends CrudMapper<SysTenant> {
 
     List<SysTenantVo> getUserData(@Param("userId") int userId);
@@ -38,4 +40,21 @@ public interface SysTenantMapper extends CrudMapper<SysTenant> {
                                           @Param("current") Integer current,
                                           @Param("size") Integer size);
 
+    void cloneSysTenantConfig(@Param("originalTenantId") Integer originalTenantId,@Param("tenantId") Integer tenantId,@Param("createBy") String createBy);
+    void cloneSysTenantMenu(@Param("originalTenantId") Integer originalTenantId,@Param("tenantId") Integer tenantId);
+    void cloneSysMobileTenantConfig(@Param("originalTenantId") Integer originalTenantId,@Param("tenantId") Integer tenantId,@Param("createBy") String createBy);
+    void cloneSysMobileBanner(@Param("originalTenantId") Integer originalTenantId,@Param("tenantId") Integer tenantId,@Param("createBy") String createBy);
+    void cloneSysTenantPlatform(@Param("originalTenantId") Integer originalTenantId,@Param("tenantId") Integer tenantId);
+    void cloneSysMobileTenantMenu(@Param("originalTenantId") Integer originalTenantId,@Param("tenantId") Integer tenantId);
+
+    void delSysTenant(@Param("tenantId") Integer tenantId);
+    void delSysDept(@Param("tenantId") Integer tenantId);
+    void delSysUser(@Param("tenantId") Integer tenantId);
+    void delSysUserTenant(@Param("tenantId") Integer tenantId);
+    void delSysTenantConfig(@Param("tenantId") Integer tenantId);
+    void delSysTenantMenu(@Param("tenantId") Integer tenantId);
+    void delSysTenantPlatform(@Param("tenantId") Integer tenantId);
+    void delSysMobileBanner(@Param("tenantId") Integer tenantId);
+    void delSysMobileTenantConfig(@Param("tenantId") Integer tenantId);
+    void delSysMobileTenantMenu(@Param("tenantId") Integer tenantId);
 }

+ 19 - 1
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysUserService.java

@@ -23,6 +23,9 @@ public interface ISysUserService extends CrudService<SysUser> {
      */
     public List<SysUser> selectUserList(SysUser user);
 
+
+    List<SysUser> platAccountlist(SysUser user);
+
     /**
      * 根据条件分页查询用户列表
      *
@@ -148,7 +151,13 @@ public interface ISysUserService extends CrudService<SysUser> {
      */
     public int insertUser(SysUser user);
 
-
+    /**
+     * 新增平台账号信息
+     *
+     * @param user 平台账号信息
+     * @return 结果
+     */
+    public int insertPlatAccount(SysUser user);
 
     /**
      * 注册用户信息
@@ -166,6 +175,15 @@ public interface ISysUserService extends CrudService<SysUser> {
      */
     public int updateUser(SysUser user);
 
+
+    /**
+     * 修改运维管理系统-平台账号信息
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    public int updatePlatAccount(SysUser user);
+
     /**
      * 用户授权角色
      *

+ 4 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/SysTenantService.java

@@ -26,6 +26,10 @@ public interface SysTenantService extends CrudService<SysTenant> {
 
     void addTenantData(SysTenant sysTenant);
 
+    void cloneTenantData(SysTenant sysTenant);
+
+    void delTenantData(Integer tenantId);
+
     void updateTenantData(SysTenant sysTenant);
 
     CommonPage<SysTenantTwoVo> getTenantDataOne(String tenantName, String tenantManager, Integer page, Integer size);

+ 77 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysTenantServiceImpl.java

@@ -1,20 +1,29 @@
 package com.usky.system.service.impl;
 
 import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.exception.BusinessException;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.system.domain.SysDept;
 import com.usky.system.domain.SysTenant;
+import com.usky.system.domain.SysUser;
+import com.usky.system.domain.SysUserTenant;
 import com.usky.system.mapper.SysTenantMapper;
+import com.usky.system.mapper.SysUserTenantMapper;
 import com.usky.system.service.ISysDeptService;
+import com.usky.system.service.SysTenantPlatformService;
 import com.usky.system.service.SysTenantService;
 import com.usky.system.service.vo.SysTenantOneVo;
 import com.usky.system.service.vo.SysTenantTwoVo;
 import com.usky.system.service.vo.SysTenantVo;
+import com.usky.system.service.vo.TenantPlatformVo;
+import io.swagger.models.auth.In;
+import org.apache.ibatis.annotations.Select;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
@@ -31,6 +40,12 @@ public class SysTenantServiceImpl extends AbstractCrudService<SysTenantMapper, S
 
     @Autowired
     private ISysDeptService iSysDeptService;
+    @Autowired
+    private SysUserTenantMapper sysUserTenantMapper;
+    @Autowired
+    private SysTenantMapper sysTenantMapper;
+    @Autowired
+    private SysTenantPlatformService sysTenantPlatformService;
 
     @Override
     public List<SysTenantVo> getUserData() {
@@ -110,6 +125,68 @@ public class SysTenantServiceImpl extends AbstractCrudService<SysTenantMapper, S
         iSysDeptService.insertDept(sysDept);
     }
 
+    @Override
+    public void cloneTenantData(SysTenant sysTenant) {
+        Integer originalTenantId = sysTenant.getOriginalTenantId();
+
+        String uuid = UUID.randomUUID().toString();
+        uuid = uuid.replace("-", "");
+        sysTenant.setTenantCode(uuid);
+        sysTenant.setCreateBy(SecurityUtils.getUsername());
+        sysTenant.setCreateTime(LocalDateTime.now());
+        this.save(sysTenant);
+        Integer tenantId = sysTenant.getId();
+
+        SysDept sysDept = new SysDept();
+        sysDept.setTenantId(tenantId);
+        sysDept.setDeptName(sysTenant.getTenantName());
+        sysDept.setOrderNum("0");
+        sysDept.setEmail(sysTenant.getEmail());
+        sysDept.setPhone(sysTenant.getPhoneNumber());
+        sysDept.setCreateBy(SecurityUtils.getUsername());
+        iSysDeptService.insertDept(sysDept);
+
+        //在用户租户表中添加克隆账号id与租户id绑定关系
+        SysUserTenant sysUserTenant = new SysUserTenant();
+        sysUserTenant.setUserId(SecurityUtils.getUserId());
+        sysUserTenant.setTenantId(tenantId);
+        int userCount = sysUserTenantMapper.checkUserIdUnique(sysUserTenant.getTenantId(), sysUserTenant.getUserId());
+        if (userCount > 0){
+            throw new BusinessException("用户已绑定,无法重复绑定!");
+        }else {
+            sysUserTenantMapper.insert(sysUserTenant);
+        }
+
+        //克隆系统配置
+        sysTenantMapper.cloneSysTenantConfig(originalTenantId,tenantId,SecurityUtils.getUsername());
+        sysTenantMapper.cloneSysTenantMenu(originalTenantId,tenantId);
+        sysTenantMapper.cloneSysMobileTenantConfig(originalTenantId,tenantId,SecurityUtils.getUsername());
+        sysTenantMapper.cloneSysMobileBanner(originalTenantId,tenantId,SecurityUtils.getUsername());
+        //克隆应用授权和权限配置
+        sysTenantMapper.cloneSysTenantPlatform(originalTenantId,tenantId);
+        sysTenantMapper.cloneSysMobileTenantMenu(originalTenantId,tenantId);
+
+        //更新默认应用
+        TenantPlatformVo tenantPlatformVo = new TenantPlatformVo();
+        tenantPlatformVo.setPlatformIds(new Integer[]{Integer.parseInt(sysTenant.getSystemName())});
+        tenantPlatformVo.setRequestId(0);
+        tenantPlatformVo.setTenantId(tenantId);
+        sysTenantPlatformService.updateTenantPlatform(tenantPlatformVo);
+    }
+
+    @Override
+    public void delTenantData(Integer tenantId) {
+        sysTenantMapper.delSysTenant(tenantId);
+        sysTenantMapper.delSysDept(tenantId);
+        sysTenantMapper.delSysUser(tenantId);
+        sysTenantMapper.delSysUserTenant(tenantId);
+        sysTenantMapper.delSysTenantConfig(tenantId);
+        sysTenantMapper.delSysTenantMenu(tenantId);
+        sysTenantMapper.delSysTenantPlatform(tenantId);
+        sysTenantMapper.delSysMobileBanner(tenantId);
+        sysTenantMapper.delSysMobileTenantConfig(tenantId);
+        sysTenantMapper.delSysMobileTenantMenu(tenantId);
+    }
 
     @Override
     public void updateTenantData(SysTenant sysTenant) {

+ 67 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysUserServiceImpl.java

@@ -3,6 +3,8 @@ package com.usky.system.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.exception.BusinessErrorCode;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.exception.BusinessException;
@@ -14,6 +16,7 @@ import com.usky.system.domain.constants.UserConstants;
 import com.usky.system.mapper.*;
 import com.usky.system.model.LoginUser;
 import com.usky.system.service.ISysConfigService;
+import com.usky.system.service.ISysDeptService;
 import com.usky.system.service.ISysUserService;
 import com.usky.system.service.SysUserTenantService;
 import com.usky.system.service.vo.SysUserNewVO;
@@ -63,6 +66,9 @@ public class SysUserServiceImpl extends AbstractCrudService<SysUserMapper, SysUs
     @Autowired
     private SysUserTenantService sysUserTenantService;
 
+    @Autowired
+    private ISysDeptService deptService;
+
 
     /**
      * 根据条件分页查询用户列表
@@ -78,6 +84,55 @@ public class SysUserServiceImpl extends AbstractCrudService<SysUserMapper, SysUs
         return userMapper.selectUserList(user);
     }
 
+    @Override
+    public List<SysUser> platAccountlist(SysUser user) {
+
+        return userMapper.selectUserList(user);
+    }
+
+    /**
+     * 新增保存平台账户信息
+     *
+     * @param user 平台账户信息
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int insertPlatAccount(SysUser user) {
+
+        if (UserConstants.NOT_UNIQUE.equals(this.checkUserNameUnique(user.getUserName(),0)))
+        {
+            throw new BusinessException( "新增用户'" + user.getUserName() + "'失败,登录账号已存在");
+        }
+        if(UserConstants.NOT_UNIQUE.equals(this.checkPhoneUnique1(user.getPhonenumber(),0))){
+            throw new BusinessException("新增手机号'" + user.getPhonenumber() + "'失败,手机号已存在");
+        }
+        if(UserConstants.NOT_UNIQUE.equals(this.checkEmailUnique1(user.getEmail(),0))){
+            throw new BusinessException( "新增邮箱'" + user.getEmail() + "'失败,邮箱已存在");
+        }
+//        user.setUserType("00");
+//        user.setTenantId(SecurityUtils.getTenantId());
+        if(user.getUserType().equals("00")){
+            user.setDeptId(deptService.deptListByTenant(user.getTenantId()).get(0).getDeptId());
+        }
+
+        user.setCreateBy(SecurityUtils.getUsername());
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+
+        // 新增用户信息
+        int rows = userMapper.insertUser(user);
+        SysUserTenant sysUserTenant = new SysUserTenant();
+        sysUserTenant.setUserId(user.getUserId());
+        sysUserTenant.setIsDefault(false);
+        sysUserTenant.setTenantId(user.getTenantId());
+        sysUserTenantService.save(sysUserTenant);
+        // 新增用户岗位关联
+        insertUserPost(user);
+        // 新增用户与角色管理
+        insertUserRole(user);
+        return rows;
+    }
+
     /**
      * 根据条件分页查询用户列表
      *
@@ -361,6 +416,18 @@ public class SysUserServiceImpl extends AbstractCrudService<SysUserMapper, SysUs
         return userMapper.updateUser(user);
     }
 
+    /**
+     * 修改保存运维管理系统-平台账号信息
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int updatePlatAccount(SysUser user) {
+        return userMapper.updateUser(user);
+    }
+
     /**
      * 用户授权角色
      *

+ 80 - 0
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysTenantMapper.xml

@@ -98,5 +98,85 @@
             limit #{current},#{size}
         </if>
     </select>
+    <insert id="cloneSysTenantConfig">
+        insert into sys_tenant_config (tenant_id,login_title,login_logo,login_back_url,login_footer,login_type,middle_logo,middle_back_url,middle_title,middle_footer,home_logo,home_page_url,home_layout,home_style,create_by,create_time,label_icon,middle_status,large_screen_url,cloud_type,cloud_url,message_status,middle_type)
+        select  #{tenantId},login_title,login_logo,login_back_url,login_footer,login_type,middle_logo,middle_back_url,middle_title,middle_footer,home_logo,home_page_url,home_layout,home_style,#{createBy},sysdate(),label_icon,middle_status,large_screen_url,cloud_type,cloud_url,message_status,middle_type
+            from sys_tenant_config
+            <where>
+                tenant_id = #{originalTenantId}
+            </where>
+    </insert>
+    <insert id="cloneSysTenantMenu">
+        insert into sys_tenant_menu (tenant_id,menu_id,menu_alias_name)
+        select  #{tenantId},menu_id,menu_alias_name
+        from sys_tenant_menu
+        <where>
+            tenant_id = #{originalTenantId}
+        </where>
+    </insert>
+    <insert id="cloneSysMobileTenantConfig">
+        insert into sys_mobile_tenant_config (tenant_id,login_domain,login_title,login_logo,login_back_url,login_footer,login_type,middle_url,home_logo,home_layout,home_style,create_by,create_time)
+        select  #{tenantId},login_domain,login_title,login_logo,login_back_url,login_footer,login_type,middle_url,home_logo,home_layout,home_style,#{createBy},sysdate()
+        from sys_mobile_tenant_config
+        <where>
+            tenant_id = #{originalTenantId}
+        </where>
+    </insert>
+    <insert id="cloneSysMobileBanner">
+        INSERT INTO sys_mobile_banner (tenant_id,open_not,carousel_time,banner_path1,banner_path2,banner_path3,banner_path4,banner_path5,link_type1,link_type2,link_type3,link_type4,link_type5,link_url1,link_url2,link_url3,link_url4,link_url5,create_by,create_time)
+        SELECT  #{tenantId},open_not,carousel_time,banner_path1,banner_path2,banner_path3,banner_path4,banner_path5,link_type1,link_type2,link_type3,link_type4,link_type5,link_url1,link_url2,link_url3,link_url4,link_url5,#{createBy},sysdate()
+        FROM sys_mobile_banner
+        <where>
+            tenant_id = #{originalTenantId}
+        </where>
+    </insert>
+
+    <insert id="cloneSysTenantPlatform">
+        INSERT INTO sys_tenant_platform (tenant_id,platform_id,is_default)
+        SELECT  #{tenantId},platform_id,is_default
+        FROM sys_tenant_platform
+        <where>
+            tenant_id = #{originalTenantId}
+        </where>
+    </insert>
+    <insert id="cloneSysMobileTenantMenu">
+        insert into sys_mobile_tenant_menu (tenant_id,menu_id,menu_alias_name)
+        select  #{tenantId},menu_id,menu_alias_name
+        from sys_mobile_tenant_menu
+        <where>
+            tenant_id = #{originalTenantId}
+        </where>
+    </insert>
+
+    <delete id="delSysTenant">
+        delete from sys_tenant WHERE id = #{tenantId}
+    </delete>
+    <delete id="delSysDept">
+        delete from sys_dept WHERE tenant_id = #{tenantId}
+    </delete>
+    <delete id="delSysUser">
+        delete from sys_user where tenant_id = #{tenantId}
+    </delete>
+    <delete id="delSysUserTenant">
+        delete from sys_user_tenant where tenant_id = #{tenantId}
+    </delete>
+    <delete id="delSysTenantConfig">
+        delete from sys_tenant_config where tenant_id = #{tenantId}
+    </delete>
+    <delete id="delSysTenantMenu">
+        delete from sys_tenant_menu where tenant_id = #{tenantId}
+    </delete>
+    <delete id="delSysTenantPlatform">
+        delete from sys_tenant_platform where tenant_id = #{tenantId}
+    </delete>
+    <delete id="delSysMobileBanner">
+        delete from sys_mobile_banner where tenant_id = #{tenantId}
+    </delete>
+    <delete id="delSysMobileTenantConfig">
+        delete from sys_mobile_tenant_config where tenant_id = #{tenantId}
+    </delete>
+    <delete id="delSysMobileTenantMenu">
+        delete from sys_mobile_tenant_menu where tenant_id = #{tenantId}
+    </delete>
 
 </mapper>

+ 1 - 3
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysUserMapper.xml

@@ -22,8 +22,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="loginDate"    column="login_date"   />
 		<result property="createBy"     column="create_by"    />
 		<result property="createTime"   column="create_time"  />
-		<result property="updateBy"     column="update_by"    />
-		<result property="updateTime"   column="update_time"  />
 		<result property="remark"       column="remark"       />
 		<result property="tenantId"       column="tenant_id"       />
 		<result property="address"       column="address"       />
@@ -61,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
     
     <select id="selectUserList" parameterType="com.usky.system.domain.SysUser" resultMap="SysUserResult">
-		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex,
+		select u.user_id, u.dept_id, u.user_name, u.nick_name, u.user_type, u.email, u.phonenumber, u.sex, u.full_name, u.avatar, u.password,
 		u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
 		from sys_user_tenant ut
 		left join sys_user u on ut.user_id = u.user_id