From df1c9ad9e8fc802da00f641e84be13419c80bde2 Mon Sep 17 00:00:00 2001 From: WeiRan <2392355487@qq.com> Date: Mon, 7 Oct 2024 23:44:14 +0800 Subject: [PATCH] =?UTF-8?q?feat():=E4=BF=AE=E6=94=B9=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E5=85=A5=E9=A9=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/SecurityConstants.java | 2 +- .../many/datasource/ManyDataSource.java | 3 +- .../saas/interceptor/SaaSInterceptor.java | 6 ++- .../src/main/java/com/muyu/domain/Firm.java | 5 +- .../java/com/muyu/domain/FirmPermission.java | 45 ++++++++++++++++++ .../muyu/domain/req/FirmUpdPermissionReq.java | 32 +++++++++++++ .../com/muyu/domain/resp/FirmListResp.java | 21 +++++++++ .../controller/FirmPermissionController.java | 38 +++++++++++++++ .../server/mapper/FirmPermissionMapper.java | 17 +++++++ .../server/service/FirmManageService.java | 8 ++++ .../server/service/FirmPermissionService.java | 23 ++++++++++ .../service/impl/FirmManageServiceImpl.java | 22 ++++++++- .../impl/FirmPermissionServiceImpl.java | 46 +++++++++++++++++++ 13 files changed, 262 insertions(+), 6 deletions(-) create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/FirmPermission.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/req/FirmUpdPermissionReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/controller/FirmPermissionController.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/mapper/FirmPermissionMapper.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmPermissionService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmPermissionServiceImpl.java diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/SecurityConstants.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/SecurityConstants.java index 4c1b397..7b7cba9 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/SecurityConstants.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/SecurityConstants.java @@ -56,5 +56,5 @@ public class SecurityConstants { */ public static final String ROLE_PERMISSION = "role_permission"; - public static final String SAAS_KEY = "ent-code"; + public static final String SAAS_KEY = "saas_key"; } diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java index 32ce6f3..92f4cff 100644 --- a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java @@ -84,7 +84,8 @@ public class ManyDataSource implements ApplicationRunner{ public void run(ApplicationArguments args) { DruidDataSourceFactory druidDataSourceFactory = SpringUtils.getBean(DruidDataSourceFactory.class); DynamicDataSource dynamicDataSource = SpringUtils.getBean(DynamicDataSource.class); - for (EntInfo entInfo : dataSourceInfoList()) { + List entInfos = this.dataSourceInfoList(); + for (EntInfo entInfo : entInfos) { DataSourceInfo dataSourceInfo = DataSourceInfo.hostAndPortBuild( entInfo.getEntCode(), entInfo.getIp(), entInfo.getPort() ); diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/SaaSInterceptor.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/SaaSInterceptor.java index d7b3891..4324c57 100644 --- a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/SaaSInterceptor.java +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/SaaSInterceptor.java @@ -4,6 +4,7 @@ import com.muyu.cloud.common.many.datasource.holder.DynamicDataSourceHolder; import com.muyu.cloud.common.many.datasource.role.DynamicDataSource; import com.muyu.cloud.common.saas.contents.SaaSConstant; import com.muyu.cloud.common.saas.exception.SaaSException; +import com.muyu.common.core.constant.SecurityConstants; import com.muyu.common.core.utils.ServletUtils; import com.muyu.common.core.utils.SpringUtils; import jakarta.servlet.http.HttpServletRequest; @@ -25,8 +26,11 @@ public class SaaSInterceptor implements AsyncHandlerInterceptor { return true; } +// SaaSConstant.SAAS_KEY +// SecurityConstants.SAAS_KEY + String SaaSKey = ServletUtils.getHeader(request, SaaSConstant.SAAS_KEY); - if (SaaSKey == null) { + if (SaaSKey == null || "".equals(SaaSKey)) { throw new SaaSException("SaaS非法访问"); }else { DynamicDataSource dynamicDataSource = SpringUtils.getBean(DynamicDataSource.class); diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/Firm.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/Firm.java index 77d751a..1f828ac 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/Firm.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/Firm.java @@ -34,6 +34,9 @@ public class Firm { * 数据库名称 */ private String databaseName; - + /** + * 企业权限Id + */ + private long permissionId; } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/FirmPermission.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/FirmPermission.java new file mode 100644 index 0000000..4b73c4b --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/FirmPermission.java @@ -0,0 +1,45 @@ +package com.muyu.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 企业权限 + * @Author:weiran + * @Package:com.muyu.domain + * @Project:cloud-server-8 + * @name:FirmPermission + * @Date:2024/10/7 9:13 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class FirmPermission { + + /** + * 企业权限Id + */ + @TableId(value = "permission_id") + private long permissionId; + + /** + * 权限等级 + */ + private String permissionLevel; + + /** + * 车辆数目 + */ + private Integer carNumber; + + /** + * 车辆类型数目 + */ + private Integer carTypeNumber; + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/req/FirmUpdPermissionReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/req/FirmUpdPermissionReq.java new file mode 100644 index 0000000..a36ca2a --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/req/FirmUpdPermissionReq.java @@ -0,0 +1,32 @@ +package com.muyu.domain.req; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 修改企业权限请求对象 + * @Author:weiran + * @Package:com.muyu.domain.req + * @Project:cloud-server-8 + * @name:FirmUpdPermissionReq + * @Date:2024/10/7 22:22 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Tag(name = "修改权限请求对象",description = "修改权限请求对象") +public class FirmUpdPermissionReq { + /** + * 企业Id + */ + private Integer firmId; + + /** + * 企业权限等级 + */ + private String permissionLevel; +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/resp/FirmListResp.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/resp/FirmListResp.java index 0650afd..4a15611 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/resp/FirmListResp.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/resp/FirmListResp.java @@ -1,6 +1,7 @@ package com.muyu.domain.resp; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import com.muyu.domain.SysUser; import io.swagger.v3.oas.annotations.tags.Tag; @@ -110,6 +111,26 @@ public class FirmListResp { */ // @TableField(exist = false) private String firmName; + /** + * 企业权限Id + */ + private long permissionId; + + /** + * 权限等级 + */ + private String permissionLevel; + + /** + * 车辆数目 + */ + private Integer carNumber; + + /** + * 车辆类型数目 + */ + private Integer carTypeNumber; + /** * 数据库对象构建为返回结果对象 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/controller/FirmPermissionController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/controller/FirmPermissionController.java new file mode 100644 index 0000000..0e061eb --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/controller/FirmPermissionController.java @@ -0,0 +1,38 @@ +package com.muyu.server.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.domain.req.FirmUpdPermissionReq; +import com.muyu.server.service.FirmPermissionService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 企业权限分配控制层 + * @Author:weiran + * @Package:com.muyu.server.controller + * @Project:cloud-server-8 + * @name:FirmPermission + * @Date:2024/10/7 21:29 + */ +@RestController +@RequestMapping("/permission") +public class FirmPermissionController { + @Autowired + private FirmPermissionService firmPermissionService; + + /** + * 修改企业权限分配 + * @param firmUpdPermissionReq + * @return + */ + @PostMapping("/updpermission") + @Operation(summary = "修改权限分配",description = "修改权限分配") + public Result updpermission(@RequestBody FirmUpdPermissionReq firmUpdPermissionReq){ + firmPermissionService.updpermission(firmUpdPermissionReq); + return Result.success(null,"权限更改成功"); + } +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/mapper/FirmPermissionMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/mapper/FirmPermissionMapper.java new file mode 100644 index 0000000..454c37f --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/mapper/FirmPermissionMapper.java @@ -0,0 +1,17 @@ +package com.muyu.server.mapper; + +import com.github.yulichang.base.MPJBaseMapper; +import com.muyu.domain.FirmPermission; +import org.apache.ibatis.annotations.Mapper; + +/** + * 企业权限分配持久层 + * @Author:weiran + * @Package:com.muyu.server.mapper + * @Project:cloud-server-8 + * @name:FirmPermissionMapper + * @Date:2024/10/7 21:32 + */ +@Mapper +public interface FirmPermissionMapper extends MPJBaseMapper { +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmManageService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmManageService.java index 6788e40..51cd9e6 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmManageService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmManageService.java @@ -3,6 +3,7 @@ package com.muyu.server.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.common.system.domain.SysUser; import com.muyu.domain.req.FirmListReq; +import com.muyu.domain.req.FirmUpdPermissionReq; import com.muyu.domain.resp.FirmTotalListResp; import java.util.List; @@ -24,4 +25,11 @@ public interface FirmManageService extends IService { * @return */ FirmTotalListResp firmmessageList(FirmListReq firmListReq); + + /** + * 修改企业对应权限 + * @param firmUpdPermissionReq + * @param permissionId + */ + void updpermission(FirmUpdPermissionReq firmUpdPermissionReq, long permissionId); } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmPermissionService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmPermissionService.java new file mode 100644 index 0000000..2e1d621 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmPermissionService.java @@ -0,0 +1,23 @@ +package com.muyu.server.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.domain.FirmPermission; +import com.muyu.domain.req.FirmUpdPermissionReq; + +/** + * 企业权限分配业务层 + * @Author:weiran + * @Package:com.muyu.server.service + * @Project:cloud-server-8 + * @name:FirmPermissionService + * @Date:2024/10/7 21:31 + */ +public interface FirmPermissionService extends IService { + + /** + * 修改企业权限分配 + * @param firmUpdPermissionReq + * @return + */ + void updpermission(FirmUpdPermissionReq firmUpdPermissionReq); +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmManageServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmManageServiceImpl.java index 42d23d1..2244559 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmManageServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmManageServiceImpl.java @@ -1,12 +1,15 @@ package com.muyu.server.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.system.domain.SysUser; import com.muyu.domain.Firm; +import com.muyu.domain.FirmPermission; import com.muyu.domain.req.FirmListReq; +import com.muyu.domain.req.FirmUpdPermissionReq; import com.muyu.domain.resp.FirmListResp; import com.muyu.domain.resp.FirmTotalListResp; import com.muyu.server.mapper.FirmManageMapper; @@ -38,7 +41,9 @@ public class FirmManageServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + long count = this.count(queryWrapper); + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); wrapper.select(SysUser::getUserId, SysUser::getDeptId, @@ -56,12 +61,25 @@ public class FirmManageServiceImpl extends ServiceImpl firmListResps = firmManageMapper.selectJoinList(FirmListResp.class, wrapper); - return FirmTotalListResp.firmTotalListResp(firmListResps,findcount); + return FirmTotalListResp.firmTotalListResp(firmListResps,count); + + } + + + /** + * 修改企业对应权限 + * @param firmUpdPermissionReq + * @param permissionId + */ + @Override + public void updpermission(FirmUpdPermissionReq firmUpdPermissionReq, long permissionId) { } } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmPermissionServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmPermissionServiceImpl.java new file mode 100644 index 0000000..caf3d6e --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmPermissionServiceImpl.java @@ -0,0 +1,46 @@ +package com.muyu.server.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.domain.FirmPermission; +import com.muyu.domain.req.FirmUpdPermissionReq; +import com.muyu.server.mapper.FirmPermissionMapper; +import com.muyu.server.service.FirmManageService; +import com.muyu.server.service.FirmPermissionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 企业权限分配业务实现层 + * @Author:weiran + * @Package:com.muyu.server.service.impl + * @Project:cloud-server-8 + * @name:FirmPermissionServiceImpl + * @Date:2024/10/7 21:31 + */ +@Service +public class FirmPermissionServiceImpl extends ServiceImpl implements FirmPermissionService { + @Autowired + private FirmManageService firmManageService; + @Autowired + private FirmPermissionService firmPermissionService; + /** + * 修改企业权限分配 + * @param firmUpdPermissionReq + * @return + */ + @Override + public void updpermission(FirmUpdPermissionReq firmUpdPermissionReq) { + String permissionLevel = firmUpdPermissionReq.getPermissionLevel(); + //根据权限等级获取对应权限Id + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(FirmPermission::getPermissionLevel, firmUpdPermissionReq.getPermissionLevel()); + List list = this.list(queryWrapper); + FirmPermission firmPermission = list.get(0); + long permissionId=firmPermission.getPermissionId(); + //修改企业对应权限 + firmManageService.updpermission(firmUpdPermissionReq,permissionId); + } +}