From 36fe71cc6f93197aec868fd57e39e7dc63aef367 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Wed, 17 Jul 2024 17:27:20 +0800
Subject: [PATCH] 代码优化
---
src/main/java/org/springblade/common/param/CommonParamSet.java | 132 ++++++++++++++++++++++++++++++++++++++-----
1 files changed, 115 insertions(+), 17 deletions(-)
diff --git a/src/main/java/org/springblade/common/param/CommonParamSet.java b/src/main/java/org/springblade/common/param/CommonParamSet.java
index 55448d5..1b0448f 100644
--- a/src/main/java/org/springblade/common/param/CommonParamSet.java
+++ b/src/main/java/org/springblade/common/param/CommonParamSet.java
@@ -1,31 +1,42 @@
package org.springblade.common.param;
+import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.util.Strings;
import org.springblade.common.cache.SysCache;
+import org.springblade.common.utils.AuthUtils;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.utils.SpringUtil;
-import org.springblade.modules.grid.service.IGridService;
-import org.springblade.modules.police.service.IPoliceAffairsGridService;
import org.springblade.modules.system.service.IRegionService;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
-
+import java.util.Map;
+@Data
public class CommonParamSet<T> {
/**
* 区域编号集合
*/
- private List<String> regionChildCodesList;
+ private List<String> regionChildCodesList = new ArrayList<>();
/**
* 是否为超级管理员
*/
private Integer isAdministrator;
+
+ /**
+ * 社区编号
+ */
+ private String communityCode;
/**
* 网格编号集合
*/
- private List<String> gridCodeList;
+ private List<String> gridCodeList = new ArrayList<>();
+
+ /**
+ *
+ */
+ private String str = null;
public List<String> getRegionChildCodesList() {
return regionChildCodesList;
@@ -39,6 +50,14 @@
return gridCodeList;
}
+ public String getStr() {
+ return str;
+ }
+
+ public String getCommunityCode() {
+ return communityCode;
+ }
+
public <U> CommonParamSet invoke(Class<U> clazz, T t) {
//获取传入对象信息
U u = clazz.cast(t);
@@ -48,32 +67,46 @@
// 获取请求头中的角色别名
String roleName = SpringUtils.getRequestParam("roleName");
// 获取请求头中的社区编号
- String communityCode = SpringUtils.getRequestParam("communityCode");
+ communityCode = SpringUtils.getRequestParam("communityCode");
if (!Strings.isBlank(communityCode)) {
// 校验社区编号是否合规
if (null != SpringUtils.getBean(IRegionService.class).getById(communityCode)) {
// 设置社区编号
communityCodeField.setAccessible(true);
- communityCodeField.set(t,communityCode);
+ communityCodeField.set(t, communityCode);
}
}
- isAdministrator = Strings.isBlank(roleName) && (AuthUtil.isAdministrator() == true || AuthUtil.isAdmin() == true) ? 1 : 2;
- if (isAdministrator==2) {
- // 获取当前用户的所属行政区划编号
- regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+ // 超级管理员、系统管理员、公安管理员不过滤数据
+// isAdministrator = AuthUtils.isAdmin(roleName) || AuthUtils.isAdmin() ||
+// AuthUtils.isAdministrator() || AuthUtils.isGaAdmin() ? 1 : 2;
+ if (StringUtils.isNotBlank(roleName)) {
+ isAdministrator = AuthUtils.isAdmin(roleName) ? 1 : 2;
+ } else {
+ isAdministrator = AuthUtils.isAdmin() ||
+ AuthUtils.isAdministrator() || AuthUtils.isGaAdmin() ? 1 : 2;
+ }
+
+ if (isAdministrator == 2) {
+ if (Strings.isNotBlank(communityCode)) {
+ // 请求头带了后直接使用过滤
+ regionChildCodesList.add(communityCode);
+ }else {
+ // 获取当前用户的所属行政区划编号()
+ regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId(), communityCode);
+ // 民警角色
+ if (!Strings.isBlank(roleName) && roleName.equals("mj")) {
+ regionChildCodesList = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),communityCode,roleName);
+ }
+ }
// 获取网格编号集合
gridCodeList = new ArrayList<>();
if (!Strings.isBlank(roleName)) {
// 设置角色别名
roleNameField.setAccessible(true);
roleNameField.set(t, roleName);
- // 民警角色
- if (roleName.equals("mj")) {
- regionChildCodesList = SpringUtil.getBean(IPoliceAffairsGridService.class).getCommunityCodeListByUserId(AuthUtil.getUserId());
- }
// 网格员角色
if (roleName.equals("wgy")) {
- gridCodeList = SpringUtil.getBean(IGridService.class).getGridListByUserId(AuthUtil.getUserId());
+ gridCodeList = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),communityCode,roleName);
}
}
// 特定账号设置
@@ -88,4 +121,69 @@
}
return this;
}
+
+ /**
+ * 设置对应的属性值
+ * @param clazz
+ * @param t
+ * @param list 字段属性集合
+ * @param pre 字段拼接
+ * @return
+ */
+ public <U> CommonParamSet setFieldValue(Class<U> clazz, T t,List<String> list,String pre) {
+ //获取传入对象信息
+ U u = clazz.cast(t);
+ try {
+ StringBuilder builder = new StringBuilder(pre);
+ for (String fieldName : list) {
+ if (!fieldName.equals("tableName")) {
+ if (fieldName.equals("tableId")) {
+ fieldName = "id";
+ }
+ Field field = u.getClass().getDeclaredField(fieldName);
+ field.setAccessible(true);
+ builder.append(field.get(t).toString()).append(",");
+ }
+ }
+ String toString = builder.toString();
+ str = toString.substring(0,toString.length()-1);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return this;
+ }
+
+ /**
+ * 设置对应的属性值
+ * @param clazz
+ * @param t
+ * @param list 字段属性集合
+ * @param map
+ * @return
+ */
+ public <U> CommonParamSet setFieldValueByMap(Class<U> clazz, T t, List<String> list, Map<String,Object> map) {
+ //获取传入对象信息
+ U u = clazz.cast(t);
+ try {
+ for (String fieldName : list) {
+ if (!fieldName.equals("tableName")){
+ if (fieldName.equals("tableId")){
+ fieldName = "id";
+ }
+ Field field = u.getClass().getDeclaredField(fieldName);
+ field.setAccessible(true);
+ String value = field.get(t).toString();
+ if (fieldName.equals("id")){
+ fieldName = "tableId";
+ }
+ map.put(fieldName,value);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return this;
+ }
+
+
}
--
Gitblit v1.9.3