From 0066a5e8024efb33df33d860b138f9021d8c50de Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 31 八月 2022 09:07:38 +0800
Subject: [PATCH] 优化代码
---
service-user/src/main/java/com/java110/user/cmd/user/QueryStaffInfosCmd.java | 83 +++++++++++++++++++++++++++--------------
1 files changed, 55 insertions(+), 28 deletions(-)
diff --git a/service-user/src/main/java/com/java110/user/cmd/user/QueryStaffInfosCmd.java b/service-user/src/main/java/com/java110/user/cmd/user/QueryStaffInfosCmd.java
index 1f242d5..b3cf0a5 100644
--- a/service-user/src/main/java/com/java110/user/cmd/user/QueryStaffInfosCmd.java
+++ b/service-user/src/main/java/com/java110/user/cmd/user/QueryStaffInfosCmd.java
@@ -40,13 +40,13 @@
@Override
public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
- Assert.hasKeyAndValue(reqJson,"page","璇锋眰鎶ユ枃涓湭鍖呭惈page鑺傜偣");
- Assert.hasKeyAndValue(reqJson,"row","璇锋眰鎶ユ枃涓湭鍖呭惈rows鑺傜偣");
+ Assert.hasKeyAndValue(reqJson, "page", "璇锋眰鎶ユ枃涓湭鍖呭惈page鑺傜偣");
+ Assert.hasKeyAndValue(reqJson, "row", "璇锋眰鎶ユ枃涓湭鍖呭惈rows鑺傜偣");
if (!reqJson.containsKey("storeId")) {
String storeId = context.getReqHeaders().get("store-id");
reqJson.put("storeId", storeId);
}
- Assert.hasKeyAndValue(reqJson,"storeId","璇锋眰鎶ユ枃涓湭鍖呭惈storeId鑺傜偣");
+ Assert.hasKeyAndValue(reqJson, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId鑺傜偣");
}
@Override
@@ -60,7 +60,7 @@
if (count > 0) {
staffs = BeanConvertUtil.covertBeanList(userInnerServiceSMOImpl.getStaffs(userDto), ApiStaffDataVo.class);
refreshInitials(staffs);
- refreshOrgs(staffs,reqJson.getString("storeId"));
+ refreshOrgs(staffs, reqJson.getString("storeId"));
} else {
staffs = new ArrayList<>();
}
@@ -76,13 +76,13 @@
context.setResponseEntity(responseEntity);
}
- private void refreshOrgs(List<ApiStaffDataVo> staffs,String storeId) {
- if(staffs == null || staffs.size()<1){
- return ;
+ private void refreshOrgs(List<ApiStaffDataVo> staffs, String storeId) {
+ if (staffs == null || staffs.size() < 1) {
+ return;
}
- List<String> staffIds = new ArrayList<>();
- for(ApiStaffDataVo apiStaffDataVo : staffs){
+ List<String> staffIds = new ArrayList<>();
+ for (ApiStaffDataVo apiStaffDataVo : staffs) {
staffIds.add(apiStaffDataVo.getUserId());
}
@@ -101,33 +101,53 @@
return;
}
-
- for(ApiStaffDataVo apiStaffDataVo : staffs){
- for(OrgStaffRelDto tmpOrgStaffRelDto : orgStaffRels){
- if(!apiStaffDataVo.getUserId().equals(tmpOrgStaffRelDto.getStaffId())){
+ for (ApiStaffDataVo apiStaffDataVo : staffs) {
+ for (OrgStaffRelDto tmpOrgStaffRelDto : orgStaffRels) {
+ if (!apiStaffDataVo.getUserId().equals(tmpOrgStaffRelDto.getStaffId())) {
continue;
}
- tmpOrgStaffRelDto.setParentOrgId(tmpOrgStaffRelDto.getOrgId());
- findParents(tmpOrgStaffRelDto, orgDtos, null);
- apiStaffDataVo.setOrgName(tmpOrgStaffRelDto.getOrgName());
+ OrgDto org = new OrgDto();
+ org.setOrgId(tmpOrgStaffRelDto.getOrgId());
+ List<OrgDto> orgs = orgV1InnerServiceSMOImpl.queryOrgs(org);
+ Assert.listOnlyOne(orgs, "鏌ヨ缁勭粐琛ㄩ敊璇紒");
+ apiStaffDataVo.setOrgId(tmpOrgStaffRelDto.getOrgId());
+ apiStaffDataVo.setParentTwoOrgId(orgs.get(0).getParentOrgId());
}
+ }
+
+ for (ApiStaffDataVo apiStaffDataVo : staffs) {
+ if (StringUtil.isEmpty(apiStaffDataVo.getOrgId())) {
+ continue;
+ }
+ apiStaffDataVo.setParentOrgId(apiStaffDataVo.getOrgId());
+
+ findParents(apiStaffDataVo, orgDtos, null, 0);
+
}
}
- private void findParents(OrgStaffRelDto orgStaffRelDto, List<OrgDto> orgDtos, OrgDto curOrgDto) {
+ private void findParents(ApiStaffDataVo apiStaffDataVo, List<OrgDto> orgDtos, OrgDto curOrgDto, int orgDeep) {
for (OrgDto orgDto : orgDtos) {
- if (!orgStaffRelDto.getParentOrgId().equals(orgDto.getOrgId())) { // 浠栬嚜宸辫烦杩�
- continue;
- }
- orgStaffRelDto.setParentOrgId(orgDto.getParentOrgId());
curOrgDto = orgDto;
- if (StringUtil.isEmpty(orgStaffRelDto.getOrgName())) {
- orgStaffRelDto.setOrgName(orgDto.getOrgName() );
+ if (!apiStaffDataVo.getParentOrgId().equals(orgDto.getOrgId())) { // 浠栬嚜宸辫烦杩�
continue;
}
- orgStaffRelDto.setOrgName(orgDto.getOrgName() + " / " + orgStaffRelDto.getOrgName());
+
+ //濡傛灉鍒颁竴绾� 灏辩粨鏉�
+ if (OrgDto.ORG_LEVEL_STORE.equals(apiStaffDataVo.getOrgLevel())) {
+ continue;
+ }
+
+ apiStaffDataVo.setParentOrgId(orgDto.getParentOrgId());
+
+ if (StringUtil.isEmpty(apiStaffDataVo.getOrgName())) {
+ apiStaffDataVo.setOrgName(orgDto.getOrgName());
+ continue;
+ }
+ apiStaffDataVo.setOrgName(orgDto.getOrgName() + " / " + apiStaffDataVo.getOrgName());
+ apiStaffDataVo.setOrgLevel(orgDto.getOrgLevel());
}
if (curOrgDto != null && OrgDto.ORG_LEVEL_STORE.equals(curOrgDto.getOrgLevel())) {
@@ -142,20 +162,27 @@
return;
}
- findParents(orgStaffRelDto, orgDtos, curOrgDto);
+ orgDeep += 1;
+
+ if (orgDeep > 20) {
+ return;
+ }
+
+ findParents(apiStaffDataVo, orgDtos, curOrgDto, orgDeep);
}
/**
* 鍒峰叆棣栧瓧姣�
+ *
* @param staffs
*/
private void refreshInitials(List<ApiStaffDataVo> staffs) {
- for(ApiStaffDataVo staffDataVo : staffs){
- if(StringUtil.isEmpty(staffDataVo.getName())){
+ for (ApiStaffDataVo staffDataVo : staffs) {
+ if (StringUtil.isEmpty(staffDataVo.getName())) {
continue;
}
- staffDataVo.setInitials(PinYinUtil.getFirstSpell(staffDataVo.getName()).toUpperCase().charAt(0)+"");
+ staffDataVo.setInitials(PinYinUtil.getFirstSpell(staffDataVo.getName()).toUpperCase().charAt(0) + "");
}
}
}
--
Gitblit v1.8.0