From ec9e040aec9eb2d2c6a1df0b593743cb18f59861 Mon Sep 17 00:00:00 2001 From: luozhun <2025254074@qq.com> Date: Wed, 4 Sep 2024 17:13:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E5=AE=89=E7=94=A8=E6=88=B7=E5=A2=9E?= =?UTF-8?q?=E5=88=A0=E6=94=B9=E6=9F=A5=20=E6=8E=A5=E5=8F=A3=E9=89=B4?= =?UTF-8?q?=E6=9D=83=20=E8=BF=87=E6=BB=A4=E5=AE=A2=E6=88=B7=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- policeSecurityServer/pom.xml | 24 +++++++ .../common/annotation/CheckClientType.java | 28 ++++++++ .../com/changhu/common/utils/UserUtil.java | 25 +++++++ .../java/com/changhu/config/WebConfig.java | 3 + .../java/com/changhu/enums/ClientType.java | 1 + .../handler/ManagementPoliceUnitLogin.java | 18 ++--- .../handler/ManagementSecurityUnitLogin.java | 19 +++-- .../enums/handler/ManagementSuperLogin.java | 13 ++-- .../controller/EnterprisesUnitController.java | 16 +++-- .../ManagementPoliceUnitUserController.java | 40 +++++++++++ .../ManagementSecurityUnitUserController.java | 13 +++- .../enums/handler/PoliceUnitTypeHandler.java | 1 - .../ManagementPoliceUnitUserMapper.java | 16 +++++ .../pojo/entity/EnterprisesUnit.java | 12 ++-- ...anagementPoliceUserSaveOrUpdateParams.java | 39 +++++++++++ ...entSecurityUnitUserSaveOrUpdateParams.java | 4 -- ...agementPoliceUnitUserPagerQueryParams.java | 20 ++++++ .../vo/ManagementPoliceUnitUserPagerVo.java | 46 +++++++++++++ .../ManagementPoliceUnitUserService.java | 26 +++++++ .../ManagementSecurityUnitUserService.java | 7 ++ .../ManagementPoliceUnitUserServiceImpl.java | 69 +++++++++++++++++++ ...ManagementSecurityUnitUserServiceImpl.java | 27 ++++++++ .../interceptor/ClientTypeInterceptor.java | 54 +++++++++++++++ ...tPoliceUnitUserPagerPermissionHandler.java | 29 ++++++++ ...ecurityUnitUserPagerPermissionHandler.java | 13 +--- .../support/satoken/SaTokenConfig.java | 11 +++ .../main/resources/env/dev/application.yml | 2 + .../mapper/ManagementPoliceUnitUserMapper.xml | 23 +++++++ superManagement/index.html | 2 +- .../src/views/unitManage/policeUnit/index.vue | 18 ++++- .../views/unitManage/securityUnit/index.vue | 31 +++++---- 31 files changed, 574 insertions(+), 76 deletions(-) create mode 100644 policeSecurityServer/src/main/java/com/changhu/common/annotation/CheckClientType.java create mode 100644 policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/ManagementPoliceUserSaveOrUpdateParams.java create mode 100644 policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/ManagementPoliceUnitUserPagerQueryParams.java create mode 100644 policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ManagementPoliceUnitUserPagerVo.java create mode 100644 policeSecurityServer/src/main/java/com/changhu/support/interceptor/ClientTypeInterceptor.java create mode 100644 policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementPoliceUnitUserPagerPermissionHandler.java create mode 100644 policeSecurityServer/src/main/resources/mapper/ManagementPoliceUnitUserMapper.xml diff --git a/policeSecurityServer/pom.xml b/policeSecurityServer/pom.xml index 1533cb1..69b6c0f 100644 --- a/policeSecurityServer/pom.xml +++ b/policeSecurityServer/pom.xml @@ -147,6 +147,30 @@ sa-token-redis ${sa.token.version} + + + cn.dev33 + sa-token-jwt + ${sa.token.version} + + + cn.hutool + hutool-core + + + cn.hutool + hutool-crypto + + + cn.hutool + hutool-json + + + cn.hutool + hutool-jwt + + + com.mysql diff --git a/policeSecurityServer/src/main/java/com/changhu/common/annotation/CheckClientType.java b/policeSecurityServer/src/main/java/com/changhu/common/annotation/CheckClientType.java new file mode 100644 index 0000000..0f49299 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/common/annotation/CheckClientType.java @@ -0,0 +1,28 @@ +package com.changhu.common.annotation; + +import com.changhu.enums.ClientType; +import org.springframework.web.bind.annotation.RestController; + +import java.lang.annotation.*; + +/** + * @author 20252 + * @createTime 2024/9/4 下午4:01 + * @desc CheckClientType... + */ +@Target({ElementType.TYPE, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@RestController +public @interface CheckClientType { + + /** + * 是否需要校验客户端类型 + */ + boolean value() default true; + + /** + * 需要的客户端类型 + */ + ClientType clientType() default ClientType.NONE; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/common/utils/UserUtil.java b/policeSecurityServer/src/main/java/com/changhu/common/utils/UserUtil.java index 76b4018..5483ddf 100644 --- a/policeSecurityServer/src/main/java/com/changhu/common/utils/UserUtil.java +++ b/policeSecurityServer/src/main/java/com/changhu/common/utils/UserUtil.java @@ -1,5 +1,6 @@ package com.changhu.common.utils; +import cn.dev33.satoken.stp.SaLoginConfig; import cn.dev33.satoken.stp.SaTokenInfo; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.util.IdUtil; @@ -7,6 +8,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; import com.changhu.common.enums.ResultCode; import com.changhu.common.exception.MessageException; +import com.changhu.enums.ClientType; import lombok.extern.slf4j.Slf4j; import java.util.Optional; @@ -43,6 +45,29 @@ public class UserUtil { return getTokenInfo(); } + public static SaTokenInfo loginAndTokenInfo(Long userId, ClientType clientType, Long unitId) { + StpUtil.login(userId, SaLoginConfig.setExtra("clientType", clientType).setExtra("unitId", unitId)); + return getTokenInfo(); + } + + /** + * 获取客户端类型 + */ + public static ClientType getClientType() { + Object clientType = StpUtil.getExtra("clientType"); + if (clientType instanceof String ct) { + return ClientType.valueOf(ct); + } + return null; + } + + /** + * 获取单位id + */ + public static Long getUnitId() { + return Long.parseLong(StpUtil.getExtra("unitId") + ""); + } + /** * 用户登出 */ diff --git a/policeSecurityServer/src/main/java/com/changhu/config/WebConfig.java b/policeSecurityServer/src/main/java/com/changhu/config/WebConfig.java index 3422710..fbc9f4d 100644 --- a/policeSecurityServer/src/main/java/com/changhu/config/WebConfig.java +++ b/policeSecurityServer/src/main/java/com/changhu/config/WebConfig.java @@ -2,6 +2,7 @@ package com.changhu.config; import cn.dev33.satoken.interceptor.SaInterceptor; import cn.dev33.satoken.stp.StpUtil; +import com.changhu.support.interceptor.ClientTypeInterceptor; import com.changhu.support.interceptor.JsonBodyInterceptor; import org.jetbrains.annotations.NotNull; import org.springframework.context.annotation.Configuration; @@ -49,6 +50,8 @@ public class WebConfig implements WebMvcConfigurer { .excludePathPatterns(whiteList); // 注册jsonBody 拦截器 用于标识是否需要JsonResult返回 registry.addInterceptor(new JsonBodyInterceptor()); + // 注册clientType 拦截器 用于校验当前用户是否匹配操作客户端 + registry.addInterceptor(new ClientTypeInterceptor()); } @Override diff --git a/policeSecurityServer/src/main/java/com/changhu/enums/ClientType.java b/policeSecurityServer/src/main/java/com/changhu/enums/ClientType.java index 2b9923e..45daec8 100644 --- a/policeSecurityServer/src/main/java/com/changhu/enums/ClientType.java +++ b/policeSecurityServer/src/main/java/com/changhu/enums/ClientType.java @@ -15,6 +15,7 @@ import lombok.Getter; @Getter @AllArgsConstructor public enum ClientType { + NONE("未定义", null), MANAGEMENT_SUPER("超级后台", ManagementSuperLogin.instance), MANAGEMENT_POLICE("公安后台", ManagementPoliceUnitLogin.instance), MANAGEMENT_SECURITY("保安后台", ManagementSecurityUnitLogin.instance), diff --git a/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementPoliceUnitLogin.java b/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementPoliceUnitLogin.java index ed5f085..7b3a528 100644 --- a/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementPoliceUnitLogin.java +++ b/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementPoliceUnitLogin.java @@ -1,8 +1,8 @@ package com.changhu.enums.handler; import cn.dev33.satoken.stp.SaTokenInfo; -import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.extension.toolkit.Db; import com.changhu.common.db.enums.IsEnable; import com.changhu.common.enums.ResultCode; import com.changhu.common.exception.MessageException; @@ -10,10 +10,9 @@ import com.changhu.common.pojo.vo.TokenInfo; import com.changhu.common.utils.RsaUtil; import com.changhu.common.utils.UserUtil; import com.changhu.common.utils.ValidatorUtil; +import com.changhu.enums.ClientType; import com.changhu.module.management.pojo.entity.ManagementPoliceUnitUser; import com.changhu.module.management.pojo.entity.PoliceUnit; -import com.changhu.module.management.service.ManagementPoliceUnitUserService; -import com.changhu.module.management.service.PoliceUnitService; import com.changhu.pojo.params.ManagementPoliceUnitLoginParams; import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; @@ -24,9 +23,6 @@ import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; */ public class ManagementPoliceUnitLogin extends AbstractLoginHandler { - private final ManagementPoliceUnitUserService policeUnitUserService = SpringUtil.getBean(ManagementPoliceUnitUserService.class); - private final PoliceUnitService policeUnitService = SpringUtil.getBean(PoliceUnitService.class); - public static final ManagementPoliceUnitLogin instance = new ManagementPoliceUnitLogin(); private ManagementPoliceUnitLogin() { @@ -42,7 +38,7 @@ public class ManagementPoliceUnitLogin extends AbstractLoginHandler { String password = RsaUtil.decrypt(managementPoliceUnitLoginParams.getPassword()); //查看 账号/手机号 是否存在 - ManagementPoliceUnitUser managementPoliceUnitUser = policeUnitUserService.lambdaQuery() + ManagementPoliceUnitUser managementPoliceUnitUser = Db.lambdaQuery(ManagementPoliceUnitUser.class) .eq(ManagementPoliceUnitUser::getAccount, accountOrTelephone) .or() .eq(ManagementPoliceUnitUser::getTelephone, accountOrTelephone) @@ -55,7 +51,7 @@ public class ManagementPoliceUnitLogin extends AbstractLoginHandler { } //判断单位是否禁用 - IsEnable unitEnable = policeUnitService.lambdaQuery() + IsEnable unitEnable = Db.lambdaQuery(PoliceUnit.class) .eq(BaseEntity::getSnowFlakeId, managementPoliceUnitUser.getPoliceUnitId()) .oneOpt() .map(PoliceUnit::getIsEnable) @@ -71,7 +67,11 @@ public class ManagementPoliceUnitLogin extends AbstractLoginHandler { } //登录 - SaTokenInfo saTokenInfo = UserUtil.loginAndTokenInfo(managementPoliceUnitUser.getSnowFlakeId()); + SaTokenInfo saTokenInfo = UserUtil.loginAndTokenInfo( + managementPoliceUnitUser.getSnowFlakeId(), + ClientType.MANAGEMENT_POLICE, + managementPoliceUnitUser.getPoliceUnitId() + ); //返回token return new TokenInfo(saTokenInfo.getTokenName(), saTokenInfo.getTokenValue()); } diff --git a/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementSecurityUnitLogin.java b/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementSecurityUnitLogin.java index 79ebe20..d14651f 100644 --- a/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementSecurityUnitLogin.java +++ b/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementSecurityUnitLogin.java @@ -1,8 +1,8 @@ package com.changhu.enums.handler; import cn.dev33.satoken.stp.SaTokenInfo; -import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.extension.toolkit.Db; import com.changhu.common.db.enums.IsEnable; import com.changhu.common.enums.ResultCode; import com.changhu.common.exception.MessageException; @@ -10,11 +10,9 @@ import com.changhu.common.pojo.vo.TokenInfo; import com.changhu.common.utils.RsaUtil; import com.changhu.common.utils.UserUtil; import com.changhu.common.utils.ValidatorUtil; +import com.changhu.enums.ClientType; import com.changhu.module.management.pojo.entity.ManagementSecurityUnitUser; -import com.changhu.module.management.pojo.entity.PoliceUnit; import com.changhu.module.management.pojo.entity.SecurityUnit; -import com.changhu.module.management.service.ManagementSecurityUnitUserService; -import com.changhu.module.management.service.SecurityUnitService; import com.changhu.pojo.params.ManagementSecurityUnitLoginParams; import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; @@ -25,9 +23,6 @@ import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; */ public class ManagementSecurityUnitLogin extends AbstractLoginHandler { - private final ManagementSecurityUnitUserService securityUnitUserService = SpringUtil.getBean(ManagementSecurityUnitUserService.class); - private final SecurityUnitService securityUnitService = SpringUtil.getBean(SecurityUnitService.class); - public static final ManagementSecurityUnitLogin instance = new ManagementSecurityUnitLogin(); private ManagementSecurityUnitLogin() { @@ -42,7 +37,7 @@ public class ManagementSecurityUnitLogin extends AbstractLoginHandler { String password = RsaUtil.decrypt(loginParams.getPassword()); //查看 账号/手机号 是否存在 - ManagementSecurityUnitUser managementSecurityUnitUser = securityUnitUserService.lambdaQuery() + ManagementSecurityUnitUser managementSecurityUnitUser = Db.lambdaQuery(ManagementSecurityUnitUser.class) .eq(ManagementSecurityUnitUser::getAccount, accountOrTelephone) .or() .eq(ManagementSecurityUnitUser::getTelephone, accountOrTelephone) @@ -55,7 +50,7 @@ public class ManagementSecurityUnitLogin extends AbstractLoginHandler { } //判断单位是否禁用 - IsEnable unitEnable = securityUnitService.lambdaQuery() + IsEnable unitEnable = Db.lambdaQuery(SecurityUnit.class) .eq(BaseEntity::getSnowFlakeId, managementSecurityUnitUser.getSecurityUnitId()) .oneOpt() .map(SecurityUnit::getIsEnable) @@ -70,7 +65,11 @@ public class ManagementSecurityUnitLogin extends AbstractLoginHandler { } //登录 - SaTokenInfo saTokenInfo = UserUtil.loginAndTokenInfo(managementSecurityUnitUser.getSnowFlakeId()); + SaTokenInfo saTokenInfo = UserUtil.loginAndTokenInfo( + managementSecurityUnitUser.getSnowFlakeId(), + ClientType.MANAGEMENT_SECURITY, + managementSecurityUnitUser.getSecurityUnitId() + ); //返回token return new TokenInfo(saTokenInfo.getTokenName(), saTokenInfo.getTokenValue()); } diff --git a/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementSuperLogin.java b/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementSuperLogin.java index 4b9f790..42ac7fb 100644 --- a/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementSuperLogin.java +++ b/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementSuperLogin.java @@ -1,16 +1,16 @@ package com.changhu.enums.handler; import cn.dev33.satoken.stp.SaTokenInfo; -import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.extension.toolkit.Db; import com.changhu.common.enums.ResultCode; import com.changhu.common.exception.MessageException; import com.changhu.common.pojo.vo.TokenInfo; import com.changhu.common.utils.RsaUtil; import com.changhu.common.utils.UserUtil; import com.changhu.common.utils.ValidatorUtil; +import com.changhu.enums.ClientType; import com.changhu.module.management.pojo.entity.ManagementSuperUser; -import com.changhu.module.management.service.ManagementSuperUserService; import com.changhu.pojo.params.ManagementSuperLoginParams; /** @@ -20,8 +20,6 @@ import com.changhu.pojo.params.ManagementSuperLoginParams; */ public class ManagementSuperLogin extends AbstractLoginHandler { - private static final ManagementSuperUserService managementSuperUserService = SpringUtil.getBean(ManagementSuperUserService.class); - public static final ManagementSuperLogin instance = new ManagementSuperLogin(); private ManagementSuperLogin() { @@ -35,7 +33,7 @@ public class ManagementSuperLogin extends AbstractLoginHandler { String password = RsaUtil.decrypt(loginParams.getPassword()); //用户是否存在 - ManagementSuperUser user = managementSuperUserService.lambdaQuery() + ManagementSuperUser user = Db.lambdaQuery(ManagementSuperUser.class) .eq(ManagementSuperUser::getTelephone, telephone) .oneOpt() .orElseThrow(() -> new MessageException(ResultCode.USER_NOT_FOUND)); @@ -45,7 +43,10 @@ public class ManagementSuperLogin extends AbstractLoginHandler { throw new MessageException(ResultCode.PASSWORD_ERROR); } //登录 - SaTokenInfo saTokenInfo = UserUtil.loginAndTokenInfo(user.getSnowFlakeId()); + SaTokenInfo saTokenInfo = UserUtil.loginAndTokenInfo( + user.getSnowFlakeId(), + ClientType.MANAGEMENT_SUPER, + null); //返回token return new TokenInfo(saTokenInfo.getTokenName(), saTokenInfo.getTokenValue()); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/EnterprisesUnitController.java b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/EnterprisesUnitController.java index 6b6131d..a8275fa 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/EnterprisesUnitController.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/EnterprisesUnitController.java @@ -2,9 +2,7 @@ package com.changhu.module.management.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.changhu.common.annotation.JsonBody; -import com.changhu.common.pojo.vo.TreeNodeVo; -import com.changhu.common.utils.JavaClassToTsUtil; -import com.changhu.mapper.AdministrativeDivisionMapper; +import com.changhu.common.exception.MessageException; import com.changhu.module.management.pojo.params.EnterprisesUnitSaveOrUpdateParams; import com.changhu.module.management.pojo.queryParams.EnterprisesUnitPagerQueryParams; import com.changhu.module.management.pojo.vo.EnterprisesUnitPagerVo; @@ -14,12 +12,11 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import java.util.List; - /** * @author 20252 * @createTime 2024/9/3 上午10:17 @@ -45,8 +42,13 @@ public class EnterprisesUnitController { enterprisesUnitService.saveOrUpdate(params); } - public static void main(String[] args) { - System.out.println(JavaClassToTsUtil.parse(EnterprisesUnitSaveOrUpdateParams.class)); + @Operation(summary = "根据id删除") + @DeleteMapping("/deleteById") + public void deleteById(@RequestBody Long enterprisesUnitId) { + boolean b = enterprisesUnitService.removeById(enterprisesUnitId); + if (!b) { + throw new MessageException(); + } } } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ManagementPoliceUnitUserController.java b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ManagementPoliceUnitUserController.java index bffda7a..9571494 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ManagementPoliceUnitUserController.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ManagementPoliceUnitUserController.java @@ -1,14 +1,54 @@ package com.changhu.module.management.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.changhu.common.annotation.CheckClientType; import com.changhu.common.annotation.JsonBody; +import com.changhu.enums.ClientType; +import com.changhu.module.management.pojo.params.ManagementPoliceUserSaveOrUpdateParams; +import com.changhu.module.management.pojo.queryParams.ManagementPoliceUnitUserPagerQueryParams; +import com.changhu.module.management.pojo.vo.ManagementPoliceUnitUserPagerVo; +import com.changhu.module.management.service.ManagementPoliceUnitUserService; +import com.changhu.support.mybatisplus.pojo.params.PageParams; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; /** * @author 20252 * @createTime 2024/9/3 上午10:21 * @desc ManagementPoliceUnitUserController... */ +@Tag(name = "后台-公安用户") @JsonBody +@CheckClientType(clientType = ClientType.MANAGEMENT_POLICE) @RequestMapping("/managementPoliceUnitUser") public class ManagementPoliceUnitUserController { + + @Autowired + private ManagementPoliceUnitUserService managementPoliceUnitUserService; + + @Operation(summary = "新增或保存") + @PostMapping("/saveOrUpdate") + public void saveOrUpdate(@RequestBody @Valid ManagementPoliceUserSaveOrUpdateParams params) { + managementPoliceUnitUserService.saveOrUpdate(params); + } + + @Operation(summary = "分页查询") + @PostMapping("/pager") + public Page pager(@RequestBody PageParams queryParams) { + return managementPoliceUnitUserService.pager(queryParams); + } + + @Operation(summary = "根据id删除") + @PostMapping("/deleteById") + public void deleteById(@RequestParam @Schema(description = "后台公安用户id") Long managementPoliceUnitUserId) { + managementPoliceUnitUserService.deleteById(managementPoliceUnitUserId); + } + } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ManagementSecurityUnitUserController.java b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ManagementSecurityUnitUserController.java index 8c427e8..0fc7753 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ManagementSecurityUnitUserController.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ManagementSecurityUnitUserController.java @@ -1,19 +1,20 @@ package com.changhu.module.management.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.changhu.common.annotation.CheckClientType; import com.changhu.common.annotation.JsonBody; +import com.changhu.enums.ClientType; import com.changhu.module.management.pojo.params.ManagementSecurityUnitUserSaveOrUpdateParams; import com.changhu.module.management.pojo.queryParams.ManagementSecurityUnitUserPagerQueryParams; import com.changhu.module.management.pojo.vo.ManagementSecurityUnitUserPagerVo; import com.changhu.module.management.service.ManagementSecurityUnitUserService; import com.changhu.support.mybatisplus.pojo.params.PageParams; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.*; /** * @author 20252 @@ -23,6 +24,7 @@ import org.springframework.web.bind.annotation.RequestMapping; @Tag(name = "后台-保安用户") @JsonBody @RequestMapping("/managementSecurityUnitUser") +@CheckClientType(clientType = ClientType.MANAGEMENT_SECURITY) public class ManagementSecurityUnitUserController { @Autowired @@ -39,4 +41,9 @@ public class ManagementSecurityUnitUserController { public Page pager(@RequestBody PageParams queryParams) { return managementSecurityUnitUserService.pager(queryParams); } + + @DeleteMapping("/deleteById") + public void deleteById(@RequestParam @Schema(description = "后台保安用户id") Long managementSecurityUnitUserId) { + managementSecurityUnitUserService.deleteById(managementSecurityUnitUserId); + } } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/enums/handler/PoliceUnitTypeHandler.java b/policeSecurityServer/src/main/java/com/changhu/module/management/enums/handler/PoliceUnitTypeHandler.java index 52f6e15..f2b5c8a 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/enums/handler/PoliceUnitTypeHandler.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/enums/handler/PoliceUnitTypeHandler.java @@ -12,7 +12,6 @@ import com.changhu.common.exception.MessageException; import com.changhu.common.utils.UserUtil; import com.changhu.module.management.pojo.entity.ManagementPoliceUnitUser; import com.changhu.module.management.pojo.entity.PoliceUnit; -import com.changhu.module.management.pojo.entity.SecurityUnit; import com.changhu.module.management.pojo.vo.UnitCheckStatusVo; import com.changhu.module.management.service.ManagementPoliceUnitUserService; import com.changhu.module.management.service.PoliceUnitService; diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ManagementPoliceUnitUserMapper.java b/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ManagementPoliceUnitUserMapper.java index 7eea1e6..b459e3f 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ManagementPoliceUnitUserMapper.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ManagementPoliceUnitUserMapper.java @@ -1,8 +1,14 @@ package com.changhu.module.management.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.changhu.module.management.pojo.entity.ManagementPoliceUnitUser; +import com.changhu.module.management.pojo.queryParams.ManagementPoliceUnitUserPagerQueryParams; +import com.changhu.module.management.pojo.vo.ManagementPoliceUnitUserPagerVo; +import com.changhu.support.mybatisplus.annotation.DataScope; +import com.changhu.support.mybatisplus.handler.permission.management.ManagementPoliceUnitUserPagerPermissionHandler; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * management_police_user (后台-公安单位用户表) 固化类 @@ -12,4 +18,14 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ManagementPoliceUnitUserMapper extends BaseMapper { + /** + * 分页查询 + * + * @param page 分页参数 + * @param params 查询参数 + * @return 结果 + */ + @DataScope(permissionHandler = ManagementPoliceUnitUserPagerPermissionHandler.class) + Page pager(@Param("page") Page page, + @Param("params") ManagementPoliceUnitUserPagerQueryParams params); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/entity/EnterprisesUnit.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/entity/EnterprisesUnit.java index 04fb73d..8569927 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/entity/EnterprisesUnit.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/entity/EnterprisesUnit.java @@ -1,18 +1,18 @@ package com.changhu.module.management.pojo.entity; -import java.io.Serial; -import java.io.Serializable; - import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler; import com.changhu.module.management.pojo.model.ContactPersonInfo; import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; -import lombok.Data; import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; -import lombok.EqualsAndHashCode; -import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serial; +import java.io.Serializable; /** diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/ManagementPoliceUserSaveOrUpdateParams.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/ManagementPoliceUserSaveOrUpdateParams.java new file mode 100644 index 0000000..13a1e2a --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/ManagementPoliceUserSaveOrUpdateParams.java @@ -0,0 +1,39 @@ +package com.changhu.module.management.pojo.params; + +import com.changhu.common.db.enums.IsEnable; +import com.changhu.common.db.enums.Sex; +import com.changhu.common.validator.annotation.IsMobile; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * @author 20252 + * @createTime 2024/9/4 下午3:04 + * @desc ManagementPoliceUserSaveOrUpdateParams... + */ +@Data +public class ManagementPoliceUserSaveOrUpdateParams { + + @Schema(description = "id") + private Long snowFlakeId; + + @NotNull(message = "名称不能为空") + @Schema(description = "名称") + private String name; + + @NotNull(message = "性别不能为空") + @Schema(description = "性别") + private Sex sex; + + @IsMobile + @NotBlank(message = "手机号不能为空") + @Schema(description = "手机号") + private String telephone; + + @NotNull(message = "是否启用不能为空") + @Schema(description = "是否启用") + private IsEnable isEnable; + +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/ManagementSecurityUnitUserSaveOrUpdateParams.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/ManagementSecurityUnitUserSaveOrUpdateParams.java index dc58729..9e35740 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/ManagementSecurityUnitUserSaveOrUpdateParams.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/ManagementSecurityUnitUserSaveOrUpdateParams.java @@ -3,15 +3,11 @@ package com.changhu.module.management.pojo.params; import com.changhu.common.db.enums.IsEnable; import com.changhu.common.db.enums.Sex; import com.changhu.common.validator.annotation.IsMobile; -import com.changhu.module.management.pojo.model.ContactPersonInfo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; -import java.util.List; - /** * @author 20252 * @createTime 2024/9/3 上午10:26 diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/ManagementPoliceUnitUserPagerQueryParams.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/ManagementPoliceUnitUserPagerQueryParams.java new file mode 100644 index 0000000..6128212 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/ManagementPoliceUnitUserPagerQueryParams.java @@ -0,0 +1,20 @@ +package com.changhu.module.management.pojo.queryParams; + +import com.changhu.common.db.enums.Sex; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author 20252 + * @createTime 2024/9/4 下午3:22 + * @desc ManagementPoliceUnitUserPagerQueryParams... + */ +@Data +public class ManagementPoliceUnitUserPagerQueryParams { + @Schema(description = "名字") + private String name; + @Schema(description = "手机号") + private String telephone; + @Schema(description = "性别") + private Sex sex; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ManagementPoliceUnitUserPagerVo.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ManagementPoliceUnitUserPagerVo.java new file mode 100644 index 0000000..7e207ea --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ManagementPoliceUnitUserPagerVo.java @@ -0,0 +1,46 @@ +package com.changhu.module.management.pojo.vo; + +import com.changhu.common.db.enums.IsEnable; +import com.changhu.common.db.enums.IsOrNot; +import com.changhu.common.db.enums.Sex; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author 20252 + * @createTime 2024/9/3 上午10:59 + * @desc ManagementSecurityUnitUserPagerVo... + */ +@Data +public class ManagementPoliceUnitUserPagerVo { + + @Schema(description = "id") + private Long snowFlakeId; + + @Schema(description = "名称") + private String name; + + @Schema(description = "性别") + private Sex sex; + + @Schema(description = "性别") + private String account; + + @Schema(description = "手机号") + private String telephone; + + + @Schema(description = "是否启用") + private IsEnable isEnable; + + @Schema(description = "是否是超管") + private IsOrNot isAdmin; + + @Schema(description = "创建人") + private String createUserName; + + @Schema(description = "创建时间") + private LocalDateTime createTime; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/ManagementPoliceUnitUserService.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/ManagementPoliceUnitUserService.java index d70efca..8651bcc 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/ManagementPoliceUnitUserService.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/ManagementPoliceUnitUserService.java @@ -1,7 +1,12 @@ package com.changhu.module.management.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.changhu.module.management.pojo.entity.ManagementPoliceUnitUser; +import com.changhu.module.management.pojo.params.ManagementPoliceUserSaveOrUpdateParams; +import com.changhu.module.management.pojo.queryParams.ManagementPoliceUnitUserPagerQueryParams; +import com.changhu.module.management.pojo.vo.ManagementPoliceUnitUserPagerVo; +import com.changhu.support.mybatisplus.pojo.params.PageParams; /** * management_police_user (后台-公安单位用户表) 服务类 @@ -10,4 +15,25 @@ import com.changhu.module.management.pojo.entity.ManagementPoliceUnitUser; */ public interface ManagementPoliceUnitUserService extends IService { + /** + * 新增或者保持 + * + * @param params 参数 + */ + void saveOrUpdate(ManagementPoliceUserSaveOrUpdateParams params); + + /** + * 分页查询 + * + * @param queryParams 查询参数 + * @return 结果 + */ + Page pager(PageParams queryParams); + + /** + * 根据id删除 + * + * @param managementPoliceUnitUserId 后台公安用户id + */ + void deleteById(Long managementPoliceUnitUserId); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/ManagementSecurityUnitUserService.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/ManagementSecurityUnitUserService.java index 000b0d5..e1466cd 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/ManagementSecurityUnitUserService.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/ManagementSecurityUnitUserService.java @@ -29,4 +29,11 @@ public interface ManagementSecurityUnitUserService extends IService pager(PageParams queryParams); + + /** + * 根据id删除 + * + * @param managementSecurityUnitUserId 后台保安用户id + */ + void deleteById(Long managementSecurityUnitUserId); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ManagementPoliceUnitUserServiceImpl.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ManagementPoliceUnitUserServiceImpl.java index 821ae52..e5c596f 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ManagementPoliceUnitUserServiceImpl.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ManagementPoliceUnitUserServiceImpl.java @@ -1,10 +1,26 @@ package com.changhu.module.management.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.changhu.common.enums.ResultCode; +import com.changhu.common.exception.MessageException; +import com.changhu.common.utils.UserUtil; +import com.changhu.enums.ClientType; import com.changhu.module.management.mapper.ManagementPoliceUnitUserMapper; import com.changhu.module.management.pojo.entity.ManagementPoliceUnitUser; +import com.changhu.module.management.pojo.params.ManagementPoliceUserSaveOrUpdateParams; +import com.changhu.module.management.pojo.queryParams.ManagementPoliceUnitUserPagerQueryParams; +import com.changhu.module.management.pojo.vo.ManagementPoliceUnitUserPagerVo; import com.changhu.module.management.service.ManagementPoliceUnitUserService; +import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; +import com.changhu.support.mybatisplus.pojo.params.PageParams; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * management_police_user (后台-公安单位用户表) 服务实现类 @@ -14,4 +30,57 @@ import org.springframework.stereotype.Service; @Service public class ManagementPoliceUnitUserServiceImpl extends ServiceImpl implements ManagementPoliceUnitUserService { + @Transactional(rollbackFor = Exception.class) + @Override + public void saveOrUpdate(ManagementPoliceUserSaveOrUpdateParams params) { + //查看手机号是否存在 + boolean exists = this.lambdaQuery() + .eq(ManagementPoliceUnitUser::getTelephone, params.getTelephone()) + .exists(); + if (exists) { + throw new MessageException("该手机号已存在"); + } + ManagementPoliceUnitUser managementPoliceUnitUser = BeanUtil.copyProperties(params, ManagementPoliceUnitUser.class); + //新增 补全信息 + if (managementPoliceUnitUser.getSnowFlakeId() == null) { + String account = RandomUtil.randomString(6); + boolean accExits = this.lambdaQuery().eq(ManagementPoliceUnitUser::getAccount, account).exists(); + if (accExits) { + throw new MessageException("生成的账号已存在 请重新提交生成"); + } + //生成账号 + managementPoliceUnitUser.setAccount(account); + //补全单位 + managementPoliceUnitUser.setPoliceUnitId(UserUtil.getUnitId()); + //生成密码 + String passWordEncrypt = UserUtil.passWordEncrypt(UserUtil.DEFAULT_PASSWORD); + List saltAndPassWord = StrUtil.split(passWordEncrypt, "$$"); + managementPoliceUnitUser.setSalt(saltAndPassWord.get(0)); + managementPoliceUnitUser.setPassword(saltAndPassWord.get(1)); + } + this.saveOrUpdate(managementPoliceUnitUser); + } + + @Override + public Page pager(PageParams queryParams) { + return baseMapper.pager(queryParams.getPage(), queryParams.getParams()); + } + + @Override + public void deleteById(Long managementPoliceUnitUserId) { + Long unitId = UserUtil.getUnitId(); + Long l = this.lambdaQuery() + .eq(BaseEntity::getSnowFlakeId, managementPoliceUnitUserId) + .oneOpt() + .map(ManagementPoliceUnitUser::getPoliceUnitId) + .orElseThrow(() -> new MessageException(ResultCode.USER_NOT_FOUND)); + if (!unitId.equals(l)) { + throw new MessageException("单位不匹配,无权操作"); + } + boolean b = this.removeById(managementPoliceUnitUserId); + if (!b) { + throw new MessageException(); + } + + } } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ManagementSecurityUnitUserServiceImpl.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ManagementSecurityUnitUserServiceImpl.java index 9d4d7be..51a794d 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ManagementSecurityUnitUserServiceImpl.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ManagementSecurityUnitUserServiceImpl.java @@ -5,14 +5,18 @@ import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.changhu.common.enums.ResultCode; import com.changhu.common.exception.MessageException; import com.changhu.common.utils.UserUtil; +import com.changhu.enums.ClientType; import com.changhu.module.management.mapper.ManagementSecurityUnitUserMapper; +import com.changhu.module.management.pojo.entity.ManagementPoliceUnitUser; import com.changhu.module.management.pojo.entity.ManagementSecurityUnitUser; import com.changhu.module.management.pojo.params.ManagementSecurityUnitUserSaveOrUpdateParams; import com.changhu.module.management.pojo.queryParams.ManagementSecurityUnitUserPagerQueryParams; import com.changhu.module.management.pojo.vo.ManagementSecurityUnitUserPagerVo; import com.changhu.module.management.service.ManagementSecurityUnitUserService; +import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; import com.changhu.support.mybatisplus.pojo.params.PageParams; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,6 +41,7 @@ public class ManagementSecurityUnitUserServiceImpl extends ServiceImpl saltAndPassWord = StrUtil.split(passWordEncrypt, "$$"); @@ -62,4 +72,21 @@ public class ManagementSecurityUnitUserServiceImpl extends ServiceImpl pager(PageParams queryParams) { return baseMapper.pager(queryParams.getPage(), queryParams.getParams()); } + + @Override + public void deleteById(Long managementSecurityUnitUserId) { + Long unitId = UserUtil.getUnitId(); + Long l = this.lambdaQuery() + .eq(BaseEntity::getSnowFlakeId, managementSecurityUnitUserId) + .oneOpt() + .map(ManagementSecurityUnitUser::getSecurityUnitId) + .orElseThrow(() -> new MessageException(ResultCode.USER_NOT_FOUND)); + if (!unitId.equals(l)) { + throw new MessageException("单位不匹配,无权操作"); + } + boolean b = this.removeById(managementSecurityUnitUserId); + if (!b) { + throw new MessageException(); + } + } } diff --git a/policeSecurityServer/src/main/java/com/changhu/support/interceptor/ClientTypeInterceptor.java b/policeSecurityServer/src/main/java/com/changhu/support/interceptor/ClientTypeInterceptor.java new file mode 100644 index 0000000..5722271 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/support/interceptor/ClientTypeInterceptor.java @@ -0,0 +1,54 @@ +package com.changhu.support.interceptor; + +import com.changhu.common.annotation.CheckClientType; +import com.changhu.common.exception.MessageException; +import com.changhu.common.utils.UserUtil; +import com.changhu.enums.ClientType; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.jetbrains.annotations.NotNull; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.HandlerInterceptor; + +/** + * @author 20252 + * @createTime 2024/9/4 下午4:00 + * @desc ClientTypeInterceptor... + */ +public class ClientTypeInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(@NotNull HttpServletRequest request, + @NotNull HttpServletResponse response, + @NotNull Object handler) { + if (handler instanceof HandlerMethod handlerMethod) { + boolean b = false; + ClientType ct = null; + + CheckClientType clazzJsonBody = handlerMethod.getBeanType().getAnnotation(CheckClientType.class); + CheckClientType methodJsonBody = handlerMethod.getMethodAnnotation(CheckClientType.class); + + if (clazzJsonBody != null) { + if (methodJsonBody == null) { + b = true; + ct = clazzJsonBody.clientType(); + } else if (methodJsonBody.value()) { + b = true; + ct = methodJsonBody.clientType(); + } + } else { + if (methodJsonBody != null && methodJsonBody.value()) { + b = true; + ct = methodJsonBody.clientType(); + } + } + + if (b) { + if (!ct.equals(UserUtil.getClientType())) { + throw new MessageException("客户端类型不对"); + } + } + } + return true; + } +} diff --git a/policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementPoliceUnitUserPagerPermissionHandler.java b/policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementPoliceUnitUserPagerPermissionHandler.java new file mode 100644 index 0000000..518a62d --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementPoliceUnitUserPagerPermissionHandler.java @@ -0,0 +1,29 @@ +package com.changhu.support.mybatisplus.handler.permission.management; + +import com.changhu.common.utils.UserUtil; +import com.changhu.support.mybatisplus.handler.permission.AbstractDataPermissionHandler; +import net.sf.jsqlparser.expression.Expression; +import net.sf.jsqlparser.expression.LongValue; +import net.sf.jsqlparser.expression.operators.relational.EqualsTo; +import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.schema.Table; + +/** + * @author 20252 + * @createTime 2024/9/4 下午3:29 + * @desc ManagementPoliceUnitUserPagerPermissionHandler... + */ +public class ManagementPoliceUnitUserPagerPermissionHandler implements AbstractDataPermissionHandler { + @Override + public Expression apply(Table table, Expression where, String mappedStatementId) { + if ("mpuu".equals(table.getAlias().getName())) { + return sqlFragment(); + } + return null; + } + + @Override + public Expression sqlFragment() { + return new EqualsTo(new Column("mpuu.police_unit_id"), new LongValue(UserUtil.getUnitId())); + } +} diff --git a/policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementSecurityUnitUserPagerPermissionHandler.java b/policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementSecurityUnitUserPagerPermissionHandler.java index e28d3a8..774f397 100644 --- a/policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementSecurityUnitUserPagerPermissionHandler.java +++ b/policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementSecurityUnitUserPagerPermissionHandler.java @@ -1,12 +1,7 @@ package com.changhu.support.mybatisplus.handler.permission.management; -import com.baomidou.mybatisplus.extension.toolkit.Db; -import com.changhu.common.enums.ResultCode; -import com.changhu.common.exception.MessageException; import com.changhu.common.utils.UserUtil; -import com.changhu.module.management.pojo.entity.ManagementSecurityUnitUser; import com.changhu.support.mybatisplus.handler.permission.AbstractDataPermissionHandler; -import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; import net.sf.jsqlparser.expression.Expression; import net.sf.jsqlparser.expression.LongValue; import net.sf.jsqlparser.expression.operators.relational.EqualsTo; @@ -29,12 +24,6 @@ public class ManagementSecurityUnitUserPagerPermissionHandler implements Abstrac @Override public Expression sqlFragment() { - //查出当前用户 - ManagementSecurityUnitUser managementSecurityUnitUser = Db.lambdaQuery(ManagementSecurityUnitUser.class) - .select(BaseEntity::getSnowFlakeId, ManagementSecurityUnitUser::getSecurityUnitId) - .eq(BaseEntity::getSnowFlakeId, UserUtil.getUserId()) - .oneOpt() - .orElseThrow(() -> new MessageException(ResultCode.USER_NOT_FOUND)); - return new EqualsTo(new Column("msuu.security_unit_id"), new LongValue(managementSecurityUnitUser.getSecurityUnitId())); + return new EqualsTo(new Column("msuu.security_unit_id"), new LongValue(UserUtil.getUnitId())); } } diff --git a/policeSecurityServer/src/main/java/com/changhu/support/satoken/SaTokenConfig.java b/policeSecurityServer/src/main/java/com/changhu/support/satoken/SaTokenConfig.java index 5132956..dd2c3ff 100644 --- a/policeSecurityServer/src/main/java/com/changhu/support/satoken/SaTokenConfig.java +++ b/policeSecurityServer/src/main/java/com/changhu/support/satoken/SaTokenConfig.java @@ -1,8 +1,11 @@ package com.changhu.support.satoken; import cn.dev33.satoken.dao.SaTokenDaoRedis; +import cn.dev33.satoken.jwt.StpLogicJwtForSimple; +import cn.dev33.satoken.stp.StpLogic; import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; @@ -29,4 +32,12 @@ public class SaTokenConfig { this.saTokenDaoRedis.stringRedisTemplate = this.stringRedisTemplate; this.saTokenDaoRedis.objectRedisTemplate = this.redisTemplate; } + + /** + * Sa-Token 整合 jwt (Simple 简单模式) + */ + @Bean + public StpLogic getStpLogicJwt() { + return new StpLogicJwtForSimple(); + } } diff --git a/policeSecurityServer/src/main/resources/env/dev/application.yml b/policeSecurityServer/src/main/resources/env/dev/application.yml index b6b5cb7..e33cc4f 100644 --- a/policeSecurityServer/src/main/resources/env/dev/application.yml +++ b/policeSecurityServer/src/main/resources/env/dev/application.yml @@ -138,6 +138,8 @@ sa-token: is-log: true # 是否尝试从 cookie 里读取 token is-read-cookie: false + # jwt秘钥 + jwt-secret-key: a29216f8-cd60-4e96-89c5-ab6012159052 project: env: dev diff --git a/policeSecurityServer/src/main/resources/mapper/ManagementPoliceUnitUserMapper.xml b/policeSecurityServer/src/main/resources/mapper/ManagementPoliceUnitUserMapper.xml new file mode 100644 index 0000000..bfd899b --- /dev/null +++ b/policeSecurityServer/src/main/resources/mapper/ManagementPoliceUnitUserMapper.xml @@ -0,0 +1,23 @@ + + + + + \ No newline at end of file diff --git a/superManagement/index.html b/superManagement/index.html index d821b0d..28e4832 100644 --- a/superManagement/index.html +++ b/superManagement/index.html @@ -6,7 +6,7 @@ - Vite + Vue + TS + 超级后台
diff --git a/superManagement/src/views/unitManage/policeUnit/index.vue b/superManagement/src/views/unitManage/policeUnit/index.vue index d2cf4af..4c9507c 100644 --- a/superManagement/src/views/unitManage/policeUnit/index.vue +++ b/superManagement/src/views/unitManage/policeUnit/index.vue @@ -24,7 +24,7 @@ import {dictSelectNodes} from "@/config/dict.ts"; import {message, Modal} from "ant-design-vue"; import {UNIT_TYPE} from "@/config"; import {PageParams} from "@/types/hooks/useTableProMax.ts"; -import {submitSimpleFormModal} from "@/components/tsx/ModalPro.tsx"; +import {submitSimpleFormModal, deleteDataModal} from "@/components/tsx/ModalPro.tsx"; import useSelectAndTreeNodeVos from "@/hooks/useSelectAndTreeNodeVos.ts"; type TableProps = TableProMaxProps @@ -103,13 +103,17 @@ const columns: TableProps['columns'] = [ }, } ] -const searchFormOptions: TableProps["searchFormOptions"] = { +const searchFormOptions = ref({ name: { type: 'input', label: '名称' }, code: { type: 'input', label: '代码' + }, administrativeDivisionCodes: { + type: 'cascader', + label: '行政区划', + options: administrativeDivisionTree }, isEnable: { type: 'select', label: '是否启用', @@ -129,7 +133,7 @@ const searchFormOptions: TableProps["searchFormOptions"] = { }, ...dictSelectNodes('CheckStatus') ] } -} +}) type _TableProps = TableProMaxProps; const showEnterprisesUnit = (policeUnitPagerVo: PoliceUnitPagerVo) => { @@ -226,6 +230,14 @@ const showEnterprisesUnit = (policeUnitPagerVo: PoliceUnitPagerVo) => { })} >编辑 + deleteDataModal(record.name, async () => { + const resp = await api.delete('/enterprisesUnit/deleteById', { + enterprisesUnitId: record.snowFlakeId + }) + message.success(resp.message) + await _tableRef.value?.requestGetTableData() + })}>删除 + } ] diff --git a/superManagement/src/views/unitManage/securityUnit/index.vue b/superManagement/src/views/unitManage/securityUnit/index.vue index 28c2a23..12ebf4a 100644 --- a/superManagement/src/views/unitManage/securityUnit/index.vue +++ b/superManagement/src/views/unitManage/securityUnit/index.vue @@ -81,21 +81,24 @@ const columns: TableProps['columns'] = [ title: '操作', fixed: "right", customRender({record}) { + if (record.checkStatus.value === 1) { + return + { + const resp = await api.post('/management/checkPass', { + checkDataId: record.snowFlakeId, + unitOptType: UNIT_TYPE.security + }) + message.success(resp.message) + await tableRef.value?.requestGetTableData() + }}> + 审核通过 + + + + } return - {record.checkStatus.value === 1 && { - const resp = await api.post('/management/checkPass', { - checkDataId: record.snowFlakeId, - unitOptType: UNIT_TYPE.security - }) - message.success(resp.message) - await tableRef.value?.requestGetTableData() - }}> - 审核通过 - - - } {