diff --git a/src/main/java/com/hxgk/lowcode/model/entity/UserDetail.java b/src/main/java/com/hxgk/lowcode/model/entity/UserDetail.java index 0590943..6fe574b 100644 --- a/src/main/java/com/hxgk/lowcode/model/entity/UserDetail.java +++ b/src/main/java/com/hxgk/lowcode/model/entity/UserDetail.java @@ -18,7 +18,7 @@ public class UserDetail { //行政组织 private Long adminorg; //role权限 - private Integer roleId; + private String roleId; //主部门 private Long maindeparment; @@ -67,14 +67,6 @@ public class UserDetail { return adminorg; } - public Integer getRoleId() { - return roleId; - } - - public void setRoleId(Integer roleId) { - this.roleId = roleId; - } - public void setAdminorg(Long adminorg) { this.adminorg = adminorg; } @@ -87,6 +79,13 @@ public class UserDetail { this.maindeparment = maindeparment; } + public String getRoleId() { + return roleId; + } + + public void setRoleId(String roleId) { + this.roleId = roleId; + } @Override public String toString() { diff --git a/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java b/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java index 8234c16..28a516e 100644 --- a/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java +++ b/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java @@ -17,6 +17,7 @@ import com.hxgk.lowcode.utils.HttpUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.protocol.HTTP; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -25,6 +26,8 @@ import org.apache.logging.log4j.Logger; import java.io.IOException; import java.lang.reflect.Array; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; @Service public class CustomerFormServiceImpl implements CustomerFormService { @@ -51,6 +54,9 @@ public class CustomerFormServiceImpl implements CustomerFormService { @Autowired private CustomerFormViewService customerFormViewService; + @Value("${myProps.gainTableVersionFieldUrl}") + private String gainTableVersionFieldUrl; + private static final Logger logger = LogManager.getLogger(); @@ -152,9 +158,17 @@ public class CustomerFormServiceImpl implements CustomerFormService { }else if(StringUtils.isNotEmpty(c.getPostpermit())){ //按照可见角色判断权限 for (int i = 0; i < postpermitArr.length; i++) { - if(postpermitArr[i].equals(userDetail.getRoleId().toString())){ + ArrayList roleIdList = extractNumbers(userDetail.getRoleId()); + int roleHitCount = 0; + for(String roleId : roleIdList){ + if(postpermitArr[i].equals(roleId)){ + roleHitCount++; + } + } + if(roleHitCount>0){ customerFormList1.add(c); } + } }else if(StringUtils.isNotEmpty(c.getPermit())){ //按照授权范围(org)判断权限 @@ -188,7 +202,7 @@ public class CustomerFormServiceImpl implements CustomerFormService { String post = null; try { - post = HttpUtils.send(url, param, HTTP.UTF_8, key, token); + post = HttpUtils.send(gainTableVersionFieldUrl, param, HTTP.UTF_8, key, token); System.out.println("post:"+post.toString()); } catch (IOException e) { e.printStackTrace(); @@ -410,7 +424,17 @@ public class CustomerFormServiceImpl implements CustomerFormService { }else if(StringUtils.isNotEmpty(c.getPostpermit())){ //按照可见角色判断权限 for (int i = 0; i < postpermitArr.length; i++) { - if(postpermitArr[i].equals(userDetail.getRoleId().toString())){ + /*if(postpermitArr[i].equals(userDetail.getRoleId().toString())){ + customerFormList1.add(c); + }*/ + ArrayList roleIdList = extractNumbers(userDetail.getRoleId()); + int roleHitCount = 0; + for(String roleId : roleIdList){ + if(postpermitArr[i].equals(roleId)){ + roleHitCount++; + } + } + if(roleHitCount>0){ customerFormList1.add(c); } } @@ -527,8 +551,8 @@ public class CustomerFormServiceImpl implements CustomerFormService { String onlyToShowTableId = ""; //上线修改 - String url = "http://172.20.2.87:7777/customer_form/gainTableVersionField";//本地+内网 - //String url = "http://36.133.126.182:39250/customer_form/gainTableVersionField";//外网 + //String url = "http://172.20.2.87:7777/customer_form/gainTableVersionField";//本地+内网 + String url = "http://36.133.126.182:39250/customer_form/gainTableVersionField";//外网 if(cfid.contains("zibiaoid-")){ onlyToShowTableId = cfid.split("zibiaoid-")[1]; cfid = cfid.split(":")[0];//当选择某个主表的子表时,连主表数据一并返回。 @@ -543,7 +567,7 @@ public class CustomerFormServiceImpl implements CustomerFormService { System.out.println("userKey:"+userKey); System.out.println("token:"+token);*/ try { - post = HttpUtils.send(url, param, HTTP.UTF_8, userKey, token); + post = HttpUtils.send(gainTableVersionFieldUrl, param, HTTP.UTF_8, userKey, token); System.out.println("post:"+post.toString()); } catch (IOException e) { e.printStackTrace(); @@ -2339,6 +2363,16 @@ public class CustomerFormServiceImpl implements CustomerFormService { } } + public static ArrayList extractNumbers(String input) { + ArrayList numbers = new ArrayList<>(); + Pattern pattern = Pattern.compile("\\d+"); // 匹配连续数字 + Matcher matcher = pattern.matcher(input); + + while (matcher.find()) { + numbers.add(matcher.group()); // 直接提取数字字符串 + } + return numbers; + } @Override public Boolean queryHideRoleCondition(String key, String token, String targetOrgOrPerson, String condition, String currentUser) { @@ -2350,7 +2384,19 @@ public class CustomerFormServiceImpl implements CustomerFormService { String[] targetOrgOrPersonArr = targetOrgOrPerson.split(":"); String targetRoleId = targetOrgOrPersonArr[2]; - if(userDetail.getRoleId().toString().equals(targetRoleId)){ + + + ArrayList roleIdList = extractNumbers(userDetail.getRoleId()); + int roleHitCount = 0; + for(String roleId : roleIdList){ + if(targetRoleId.equals(roleId)){ + roleHitCount++; + } + } + + + + if(roleHitCount>0){ return true; }else{ return false; diff --git a/src/main/java/com/hxgk/lowcode/service/impl/QrCodeServiceImpl.java b/src/main/java/com/hxgk/lowcode/service/impl/QrCodeServiceImpl.java index 4dac805..6f276cd 100644 --- a/src/main/java/com/hxgk/lowcode/service/impl/QrCodeServiceImpl.java +++ b/src/main/java/com/hxgk/lowcode/service/impl/QrCodeServiceImpl.java @@ -10,6 +10,7 @@ import com.hxgk.lowcode.service.UserService; import com.hxgk.lowcode.utils.QRCodeUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.awt.image.BufferedImage; @@ -25,6 +26,8 @@ public class QrCodeServiceImpl implements QrCodeService { FieldRecordMapper fieldRecordMapper; @Autowired UserService userService; + @Value("${myProps.qrcodePrefix}") + private String qrcodePrefix; @Override public String generateQrCodeByCfid(String cfid) { @@ -47,7 +50,7 @@ public class QrCodeServiceImpl implements QrCodeService { String prefixLocal = "http://localhost:9998/#/form_table/taskListPage?"; String prefixout = "https://wab.hxgk.group/#/form_table/taskListPage?"; //上线修改 - qrCodeStr = prefixLocal+"id="+c.getCfid()+"&key="+c.getGroupid()+"&formid="+c.getId()+"&formKey="+c.getSignCode()+"&title="+c.getName()+"&state="+c.getStates(); + qrCodeStr = qrcodePrefix+"id="+c.getCfid()+"&key="+c.getGroupid()+"&formid="+c.getId()+"&formKey="+c.getSignCode()+"&title="+c.getName()+"&state="+c.getStates(); Map appAndGroupNameMap = customerFormViewService.getAppNameAndGroupNameByCfid(cfid); String groupName = appAndGroupNameMap.get("groupName"); String appName = appAndGroupNameMap.get("appName"); @@ -83,7 +86,7 @@ public class QrCodeServiceImpl implements QrCodeService { String prefixLocal = "http://localhost:9998/#/form_table/taskListPage?"; String prefixout = "https://wab.hxgk.group/#/form_table/taskListPage?"; //上线修改 - basicQrCodeStr = prefixLocal+"id="+c.getCfid()+"&key="+c.getGroupid()+"&formid="+c.getId()+"&formKey="+c.getSignCode()+"&title="+c.getName()+"&state="+c.getStates(); + basicQrCodeStr = qrcodePrefix+"id="+c.getCfid()+"&key="+c.getGroupid()+"&formid="+c.getId()+"&formKey="+c.getSignCode()+"&title="+c.getName()+"&state="+c.getStates(); //查询要展示在表格中的信息 ArrayList qrCodeShowFields = new ArrayList<>(); Object qrCodePrintStyle = settings.get("qrCodePrintStyle"); diff --git a/src/main/java/com/hxgk/lowcode/service/impl/UserServiceImpl.java b/src/main/java/com/hxgk/lowcode/service/impl/UserServiceImpl.java index d9e9924..5653773 100644 --- a/src/main/java/com/hxgk/lowcode/service/impl/UserServiceImpl.java +++ b/src/main/java/com/hxgk/lowcode/service/impl/UserServiceImpl.java @@ -82,8 +82,8 @@ public class UserServiceImpl implements UserService { } //role if (StringUtils.isNotEmpty(entry.getKey()) && entry.getKey().equals("role")) { - Integer l = Integer.parseInt(entry.getValue()); - userDetail.setRoleId(l); + //Integer l = Integer.parseInt(entry.getValue()); + userDetail.setRoleId(entry.getValue()); } if (StringUtils.isNotEmpty(entry.getKey()) && entry.getKey().equals("adminorg")) { long adminorg = Long.parseLong(entry.getValue()); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 6f46efc..4e82e2b 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -86,3 +86,7 @@ redisPool: host: 127.0.0.1 dbs: 5,14,15 password: + +myProps: + qrcodePrefix: http://localhost:9998/#/form_table/taskListPage? + gainTableVersionFieldUrl: http://172.20.2.87:7777/customer_form/gainTableVersionField diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 8ae2c95..be0a30d 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -85,3 +85,7 @@ redisPool: host: 127.0.0.1 dbs: 5,14,15 password: + +myProps: + qrcodePrefix: https://wab.hxgk.group/#/form_table/taskListPage? + gainTableVersionFieldUrl: http://36.133.126.182:39250/customer_form/gainTableVersionField