From e84df331a8ee600d369eeac4172b750db563926d Mon Sep 17 00:00:00 2001 From: houruijun <411269194@kidgrow.com> Date: Sun, 09 Aug 2020 15:16:37 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java | 97 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 87 insertions(+), 10 deletions(-) diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java index d815af8..49f6395 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java @@ -9,22 +9,18 @@ import com.kidgrow.redis.util.RedisConstant; import com.kidgrow.redis.util.RedisUtils; import com.kidgrow.usercenter.mapper.SysOrganizationMapper; +import com.kidgrow.usercenter.mapper.SysUserOrgMapper; import com.kidgrow.usercenter.service.ISysOrganizationService; import com.kidgrow.usercenter.vo.SysOrganizationVo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cglib.beans.BeanCopier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; -import java.util.stream.Stream; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> @@ -40,6 +36,8 @@ public class SysOrganizationServiceImpl extends SuperServiceImpl<SysOrganizationMapper, SysOrganization> implements ISysOrganizationService { @Autowired RedisUtils redisUtils; + @Autowired + SysUserOrgMapper sysUserOrgMapper; /** * 列表 @@ -140,8 +138,21 @@ @Override public ResultBody getTree(Map<String, Object> params) { List<SysOrganization> sysOrganizations = baseMapper.selectByMap(params); + //查询 ,父类为-1的;即顶级父类 +// params.put("org_parent_id",Long.valueOf("-1")); +// List<SysOrganization> sysOrgs=baseMapper.selectByMap(params); +// if (sysOrgs.isEmpty()) { +// return ResultBody.ok().data(null); +// } List<Map<String, Object>> treeData = getTreeData(Long.valueOf("-1"), sysOrganizations); return ResultBody.ok().data(treeData); + } + + @Override + public int deleteByUserId(Long userId) { + Map<String, Object> params = new HashMap<>(); + params.put("user_id", userId); + return sysUserOrgMapper.deleteByMap(params); } /** @@ -154,14 +165,17 @@ public List<Map<String, Object>> getTreeData(Long MyId, List<SysOrganization> sysOrganizations) { List<Map<String, Object>> listMap = new ArrayList<>(); Map<Long, SysOrganization> collect = sysOrganizations.stream().collect(Collectors.toMap(SysOrganization::getId, SysOrganization -> SysOrganization)); - List<Long> idList = sysOrganizations.stream().filter(e -> e.getOrgParentId() == MyId).map(e -> e.getId()).collect(Collectors.toList()); + List<Long> idList = sysOrganizations.stream().filter(e -> MyId.equals(e.getOrgParentId())).map(e -> e.getId()).collect(Collectors.toList()); for (Long id : idList ) { Map<String, Object> map = new HashMap<>(); - map.put("id", id); + map.put("id", "" + id); map.put("name", collect.get(id).getOrgName()); map.put("level", collect.get(id).getOrgLevel()); - List<Long> childs = sysOrganizations.stream().filter(e -> e.getOrgParentId() == id).map(e -> e.getId()).collect(Collectors.toList()); + map.put("parentId", collect.get(id).getOrgParentId()); + List<Long> childs = sysOrganizations.stream().filter(e -> + id.equals(e.getOrgParentId()) + ).map(e -> e.getId()).collect(Collectors.toList()); if (childs.size() > 0) { List<Map<String, Object>> treeData = getTreeData(id, sysOrganizations); map.put("children", treeData); @@ -178,17 +192,80 @@ * @return */ @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public boolean saveOrUpdateSer(SysOrganization sysOrganization) { + //获取code + if (sysOrganization.getId() == null) { //保存 + String code = this.getCode(sysOrganization); + sysOrganization.setOrgCode(code); baseMapper.insert(sysOrganization); } else { //更新 + SysOrganization sysOrg = baseMapper.selectById(sysOrganization.getId()); + if (sysOrg.getOrgParentId() != sysOrganization.getOrgParentId()) { + String code = this.getCode(sysOrganization); + sysOrganization.setOrgCode(code); + } int i = baseMapper.updateById(sysOrganization); } redisUtils.hdel(RedisConstant.ORGANIZATION, sysOrganization.getId().toString()); redisUtils.hset(RedisConstant.ORGANIZATION, sysOrganization.getId().toString(), sysOrganization); return true; } + + + /** + * 获取自己组织的code + * + * @param sysOrganization + * @return + */ + public String getCode(SysOrganization sysOrganization) { + //获取父级 + Long orgParentId = sysOrganization.getOrgParentId(); + if (orgParentId == null) { + return null; + } + SysOrganization sysOrg = baseMapper.selectById(orgParentId); + if (sysOrg != null) { + String orgCode = sysOrg.getOrgCode(); + //查询 + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("org_parent_id", sysOrg.getId()); + queryWrapper.orderByDesc("org_code"); + queryWrapper.last("limit 1"); + List<SysOrganization> list = baseMapper.selectList(queryWrapper); + if (list.size() > 0) { + SysOrganization sysOrganizationLast = list.get(list.size() - 1); + if (sysOrganizationLast.getOrgLevel() >= 2) { + String orgCodeLast = sysOrganizationLast.getOrgCode(); + //取前部分 + String orgCodeLastQianZhui = orgCodeLast.substring(0, orgCodeLast.length() - 3); + //取后部分 + Integer codenum = Integer.valueOf(orgCodeLast.substring(orgCodeLast.length() - 3)); + String str = "00"; + str += (codenum + 1); + String substring = str.substring(str.length() - 3); + return orgCodeLastQianZhui + substring; + } else { + String orgCodeLast = sysOrganizationLast.getOrgCode(); + //取前部分 + String orgCodeLastQianZhui = orgCodeLast.substring(0, orgCodeLast.length() - 7); + //取后部分 + Integer codenum = Integer.valueOf(orgCodeLast.substring(orgCodeLast.length() - 7)); + String str = "0000000"; + str += (codenum + 1); + String substring = str.substring(str.length() - 7); + return orgCodeLastQianZhui + substring; + } + } else { + String fucode = sysOrg.getOrgCode(); + String str = "01"; + return fucode + str; + } + } + return null; + } } -- Gitblit v1.8.0