Browse Source

租户管理模块功能增强

1. 登录功能新增日志
2. 租户新增功能完善
3. 租户顶级菜单授权功能优化(原先先查询再删除,现在直接全部删除)
lipf 5 months ago
parent
commit
903056440b

+ 4 - 1
authentication/src/main/java/com/jzg/config/JzgAuthenticationProvider.java

@@ -99,6 +99,8 @@ public class JzgAuthenticationProvider implements AuthenticationProvider {
         String type = ((JzgUsernamePasswordAuthenticationToken)authentication).getType();
         String code = ((JzgUsernamePasswordAuthenticationToken)authentication).getCode();
         boolean appLogin = ((JzgUsernamePasswordAuthenticationToken)authentication).isAppLogin();
+        log.info("登录认证:username=[{}],rawPassword=[{}],details=[{}],system=[{}], captchaId=[{}], captcha=[{}],type=[{}],code=[{}],appLogin=[{}]",
+                username,rawPassword,details,system, captchaId, captcha, type, code, appLogin);
         boolean isFirst = false;
         //调试时注销验证码
         //验证码校验
@@ -217,7 +219,8 @@ public class JzgAuthenticationProvider implements AuthenticationProvider {
         }else{
             SysSystem sysSystem = sysSystemService.getBySystemCode(system);
             if(StringUtils.isNull(sysSystem)){
-                throw new SystemException("该租户已经禁用或者删除,请联系运营平台!");
+                log.info("租户代码为[{}]的租户已经被禁用或删除",system);
+                throw new SystemException("租户["+system+"]已经禁用或删除或不存在,请联系运营平台!");
             }
 
             if(system.equals(SystemConstants.SYSTEM_JZG_APP.getCode())){

+ 8 - 11
authentication/src/main/java/com/jzg/controller/AuthController.java

@@ -16,7 +16,6 @@ import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.MinioUtils;
 import com.jzg.commons.util.PasswordUtils;
 import com.jzg.config.JzgTokenService;
-import com.jzg.config.JzgUserDetailsService;
 import com.jzg.config.JzgUsernamePasswordAuthenticationToken;
 import com.jzg.commons.constants.RedisKeyConstants;
 import com.jzg.commons.core.base.BaseController;
@@ -29,10 +28,8 @@ import com.jzg.commons.exception.SystemException;
 import com.jzg.handler.JzgAuthenticationSuccessHandler;
 import com.jzg.mapper.SysUploadFilesMapper;
 import com.jzg.mapper.SysUserJzgAppMapper;
-import com.jzg.service.AlipayService;
 import com.jzg.service.SysUserService;
 import com.jzg.commons.util.ImageUtil;
-import com.jzg.service.WechatService;
 import com.wf.captcha.SpecCaptcha;
 import com.wf.captcha.base.Captcha;
 import io.swagger.v3.oas.annotations.Operation;
@@ -84,8 +81,8 @@ public class AuthController extends BaseController {
     @Autowired
     SysUserService sysUserService;
 
-    @Autowired
-    JzgUserDetailsService jzgUserDetailsService;
+//    @Autowired
+//    JzgUserDetailsService jzgUserDetailsService;
 
     @Autowired
     private JzgTokenService tokenStore;
@@ -96,11 +93,11 @@ public class AuthController extends BaseController {
     @Autowired
     SysUploadFilesMapper sysUploadFilesMapper;
 
-    @Autowired
-    private WechatService wechatService;
-
-    @Autowired
-    private AlipayService alipayService;
+//    @Autowired
+//    private WechatService wechatService;
+//
+//    @Autowired
+//    private AlipayService alipayService;
 
     @Autowired
     private SysUserJzgAppMapper sysUserJzgAppMapper;
@@ -114,7 +111,7 @@ public class AuthController extends BaseController {
      *      * 返回:无(直接通过过滤器向响应写入登录结果与令牌)
      *      * 注意:成功后在响应中返回认证信息,方法本身不返回 HttpResult
      *
-     * @param loginFormVo
+     * @param loginFormVo 登录参数
      * @throws ServletException
      * @throws IOException
      */

+ 2 - 3
authentication/src/main/java/com/jzg/mapper/SysRolePermsMapper.java

@@ -2,7 +2,6 @@ package com.jzg.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jzg.entity.SysRolePerms;
-import com.jzg.entity.SysUser;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -13,7 +12,7 @@ public interface SysRolePermsMapper extends BaseMapper<SysRolePerms> {
     /**
      * 获取用户权限
      * @param userId    用户id
-     * @param systemId  系统id
+     * @param systemId  租户编码
      */
-    public List<SysRolePerms> getUserPerms(String userId, String systemId);
+    List<SysRolePerms> getUserPerms(String userId, String systemId);
 }

+ 6 - 4
authentication/src/main/java/com/jzg/service/SysSystemService.java

@@ -2,14 +2,16 @@ package com.jzg.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.jzg.commons.entity.po.SysSystem;
-import com.jzg.entity.SysUserRole;
 
 public interface SysSystemService extends IService<SysSystem> {
 
     /**
      * 根据SystemCode 查询 System对象
-     * @param systemCode
-     * @return
+     *
+     * @param systemCode 系统编码, 也就是租户系统登录时的租户编码
+     * @return SysSystem
+     * @author lipf
+     * @date 2026年4月10日11:21:40
      */
-    public SysSystem getBySystemCode(String systemCode);
+    SysSystem getBySystemCode(String systemCode);
 }

+ 4 - 4
authentication/src/main/java/com/jzg/service/SysUserRoleService.java

@@ -19,11 +19,11 @@ public interface SysUserRoleService extends IService<SysUserRole> {
 
     /**
      * 获取用户的角色权限
-     * @param userId
-     * @param systemId
-     * @return
+     * @param userId 用户序号
+     * @param systemId 租户编码
+     * @return List<SysRolePerms>
      */
-    public List<SysRolePerms> getUserPerms(String userId,String systemId);
+    List<SysRolePerms> getUserPerms(String userId,String systemId);
 
     /**
      * 获取用户数据权限

+ 8 - 0
authentication/src/main/java/com/jzg/service/impl/SysSystemServiceImpl.java

@@ -11,6 +11,14 @@ import org.springframework.stereotype.Service;
 @Service
 public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem> implements SysSystemService {
 
+    /**
+     * 根据SystemCode 查询 System对象
+     *
+     * @param systemCode 系统编码, 也就是租户系统登录时的租户编码
+     * @return SysSystem
+     * @author lipf
+     * @date 2026年4月10日11:21:40
+     */
     @Override
     public SysSystem getBySystemCode(String systemCode) {
         return this.getOne(new LambdaQueryWrapper<SysSystem>()

+ 12 - 0
authentication/src/main/java/com/jzg/service/impl/SysUserRoleServiceImpl.java

@@ -1,5 +1,6 @@
 package com.jzg.service.impl;
 
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.entity.SysRolePerms;
@@ -8,6 +9,8 @@ import com.jzg.entity.vo.SysRoleDataPreVo;
 import com.jzg.mapper.SysRolePermsMapper;
 import com.jzg.mapper.SysUserRoleMapper;
 import com.jzg.service.SysUserRoleService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -16,6 +19,8 @@ import java.util.List;
 @Service
 public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements SysUserRoleService {
 
+    private static final Logger log = LoggerFactory.getLogger(SysUserRoleServiceImpl.class);
+
     @Autowired
     SysRolePermsMapper sysRolePermsMapper;
 
@@ -26,9 +31,16 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUs
         return sysRoles;
     }
 
+    /**
+     * 获取用户的角色权限
+     * @param userId 用户序号
+     * @param systemId 租户编码
+     * @return List<SysRolePerms>
+     */
     @Override
     public List<SysRolePerms> getUserPerms(String userId, String systemId) {
         List<SysRolePerms> userPerms = sysRolePermsMapper.getUserPerms(userId, systemId);
+        log.info("根据用户序号[{}]和租户代码[{}]获取用户信息[{}]",userId, systemId, JSONUtil.toJsonStr(userPerms));
         return userPerms;
     }
 

+ 15 - 2
platform/src/main/java/com/jzg/controller/SysMenuController.java

@@ -50,8 +50,15 @@ public class SysMenuController extends BaseController {
     }
 
 
+    /**
+     * 查询菜单的树形结构(基于租户的)
+     *      不同租户的菜单权限不一样
+     *
+     * @author lipf
+     * @date 2026/4/10 15:20
+     */
     @GetMapping(value = "/findMenuTree")
-    public HttpResult findMenuTree() {
+    public HttpResult<List<SysMenu>> findMenuTree() {
         String systemCode = getSystemCode();
         return HttpResult.ok(sysMenuService.findTree(systemCode, 0));
     }
@@ -86,8 +93,14 @@ public class SysMenuController extends BaseController {
         return HttpResult.ok(sysMenuService.getSystemMenu(systemCode));
     }
 
+    /**
+     * 为租户新增租户平台的顶级菜单权限
+     *
+     * @author lipf
+     * @date 2026/4/10 15:10
+     */
     @PostMapping(value = "/saveSystemMenu")
-    public HttpResult saveSystemMenu(@RequestBody SystemMenuVo systemMenuVo){
+    public HttpResult<Boolean> saveSystemMenu(@RequestBody SystemMenuVo systemMenuVo){
         return HttpResult.ok(sysMenuService.saveSystemMenu(systemMenuVo));
     }
 }

+ 8 - 3
platform/src/main/java/com/jzg/controller/SysSystemController.java

@@ -1,5 +1,6 @@
 package com.jzg.controller;
 
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.core.page.HttpResult;
@@ -20,6 +21,8 @@ import com.jzg.service.SysUserService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.validation.Valid;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -36,6 +39,7 @@ import java.util.List;
 @RequestMapping("/system")
 public class SysSystemController {
 
+    private static final Logger log = LoggerFactory.getLogger(SysSystemController.class);
     @Autowired
     private SysSystemService sysSystemService;
 
@@ -146,12 +150,13 @@ public class SysSystemController {
 
     /**
      * 租户添加
-     * @param param
-     * @return
+     * @param param 新增租户的租户以及管理员,密码等信息
+     * @return HttpResult<String>
      */
     @Operation(summary = "租户添加")
     @PostMapping("/sysAdd")
-    public HttpResult sysAdd(@Validated @RequestBody SysSystemAddParam param) {
+    public HttpResult<String> sysAdd(@Validated @RequestBody SysSystemAddParam param) {
+        log.info("新增租户: SysSystemAddParam=[{}]", JSONUtil.toJsonStr(param));
         // 编码和名称不允许重复
         boolean codeExists = sysSystemService.isExistsCode(param.getSysCode(), null);
         boolean nameExists = sysSystemService.isExistsName(param.getSysName(), null);

+ 7 - 2
platform/src/main/java/com/jzg/mapper/SysMenuMapper.java

@@ -3,8 +3,6 @@ package com.jzg.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jzg.commons.entity.dto.SysCommonFunctionDto;
 import com.jzg.commons.entity.po.SysMenu;
-import com.jzg.commons.entity.po.SysSystemMenu;
-import com.jzg.commons.entity.vo.SystemMenuVo;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -14,6 +12,13 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
 
     public List<SysMenu> getSystemMenus(String systemCode);
 
+    /**
+     * 查询菜单的树形结构(基于租户的)
+     *      不同租户的菜单权限不一样
+     * @param systemCode 租户编码
+     * @author lipf
+     * @date 2026/4/10 15:20
+     */
     public List<SysMenu> getSystemMenusRecursion(String systemCode);
 
     public List<SysMenu> getMenuByRoleId(List<String> roleIds);

+ 14 - 0
platform/src/main/java/com/jzg/service/SysMenuService.java

@@ -9,6 +9,14 @@ import com.jzg.commons.entity.vo.SystemMenuVo;
 import java.util.List;
 
 public interface SysMenuService extends IService<SysMenu> {
+
+    /**
+     * 查询菜单的树形结构(基于租户的)
+     *      不同租户的菜单权限不一样
+     * @param systemCode 租户编码
+     * @author lipf
+     * @date 2026/4/10 15:20
+     */
     public List<SysMenu> findTree(String systemCode, int menuType);
 
     public List<SysMenu> getRoleMenuTree(String systemCode, String username);
@@ -19,6 +27,12 @@ public interface SysMenuService extends IService<SysMenu> {
 
     public List<SysMenu> getSystemMenu(String systemCode);
 
+    /**
+     * 为租户新增租户平台的顶级菜单权限
+     *
+     * @author lipf
+     * @date 2026/4/10 15:10
+     */
     public Boolean saveSystemMenu(SystemMenuVo systemMenuVo);
 
     /**

+ 1 - 2
platform/src/main/java/com/jzg/service/SysSystemService.java

@@ -104,8 +104,7 @@ public interface SysSystemService extends IService<SysSystem> {
     /**
      * 租户新增
      *
-     * @param param
-     * @return
+     * @param param 租户以及租户管理员等信息
      */
     public void sysAdd(SysSystemAddParam param);
 

+ 14 - 5
platform/src/main/java/com/jzg/service/impl/SysMenuServiceImpl.java

@@ -40,6 +40,13 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
     private final SysUserRoleMapper sysUserRoleMapper;
 
 
+    /**
+     * 查询菜单的树形结构(基于租户的)
+     *      不同租户的菜单权限不一样
+     * @param systemCode 租户编码
+     * @author lipf
+     * @date 2026/4/10 15:20
+     */
     @Override
     public List<SysMenu> findTree(String systemCode, int menuType) {
         List<SysMenu> sysMenus = new ArrayList<>();
@@ -130,16 +137,18 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
         return sysMenus;
     }
 
+    /**
+     * 为租户新增租户平台的顶级菜单权限
+     *
+     * @author lipf
+     * @date 2026/4/10 15:10
+     */
     @Override
     @Transactional
     public Boolean saveSystemMenu(SystemMenuVo systemMenuVo) {
         // 先删除原先的
-        Long count = sysSystemMenuMapper.selectCount(new LambdaQueryWrapper<SysSystemMenu>()
+        sysSystemMenuMapper.delete(new LambdaQueryWrapper<SysSystemMenu>()
                 .eq(SysSystemMenu::getSystemCode, systemMenuVo.getSystemCode()));
-        if(count > 0){
-            int delete = sysSystemMenuMapper.delete(new LambdaQueryWrapper<SysSystemMenu>()
-                    .eq(SysSystemMenu::getSystemCode, systemMenuVo.getSystemCode()));
-        }
 
         List<SysSystemMenu> sysSystemMenus = new ArrayList<>();
         // 添加

+ 7 - 2
platform/src/main/java/com/jzg/service/impl/SysSystemServiceImpl.java

@@ -314,6 +314,11 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
         return vo;
     }
 
+    /**
+     * 租户新增
+     *
+     * @param param 租户以及租户管理员等信息
+     */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void sysAdd(SysSystemAddParam param) {
@@ -391,8 +396,8 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
 
 
     public void addDefaultRoles(String sysCode,String deptId){
-        List<SysRole> defaultRoleList = Arrays.asList(
-                buildRole(sysCode, deptId,"业务员")
+        List<SysRole> defaultRoleList = List.of(
+                buildRole(sysCode, deptId, "业务员")
         );
         sysRoleMapper.insert(defaultRoleList);
     }

+ 11 - 4
tenant/organization/src/main/java/com/jzg/organization/controller/SysOrganizationController.java

@@ -1,6 +1,7 @@
 package com.jzg.organization.controller;
 
 
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.aop.OperatorTrajectory;
 import com.jzg.commons.constants.OperationTypeEnum;
@@ -13,6 +14,8 @@ import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.organization.mapper.SysOrganizationMapper;
 import com.jzg.organization.service.SysOrganizationService;
 import io.swagger.v3.oas.annotations.Operation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
@@ -22,6 +25,8 @@ import org.springframework.web.bind.annotation.*;
 @RequestMapping("/sysOrganization")
 public class SysOrganizationController {
 
+    private static final Logger log = LoggerFactory.getLogger(SysOrganizationController.class);
+
 
     @Autowired
     private SysOrganizationService sysOrganizationService;
@@ -63,14 +68,16 @@ public class SysOrganizationController {
 //    }
 
     /**
-     * 新增
-     * @param organizationAdd
-     * @return
+     * 团队/渠道/电销组 新增
+     *
+     * @param organizationAdd 要新增的团队/渠道/电销组信息 =
+     * @return HttpResult<String> 新增操作的结果
      */
     @OperatorTrajectory(moduleName = "业务管理/团队管理/添加团队",mapperClass = SysOrganizationMapper.class,entityClass = SysOrganizationAdd.class)
     @Operation(summary = "团队、渠道、电销组 新增", description = "新增")
     @PostMapping("save")
-    public HttpResult save(@Validated  @RequestBody SysOrganizationAdd organizationAdd){
+    public HttpResult<String> save(@Validated  @RequestBody SysOrganizationAdd organizationAdd){
+        log.info(" 团队/渠道/电销组 新增。organizationAdd=[{}]", JSONUtil.toJsonStr(organizationAdd));
         boolean nameExists = sysOrganizationService.nameExists(organizationAdd);
         if (nameExists){
             return HttpResult.error("团队、渠道、电销组名称已存在");

+ 2 - 2
tenant/organization/src/main/java/com/jzg/organization/service/SysUserService.java

@@ -37,8 +37,8 @@ public interface SysUserService extends IService<SysUser> {
     /**
      * 添加业务员
      *
-     * @param sysUserVo
-     * @return
+     * @param sysUserVo 要添加的业务员信息
+     * @return HttpResult
      */
     HttpResult addUserInfo(SysUserVo sysUserVo);
 

+ 7 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java

@@ -383,9 +383,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return stateResult.isResult();
     }
 
+    /**
+     * 新增业务员信息
+     *
+     * @author lipf
+     * @date 2026/4/10 16:01
+     */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public HttpResult addUserInfo(SysUserVo sysUserVo) {
+        log.info("新增业务员信息。 sysUserVo=[{}]", JSONUtil.toJsonStr(sysUserVo));
         SysUser sysUser = baseMapper.getUserByMobile(sysUserVo.getMobile());
         String sysUserJzgInfoId = "", sysUserId = "";
         SysUserJzgInfo sysUserJzgInfo = new SysUserJzgInfo();