wangzl 4 місяців тому
батько
коміт
52352538f2

+ 1 - 1
tr-modules-api/tr-module-system-api/src/main/java/cn/tr/module/api/sys/sms/BizSmsPOJO.java

@@ -10,7 +10,7 @@ import javax.validation.constraints.Pattern;
 
 @Data
 public class BizSmsPOJO {
-    @ApiModelProperty("短信类型 1、医生端登录 2、修改密码(忘记密码)")
+    @ApiModelProperty("短信类型 1、医生端登录 2、修改密码(忘记密码) 3、分享链接增加医院管理员短信")
     @NotNull(message = "短信类型不能为空")
     private String type;
 

+ 71 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/controller/BizHospitalController.java

@@ -0,0 +1,71 @@
+package cn.tr.module.smart.common.controller;
+
+import cn.dev33.satoken.annotation.SaIgnore;
+import cn.tr.core.annotation.TenantIgnore;
+import cn.tr.core.pojo.CommonResult;
+import cn.tr.core.validation.Insert;
+import cn.tr.module.smart.common.service.IBizHospitalService;
+import cn.tr.module.sys.tenant.dto.SysAdminAddCacheDTO;
+import cn.tr.module.sys.tenant.dto.SysAdminAddDTO;
+import cn.tr.module.sys.tenant.dto.SysTenantAndAdminAddDTO;
+import cn.tr.module.sys.tenant.dto.SysTenantAndRoleAddDTO;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author wangzl
+ * @description: TODO
+ * @date 2025/8/1 16:36
+ */
+@Api(tags = "医院操作")
+@RestController
+@RequestMapping("/common/hospital")
+@AllArgsConstructor
+public class BizHospitalController {
+
+    @Autowired
+    private IBizHospitalService bizHospitalService;
+
+    @ApiOperationSupport(author = "wangzl",order = 7)
+    @ApiOperation(value="生成添加管理员链接",notes = "权限: 无")
+    @GetMapping("/generate/{tenantId}")
+    public CommonResult<SysAdminAddCacheDTO> generateAddAdmin(@PathVariable String tenantId) {
+        return CommonResult.success(bizHospitalService.generateAddAdmin(tenantId));
+    }
+    @ApiOperationSupport(author = "wangzl",order = 8)
+    @ApiOperation(value="根据医院ID获取缓存信息",notes = "权限: 无")
+    @GetMapping("/getCache/{tenantId}")
+    public CommonResult<SysAdminAddCacheDTO> getCache(@PathVariable String tenantId) {
+        return CommonResult.success(bizHospitalService.getCache(tenantId));
+    }
+    @ApiOperationSupport(author = "wangzl",order = 9)
+    @ApiOperation(value="通过邀请连接存储管理员信息",notes = "权限: 无")
+    @PostMapping("/save/admin")
+    @SaIgnore
+    @TenantIgnore
+    public CommonResult<Boolean> saveAdmin(@RequestBody@Validated(Insert.class) SysAdminAddDTO adminAddDTO) {
+        return CommonResult.success(bizHospitalService.saveAdmin(adminAddDTO));
+    }
+    @ApiOperationSupport(author = "wangzl",order = 10)
+    @ApiOperation(value="手动添加医院",notes = "权限: 无")
+    @PostMapping("/save/hospital")
+    @SaIgnore
+    @TenantIgnore
+    public CommonResult<Boolean> saveHospital(@RequestBody@Validated(Insert.class) SysTenantAndRoleAddDTO addDTO) {
+        return CommonResult.success(bizHospitalService.saveHospital(addDTO));
+    }
+
+    @ApiOperationSupport(author = "wangzl",order = 11)
+    @ApiOperation(value = "根据邀请添加医院和管理员",notes = "权限: 无")
+    @PostMapping("/save/hospitalAndAdmin")
+    @SaIgnore
+    @TenantIgnore
+    public CommonResult<Boolean> saveHospitalAndAdmin(@RequestBody@Validated(Insert.class) SysTenantAndAdminAddDTO addDTO) {
+        return CommonResult.success(bizHospitalService.saveHospitalAndAdmin(addDTO));
+    }
+}

+ 45 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizHospitalService.java

@@ -2,6 +2,11 @@ package cn.tr.module.smart.common.service;
 
 import cn.tr.module.smart.common.dto.BizHospitalDTO;
 import cn.tr.module.smart.common.dto.BizHospitalQueryDTO;
+import cn.tr.module.sys.tenant.dto.SysAdminAddCacheDTO;
+import cn.tr.module.sys.tenant.dto.SysAdminAddDTO;
+import cn.tr.module.sys.tenant.dto.SysTenantAndAdminAddDTO;
+import cn.tr.module.sys.tenant.dto.SysTenantAndRoleAddDTO;
+
 import java.util.*;
 
 /**
@@ -51,4 +56,44 @@ public interface IBizHospitalService{
      * @date    2025/05/23 16:33
      */
     int removeBizHospitalByIds(Collection<String> ids);
+
+    /**
+     * 生成添加管理员链接
+     *
+     * @param tenantId
+     * @return
+     */
+    SysAdminAddCacheDTO generateAddAdmin(String tenantId);
+
+    /**
+     * 获取缓存信息
+     *
+     * @param tenantId
+     * @return
+     */
+    SysAdminAddCacheDTO getCache(String tenantId);
+
+    /**
+     * 保存管理员信息
+     *
+     * @param adminAddDTO
+     * @return
+     */
+    boolean saveAdmin(SysAdminAddDTO adminAddDTO);
+
+    /**
+     * 手动添加医院
+     *
+     * @param addDTO
+     * @return
+     */
+    boolean saveHospital(SysTenantAndRoleAddDTO addDTO);
+
+    /**
+     * 根据邀请添加医院和管理员
+     *
+     * @param addDTO
+     * @return
+     */
+    boolean saveHospitalAndAdmin(SysTenantAndAdminAddDTO addDTO);
 }

+ 212 - 5
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizHospitalServiceImpl.java

@@ -1,6 +1,30 @@
 package cn.tr.module.smart.common.service.impl;
 
+import cn.hutool.core.comparator.CompareUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.tr.core.enums.CreateEnum;
 import cn.tr.core.exception.TRExcCode;
+import cn.tr.core.utils.PswUtils;
+import cn.tr.module.smart.common.service.IBizSmsService;
+import cn.tr.module.smart.common.util.CacheUtil;
+import cn.tr.module.sys.tenant.dto.*;
+import cn.tr.module.sys.tenant.mapper.SysTenantMapper;
+import cn.tr.module.sys.tenant.po.SysTenantPO;
+import cn.tr.module.sys.tenant.po.SysTenantPackagePO;
+import cn.tr.module.sys.tenant.repository.SysTenantPackageRepository;
+import cn.tr.module.sys.tenant.repository.SysTenantRepository;
+import cn.tr.module.sys.user.enums.UserStatusEnum;
+import cn.tr.module.sys.user.mapper.SysUserMapper;
+import cn.tr.module.sys.user.po.SysRolePO;
+import cn.tr.module.sys.user.po.SysUserPO;
+import cn.tr.module.sys.user.po.SysUserRolePO;
+import cn.tr.module.sys.user.po.SysUserTenantPO;
+import cn.tr.module.sys.user.repository.SysRoleRepository;
+import cn.tr.module.sys.user.repository.SysUserRepository;
+import cn.tr.module.sys.user.repository.SysUserRoleRepository;
+import cn.tr.module.sys.user.repository.SysUserTenantRepository;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import cn.hutool.core.collection.CollectionUtil;
@@ -24,7 +48,22 @@ import cn.tr.module.smart.common.mapper.BizHospitalMapper;
 public class BizHospitalServiceImpl implements IBizHospitalService {
     @Autowired
     private BizHospitalRepository baseRepository;
+    @Autowired
+    private CacheUtil cacheUtil;
+    @Autowired
+    private SysUserRepository sysUserRepository;
+    @Autowired
+    private SysRoleRepository sysRoleRepository;
+    @Autowired
+    private SysUserRoleRepository sysUserRoleRepository;
+    @Autowired
+    private SysUserTenantRepository sysUserTenantRepository;
+    @Autowired
+    private SysTenantPackageRepository sysTenantPackageRepository;
+    @Autowired
+    private SysTenantRepository tenantRepository;
 
+    private IBizSmsService bizSmsService;
 
     /**
     * 根据条件查询医院信息
@@ -38,7 +77,7 @@ public class BizHospitalServiceImpl implements IBizHospitalService {
                 baseRepository.selectList(new LambdaQueryWrapper<BizHospitalPO>()
                 )
         );
-    };
+    }
 
     /**
     * 根据id查询医院信息
@@ -49,7 +88,7 @@ public class BizHospitalServiceImpl implements IBizHospitalService {
     @Override
     public BizHospitalDTO selectBizHospitalById(String id){
         return BizHospitalMapper.INSTANCE.convertDto(baseRepository.selectById(id));
-    };
+    }
 
     /**
     * 编辑医院信息
@@ -61,7 +100,7 @@ public class BizHospitalServiceImpl implements IBizHospitalService {
     @Override
     public boolean updateBizHospitalById(BizHospitalDTO source){
             return baseRepository.updateById(BizHospitalMapper.INSTANCE.convertPO(source))!=0;
-    };
+    }
 
     /**
     * 新增医院信息
@@ -73,7 +112,7 @@ public class BizHospitalServiceImpl implements IBizHospitalService {
     @Transactional(rollbackFor = Exception.class)
     public boolean insertBizHospital(BizHospitalDTO source){
         return baseRepository.insert(BizHospitalMapper.INSTANCE.convertPO(source))!=0;
-    };
+    }
 
     /**
     * 删除医院信息详情
@@ -88,5 +127,173 @@ public class BizHospitalServiceImpl implements IBizHospitalService {
             throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
         }
         return baseRepository.deleteBatchIds(ids);
-    };
+    }
+    @Override
+    public SysAdminAddCacheDTO generateAddAdmin(String tenantId) {
+        if (StrUtil.isEmpty(tenantId)) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "请传入医院ID");
+        }
+        SysTenantPO sysTenantPO = tenantRepository.selectById(tenantId);
+        if (ObjectUtil.isNull(sysTenantPO)) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "该医院不存在");
+        }
+        if (StrUtil.isNotEmpty(sysTenantPO.getTenantUserId())) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "该医院已经存在管理员,无须添加");
+        }
+        //增加缓存
+        return cacheUtil.addAdminCache(604800L, tenantId, sysTenantPO.getName());
+    }
+
+    @Override
+    public SysAdminAddCacheDTO getCache(String tenantId) {
+        return cacheUtil.getAdminCache(tenantId);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean saveAdmin(SysAdminAddDTO adminAddDTO) {
+        //校验失效
+        SysAdminAddCacheDTO adminCache = cacheUtil.getAdminCache(adminAddDTO.getTenantId());
+        //缓存对象内容为空即缓存不存在
+        if (ObjectUtil.isNull(adminCache) || StrUtil.isBlank(adminCache.getTenantId())) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "缓存已失效,请重新生成链接添加管理员");
+        }
+        if (CompareUtil.compare(adminCache.getTenantId(), adminCache.getTenantId(), true) != 0) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "医院ID跟缓存中的不匹配");
+        }
+        //校验手机code码正确
+        String phoneCode = bizSmsService.getSmsCode("3", adminAddDTO.getPhone());
+        if (!StrUtil.equals(phoneCode, adminAddDTO.getSmsCode())) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "手机验证码错误");
+        }
+        //查询手机号是否已经存储了如果已经存储使用已经存储的用户
+        SysUserPO sysUserPO = sysUserRepository.selectOne(new LambdaQueryWrapper<SysUserPO>()
+                .eq(SysUserPO::getPhone, adminAddDTO.getPhone())
+                .last("limit 1"));
+        if (Objects.isNull(sysUserPO)) {
+            sysUserPO = SysUserMapper.INSTANCE.addAdminDTOtoPO(adminAddDTO);
+            sysUserPO.setUsername(adminAddDTO.getPhone());
+            sysUserPO.setPassword(PswUtils.encryptPassword(adminAddDTO.getPassword()));
+            sysUserPO.setStatus(UserStatusEnum.normal.getValue());
+            sysUserRepository.insert(sysUserPO);
+        }
+        SysUserTenantPO sysUserTenantPO = new SysUserTenantPO();
+        sysUserTenantPO.setUserId(sysUserPO.getId());
+        sysUserTenantPO.setTenantId(adminAddDTO.getTenantId());
+        sysUserTenantRepository.insert(sysUserTenantPO);
+        SysRolePO sysRolePO = sysRoleRepository.selectOne(new LambdaQueryWrapper<SysRolePO>()
+                .eq(SysRolePO::getTenantId, adminAddDTO.getTenantId())
+                .eq(SysRolePO::getCode, "admin")
+                .last("limit 1"));
+        if (ObjectUtil.isNull(sysRolePO)) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "该医院没有角色,请先添加角色");
+        }
+        SysUserRolePO sysUserRolePO = new SysUserRolePO();
+        sysUserRolePO.setUserId(sysUserPO.getId());
+        sysUserRolePO.setRoleId(sysRolePO.getId());
+        sysUserRolePO.setTenantId(adminAddDTO.getTenantId());
+        //回写管理员ID到医院包
+        tenantRepository.update(null, new LambdaUpdateWrapper<SysTenantPO>()
+                .set(SysTenantPO::getTenantUserId, sysUserPO.getId())
+                .eq(SysTenantPO::getId, adminAddDTO.getTenantId()));
+        return sysUserRoleRepository.insert(sysUserRolePO) != 0;
+    }
+
+    /**
+     * 手动添加医院
+     *
+     * @param addDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean saveHospital(SysTenantAndRoleAddDTO addDTO) {
+        SysTenantPO sysTenantPO = tenantRepository.selectOne(new LambdaQueryWrapper<SysTenantPO>()
+                .eq(SysTenantPO::getName, addDTO.getName()));
+        if (ObjectUtil.isNotNull(sysTenantPO)) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "医院名称不能重复");
+        }
+        sysTenantPO = SysTenantMapper.INSTANCE.toPO(addDTO);
+        sysTenantPO.setType(CreateEnum.sys.name());
+        sysTenantPO.setDisable(Boolean.FALSE);
+        tenantRepository.insert(sysTenantPO);
+        SysRolePO sysRolePO = new SysRolePO();
+        sysRolePO.setTenantId(sysTenantPO.getId());
+        sysRolePO.setCode("admin");
+        sysRolePO.setName("管理员");
+        sysRolePO.setType(CreateEnum.sys.name());
+        sysRolePO.setDisable(Boolean.FALSE);
+        sysRolePO.setStatus(Boolean.FALSE);
+        sysRolePO.setSort(1);
+        return sysRoleRepository.insert(sysRolePO) != 0;
+    }
+
+    /**
+     * 根据邀请添加医院和管理员
+     *
+     * @param addDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean saveHospitalAndAdmin(SysTenantAndAdminAddDTO addDTO) {
+        SysTenantAddNoPackageDTO tenantDTO = addDTO.getTenantDTO();
+        SysAdminNoTenantIdAddDTO adminDTO = addDTO.getAdminDTO();
+        SysTenantPO sysTenantPO = tenantRepository.selectOne(new LambdaQueryWrapper<SysTenantPO>()
+                .eq(SysTenantPO::getName, tenantDTO.getName()));
+        if (ObjectUtil.isNotNull(sysTenantPO)) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "医院名称不能重复");
+        }
+
+        //校验手机code码正确
+        String phoneCode = bizSmsService.getSmsCode("3", adminDTO.getPhone());
+        if (!StrUtil.equals(phoneCode, adminDTO.getSmsCode())) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "手机验证码错误");
+        }
+        sysTenantPO = SysTenantMapper.INSTANCE.toPONoPackage(tenantDTO);
+        sysTenantPO.setType(CreateEnum.sys.name());
+        //根据确定的套餐修改查询
+        SysTenantPackagePO sysTenantPackagePO = sysTenantPackageRepository.selectOne(new LambdaQueryWrapper<SysTenantPackagePO>()
+                .eq(SysTenantPackagePO::getPackageCode, "hospital")
+                .eq(SysTenantPackagePO::getType, CreateEnum.custom.name())
+                .last("limit 1"));
+        sysTenantPO.setPackageId(sysTenantPackagePO.getId());
+        sysTenantPO.setDisable(Boolean.FALSE);
+        tenantRepository.insert(sysTenantPO);
+        SysRolePO sysRolePO = new SysRolePO();
+        sysRolePO.setTenantId(sysTenantPO.getId());
+        sysRolePO.setCode("admin");
+        sysRolePO.setName("管理员");
+        sysRolePO.setType(CreateEnum.sys.name());
+        sysRolePO.setDisable(Boolean.FALSE);
+        sysRolePO.setStatus(Boolean.FALSE);
+        sysRolePO.setSort(1);
+        sysRoleRepository.insert(sysRolePO);
+        //存储管理员
+        //查询手机号是否已经存储了如果已经存储使用已经存储的用户
+        SysUserPO sysUserPO = sysUserRepository.selectOne(new LambdaQueryWrapper<SysUserPO>()
+                .eq(SysUserPO::getPhone, adminDTO.getPhone())
+                .last("limit 1"));
+        if (Objects.isNull(sysUserPO)) {
+            sysUserPO = SysUserMapper.INSTANCE.addAdminDTOtoPO(adminDTO);
+            sysUserPO.setUsername(adminDTO.getPhone());
+            sysUserPO.setPassword(PswUtils.encryptPassword(adminDTO.getPassword()));
+            sysUserPO.setStatus(UserStatusEnum.normal.getValue());
+            sysUserPO.setTenantId(sysTenantPO.getId());
+            sysUserRepository.insert(sysUserPO);
+        }
+        SysUserTenantPO sysUserTenantPO = new SysUserTenantPO();
+        sysUserTenantPO.setUserId(sysUserPO.getId());
+        sysUserTenantPO.setTenantId(sysTenantPO.getId());
+        sysUserTenantRepository.insert(sysUserTenantPO);
+        SysUserRolePO sysUserRolePO = new SysUserRolePO();
+        sysUserRolePO.setUserId(sysUserPO.getId());
+        sysUserRolePO.setRoleId(sysRolePO.getId());
+        sysUserRolePO.setTenantId(sysTenantPO.getId());
+        //回写管理员ID到医院包
+        tenantRepository.update(null, new LambdaUpdateWrapper<SysTenantPO>()
+                .set(SysTenantPO::getTenantUserId, sysUserPO.getId())
+                .eq(SysTenantPO::getId, sysTenantPO.getId()));
+        return sysUserRoleRepository.insert(sysUserRolePO) != 0;
+    }
 }

+ 1 - 27
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/tenant/util/CacheUtil.java → tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/util/CacheUtil.java

@@ -1,4 +1,4 @@
-package cn.tr.module.sys.tenant.util;
+package cn.tr.module.smart.common.util;
 
 import cn.tr.module.sys.tenant.dto.OAuthTokenAddCacheDTO;
 import cn.tr.module.sys.tenant.dto.SysAdminAddCacheDTO;
@@ -29,32 +29,6 @@ public class CacheUtil {
     public SysAdminAddCacheDTO getAdminCache(String tenantId){
         return null;
     }
-    public void putPhoneCode(){
 
-    }
-
-    public String getPhoneCode(){
-        return "123";
-    }
 
-
-    @CachePut(value = "global:coze:token#900",key="'coze_access_token'")
-    public OAuthTokenAddCacheDTO setToken(OAuthTokenAddCacheDTO token){
-        return OAuthTokenAddCacheDTO.builder()
-                .accessToken(token.getAccessToken())
-                .refreshToken(token.getRefreshToken())
-                .tokenType(token.getTokenType())
-                .expiresIn(token.getExpiresIn())
-                .build();
-    }
-
-    @Cacheable(value = "global:coze:token#900",key="'coze_access_token'")
-    public OAuthTokenAddCacheDTO getToken(){
-        return null;
-    }
-
-    @CachePut(value = "global:coze:token#900",key="'coze_access_token'")
-    public OAuthTokenAddCacheDTO updateToken(OAuthTokenAddCacheDTO tokenDTO) {
-        return tokenDTO;
-    }
 }

+ 0 - 37
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/tenant/controller/SysTenantController.java

@@ -86,41 +86,4 @@ public class SysTenantController extends BaseController{
     public CommonResult<SysTenantCommonDTO> selectList() {
         return CommonResult.success(sysTenantService.selectSysTenantById(LoginUserContextHolder.getUser().getTenantId()));
     }
-    @ApiOperationSupport(author = "wangzl",order = 7)
-    @ApiOperation(value="生成添加管理员链接",notes = "权限: 无")
-    @GetMapping("/generate/{tenantId}")
-    public CommonResult<SysAdminAddCacheDTO> generateAddAdmin(@PathVariable String tenantId) {
-        return CommonResult.success(sysTenantService.generateAddAdmin(tenantId));
-    }
-    @ApiOperationSupport(author = "wangzl",order = 8)
-    @ApiOperation(value="根据医院ID获取缓存信息",notes = "权限: 无")
-    @GetMapping("/getCache/{tenantId}")
-    public CommonResult<SysAdminAddCacheDTO> getCache(@PathVariable String tenantId) {
-        return CommonResult.success(sysTenantService.getCache(tenantId));
-    }
-    @ApiOperationSupport(author = "wangzl",order = 9)
-    @ApiOperation(value="通过邀请连接存储管理员信息",notes = "权限: 无")
-    @PostMapping("/save/admin")
-    @SaIgnore
-    @TenantIgnore
-    public CommonResult<Boolean> saveAdmin(@RequestBody@Validated(Insert.class) SysAdminAddDTO adminAddDTO) {
-        return CommonResult.success(sysTenantService.saveAdmin(adminAddDTO));
-    }
-    @ApiOperationSupport(author = "wangzl",order = 10)
-    @ApiOperation(value="手动添加医院",notes = "权限: 无")
-    @PostMapping("/save/hospital")
-    @SaIgnore
-    @TenantIgnore
-    public CommonResult<Boolean> saveHospital(@RequestBody@Validated(Insert.class) SysTenantAndRoleAddDTO addDTO) {
-        return CommonResult.success(sysTenantService.saveHospital(addDTO));
-    }
-
-    @ApiOperationSupport(author = "wangzl",order = 11)
-    @ApiOperation(value = "根据邀请添加医院和管理员",notes = "权限: 无")
-    @PostMapping("/save/hospitalAndAdmin")
-    @SaIgnore
-    @TenantIgnore
-    public CommonResult<Boolean> saveHospitalAndAdmin(@RequestBody@Validated(Insert.class) SysTenantAndAdminAddDTO addDTO) {
-        return CommonResult.success(sysTenantService.saveHospitalAndAdmin(addDTO));
-    }
 }

+ 0 - 39
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/tenant/service/ISysTenantService.java

@@ -59,45 +59,6 @@ public interface ISysTenantService {
      */
     int removeSysTenantByIds(Collection<String> ids);
 
-    /**
-     * 生成添加管理员链接
-     *
-     * @param tenantId
-     * @return
-     */
-    SysAdminAddCacheDTO generateAddAdmin(String tenantId);
-
-    /**
-     * 获取缓存信息
-     *
-     * @param tenantId
-     * @return
-     */
-    SysAdminAddCacheDTO getCache(String tenantId);
-
-    /**
-     * 保存管理员信息
-     *
-     * @param adminAddDTO
-     * @return
-     */
-    boolean saveAdmin(SysAdminAddDTO adminAddDTO);
-
-    /**
-     * 手动添加医院
-     *
-     * @param addDTO
-     * @return
-     */
-    boolean saveHospital(SysTenantAndRoleAddDTO addDTO);
-
-    /**
-     * 根据邀请添加医院和管理员
-     *
-     * @param addDTO
-     * @return
-     */
-    boolean saveHospitalAndAdmin(SysTenantAndAdminAddDTO addDTO);
     /**
      * 获取当前租户的菜单id
      * @return

+ 3 - 196
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/tenant/service/impl/SysTenantServiceImpl.java

@@ -2,7 +2,6 @@ package cn.tr.module.sys.tenant.service.impl;
 
 
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.comparator.CompareUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.tr.core.annotation.TenantIgnore;
@@ -11,31 +10,19 @@ import cn.tr.core.exception.ServiceException;
 import cn.tr.core.exception.TRExcCode;
 import cn.tr.core.tenant.TenantContextHolder;
 import cn.tr.core.tenant.TenantUtils;
-import cn.tr.core.utils.PswUtils;
 import cn.tr.module.sys.config.SysConfigManager;
-import cn.tr.module.sys.tenant.dto.*;
+import cn.tr.module.sys.tenant.dto.SysTenantAddDTO;
+import cn.tr.module.sys.tenant.dto.SysTenantCommonDTO;
+import cn.tr.module.sys.tenant.dto.SysTenantQueryDTO;
 import cn.tr.module.sys.tenant.mapper.SysTenantMapper;
 import cn.tr.module.sys.tenant.po.SysTenantPO;
-import cn.tr.module.sys.tenant.po.SysTenantPackagePO;
-import cn.tr.module.sys.tenant.repository.SysTenantPackageRepository;
 import cn.tr.module.sys.tenant.repository.SysTenantRepository;
 import cn.tr.module.sys.tenant.service.ISysTenantPackageMenuService;
 import cn.tr.module.sys.tenant.service.ISysTenantService;
-import cn.tr.module.sys.tenant.util.CacheUtil;
 import cn.tr.module.sys.user.dto.*;
 import cn.tr.module.sys.user.enums.UserStatusEnum;
-import cn.tr.module.sys.user.mapper.SysUserMapper;
-import cn.tr.module.sys.user.po.SysRolePO;
-import cn.tr.module.sys.user.po.SysUserPO;
-import cn.tr.module.sys.user.po.SysUserRolePO;
-import cn.tr.module.sys.user.po.SysUserTenantPO;
-import cn.tr.module.sys.user.repository.SysRoleRepository;
-import cn.tr.module.sys.user.repository.SysUserRepository;
-import cn.tr.module.sys.user.repository.SysUserRoleRepository;
-import cn.tr.module.sys.user.repository.SysUserTenantRepository;
 import cn.tr.module.sys.user.service.*;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -87,19 +74,6 @@ public class SysTenantServiceImpl implements ISysTenantService {
     @Lazy
     private ISysTenantPackageMenuService tenantPackageMenuService;
 
-    @Autowired
-    private CacheUtil cacheUtil;
-
-    @Autowired
-    private SysUserRepository sysUserRepository;
-    @Autowired
-    private SysRoleRepository sysRoleRepository;
-    @Autowired
-    private SysUserRoleRepository sysUserRoleRepository;
-    @Autowired
-    private SysUserTenantRepository sysUserTenantRepository;
-    @Autowired
-    private SysTenantPackageRepository sysTenantPackageRepository;
 
     @Override
     @TenantIgnore
@@ -182,174 +156,7 @@ public class SysTenantServiceImpl implements ISysTenantService {
         return tenantRepository.deleteBatchIds(ids);
     }
 
-    @Override
-    public SysAdminAddCacheDTO generateAddAdmin(String tenantId) {
-        if (StrUtil.isEmpty(tenantId)) {
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "请传入医院ID");
-        }
-        SysTenantPO sysTenantPO = tenantRepository.selectById(tenantId);
-        if (ObjectUtil.isNull(sysTenantPO)) {
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "该医院不存在");
-        }
-        if (StrUtil.isNotEmpty(sysTenantPO.getTenantUserId())) {
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "该医院已经存在管理员,无须添加");
-        }
-        //增加缓存
-        return cacheUtil.addAdminCache(604800L, tenantId, sysTenantPO.getName());
-    }
-
-    @Override
-    public SysAdminAddCacheDTO getCache(String tenantId) {
-        return cacheUtil.getAdminCache(tenantId);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean saveAdmin(SysAdminAddDTO adminAddDTO) {
-        //校验失效
-        SysAdminAddCacheDTO adminCache = cacheUtil.getAdminCache(adminAddDTO.getTenantId());
-        //缓存对象内容为空即缓存不存在
-        if (ObjectUtil.isNull(adminCache) || StrUtil.isBlank(adminCache.getTenantId())) {
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "缓存已失效,请重新生成链接添加管理员");
-        }
-        if (CompareUtil.compare(adminCache.getTenantId(), adminCache.getTenantId(), true) != 0) {
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "医院ID跟缓存中的不匹配");
-        }
-        //校验手机code码正确
-        String phoneCode = cacheUtil.getPhoneCode();
-        if (!StrUtil.equals(phoneCode, adminAddDTO.getSmsCode())) {
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "手机验证码错误");
-        }
-        //查询手机号是否已经存储了如果已经存储使用已经存储的用户
-        SysUserPO sysUserPO = sysUserRepository.selectOne(new LambdaQueryWrapper<SysUserPO>()
-                .eq(SysUserPO::getPhone, adminAddDTO.getPhone())
-                .last("limit 1"));
-        if (Objects.isNull(sysUserPO)) {
-            sysUserPO = SysUserMapper.INSTANCE.addAdminDTOtoPO(adminAddDTO);
-            sysUserPO.setUsername(adminAddDTO.getPhone());
-            sysUserPO.setPassword(PswUtils.encryptPassword(adminAddDTO.getPassword()));
-            sysUserPO.setStatus(UserStatusEnum.normal.getValue());
-            sysUserRepository.insert(sysUserPO);
-        }
-        SysUserTenantPO sysUserTenantPO = new SysUserTenantPO();
-        sysUserTenantPO.setUserId(sysUserPO.getId());
-        sysUserTenantPO.setTenantId(adminAddDTO.getTenantId());
-        sysUserTenantRepository.insert(sysUserTenantPO);
-        SysRolePO sysRolePO = sysRoleRepository.selectOne(new LambdaQueryWrapper<SysRolePO>()
-                .eq(SysRolePO::getTenantId, adminAddDTO.getTenantId())
-                .eq(SysRolePO::getCode, "admin")
-                .last("limit 1"));
-        if (ObjectUtil.isNull(sysRolePO)) {
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "该医院没有角色,请先添加角色");
-        }
-        SysUserRolePO sysUserRolePO = new SysUserRolePO();
-        sysUserRolePO.setUserId(sysUserPO.getId());
-        sysUserRolePO.setRoleId(sysRolePO.getId());
-        sysUserRolePO.setTenantId(adminAddDTO.getTenantId());
-        //回写管理员ID到医院包
-        tenantRepository.update(null, new LambdaUpdateWrapper<SysTenantPO>()
-                .set(SysTenantPO::getTenantUserId, sysUserPO.getId())
-                .eq(SysTenantPO::getId, adminAddDTO.getTenantId()));
-        return sysUserRoleRepository.insert(sysUserRolePO) != 0;
-    }
-
-    /**
-     * 手动添加医院
-     *
-     * @param addDTO
-     * @return
-     */
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean saveHospital(SysTenantAndRoleAddDTO addDTO) {
-        SysTenantPO sysTenantPO = tenantRepository.selectOne(new LambdaQueryWrapper<SysTenantPO>()
-                .eq(SysTenantPO::getName, addDTO.getName()));
-        if (ObjectUtil.isNotNull(sysTenantPO)) {
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "医院名称不能重复");
-        }
-        sysTenantPO = SysTenantMapper.INSTANCE.toPO(addDTO);
-        sysTenantPO.setType(CreateEnum.sys.name());
-        sysTenantPO.setDisable(Boolean.FALSE);
-        tenantRepository.insert(sysTenantPO);
-        SysRolePO sysRolePO = new SysRolePO();
-        sysRolePO.setTenantId(sysTenantPO.getId());
-        sysRolePO.setCode("admin");
-        sysRolePO.setName("管理员");
-        sysRolePO.setType(CreateEnum.sys.name());
-        sysRolePO.setDisable(Boolean.FALSE);
-        sysRolePO.setStatus(Boolean.FALSE);
-        sysRolePO.setSort(1);
-        return sysRoleRepository.insert(sysRolePO) != 0;
-    }
-
-    /**
-     * 根据邀请添加医院和管理员
-     *
-     * @param addDTO
-     * @return
-     */
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean saveHospitalAndAdmin(SysTenantAndAdminAddDTO addDTO) {
-        SysTenantAddNoPackageDTO tenantDTO = addDTO.getTenantDTO();
-        SysAdminNoTenantIdAddDTO adminDTO = addDTO.getAdminDTO();
-        SysTenantPO sysTenantPO = tenantRepository.selectOne(new LambdaQueryWrapper<SysTenantPO>()
-                .eq(SysTenantPO::getName, tenantDTO.getName()));
-        if (ObjectUtil.isNotNull(sysTenantPO)) {
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "医院名称不能重复");
-        }
 
-        //校验手机code码正确
-        String phoneCode = cacheUtil.getPhoneCode();
-        if (!StrUtil.equals(phoneCode, adminDTO.getSmsCode())) {
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "手机验证码错误");
-        }
-        sysTenantPO = SysTenantMapper.INSTANCE.toPONoPackage(tenantDTO);
-        sysTenantPO.setType(CreateEnum.sys.name());
-        //根据确定的套餐修改查询
-        SysTenantPackagePO sysTenantPackagePO = sysTenantPackageRepository.selectOne(new LambdaQueryWrapper<SysTenantPackagePO>()
-                .eq(SysTenantPackagePO::getPackageCode, "hospital")
-                .eq(SysTenantPackagePO::getType, CreateEnum.custom.name())
-                .last("limit 1"));
-        sysTenantPO.setPackageId(sysTenantPackagePO.getId());
-        sysTenantPO.setDisable(Boolean.FALSE);
-        tenantRepository.insert(sysTenantPO);
-        SysRolePO sysRolePO = new SysRolePO();
-        sysRolePO.setTenantId(sysTenantPO.getId());
-        sysRolePO.setCode("admin");
-        sysRolePO.setName("管理员");
-        sysRolePO.setType(CreateEnum.sys.name());
-        sysRolePO.setDisable(Boolean.FALSE);
-        sysRolePO.setStatus(Boolean.FALSE);
-        sysRolePO.setSort(1);
-        sysRoleRepository.insert(sysRolePO);
-        //存储管理员
-        //查询手机号是否已经存储了如果已经存储使用已经存储的用户
-        SysUserPO sysUserPO = sysUserRepository.selectOne(new LambdaQueryWrapper<SysUserPO>()
-                .eq(SysUserPO::getPhone, adminDTO.getPhone())
-                .last("limit 1"));
-        if (Objects.isNull(sysUserPO)) {
-            sysUserPO = SysUserMapper.INSTANCE.addAdminDTOtoPO(adminDTO);
-            sysUserPO.setUsername(adminDTO.getPhone());
-            sysUserPO.setPassword(PswUtils.encryptPassword(adminDTO.getPassword()));
-            sysUserPO.setStatus(UserStatusEnum.normal.getValue());
-            sysUserPO.setTenantId(sysTenantPO.getId());
-            sysUserRepository.insert(sysUserPO);
-        }
-        SysUserTenantPO sysUserTenantPO = new SysUserTenantPO();
-        sysUserTenantPO.setUserId(sysUserPO.getId());
-        sysUserTenantPO.setTenantId(sysTenantPO.getId());
-        sysUserTenantRepository.insert(sysUserTenantPO);
-        SysUserRolePO sysUserRolePO = new SysUserRolePO();
-        sysUserRolePO.setUserId(sysUserPO.getId());
-        sysUserRolePO.setRoleId(sysRolePO.getId());
-        sysUserRolePO.setTenantId(sysTenantPO.getId());
-        //回写管理员ID到医院包
-        tenantRepository.update(null, new LambdaUpdateWrapper<SysTenantPO>()
-                .set(SysTenantPO::getTenantUserId, sysUserPO.getId())
-                .eq(SysTenantPO::getId, sysTenantPO.getId()));
-        return sysUserRoleRepository.insert(sysUserRolePO) != 0;
-    }
 
     @Override
     public Set<SysMenuDTO> getTenantMenus(String tenantId) {