diff --git a/policeSecurityServer/pom.xml b/policeSecurityServer/pom.xml index 69b6c0f..61d3d4b 100644 --- a/policeSecurityServer/pom.xml +++ b/policeSecurityServer/pom.xml @@ -27,6 +27,7 @@ 8.4.3 4.8.1 1.38.0 + 4.6.0 @@ -200,6 +201,12 @@ okhttp ${okhttp.version} + + + com.github.binarywang + weixin-java-miniapp + ${wx.miniapp.version} + diff --git a/policeSecurityServer/src/main/java/com/changhu/common/annotation/CheckClientType.java b/policeSecurityServer/src/main/java/com/changhu/common/annotation/CheckUserType.java similarity index 85% rename from policeSecurityServer/src/main/java/com/changhu/common/annotation/CheckClientType.java rename to policeSecurityServer/src/main/java/com/changhu/common/annotation/CheckUserType.java index 0f49299..247ea5d 100644 --- a/policeSecurityServer/src/main/java/com/changhu/common/annotation/CheckClientType.java +++ b/policeSecurityServer/src/main/java/com/changhu/common/annotation/CheckUserType.java @@ -4,6 +4,7 @@ import com.changhu.enums.ClientType; import org.springframework.web.bind.annotation.RestController; import java.lang.annotation.*; +import java.util.List; /** * @author 20252 @@ -14,7 +15,7 @@ import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Documented @RestController -public @interface CheckClientType { +public @interface CheckUserType { /** * 是否需要校验客户端类型 @@ -24,5 +25,5 @@ public @interface CheckClientType { /** * 需要的客户端类型 */ - ClientType clientType() default ClientType.NONE; + UserType[] userTypes(); } diff --git a/policeSecurityServer/src/main/java/com/changhu/common/annotation/UserType.java b/policeSecurityServer/src/main/java/com/changhu/common/annotation/UserType.java new file mode 100644 index 0000000..b63153c --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/common/annotation/UserType.java @@ -0,0 +1,22 @@ +package com.changhu.common.annotation; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author 20252 + * @createTime 2024/9/6 上午11:13 + * @desc UserType... + */ +@AllArgsConstructor +@Getter +public enum UserType { + MANAGEMENT_POLICE("公安后台用户"), + MANAGEMENT_SECURITY("保安后台用户"), + MANAGEMENT_SUPER("超级后台用户"), + + MINI_PROGRAM_POLICE("小程序公安用户"), + MINI_PROGRAM_PROJECT_MANAGE("小程序项目经理"); + + private final String remark; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/common/db/enums/MiniProgramUserIdentity.java b/policeSecurityServer/src/main/java/com/changhu/common/db/enums/MiniProgramUserIdentity.java new file mode 100644 index 0000000..f4d97ce --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/common/db/enums/MiniProgramUserIdentity.java @@ -0,0 +1,22 @@ +package com.changhu.common.db.enums; + +import com.baomidou.mybatisplus.annotation.IEnum; +import com.changhu.common.db.BaseEnum; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author 20252 + * @createTime 2024/9/5 上午11:50 + * @desc MiniProgramUserIdentity... + */ +@AllArgsConstructor +@Getter +public enum MiniProgramUserIdentity implements BaseEnum, IEnum { + + POLICE("police", "公安"), + PROJECT_MANAGER("project_manager", "项目经理"); + + private final String value; + private final String label; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/common/db/enums/ServiceProjectType.java b/policeSecurityServer/src/main/java/com/changhu/common/db/enums/ServiceProjectType.java new file mode 100644 index 0000000..d7d3961 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/common/db/enums/ServiceProjectType.java @@ -0,0 +1,24 @@ +package com.changhu.common.db.enums; + +import com.baomidou.mybatisplus.annotation.IEnum; +import com.changhu.common.db.BaseEnum; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author 20252 + * @createTime 2024/9/5 上午11:04 + * @desc 服务项目类型 + */ +@AllArgsConstructor +@Getter +public enum ServiceProjectType implements BaseEnum, IEnum { + + SECURITY("security", "安保"), + PROPERTY("property", "物业"), + ; + + + private final String value; + private final String label; +} 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 5483ddf..7d6cbe8 100644 --- a/policeSecurityServer/src/main/java/com/changhu/common/utils/UserUtil.java +++ b/policeSecurityServer/src/main/java/com/changhu/common/utils/UserUtil.java @@ -6,6 +6,7 @@ import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; +import com.changhu.common.annotation.UserType; import com.changhu.common.enums.ResultCode; import com.changhu.common.exception.MessageException; import com.changhu.enums.ClientType; @@ -45,18 +46,18 @@ 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)); + public static SaTokenInfo loginAndTokenInfo(Long userId, UserType userType, Long unitId) { + StpUtil.login(userId, SaLoginConfig.setExtra("userType", userType).setExtra("unitId", unitId)); return getTokenInfo(); } /** * 获取客户端类型 */ - public static ClientType getClientType() { - Object clientType = StpUtil.getExtra("clientType"); + public static UserType getUserType() { + Object clientType = StpUtil.getExtra("userType"); if (clientType instanceof String ct) { - return ClientType.valueOf(ct); + return UserType.valueOf(ct); } return null; } diff --git a/policeSecurityServer/src/main/java/com/changhu/config/WebConfig.java b/policeSecurityServer/src/main/java/com/changhu/config/WebConfig.java index fbc9f4d..e34c5c2 100644 --- a/policeSecurityServer/src/main/java/com/changhu/config/WebConfig.java +++ b/policeSecurityServer/src/main/java/com/changhu/config/WebConfig.java @@ -2,7 +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.UserTypeInterceptor; import com.changhu.support.interceptor.JsonBodyInterceptor; import org.jetbrains.annotations.NotNull; import org.springframework.context.annotation.Configuration; @@ -51,7 +51,7 @@ public class WebConfig implements WebMvcConfigurer { // 注册jsonBody 拦截器 用于标识是否需要JsonResult返回 registry.addInterceptor(new JsonBodyInterceptor()); // 注册clientType 拦截器 用于校验当前用户是否匹配操作客户端 - registry.addInterceptor(new ClientTypeInterceptor()); + registry.addInterceptor(new UserTypeInterceptor()); } @Override diff --git a/policeSecurityServer/src/main/java/com/changhu/controller/CommonController.java b/policeSecurityServer/src/main/java/com/changhu/controller/CommonController.java index 3f3da94..2d316fb 100644 --- a/policeSecurityServer/src/main/java/com/changhu/controller/CommonController.java +++ b/policeSecurityServer/src/main/java/com/changhu/controller/CommonController.java @@ -22,6 +22,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.PostConstruct; import jakarta.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; import org.springframework.web.bind.annotation.*; import java.lang.reflect.Field; @@ -51,6 +52,7 @@ public class CommonController { private static final Map>> enumsResult = new HashMap<>(); + @Cacheable(value = "common", key = "'AdministrativeDivisionLevel' + #level + 'Tree'") @Operation(summary = "行政区划树") @GetMapping("/administrativeDivisionTree") public List> AdministrativeDivisionTree(@Schema(description = "等级") @RequestParam(defaultValue = "4") Integer level) { diff --git a/policeSecurityServer/src/main/java/com/changhu/enums/ClientType.java b/policeSecurityServer/src/main/java/com/changhu/enums/ClientType.java index 45daec8..2b9923e 100644 --- a/policeSecurityServer/src/main/java/com/changhu/enums/ClientType.java +++ b/policeSecurityServer/src/main/java/com/changhu/enums/ClientType.java @@ -15,7 +15,6 @@ 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 7b3a528..fe6eaf7 100644 --- a/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementPoliceUnitLogin.java +++ b/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementPoliceUnitLogin.java @@ -3,6 +3,7 @@ package com.changhu.enums.handler; import cn.dev33.satoken.stp.SaTokenInfo; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.extension.toolkit.Db; +import com.changhu.common.annotation.UserType; import com.changhu.common.db.enums.IsEnable; import com.changhu.common.enums.ResultCode; import com.changhu.common.exception.MessageException; @@ -10,7 +11,6 @@ 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.pojo.params.ManagementPoliceUnitLoginParams; @@ -69,7 +69,7 @@ public class ManagementPoliceUnitLogin extends AbstractLoginHandler { //登录 SaTokenInfo saTokenInfo = UserUtil.loginAndTokenInfo( managementPoliceUnitUser.getSnowFlakeId(), - ClientType.MANAGEMENT_POLICE, + UserType.MANAGEMENT_POLICE, managementPoliceUnitUser.getPoliceUnitId() ); //返回token 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 d14651f..3bd009e 100644 --- a/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementSecurityUnitLogin.java +++ b/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementSecurityUnitLogin.java @@ -3,6 +3,7 @@ package com.changhu.enums.handler; import cn.dev33.satoken.stp.SaTokenInfo; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.extension.toolkit.Db; +import com.changhu.common.annotation.UserType; import com.changhu.common.db.enums.IsEnable; import com.changhu.common.enums.ResultCode; import com.changhu.common.exception.MessageException; @@ -67,7 +68,7 @@ public class ManagementSecurityUnitLogin extends AbstractLoginHandler { //登录 SaTokenInfo saTokenInfo = UserUtil.loginAndTokenInfo( managementSecurityUnitUser.getSnowFlakeId(), - ClientType.MANAGEMENT_SECURITY, + UserType.MANAGEMENT_SECURITY, managementSecurityUnitUser.getSecurityUnitId() ); //返回token 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 42ac7fb..8204208 100644 --- a/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementSuperLogin.java +++ b/policeSecurityServer/src/main/java/com/changhu/enums/handler/ManagementSuperLogin.java @@ -3,6 +3,7 @@ package com.changhu.enums.handler; import cn.dev33.satoken.stp.SaTokenInfo; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.extension.toolkit.Db; +import com.changhu.common.annotation.UserType; import com.changhu.common.enums.ResultCode; import com.changhu.common.exception.MessageException; import com.changhu.common.pojo.vo.TokenInfo; @@ -45,7 +46,7 @@ public class ManagementSuperLogin extends AbstractLoginHandler { //登录 SaTokenInfo saTokenInfo = UserUtil.loginAndTokenInfo( user.getSnowFlakeId(), - ClientType.MANAGEMENT_SUPER, + UserType.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 a8275fa..e2ac2a1 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 @@ -3,19 +3,20 @@ package com.changhu.module.management.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.changhu.common.annotation.JsonBody; import com.changhu.common.exception.MessageException; +import com.changhu.common.pojo.vo.SelectNodeVo; import com.changhu.module.management.pojo.params.EnterprisesUnitSaveOrUpdateParams; import com.changhu.module.management.pojo.queryParams.EnterprisesUnitPagerQueryParams; import com.changhu.module.management.pojo.vo.EnterprisesUnitPagerVo; import com.changhu.module.management.service.EnterprisesUnitService; 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.DeleteMapping; -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.*; + +import java.util.List; /** * @author 20252 @@ -44,11 +45,17 @@ public class EnterprisesUnitController { @Operation(summary = "根据id删除") @DeleteMapping("/deleteById") - public void deleteById(@RequestBody Long enterprisesUnitId) { + public void deleteById(@RequestParam @Schema(description = "企事业单位id") Long enterprisesUnitId) { boolean b = enterprisesUnitService.removeById(enterprisesUnitId); if (!b) { throw new MessageException(); } } + @Operation(summary = "根据行政区划编码查询下面的企事业单位") + @PostMapping("/queryListByAdministrativeDivisionCodes") + public List> queryListByAdministrativeDivisionCodes(@RequestBody @Schema(description = "行政区划编码") List administrativeDivisionCodes) { + return enterprisesUnitService.queryListByAdministrativeDivisionCodes(administrativeDivisionCodes); + } + } 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 9571494..ef2083e 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,8 +1,9 @@ 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.CheckUserType; import com.changhu.common.annotation.JsonBody; +import com.changhu.common.annotation.UserType; import com.changhu.enums.ClientType; import com.changhu.module.management.pojo.params.ManagementPoliceUserSaveOrUpdateParams; import com.changhu.module.management.pojo.queryParams.ManagementPoliceUnitUserPagerQueryParams; @@ -14,10 +15,7 @@ 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; +import org.springframework.web.bind.annotation.*; /** * @author 20252 @@ -26,7 +24,7 @@ import org.springframework.web.bind.annotation.RequestParam; */ @Tag(name = "后台-公安用户") @JsonBody -@CheckClientType(clientType = ClientType.MANAGEMENT_POLICE) +@CheckUserType(userTypes = UserType.MANAGEMENT_POLICE) @RequestMapping("/managementPoliceUnitUser") public class ManagementPoliceUnitUserController { @@ -46,7 +44,7 @@ public class ManagementPoliceUnitUserController { } @Operation(summary = "根据id删除") - @PostMapping("/deleteById") + @DeleteMapping("/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 0fc7753..9de9ef8 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,8 +1,9 @@ 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.CheckUserType; import com.changhu.common.annotation.JsonBody; +import com.changhu.common.annotation.UserType; import com.changhu.enums.ClientType; import com.changhu.module.management.pojo.params.ManagementSecurityUnitUserSaveOrUpdateParams; import com.changhu.module.management.pojo.queryParams.ManagementSecurityUnitUserPagerQueryParams; @@ -24,7 +25,7 @@ import org.springframework.web.bind.annotation.*; @Tag(name = "后台-保安用户") @JsonBody @RequestMapping("/managementSecurityUnitUser") -@CheckClientType(clientType = ClientType.MANAGEMENT_SECURITY) +@CheckUserType(userTypes = UserType.MANAGEMENT_SECURITY) public class ManagementSecurityUnitUserController { @Autowired diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/PoliceUnitController.java b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/PoliceUnitController.java index f4be772..f64fb8f 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/PoliceUnitController.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/PoliceUnitController.java @@ -1,8 +1,13 @@ package com.changhu.module.management.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.changhu.common.annotation.CheckUserType; import com.changhu.common.annotation.JsonBody; +import com.changhu.common.annotation.UserType; +import com.changhu.enums.ClientType; +import com.changhu.module.management.pojo.queryParams.PoliceEnterprisesUnitPagerQueryParams; import com.changhu.module.management.pojo.queryParams.PoliceUnitPagerQueryParams; +import com.changhu.module.management.pojo.vo.PoliceEnterprisesUnitPagerVo; import com.changhu.module.management.pojo.vo.PoliceUnitPagerVo; import com.changhu.module.management.service.PoliceUnitService; import com.changhu.support.mybatisplus.pojo.params.PageParams; @@ -32,4 +37,11 @@ public class PoliceUnitController { return policeUnitService.pager(queryParams); } + @Operation(summary = "公安单位下的企事业单位分页") + @PostMapping("/policeEnterprisesUnitPager") + @CheckUserType(userTypes = UserType.MANAGEMENT_POLICE) + public Page policeEnterprisesUnitPager(@RequestBody PageParams queryParams) { + return policeUnitService.policeEnterprisesUnitPager(queryParams); + } + } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/SecurityUnitController.java b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/SecurityUnitController.java index 2d0ddbb..c2e97a3 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/SecurityUnitController.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/SecurityUnitController.java @@ -1,7 +1,11 @@ package com.changhu.module.management.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.changhu.common.annotation.CheckUserType; import com.changhu.common.annotation.JsonBody; +import com.changhu.common.annotation.UserType; +import com.changhu.common.pojo.vo.SelectNodeVo; +import com.changhu.enums.ClientType; import com.changhu.module.management.pojo.params.SecurityUnitSaveOrUpdateParams; import com.changhu.module.management.pojo.queryParams.SecurityUnitPagerQueryParams; import com.changhu.module.management.pojo.vo.SecurityUnitPagerVo; @@ -11,10 +15,13 @@ 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.GetMapping; 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/8/30 上午10:46 @@ -40,4 +47,11 @@ public class SecurityUnitController { securityUnitService.saveOrUpdate(params); } + @Operation(summary = "查询单位下的项目经理") + @GetMapping("/listProjectManager") + @CheckUserType(userTypes = UserType.MANAGEMENT_SECURITY) + public List> listProjectManager() { + return securityUnitService.listProjectManager(); + } + } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ServiceProjectController.java b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ServiceProjectController.java new file mode 100644 index 0000000..7f31b1e --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ServiceProjectController.java @@ -0,0 +1,54 @@ +package com.changhu.module.management.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.changhu.common.annotation.CheckUserType; +import com.changhu.common.annotation.JsonBody; +import com.changhu.common.annotation.UserType; +import com.changhu.common.exception.MessageException; +import com.changhu.enums.ClientType; +import com.changhu.module.management.pojo.params.ServiceProjectSaveOrUpdateParams; +import com.changhu.module.management.pojo.queryParams.ServiceProjectPagerQueryParams; +import com.changhu.module.management.pojo.vo.ServiceProjectPagerVo; +import com.changhu.module.management.service.ServiceProjectService; +import com.changhu.support.mybatisplus.pojo.params.PageParams; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @author 20252 + * @createTime 2024/9/5 上午11:09 + * @desc ServiceProjectController... + */ +@Tag(name = "服务项目") +@JsonBody +@RequestMapping("/serviceProject") +public class ServiceProjectController { + + @Autowired + private ServiceProjectService serviceProjectService; + + @Operation(summary = "分页查询") + @PostMapping("/pager") + @CheckUserType(userTypes = UserType.MANAGEMENT_SECURITY) + public Page pager(@RequestBody PageParams queryParams) { + return serviceProjectService.pager(queryParams); + } + + @Operation(summary = "新增或者保存") + @PostMapping("/saveOrUpdate") + @CheckUserType(userTypes = UserType.MANAGEMENT_SECURITY) + public void saveOrUpdate(@RequestBody ServiceProjectSaveOrUpdateParams params) { + serviceProjectService.saveOrUpdate(params); + } + + @Operation(summary = "根据id删除") + @DeleteMapping("/deleteById") + public void deleteById(@RequestParam Long serviceProjectId) { + boolean b = serviceProjectService.removeById(serviceProjectId); + if (!b) { + throw new MessageException(); + } + } +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/EnterprisesUnitMapper.java b/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/EnterprisesUnitMapper.java index 191d5a4..7b273e8 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/EnterprisesUnitMapper.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/EnterprisesUnitMapper.java @@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.changhu.module.management.pojo.entity.EnterprisesUnit; import com.changhu.module.management.pojo.queryParams.EnterprisesUnitPagerQueryParams; +import com.changhu.module.management.pojo.queryParams.PoliceEnterprisesUnitPagerQueryParams; import com.changhu.module.management.pojo.vo.EnterprisesUnitPagerVo; +import com.changhu.module.management.pojo.vo.PoliceEnterprisesUnitPagerVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -25,4 +27,14 @@ public interface EnterprisesUnitMapper extends BaseMapper { */ Page pager(@Param("page") Page page, @Param("params") EnterprisesUnitPagerQueryParams params); + + /** + * 公安单位下的企事业单位分页 + * + * @param page 分页对象 + * @param params 查询参数 + * @return 结果 + */ + Page policeEnterprisesUnitPager(@Param("page") Page page, + @Param("params") PoliceEnterprisesUnitPagerQueryParams params); } 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 b459e3f..0c60b83 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 @@ -5,8 +5,6 @@ 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; @@ -25,7 +23,6 @@ public interface ManagementPoliceUnitUserMapper extends BaseMapper pager(@Param("page") Page page, @Param("params") ManagementPoliceUnitUserPagerQueryParams params); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ManagementSecurityUnitUserMapper.java b/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ManagementSecurityUnitUserMapper.java index c700da8..d87e762 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ManagementSecurityUnitUserMapper.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ManagementSecurityUnitUserMapper.java @@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.changhu.module.management.pojo.entity.ManagementSecurityUnitUser; import com.changhu.module.management.pojo.queryParams.ManagementSecurityUnitUserPagerQueryParams; import com.changhu.module.management.pojo.vo.ManagementSecurityUnitUserPagerVo; -import com.changhu.support.mybatisplus.annotation.DataScope; -import com.changhu.support.mybatisplus.handler.permission.management.ManagementSecurityUnitUserPagerPermissionHandler; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -25,7 +23,6 @@ public interface ManagementSecurityUnitUserMapper extends BaseMapper pager(@Param("page") Page page, @Param("params") ManagementSecurityUnitUserPagerQueryParams params); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ServiceProjectMapper.java b/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ServiceProjectMapper.java new file mode 100644 index 0000000..bd25d7e --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ServiceProjectMapper.java @@ -0,0 +1,28 @@ +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.ServiceProject; +import com.changhu.module.management.pojo.queryParams.ServiceProjectPagerQueryParams; +import com.changhu.module.management.pojo.vo.ServiceProjectPagerVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * service_project (服务项目) 固化类 + * author: luozhun + * desc 由groovy脚本自动生成 + */ +@Mapper +public interface ServiceProjectMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param params 查询参数 + * @return 结果 + */ + Page pager(@Param("page") Page page, + @Param("params") ServiceProjectPagerQueryParams params); +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/entity/ServiceProject.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/entity/ServiceProject.java new file mode 100644 index 0000000..1e14b5c --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/entity/ServiceProject.java @@ -0,0 +1,99 @@ +package com.changhu.module.management.pojo.entity; + +import java.io.Serial; +import java.io.Serializable; + +import com.changhu.common.db.enums.IsOrNot; +import com.changhu.common.db.enums.ServiceProjectType; +import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; +import lombok.Data; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import lombok.EqualsAndHashCode; +import com.baomidou.mybatisplus.annotation.TableName; + + +/** + * 服务项目 实体类 + * author: luozhun + * desc 由groovy脚本自动生成 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +@EqualsAndHashCode(callSuper = true) +@TableName(autoResultMap = true) +public class ServiceProject extends BaseEntity implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 保安单位id + */ + private Long securityUnitId; + + /** + * 企事业单位id + */ + private Long enterprisesUnitId; + + /** + * 项目经理小程序用户id + */ + private Long projectManagerMiniProgramUserId; + + /** + * 名称 + */ + private String name; + + /** + * 服务类型 + */ + private ServiceProjectType type; + + /** + * 是否自招保安(只有当type为property 此字段必填) + */ + private IsOrNot isRecruitSecurity; + + /** + * 证件号(服务类型为保安必填 服务类型为物业则需自招保安为必填) + */ + private String idNumber; + + /** + * 服务区域面积 + */ + private Double serviceArea; + + /** + * 楼栋数量 + */ + private Integer buildingTotal; + + /** + * 户数 + */ + private Integer houseTotal; + + /** + * 工作人员数量 + */ + private Integer staffTotal; + + /** + * 保安人员数量 + */ + private Integer securityUserTotal; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/ServiceProjectSaveOrUpdateParams.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/ServiceProjectSaveOrUpdateParams.java new file mode 100644 index 0000000..2e83f4b --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/ServiceProjectSaveOrUpdateParams.java @@ -0,0 +1,58 @@ +package com.changhu.module.management.pojo.params; + +import com.changhu.common.db.enums.IsOrNot; +import com.changhu.common.db.enums.ServiceProjectType; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * @author 20252 + * @createTime 2024/9/5 上午11:36 + * @desc ServiceProjectSaveOrUpdateParams... + */ +@Data +public class ServiceProjectSaveOrUpdateParams { + + @Schema(description = "id") + private Long snowFlakeId; + + @Schema(description = "企事业单位id") + @NotNull(message = "企事业单位不能为空") + private Long enterprisesUnitId; + + @Schema(description = "项目经理小程序用户id") + private Long projectManagerMiniProgramUserId; + + @Schema(description = "名称") + @NotNull(message = "名称不能为空") + private String name; + + @Schema(description = "服务类型") + @NotNull(message = "服务类型不能为空") + private ServiceProjectType type; + + @Schema(description = "是否自招保安(只有当type为property 此字段必填)") + private IsOrNot isRecruitSecurity; + + @Schema(description = "证件号(服务类型为保安必填 服务类型为物业则需自招保安为必填)") + private String idNumber; + + @Schema(description = "服务区域面积") + private Double serviceArea; + + @Schema(description = "楼栋数量") + private Integer buildingTotal; + + @Schema(description = "户数") + private Integer houseTotal; + + @Schema(description = "工作人员数量") + private Integer staffTotal; + + @Schema(description = "保安人员数量") + private Integer securityUserTotal; + + @Schema(description = "备注") + private String remark; +} 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 index 6128212..815a0ab 100644 --- 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 @@ -1,5 +1,6 @@ package com.changhu.module.management.pojo.queryParams; +import com.changhu.common.db.enums.IsEnable; import com.changhu.common.db.enums.Sex; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -17,4 +18,6 @@ public class ManagementPoliceUnitUserPagerQueryParams { private String telephone; @Schema(description = "性别") private Sex sex; + @Schema(description = "是否启用") + private IsEnable isEnable; } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/PoliceEnterprisesUnitPagerQueryParams.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/PoliceEnterprisesUnitPagerQueryParams.java new file mode 100644 index 0000000..d349d76 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/PoliceEnterprisesUnitPagerQueryParams.java @@ -0,0 +1,19 @@ +package com.changhu.module.management.pojo.queryParams; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author 20252 + * @createTime 2024/9/5 下午2:49 + * @desc PoliceEnterprisesUnitPagerQueryParams... + */ +@Data +public class PoliceEnterprisesUnitPagerQueryParams { + @Schema(description = "名称") + private String name; + @Schema(description = "详细地址") + private String address; + @Schema(description = "备注") + private String remark; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/ServiceProjectPagerQueryParams.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/ServiceProjectPagerQueryParams.java new file mode 100644 index 0000000..545ef53 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/ServiceProjectPagerQueryParams.java @@ -0,0 +1,22 @@ +package com.changhu.module.management.pojo.queryParams; + +import com.changhu.common.db.enums.ServiceProjectType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author 20252 + * @createTime 2024/9/5 上午11:15 + * @desc ServiceProjectPagerQueryParams... + */ +@Data +public class ServiceProjectPagerQueryParams { + @Schema(description = "服务项目名称") + private String name; + @Schema(description = "服务项目类型") + private ServiceProjectType type; + @Schema(description = "备注") + private String remark; + @Schema(description = "项目经理小程序用户名称") + private String projectManagerMiniProgramUserName; +} 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 index 7e207ea..8866963 100644 --- 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 @@ -25,7 +25,7 @@ public class ManagementPoliceUnitUserPagerVo { @Schema(description = "性别") private Sex sex; - @Schema(description = "性别") + @Schema(description = "账号") private String account; @Schema(description = "手机号") diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ManagementSecurityUnitUserPagerVo.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ManagementSecurityUnitUserPagerVo.java index ec21300..d62c7af 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ManagementSecurityUnitUserPagerVo.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ManagementSecurityUnitUserPagerVo.java @@ -25,7 +25,7 @@ public class ManagementSecurityUnitUserPagerVo { @Schema(description = "性别") private Sex sex; - @Schema(description = "性别") + @Schema(description = "账号") private String account; @Schema(description = "手机号") diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/PoliceEnterprisesUnitPagerVo.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/PoliceEnterprisesUnitPagerVo.java new file mode 100644 index 0000000..83322fe --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/PoliceEnterprisesUnitPagerVo.java @@ -0,0 +1,46 @@ +package com.changhu.module.management.pojo.vo; + +import com.changhu.module.management.pojo.model.ContactPersonInfo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author 20252 + * @createTime 2024/9/5 下午2:46 + * @desc PoliceEnterprisesUnitPagerVo... + */ +@Data +public class PoliceEnterprisesUnitPagerVo { + @Schema(description = "id") + private Long snowFlakeId; + @Schema(description = "名称") + private String name; + + @Schema(description = "省编码") + private String province; + @Schema(description = "省名称") + private String provinceName; + @Schema(description = "市编码") + private String city; + @Schema(description = "市名称") + private String cityName; + @Schema(description = "县编码") + private String districts; + @Schema(description = "县名称") + private String districtsName; + @Schema(description = "乡镇编码") + private String street; + @Schema(description = "乡镇名称") + private String streetName; + + @Schema(description = "详细地址") + private String address; + @Schema(description = "联系人") + private ContactPersonInfo contactPersonInfo; + @Schema(description = "备注") + private String remark; + @Schema(description = "创建时间") + private LocalDateTime createTime; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ServiceProjectPagerVo.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ServiceProjectPagerVo.java new file mode 100644 index 0000000..61fc824 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ServiceProjectPagerVo.java @@ -0,0 +1,69 @@ +package com.changhu.module.management.pojo.vo; + +import com.changhu.common.db.enums.IsOrNot; +import com.changhu.common.db.enums.ServiceProjectType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author 20252 + * @createTime 2024/9/5 上午11:15 + * @desc ServiceProjectPagerVo... + */ +@Data +public class ServiceProjectPagerVo { + + @Schema(description = "id") + private Long snowFlakeId; + + @Schema(description = "企事业单位id") + private Long enterprisesUnitId; + @Schema(description = "企事业单位名称") + private String enterprisesUnitName; + @Schema(description = "企事业单位行政区划编码") + private List enterprisesUnitAdministrativeDivisionCodes; + + @Schema(description = "项目经理小程序用户id") + private Long projectManagerMiniProgramUserId; + @Schema(description = "项目经理小程序用户名称") + private String projectManagerMiniProgramUserName; + + @Schema(description = "服务项目名称") + private String name; + + @Schema(description = "服务类型") + private ServiceProjectType type; + + @Schema(description = "是否自招保安(只有当type为property 此字段必填)") + private IsOrNot isRecruitSecurity; + + @Schema(description = "证件号(服务类型为保安必填 服务类型为物业则需自招保安为必填)") + private String idNumber; + + @Schema(description = "服务区域面积") + private Double serviceArea; + + @Schema(description = "楼栋数量") + private Integer buildingTotal; + + @Schema(description = "户数") + private Integer houseTotal; + + @Schema(description = "工作人员数量") + private Integer staffTotal; + + @Schema(description = "保安人员数量") + private Integer securityUserTotal; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建人名称") + private String createUserName; + + @Schema(description = "创建时间") + private LocalDateTime createTime; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/EnterprisesUnitService.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/EnterprisesUnitService.java index 8e90ab7..5a8524c 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/EnterprisesUnitService.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/EnterprisesUnitService.java @@ -2,12 +2,15 @@ package com.changhu.module.management.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.changhu.common.pojo.vo.SelectNodeVo; import com.changhu.module.management.pojo.entity.EnterprisesUnit; import com.changhu.module.management.pojo.params.EnterprisesUnitSaveOrUpdateParams; import com.changhu.module.management.pojo.queryParams.EnterprisesUnitPagerQueryParams; import com.changhu.module.management.pojo.vo.EnterprisesUnitPagerVo; import com.changhu.support.mybatisplus.pojo.params.PageParams; +import java.util.List; + /** * enterprises_unit (企事业单位) 服务类 * author: luozhun @@ -29,4 +32,12 @@ public interface EnterprisesUnitService extends IService { * @param params 参数 */ void saveOrUpdate(EnterprisesUnitSaveOrUpdateParams params); + + /** + * 根据行政区划编码查询下面的企事业单位 + * + * @param administrativeDivisionCodes 行政区划编码 + * @return 结果 + */ + List> queryListByAdministrativeDivisionCodes(List administrativeDivisionCodes); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/PoliceUnitService.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/PoliceUnitService.java index adb0358..89efd8b 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/PoliceUnitService.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/PoliceUnitService.java @@ -3,7 +3,9 @@ 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.PoliceUnit; +import com.changhu.module.management.pojo.queryParams.PoliceEnterprisesUnitPagerQueryParams; import com.changhu.module.management.pojo.queryParams.PoliceUnitPagerQueryParams; +import com.changhu.module.management.pojo.vo.PoliceEnterprisesUnitPagerVo; import com.changhu.module.management.pojo.vo.PoliceUnitPagerVo; import com.changhu.support.mybatisplus.pojo.params.PageParams; @@ -21,4 +23,12 @@ public interface PoliceUnitService extends IService { * @return 结果 */ Page pager(PageParams queryParams); + + /** + * 公安单位下的企事业单位分页 + * + * @param queryParams 查询参数 + * @return 结果 + */ + Page policeEnterprisesUnitPager(PageParams queryParams); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/SecurityUnitService.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/SecurityUnitService.java index 8bc4a59..138dafa 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/SecurityUnitService.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/SecurityUnitService.java @@ -2,12 +2,15 @@ package com.changhu.module.management.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.changhu.common.pojo.vo.SelectNodeVo; import com.changhu.module.management.pojo.entity.SecurityUnit; import com.changhu.module.management.pojo.params.SecurityUnitSaveOrUpdateParams; import com.changhu.module.management.pojo.queryParams.SecurityUnitPagerQueryParams; import com.changhu.module.management.pojo.vo.SecurityUnitPagerVo; import com.changhu.support.mybatisplus.pojo.params.PageParams; +import java.util.List; + /** * security_unit (保安单位) 服务类 * author: luozhun @@ -30,4 +33,10 @@ public interface SecurityUnitService extends IService { */ void saveOrUpdate(SecurityUnitSaveOrUpdateParams params); + /** + * 查询单位下的项目经理 + * + * @return 项目经理 + */ + List> listProjectManager(); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/ServiceProjectService.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/ServiceProjectService.java new file mode 100644 index 0000000..75ce667 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/ServiceProjectService.java @@ -0,0 +1,32 @@ +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.ServiceProject; +import com.changhu.module.management.pojo.params.ServiceProjectSaveOrUpdateParams; +import com.changhu.module.management.pojo.queryParams.ServiceProjectPagerQueryParams; +import com.changhu.module.management.pojo.vo.ServiceProjectPagerVo; +import com.changhu.support.mybatisplus.pojo.params.PageParams; + +/** + * service_project (服务项目) 服务类 + * author: luozhun + * desc 由groovy脚本自动生成 + */ +public interface ServiceProjectService extends IService { + + /** + * 分页查询 + * + * @param queryParams 查询参数 + * @return 结果 + */ + Page pager(PageParams queryParams); + + /** + * 新增或者修改 + * + * @param params 参数 + */ + void saveOrUpdate(ServiceProjectSaveOrUpdateParams params); +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/EnterprisesUnitServiceImpl.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/EnterprisesUnitServiceImpl.java index 81d1000..d24474b 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/EnterprisesUnitServiceImpl.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/EnterprisesUnitServiceImpl.java @@ -1,9 +1,12 @@ package com.changhu.module.management.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.lang.Dict; +import cn.hutool.core.lang.func.LambdaUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.changhu.common.exception.MessageException; +import com.changhu.common.pojo.vo.SelectNodeVo; import com.changhu.module.management.mapper.EnterprisesUnitMapper; import com.changhu.module.management.pojo.entity.EnterprisesUnit; import com.changhu.module.management.pojo.params.EnterprisesUnitSaveOrUpdateParams; @@ -13,6 +16,7 @@ import com.changhu.module.management.service.EnterprisesUnitService; import com.changhu.support.mybatisplus.pojo.params.PageParams; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Optional; /** @@ -51,4 +55,26 @@ public class EnterprisesUnitServiceImpl extends ServiceImpl> queryListByAdministrativeDivisionCodes(List administrativeDivisionCodes) { + String addr = LambdaUtil.getFieldName(EnterprisesUnit::getAddress); + String rem = LambdaUtil.getFieldName(EnterprisesUnit::getRemark); + return this.lambdaQuery() + .eq(!administrativeDivisionCodes.isEmpty(), EnterprisesUnit::getProvince, administrativeDivisionCodes.get(0)) + .eq(administrativeDivisionCodes.size() >= 2, EnterprisesUnit::getCity, administrativeDivisionCodes.get(1)) + .eq(administrativeDivisionCodes.size() >= 3, EnterprisesUnit::getDistricts, administrativeDivisionCodes.get(2)) + .eq(administrativeDivisionCodes.size() >= 4, EnterprisesUnit::getStreet, administrativeDivisionCodes.get(3)) + .list() + .stream() + .map(item -> SelectNodeVo.builder() + .value(item.getSnowFlakeId()) + .label(item.getName()) + .extData(Dict.of( + addr, item.getAddress(), + rem, item.getRemark() + )) + .build()) + .toList(); + } } 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 e5c596f..f15fbe0 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 @@ -35,6 +35,7 @@ public class ManagementPoliceUnitUserServiceImpl extends ServiceImpl implements PoliceUnitService { + @Autowired + private EnterprisesUnitMapper enterprisesUnitMapper; + @Override public Page pager(PageParams queryParams) { return baseMapper.pager(queryParams.getPage(), queryParams.getParams()); } + + @Override + public Page policeEnterprisesUnitPager(PageParams queryParams) { + return enterprisesUnitMapper.policeEnterprisesUnitPager(queryParams.getPage(), queryParams.getParams()); + } } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/SecurityUnitServiceImpl.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/SecurityUnitServiceImpl.java index 2da4d9b..cefc6f2 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/SecurityUnitServiceImpl.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/SecurityUnitServiceImpl.java @@ -1,18 +1,28 @@ package com.changhu.module.management.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.lang.Dict; +import cn.hutool.core.lang.func.LambdaUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.changhu.common.utils.JavaClassToTsUtil; +import com.changhu.common.db.enums.IsEnable; +import com.changhu.common.db.enums.MiniProgramUserIdentity; +import com.changhu.common.pojo.vo.SelectNodeVo; +import com.changhu.common.utils.UserUtil; +import com.changhu.module.miniProgram.mapper.MiniProgramUserMapper; import com.changhu.module.management.mapper.SecurityUnitMapper; +import com.changhu.module.miniProgram.pojo.entity.MiniProgramUser; import com.changhu.module.management.pojo.entity.SecurityUnit; import com.changhu.module.management.pojo.params.SecurityUnitSaveOrUpdateParams; import com.changhu.module.management.pojo.queryParams.SecurityUnitPagerQueryParams; import com.changhu.module.management.pojo.vo.SecurityUnitPagerVo; import com.changhu.module.management.service.SecurityUnitService; import com.changhu.support.mybatisplus.pojo.params.PageParams; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Optional; /** @@ -23,6 +33,9 @@ import java.util.Optional; @Service public class SecurityUnitServiceImpl extends ServiceImpl implements SecurityUnitService { + @Autowired + private MiniProgramUserMapper miniProgramUserMapper; + @Override public Page pager(PageParams queryParams) { return baseMapper.pager(queryParams.getPage(), queryParams.getParams()); @@ -49,9 +62,24 @@ public class SecurityUnitServiceImpl extends ServiceImpl> listProjectManager() { + String tel = LambdaUtil.getFieldName(MiniProgramUser::getTelephone); + String sex = LambdaUtil.getFieldName(MiniProgramUser::getSex); + return miniProgramUserMapper.selectList(Wrappers.lambdaQuery() + .eq(MiniProgramUser::getIsEnable, IsEnable.TRUE) + .eq(MiniProgramUser::getIdentity, MiniProgramUserIdentity.PROJECT_MANAGER) + .eq(MiniProgramUser::getUnitId, UserUtil.getUnitId())) + .stream() + .map(item -> SelectNodeVo.builder() + .value(item.getSnowFlakeId()) + .label(item.getName()) + .extData(Dict.of( + tel, item.getTelephone(), + sex, item.getSex() + )) + .build()) + .toList(); } } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ServiceProjectServiceImpl.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ServiceProjectServiceImpl.java new file mode 100644 index 0000000..150b684 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ServiceProjectServiceImpl.java @@ -0,0 +1,39 @@ +package com.changhu.module.management.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.changhu.common.exception.MessageException; +import com.changhu.common.utils.UserUtil; +import com.changhu.module.management.mapper.ServiceProjectMapper; +import com.changhu.module.management.pojo.entity.ServiceProject; +import com.changhu.module.management.pojo.params.ServiceProjectSaveOrUpdateParams; +import com.changhu.module.management.pojo.queryParams.ServiceProjectPagerQueryParams; +import com.changhu.module.management.pojo.vo.ServiceProjectPagerVo; +import com.changhu.module.management.service.ServiceProjectService; +import com.changhu.support.mybatisplus.pojo.params.PageParams; +import org.springframework.stereotype.Service; + +/** + * service_project (服务项目) 服务实现类 + * author: luozhun + * desc 由groovy脚本自动生成 + */ +@Service +public class ServiceProjectServiceImpl extends ServiceImpl implements ServiceProjectService { + + @Override + public Page pager(PageParams queryParams) { + return baseMapper.pager(queryParams.getPage(), queryParams.getParams()); + } + + @Override + public void saveOrUpdate(ServiceProjectSaveOrUpdateParams params) { + ServiceProject serviceProject = BeanUtil.copyProperties(params, ServiceProject.class); + serviceProject.setSecurityUnitId(UserUtil.getUnitId()); + boolean b = this.saveOrUpdate(serviceProject); + if (!b) { + throw new MessageException(); + } + } +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/controller/MiniProgramUserController.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/controller/MiniProgramUserController.java new file mode 100644 index 0000000..8026d43 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/controller/MiniProgramUserController.java @@ -0,0 +1,35 @@ +package com.changhu.module.miniProgram.controller; + +import com.changhu.common.annotation.CheckUserType; +import com.changhu.common.annotation.JsonBody; +import com.changhu.common.annotation.UserType; +import com.changhu.enums.ClientType; +import com.changhu.module.miniProgram.pojo.params.MiniProgramUserRegisterParams; +import com.changhu.module.miniProgram.service.MiniProgramUserService; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * @author 20252 + * @createTime 2024/9/6 上午10:42 + * @desc MiniProgramUserController... + */ +@Tag(name = "小程序用户接口") +@JsonBody +@RequestMapping("/miniProgramUser") +public class MiniProgramUserController { + + @Autowired + private MiniProgramUserService miniProgramUserService; + + @Operation(summary = "注册") + @PostMapping("/register") + public void register(@RequestBody @Valid MiniProgramUserRegisterParams params) { + miniProgramUserService.register(params); + } +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/mapper/MiniProgramUserMapper.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/mapper/MiniProgramUserMapper.java new file mode 100644 index 0000000..458d4b7 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/mapper/MiniProgramUserMapper.java @@ -0,0 +1,15 @@ +package com.changhu.module.miniProgram.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.changhu.module.miniProgram.pojo.entity.MiniProgramUser; +import org.apache.ibatis.annotations.Mapper; + +/** + * mini_program_user (小程序用户) 固化类 + * author: luozhun + * desc 由groovy脚本自动生成 + */ +@Mapper +public interface MiniProgramUserMapper extends BaseMapper { + +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/entity/MiniProgramUser.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/entity/MiniProgramUser.java new file mode 100644 index 0000000..e38bf7a --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/entity/MiniProgramUser.java @@ -0,0 +1,79 @@ +package com.changhu.module.miniProgram.pojo.entity; + +import java.io.Serial; +import java.io.Serializable; + +import com.changhu.common.db.enums.IsEnable; +import com.changhu.common.db.enums.MiniProgramUserIdentity; +import com.changhu.common.db.enums.Sex; +import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; +import lombok.Data; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import lombok.EqualsAndHashCode; +import com.baomidou.mybatisplus.annotation.TableName; + + +/** + * 小程序用户 实体类 + * author: luozhun + * desc 由groovy脚本自动生成 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +@EqualsAndHashCode(callSuper = true) +@TableName(autoResultMap = true) +public class MiniProgramUser extends BaseEntity implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 名称 + */ + private String name; + + /** + * 手机号 + */ + private String telephone; + + /** + * 性别 + */ + private Sex sex; + + /** + * 身份证 + */ + private String idCard; + + /** + * 小程序唯一标识 + */ + private String openId; + + /** + * 会话密钥 + */ + private String sessionKey; + + /** + * 身份 + */ + private MiniProgramUserIdentity identity; + + /** + * 所属单位id + */ + private Long unitId; + + /** + * 是否启用 + */ + private IsEnable isEnable; + +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/params/MiniProgramUserRegisterParams.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/params/MiniProgramUserRegisterParams.java new file mode 100644 index 0000000..b5315cd --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/params/MiniProgramUserRegisterParams.java @@ -0,0 +1,31 @@ +package com.changhu.module.miniProgram.pojo.params; + +import com.changhu.common.db.enums.MiniProgramUserIdentity; +import com.changhu.common.db.enums.Sex; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * @author 20252 + * @createTime 2024/9/6 上午10:47 + * @desc MiniProgramUserRegisterParams... + */ +@Data +public class MiniProgramUserRegisterParams { + @NotBlank(message = "code不能为空") + private String code; + + @NotBlank(message = "名称不能为空") + private String name; + + @NotNull(message = "性别不能为空") + private Sex sex; + + private String telephone; + + @NotNull(message = "身份不能为空") + private MiniProgramUserIdentity identity; + @NotNull(message = "单位不能为空") + private Long unitId; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/MiniProgramUserService.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/MiniProgramUserService.java new file mode 100644 index 0000000..454c4ed --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/MiniProgramUserService.java @@ -0,0 +1,20 @@ +package com.changhu.module.miniProgram.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.changhu.module.miniProgram.pojo.entity.MiniProgramUser; +import com.changhu.module.miniProgram.pojo.params.MiniProgramUserRegisterParams; + +/** + * mini_program_user (小程序用户) 服务类 + * author: luozhun + * desc 由groovy脚本自动生成 + */ +public interface MiniProgramUserService extends IService { + + /** + * 注册 + * + * @param params 参数 + */ + void register(MiniProgramUserRegisterParams params); +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/impl/MiniProgramUserServiceImpl.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/impl/MiniProgramUserServiceImpl.java new file mode 100644 index 0000000..3f623eb --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/impl/MiniProgramUserServiceImpl.java @@ -0,0 +1,52 @@ +package com.changhu.module.miniProgram.service.impl; + +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.changhu.common.exception.MessageException; +import com.changhu.common.utils.SnowFlakeIdUtil; +import com.changhu.module.miniProgram.mapper.MiniProgramUserMapper; +import com.changhu.module.miniProgram.pojo.entity.MiniProgramUser; +import com.changhu.module.miniProgram.pojo.params.MiniProgramUserRegisterParams; +import com.changhu.module.miniProgram.service.MiniProgramUserService; +import me.chanjar.weixin.common.error.WxErrorException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * mini_program_user (小程序用户) 服务实现类 + * author: luozhun + * desc 由groovy脚本自动生成 + */ +@Service +public class MiniProgramUserServiceImpl extends ServiceImpl implements MiniProgramUserService { + + @Autowired + private WxMaService wxMaService; + + @Override + public void register(MiniProgramUserRegisterParams params) { + MiniProgramUser miniProgramUser = BeanUtil.copyProperties(params, MiniProgramUser.class); + try { + WxMaJscode2SessionResult sessionInfo = wxMaService.getUserService().getSessionInfo(params.getCode()); + miniProgramUser.setOpenId(sessionInfo.getOpenid()); + miniProgramUser.setSessionKey(sessionInfo.getSessionKey()); + } catch (WxErrorException e) { + throw new MessageException(e.getMessage()); + } + boolean exists = baseMapper.exists(Wrappers.lambdaQuery().eq(MiniProgramUser::getOpenId, miniProgramUser.getOpenId())); + if (exists) { + throw new MessageException("该用户已存在,请勿重复注册!"); + } + + miniProgramUser.setSnowFlakeId(SnowFlakeIdUtil.snowflakeId()); + boolean save = this.save(miniProgramUser); + if (!save) { + throw new MessageException(); + } + + //todo 是否需要返回token直接登录? + } +} diff --git a/policeSecurityServer/src/main/java/com/changhu/support/interceptor/ClientTypeInterceptor.java b/policeSecurityServer/src/main/java/com/changhu/support/interceptor/UserTypeInterceptor.java similarity index 63% rename from policeSecurityServer/src/main/java/com/changhu/support/interceptor/ClientTypeInterceptor.java rename to policeSecurityServer/src/main/java/com/changhu/support/interceptor/UserTypeInterceptor.java index 5722271..4318c98 100644 --- a/policeSecurityServer/src/main/java/com/changhu/support/interceptor/ClientTypeInterceptor.java +++ b/policeSecurityServer/src/main/java/com/changhu/support/interceptor/UserTypeInterceptor.java @@ -1,6 +1,8 @@ package com.changhu.support.interceptor; -import com.changhu.common.annotation.CheckClientType; +import cn.hutool.core.util.ArrayUtil; +import com.changhu.common.annotation.CheckUserType; +import com.changhu.common.annotation.UserType; import com.changhu.common.exception.MessageException; import com.changhu.common.utils.UserUtil; import com.changhu.enums.ClientType; @@ -13,9 +15,9 @@ import org.springframework.web.servlet.HandlerInterceptor; /** * @author 20252 * @createTime 2024/9/4 下午4:00 - * @desc ClientTypeInterceptor... + * @desc UserTypeInterceptor... */ -public class ClientTypeInterceptor implements HandlerInterceptor { +public class UserTypeInterceptor implements HandlerInterceptor { @Override public boolean preHandle(@NotNull HttpServletRequest request, @@ -23,28 +25,28 @@ public class ClientTypeInterceptor implements HandlerInterceptor { @NotNull Object handler) { if (handler instanceof HandlerMethod handlerMethod) { boolean b = false; - ClientType ct = null; + UserType[] uts = null; - CheckClientType clazzJsonBody = handlerMethod.getBeanType().getAnnotation(CheckClientType.class); - CheckClientType methodJsonBody = handlerMethod.getMethodAnnotation(CheckClientType.class); + CheckUserType clazzJsonBody = handlerMethod.getBeanType().getAnnotation(CheckUserType.class); + CheckUserType methodJsonBody = handlerMethod.getMethodAnnotation(CheckUserType.class); if (clazzJsonBody != null) { if (methodJsonBody == null) { b = true; - ct = clazzJsonBody.clientType(); + uts = clazzJsonBody.userTypes(); } else if (methodJsonBody.value()) { b = true; - ct = methodJsonBody.clientType(); + uts = methodJsonBody.userTypes(); } } else { if (methodJsonBody != null && methodJsonBody.value()) { b = true; - ct = methodJsonBody.clientType(); + uts = methodJsonBody.userTypes(); } } - if (b) { - if (!ct.equals(UserUtil.getClientType())) { + if (b && ArrayUtil.isNotEmpty(uts)) { + if (!ArrayUtil.contains(uts, UserUtil.getUserType())) { throw new MessageException("客户端类型不对"); } } 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 deleted file mode 100644 index 518a62d..0000000 --- a/policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementPoliceUnitUserPagerPermissionHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -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 deleted file mode 100644 index 774f397..0000000 --- a/policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementSecurityUnitUserPagerPermissionHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -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/3 上午11:11 - * @desc 后台安保人员分页权限 - */ -public class ManagementSecurityUnitUserPagerPermissionHandler implements AbstractDataPermissionHandler { - @Override - public Expression apply(Table table, Expression where, String mappedStatementId) { - if ("msuu".equals(table.getAlias().getName())) { - return sqlFragment(); - } - return null; - } - - @Override - public Expression sqlFragment() { - return new EqualsTo(new Column("msuu.security_unit_id"), new LongValue(UserUtil.getUnitId())); - } -} diff --git a/policeSecurityServer/src/main/java/com/changhu/support/wx/WxMaConfiguration.java b/policeSecurityServer/src/main/java/com/changhu/support/wx/WxMaConfiguration.java new file mode 100644 index 0000000..a83a7e5 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/support/wx/WxMaConfiguration.java @@ -0,0 +1,30 @@ +package com.changhu.support.wx; + +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; +import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * author: luozhun + * desc: some... + * createTime: 2024/4/15 9:41 + */ +@Configuration +@EnableConfigurationProperties(WxMaProperties.class) +public class WxMaConfiguration { + @Bean + public WxMaService wxMaService(WxMaProperties properties) { + WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); + config.setAppid(properties.getAppid()); + config.setSecret(properties.getSecret()); + config.setMsgDataFormat(properties.getMsgDataFormat()); + + WxMaService service = new WxMaServiceImpl(); + service.setWxMaConfig(config); + return service; + } + +} diff --git a/policeSecurityServer/src/main/java/com/changhu/support/wx/WxMaProperties.java b/policeSecurityServer/src/main/java/com/changhu/support/wx/WxMaProperties.java new file mode 100644 index 0000000..0e9c7af --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/support/wx/WxMaProperties.java @@ -0,0 +1,29 @@ +package com.changhu.support.wx; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * author: luozhun + * desc: some... + * createTime: 2024/4/15 9:40 + */ +@Data +@ConfigurationProperties(prefix = "wx.miniapp") +public class WxMaProperties { + + /** + * 设置微信小程序的appid + */ + private String appid; + + /** + * 设置微信小程序的Secret + */ + private String secret; + + /** + * 消息格式,XML或者JSON + */ + private String msgDataFormat; +} diff --git a/policeSecurityServer/src/main/resources/conf/log4j2.xml b/policeSecurityServer/src/main/resources/conf/log4j2.xml index 26b54bc..e08488c 100644 --- a/policeSecurityServer/src/main/resources/conf/log4j2.xml +++ b/policeSecurityServer/src/main/resources/conf/log4j2.xml @@ -128,6 +128,9 @@ + + + diff --git a/policeSecurityServer/src/main/resources/env/dev/application.yml b/policeSecurityServer/src/main/resources/env/dev/application.yml index e33cc4f..d108324 100644 --- a/policeSecurityServer/src/main/resources/env/dev/application.yml +++ b/policeSecurityServer/src/main/resources/env/dev/application.yml @@ -141,6 +141,14 @@ sa-token: # jwt秘钥 jwt-secret-key: a29216f8-cd60-4e96-89c5-ab6012159052 +wx: + miniapp: + #微信小程序的appid + appid: wx8902ddbfddb820d1 + #微信小程序的Secret + secret: 8674decea33df3362245937444944596 + msgDataFormat: JSON + project: env: dev fastjson2: diff --git a/policeSecurityServer/src/main/resources/mapper/EnterprisesUnitMapper.xml b/policeSecurityServer/src/main/resources/mapper/EnterprisesUnitMapper.xml index 8474262..b84a0e1 100644 --- a/policeSecurityServer/src/main/resources/mapper/EnterprisesUnitMapper.xml +++ b/policeSecurityServer/src/main/resources/mapper/EnterprisesUnitMapper.xml @@ -22,4 +22,37 @@ and eu.police_unit_id = #{params.policeUnitId} order by eu.create_time desc + + + + + \ No newline at end of file diff --git a/policeSecurityServer/src/main/resources/mapper/ManagementPoliceUnitUserMapper.xml b/policeSecurityServer/src/main/resources/mapper/ManagementPoliceUnitUserMapper.xml index bfd899b..ceddf6b 100644 --- a/policeSecurityServer/src/main/resources/mapper/ManagementPoliceUnitUserMapper.xml +++ b/policeSecurityServer/src/main/resources/mapper/ManagementPoliceUnitUserMapper.xml @@ -9,6 +9,7 @@ left join management_police_unit_user mpuu2 on mpuu.create_by = mpuu2.snow_flake_id where mpuu.delete_flag = 0 + and mpuu.police_unit_id = ${@com.changhu.common.utils.UserUtil@getUnitId()} and mpuu.name like concat('%',#{params.name},'%') @@ -18,6 +19,9 @@ and mpuu.sex = #{params.sex.value} + + and mpuu.sex = #{params.isEnable.value} + order by mpuu.create_time desc \ No newline at end of file diff --git a/policeSecurityServer/src/main/resources/mapper/ManagementSecurityUnitUserMapper.xml b/policeSecurityServer/src/main/resources/mapper/ManagementSecurityUnitUserMapper.xml index 7693317..a34f53a 100644 --- a/policeSecurityServer/src/main/resources/mapper/ManagementSecurityUnitUserMapper.xml +++ b/policeSecurityServer/src/main/resources/mapper/ManagementSecurityUnitUserMapper.xml @@ -9,6 +9,7 @@ left join management_security_unit_user msuu2 on msuu.create_by = msuu2.snow_flake_id where msuu.delete_flag = 0 + and msuu.security_unit_id = ${@com.changhu.common.utils.UserUtil@getUnitId()} and msuu.name like concat('%',#{params.name},'%') diff --git a/policeSecurityServer/src/main/resources/mapper/ServiceProjectMapper.xml b/policeSecurityServer/src/main/resources/mapper/ServiceProjectMapper.xml new file mode 100644 index 0000000..fe45dcc --- /dev/null +++ b/policeSecurityServer/src/main/resources/mapper/ServiceProjectMapper.xml @@ -0,0 +1,31 @@ + + + + + \ No newline at end of file diff --git a/securityManagement/src/components/form/FormProMax.vue b/securityManagement/src/components/form/FormProMax.vue index 8fd21b6..185a4ca 100644 --- a/securityManagement/src/components/form/FormProMax.vue +++ b/securityManagement/src/components/form/FormProMax.vue @@ -161,7 +161,7 @@ const props = withDefaults(defineProps>(), { labelCol: () => { return { style: { - width: '100px' + width: '120px' } } }, diff --git a/securityManagement/src/components/iconfont/IconFont.vue b/securityManagement/src/components/iconfont/IconFont.vue index fc208f1..12dbb31 100644 --- a/securityManagement/src/components/iconfont/IconFont.vue +++ b/securityManagement/src/components/iconfont/IconFont.vue @@ -9,7 +9,7 @@ import {IconFontProps} from "@/types/components/iconfont/IconFont"; withDefaults(defineProps(), { - size: 25, + size: 20, type: "svg" }); diff --git a/securityManagement/src/components/table/TableProMax.vue b/securityManagement/src/components/table/TableProMax.vue index c98ef55..75e0e94 100644 --- a/securityManagement/src/components/table/TableProMax.vue +++ b/securityManagement/src/components/table/TableProMax.vue @@ -154,7 +154,7 @@ const tableColumns = computed(() => { if (!(cols?.[0].dataIndex === 'index')) { cols?.unshift({ dataIndex: 'index', - width: 60, + width: 80, title: '序号', customRender: ({index}) => index + 1 }) diff --git a/securityManagement/src/config/dict.ts b/securityManagement/src/config/dict.ts index e27fe55..01bd579 100644 --- a/securityManagement/src/config/dict.ts +++ b/securityManagement/src/config/dict.ts @@ -6,6 +6,8 @@ type DictType = | 'IsEnable' | 'IsOrNot' | 'Sex' + | 'ServiceProjectType' + | 'MiniProgramUserIdentity' export const initEnums = () => { api.get[]>>('/common/enums').then(resp => { diff --git a/securityManagement/src/config/index.ts b/securityManagement/src/config/index.ts index f5c4938..2ab04cc 100644 --- a/securityManagement/src/config/index.ts +++ b/securityManagement/src/config/index.ts @@ -1,7 +1,7 @@ import {SystemMenu} from "@/types/config"; -export const ROUTER_WHITE_LIST: string[] = ['/login', '/test','/enterprise']; -export const CLIENT_TYPE:string = "MANAGEMENT_SECURITY"; +export const ROUTER_WHITE_LIST: string[] = ['/login', '/test', '/enterprise']; +export const CLIENT_TYPE: string = "MANAGEMENT_SECURITY"; export const UNIT_TYPE = { security: 'SECURITY_UNIT', @@ -12,27 +12,39 @@ export const SYSTEM_MENUS: SystemMenu[] = [ title: '首页', name: 'index', path: '/index', + icon: 'icon-shouye', type: "menu", component: () => import('@/views/index.vue') }, { title: '用户管理', name: 'userManagement', path: '/userManagement', + icon: 'icon-yonghuguanli_huaban', type: 'dir', children: [ { title: '后台管理', name: 'bgManagement', path: '/bgManagement', + icon:'icon-guanlianbaoan', type: 'menu', component: () => import('@/views/userManagement/bgManagement/index.vue') }, { title: '小程序管理', name: 'uniManagement', path: '/uniManagement', + icon:'icon-guanlianbaoan', type: 'menu', component: () => import('@/views/userManagement/uniManagement/index.vue') } ] + }, + { + title: '服务项目管理', + name: 'serviceManagement', + path: '/serviceManagement', + icon:'icon-xiangmuguanli-', + type: 'menu', + component: () => import('@/views/serviceManagement/index.vue') } ] diff --git a/securityManagement/src/global.d.ts b/securityManagement/src/global.d.ts index aac772f..49d4b5b 100644 --- a/securityManagement/src/global.d.ts +++ b/securityManagement/src/global.d.ts @@ -62,7 +62,10 @@ interface BaseEnum { label: string } - +interface TypeEnum { + value: string; + label: string +} interface dataStatus { account: string; password: string; diff --git a/securityManagement/src/types/views/serviceManagement.ts b/securityManagement/src/types/views/serviceManagement.ts new file mode 100644 index 0000000..285a344 --- /dev/null +++ b/securityManagement/src/types/views/serviceManagement.ts @@ -0,0 +1,25 @@ +import {BaseTableRowRecord} from "@/types/components/table"; + +export interface serviceProjectSaveOrUpdateParams extends BaseTableRowRecord { + snowFlakeId: string + enterprisesUnitId: string, + enterprisesUnitName: string, + projectManagerMiniProgramUserId: string, + projectManagerMiniProgramUserName: string, + name: string, + type: TypeEnum, + isRecruitSecurity: BaseEnum, + idNumber: string, + serviceArea: number, + buildingTotal: number, + houseTotal: number, + staffTotal: number, + securityUserTotal: number, + remark: string, + createUserName: string, + createTime: string, + enterprisesUnitAdministrativeDivisionCodes:Record +} + + + diff --git a/securityManagement/src/views/enterprise.vue b/securityManagement/src/views/enterprise.vue index b9bdb03..8c86b33 100644 --- a/securityManagement/src/views/enterprise.vue +++ b/securityManagement/src/views/enterprise.vue @@ -138,6 +138,7 @@ const rules: Record = { const DivisionTree = async ()=>{ const resp = await api.get[]>('/common/administrativeDivisionTree') administrativeDivisionTree.value = resp.data as TreeNodeVo[] + } // 可以进行搜索行政区划 2 diff --git a/securityManagement/src/views/serviceManagement/index.vue b/securityManagement/src/views/serviceManagement/index.vue index 84db465..d28a2e0 100644 --- a/securityManagement/src/views/serviceManagement/index.vue +++ b/securityManagement/src/views/serviceManagement/index.vue @@ -1,12 +1,420 @@ - - \ No newline at end of file + diff --git a/securityManagement/src/views/userManagement/bgManagement/index.vue b/securityManagement/src/views/userManagement/bgManagement/index.vue index 1e3030d..76f7b2e 100644 --- a/securityManagement/src/views/userManagement/bgManagement/index.vue +++ b/securityManagement/src/views/userManagement/bgManagement/index.vue @@ -91,19 +91,18 @@ const columns: TableProps['columns'] = [ return ( record.isAdmin.value === 1? - - { - const resp = await api.delete('/managementSecurityUnitUser/deleteById', { - managementSecurityUnitUserId: record.snowFlakeId, - }) - message.success(resp.message) - await tableRef.value?.requestGetTableData() - }}> - 删除 - - + { + const resp = await api.delete('/managementSecurityUnitUser/deleteById', { + managementSecurityUnitUserId: record.snowFlakeId, + }) + message.success(resp.message) + await tableRef.value?.requestGetTableData() + }}> + 删除 + { visible.value = true title.value = "编辑用户" @@ -118,7 +117,7 @@ const columns: TableProps['columns'] = [ : - +
超级管理员不能编辑
) } }, @@ -218,27 +217,24 @@ const submit = async () => { } const resp = await api.post('/managementSecurityUnitUser/saveOrUpdate', managementSecurityUnitUserSaveOrUpdateParams) message.success(resp.message) - close() -} -const close = () => { tableRef.value?.requestGetTableData() - visible.value = false closeModal() + } const closeModal = () => { formParams.value = { - name: '', - sex: 0, - telephone: '', - isEnable: 0, - remark: '' + name:'', + sex:0, + telephone:'', + isEnable:0, + remark:'' } visible.value = false + title.value = '新增用户' } //Form const addUserManagement = () => { visible.value = true - title.value = '' } diff --git a/superManagement/src/components/table/TableProMax.vue b/superManagement/src/components/table/TableProMax.vue index 05da1db..5b37d6d 100644 --- a/superManagement/src/components/table/TableProMax.vue +++ b/superManagement/src/components/table/TableProMax.vue @@ -154,7 +154,7 @@ const tableColumns = computed(() => { if (!(cols?.[0].dataIndex === 'index')) { cols?.unshift({ dataIndex: 'index', - width: 50, + width: 70, title: '序号', customRender: ({index}) => index + 1 }) diff --git a/superManagement/src/config/dict.ts b/superManagement/src/config/dict.ts index 2d019fb..7175c25 100644 --- a/superManagement/src/config/dict.ts +++ b/superManagement/src/config/dict.ts @@ -6,6 +6,8 @@ type DictType = | 'IsEnable' | 'IsOrNot' | 'Sex' + | 'ServiceProjectType' + | 'MiniProgramUserIdentity' export const initDict = () => { api.get[]>>('/common/enums').then(resp => {