src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
@@ -208,7 +208,7 @@ AND CONCAT(title,source_name) LIKE CONCAT ('%', #{article.keyword},'%') </if> <if test="article.districtIdList != null and article.districtIdList != ''"> <if test="article.districtIdList != null and article.districtIdList.size() > 0 "> and (article_range like <foreach collection="article.districtIdList" separator=" or article_range like" item="id">'%${id}%' </foreach> src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java
@@ -38,6 +38,7 @@ String userRole = AuthUtil.getUserRole(); // 物业身份,只查询该物业公司下的公告 if (userRole.contains("wygly")) { // 物业公司 有哪些小区 IPropertyCompanyDistrictService bean = SpringUtils.getBean(IPropertyCompanyDistrictService.class); List<PropertyCompanyDistrictEntity> list = bean.list(Wrappers.<PropertyCompanyDistrictEntity>lambdaQuery() .eq(PropertyCompanyDistrictEntity::getUserId, AuthUtil.getUserId())); @@ -50,7 +51,9 @@ // List<DistrictEntity> list = bean.list(Wrappers.<DistrictEntity>lambdaQuery() // .in(DistrictEntity::getCommunityCode, regionChildCodesList)); // List<String> fieldValues = list.stream().map(DistrictEntity::getId).collect(Collectors.toList()); article.setDistrictIdList(regionChildCodesList); if (regionChildCodesList.size() > 0) { article.setDistrictIdList(regionChildCodesList); } } return page.setRecords(baseMapper.selectArticlePage(page, article)); } src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyServiceImpl.java
@@ -19,10 +19,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.common.cache.SysCache; import org.springblade.common.constant.CommonConstant; import org.springblade.common.utils.SpringUtils; import org.springblade.core.mp.support.Condition; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.DigestUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.pay.entity.AliPayInfo; import org.springblade.modules.pay.entity.WxPayInfo; import org.springblade.modules.pay.service.IAliPayService; @@ -82,6 +85,12 @@ */ @Override public List<PropertyCompanyVO> getPropertyCompanyList(PropertyCompanyVO propertyCompany) { String userRole = AuthUtil.getUserRole(); if (!AuthUtil.isAdministrator() && userRole.contains("wygly")) { Long deptId = Func.firstLong(AuthUtil.getDeptId()); Dept dept = SysCache.getDept(deptId); propertyCompany.setName(dept.getDeptName()); } return baseMapper.getPropertyCompanyList(propertyCompany); } src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -182,7 +182,7 @@ @PostMapping("/submit") @ApiOperationSupport(order = 4) @ApiOperation(value = "新增或修改", notes = "传入User") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) @PreAuth("hasAnyRole('administrator', 'admin','wygly')") public R submit(@Valid @RequestBody User user) { CacheUtil.clear(USER_CACHE); return R.status(userService.submit(user)); src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
@@ -47,7 +47,7 @@ * @param tenantId * @return */ List<DeptVO> tree(String tenantId); List<DeptVO> tree(String tenantId, Long parentId); /** * 懒加载获取树形节点 src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
@@ -68,8 +68,12 @@ <select id="tree" resultMap="treeNodeResultMap"> select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0 <if test="_parameter!=null and _parameter!=''"> and tenant_id = #{_parameter} <if test="param1!=null and param1!=''"> and tenant_id = #{param1} </if> <if test="param2!=null and param2!=''"> and parent_id = #{param2} </if> ORDER BY sort </select> src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -26,6 +26,7 @@ import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.node.ForestNodeMerger; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringPool; import org.springblade.modules.property.entity.PropertyCompanyEntity; @@ -81,6 +82,9 @@ if (dept.getParentId() != 0) { parentId = dept.getParentId(); } List<DeptVO> deptVOS = baseMapper.lazyList(tenantId, parentId, param); deptVOS = deptVOS.stream().filter(item -> AuthUtil.getDeptId().contains(item.getId().toString())).collect(Collectors.toList()); return deptVOS; } // 判断点击搜索带有查询条件的情况 if (Func.isEmpty(param.get(PARENT_ID)) && param.size() > 1 && Func.toLong(parentId) == 0L) { @@ -91,7 +95,21 @@ @Override public List<DeptVO> tree(String tenantId) { return ForestNodeMerger.merge(baseMapper.tree(tenantId)); Long parentId = null; // 判断数据权限控制,非超管角色只可看到本级及以下数据 // if (!AuthUtil.isAdministrator()) { // Long deptId = Func.firstLong(AuthUtil.getDeptId()); // Dept dept = SysCache.getDept(deptId); // if (dept.getParentId() != 0) { // parentId = dept.getParentId(); // } // List<DeptVO> merge = ForestNodeMerger.merge(baseMapper.tree(tenantId, parentId)); // List<DeptVO> copy = BeanUtil.copy(merge, DeptVO.class); // copy = copy.stream().filter(item -> AuthUtil.getDeptId().contains(item.getId().toString())).collect(Collectors.toList()); // return copy; // } return ForestNodeMerger.merge(baseMapper.tree(tenantId, parentId)); } @Override @@ -100,12 +118,23 @@ tenantId = StringPool.EMPTY; } // 判断数据权限控制,非超管角色只可看到本级及以下数据 // if (Func.toLong(parentId) == 0L && !AuthUtil.isAdministrator()) { // Long deptId = Func.firstLong(AuthUtil.getDeptId()); // Dept dept = SysCache.getDept(deptId); // if (dept.getParentId() != 0) { // parentId = dept.getParentId(); // } // } if (Func.toLong(parentId) == 0L && !AuthUtil.isAdministrator()) { Long deptId = Func.firstLong(AuthUtil.getDeptId()); Dept dept = SysCache.getDept(deptId); if (dept.getParentId() != 0) { parentId = dept.getParentId(); } List<DeptVO> merge = ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId)); List<DeptVO> copy = BeanUtil.copy(merge, DeptVO.class); copy = copy.stream().filter(item -> AuthUtil.getDeptId().contains(item.getId().toString())).collect(Collectors.toList()); return copy; } return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId)); } @@ -156,7 +185,7 @@ // 查询当前机构信息 DeptVO dept = baseMapper.getDeptById(id); // 如果父机构为物业公司 if (dept.getParentName().equals("物业公司")){ if (dept.getParentName().equals("物业公司")) { // 删除 propertyCompanyService.remove(Wrappers.<PropertyCompanyEntity>update().lambda().eq(PropertyCompanyEntity::getDeptId, id)); } @@ -173,6 +202,7 @@ /** * 机构信息处理 * * @param dept */ private void deptHandle(Dept dept) { @@ -195,6 +225,7 @@ /** * 自定义新增或修改 * * @param dept * @return */ @@ -205,7 +236,7 @@ deptHandle(dept); // 判断类型,如果为物业公司(上级机构名称为物业公司),名称不能重复 QueryWrapper<Dept> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("is_deleted",0).eq("id", dept.getParentId()); queryWrapper.eq("is_deleted", 0).eq("id", dept.getParentId()); Dept parentDept = getOne(queryWrapper); // 如果父机构为物业公司 if (parentDept != null && parentDept.getDeptName().equals("物业公司")) { @@ -218,11 +249,15 @@ dept.setId(one.getId()); flag = updateById(dept); } else { flag = save(dept); if (dept.getId() > 0) { flag = updateById(dept); } else { flag = save(dept); } } //保存物业公司信息 savePropertyCompany(dept); }else { } else { flag = saveOrUpdate(dept); } // 保存并返回 @@ -231,23 +266,24 @@ /** * 保存物业公司信息 * * @param dept */ @Transactional(rollbackFor = Exception.class) public void savePropertyCompany(Dept dept) { // 查询物业公司是否存在 QueryWrapper<PropertyCompanyEntity> wrapper = new QueryWrapper<>(); wrapper.eq("is_deleted",0) .eq("dept_id",dept.getId()) .eq("name",dept.getDeptName()); wrapper.eq("is_deleted", 0) .eq("dept_id", dept.getId()) .eq("name", dept.getDeptName()); PropertyCompanyEntity propertyCompanyEntity = propertyCompanyService.getOne(wrapper); if (null!=propertyCompanyEntity){ if (null != propertyCompanyEntity) { // 修改 propertyCompanyEntity.setDeptId(dept.getId()); propertyCompanyEntity.setName(dept.getDeptName()); // 往物业公司表中插入一条数据 propertyCompanyService.updateById(propertyCompanyEntity); }else { } else { // 新增 PropertyCompanyEntity companyEntity = new PropertyCompanyEntity(); companyEntity.setDeptId(dept.getId()); @@ -286,9 +322,9 @@ for (TreeStringNode treeStringNode : list) { // 查询是否已创建 QueryWrapper<Dept> wrapper = new QueryWrapper<>(); wrapper.eq("is_deleted",0).eq("dept_name",treeStringNode.getName()); wrapper.eq("is_deleted", 0).eq("dept_name", treeStringNode.getName()); Dept one = getOne(wrapper); if (null==one){ if (null == one) { // 新增 Dept dept = new Dept(); dept.setParentId(1733066387113734145L); src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java
@@ -26,6 +26,7 @@ import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.constant.RoleConstant; import org.springblade.core.tool.node.ForestNodeMerger; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.system.entity.Role; @@ -72,13 +73,21 @@ @Override public List<RoleVO> tree(String tenantId) { String userRole = AuthUtil.getUserRole(); String roleId = AuthUtil.getUser().getRoleId(); String excludeRole = null; if (!CollectionUtil.contains(Func.toStrArray(userRole), RoleConstant.ADMIN) && !CollectionUtil.contains(Func.toStrArray(userRole), RoleConstant.ADMINISTRATOR)) { excludeRole = RoleConstant.ADMIN; } return ForestNodeMerger.merge(baseMapper.tree(tenantId, excludeRole)); List<RoleVO> merge = ForestNodeMerger.merge(baseMapper.tree(tenantId, excludeRole)); List<RoleVO> copy = BeanUtil.copy(merge, RoleVO.class); if (!AuthUtil.isAdministrator()) { List<RoleVO> collect = copy.stream().filter(item -> roleId.contains(item.getId().toString())).collect(Collectors.toList()); return collect; } return merge; } @Override @Transactional(rollbackFor = Exception.class) public boolean grant(@NotEmpty List<Long> roleIds, List<Long> menuIds, List<Long> dataScopeIds, List<Long> apiScopeIds) { src/main/java/org/springblade/modules/system/vo/DeptVO.java
@@ -51,6 +51,9 @@ @JsonSerialize(using = ToStringSerializer.class) private Long parentId; @JsonSerialize(using = ToStringSerializer.class) private String title; /** * 子孙节点 */ src/main/java/org/springblade/modules/system/vo/RoleVO.java
@@ -45,6 +45,9 @@ @JsonSerialize(using = ToStringSerializer.class) private Long id; @JsonSerialize(using = ToStringSerializer.class) private String title; /** * 父节点ID */