From 551ad62ae01a166a20ebe981372293b78568d62c Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 18 八月 2022 12:29:51 +0800
Subject: [PATCH] 优化查询bug
---
service-store/src/main/java/com/java110/store/smo/impl/OrgStaffRelV1InnerServiceSMOImpl.java | 125 +++++++++++++++++++++++++++++++++++++----
1 files changed, 113 insertions(+), 12 deletions(-)
diff --git a/service-store/src/main/java/com/java110/store/smo/impl/OrgStaffRelV1InnerServiceSMOImpl.java b/service-store/src/main/java/com/java110/store/smo/impl/OrgStaffRelV1InnerServiceSMOImpl.java
index 646c2d4..cbd7206 100644
--- a/service-store/src/main/java/com/java110/store/smo/impl/OrgStaffRelV1InnerServiceSMOImpl.java
+++ b/service-store/src/main/java/com/java110/store/smo/impl/OrgStaffRelV1InnerServiceSMOImpl.java
@@ -16,14 +16,18 @@
package com.java110.store.smo.impl;
+import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.dto.PageDto;
+import com.java110.dto.org.OrgDto;
import com.java110.dto.org.OrgStaffRelDto;
+import com.java110.intf.store.IOrgStaffRelV1InnerServiceSMO;
+import com.java110.intf.user.IOrgV1InnerServiceSMO;
import com.java110.po.org.OrgStaffRelPo;
import com.java110.store.dao.IOrgStaffRelV1ServiceDao;
-import com.java110.intf.store.IOrgStaffRelV1InnerServiceSMO;
+import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
-import com.java110.core.base.smo.BaseServiceSMO;
-import com.java110.dto.user.UserDto;
-import com.java110.dto.PageDto;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.api.staff.ApiStaffDataVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@@ -45,6 +49,9 @@
@Autowired
private IOrgStaffRelV1ServiceDao orgStaffRelV1ServiceDaoImpl;
+ @Autowired
+ private IOrgV1InnerServiceSMO orgV1InnerServiceSMOImpl;
+
@Override
public int saveOrgStaffRel(@RequestBody OrgStaffRelPo orgStaffRelPo) {
@@ -52,17 +59,17 @@
return saveFlag;
}
- @Override
- public int updateOrgStaffRel(@RequestBody OrgStaffRelPo orgStaffRelPo) {
+ @Override
+ public int updateOrgStaffRel(@RequestBody OrgStaffRelPo orgStaffRelPo) {
int saveFlag = orgStaffRelV1ServiceDaoImpl.updateOrgStaffRelInfo(BeanConvertUtil.beanCovertMap(orgStaffRelPo));
return saveFlag;
}
- @Override
- public int deleteOrgStaffRel(@RequestBody OrgStaffRelPo orgStaffRelPo) {
- orgStaffRelPo.setStatusCd("1");
- int saveFlag = orgStaffRelV1ServiceDaoImpl.updateOrgStaffRelInfo(BeanConvertUtil.beanCovertMap(orgStaffRelPo));
- return saveFlag;
+ @Override
+ public int deleteOrgStaffRel(@RequestBody OrgStaffRelPo orgStaffRelPo) {
+ orgStaffRelPo.setStatusCd("1");
+ int saveFlag = orgStaffRelV1ServiceDaoImpl.updateOrgStaffRelInfo(BeanConvertUtil.beanCovertMap(orgStaffRelPo));
+ return saveFlag;
}
@Override
@@ -81,9 +88,103 @@
return orgStaffRels;
}
+ @Override
+ public List<OrgStaffRelDto> queryStaffOrgNames(@RequestBody OrgStaffRelDto orgStaffRelDto) {
+
+ //鏍¢獙鏄惁浼犱簡 鍒嗛〉淇℃伅
+
+ int page = orgStaffRelDto.getPage();
+
+ if (page != PageDto.DEFAULT_PAGE) {
+ orgStaffRelDto.setPage((page - 1) * orgStaffRelDto.getRow());
+ }
+
+ List<OrgStaffRelDto> orgStaffRels = BeanConvertUtil.covertBeanList(orgStaffRelV1ServiceDaoImpl.getOrgStaffRelInfo(BeanConvertUtil.beanCovertMap(orgStaffRelDto)), OrgStaffRelDto.class);
+
+ if (orgStaffRels == null || orgStaffRels.size() < 1) {
+ return orgStaffRels;
+ }
+ refreshOrgs(orgStaffRels);
+
+ return orgStaffRels;
+ }
+ private void refreshOrgs(List<OrgStaffRelDto> staffs) {
+ if (staffs == null || staffs.size() < 1) {
+ return;
+ }
+
+ List<String> staffIds = new ArrayList<>();
+ for (OrgStaffRelDto apiStaffDataVo : staffs) {
+ staffIds.add(apiStaffDataVo.getStaffId());
+ }
+
+ OrgDto orgDto = new OrgDto();
+ orgDto.setStoreId(staffs.get(0).getStoreId());
+ List<OrgDto> orgDtos = orgV1InnerServiceSMOImpl.queryOrgs(orgDto);
+ if (orgDtos == null || orgDtos.size() < 1) {
+ return;
+ }
+
+ for (OrgStaffRelDto apiStaffDataVo : staffs) {
+ if (StringUtil.isEmpty(apiStaffDataVo.getOrgId())) {
+ continue;
+ }
+ apiStaffDataVo.setParentOrgId(apiStaffDataVo.getOrgId());
+
+ findParents(apiStaffDataVo, orgDtos, null, 0);
+
+ }
+
+ }
+
+
+ private void findParents(OrgStaffRelDto apiStaffDataVo, List<OrgDto> orgDtos, OrgDto curOrgDto, int orgDeep) {
+ for (OrgDto orgDto : orgDtos) {
+ curOrgDto = orgDto;
+ if (!apiStaffDataVo.getParentOrgId().equals(orgDto.getOrgId())) { // 浠栬嚜宸辫烦杩�
+ continue;
+ }
+
+ //濡傛灉鍒颁竴绾� 灏辩粨鏉�
+ 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())) {
+ return;
+ }
+
+ if (curOrgDto != null && curOrgDto.getParentOrgId().equals(curOrgDto.getOrgId())) {
+ return;
+ }
+
+ if (curOrgDto != null && "-1".equals(curOrgDto.getParentOrgId())) {
+ return;
+ }
+
+ orgDeep += 1;
+
+ if (orgDeep > 20) {
+ return;
+ }
+
+ findParents(apiStaffDataVo, orgDtos, curOrgDto, orgDeep);
+ }
+
@Override
public int queryOrgStaffRelsCount(@RequestBody OrgStaffRelDto orgStaffRelDto) {
- return orgStaffRelV1ServiceDaoImpl.queryOrgStaffRelsCount(BeanConvertUtil.beanCovertMap(orgStaffRelDto)); }
+ return orgStaffRelV1ServiceDaoImpl.queryOrgStaffRelsCount(BeanConvertUtil.beanCovertMap(orgStaffRelDto));
+ }
}
--
Gitblit v1.8.0