linwei
2024-01-20 b04b02aa6a6cb50da58c1a7165394252c94f78e9
物业公司人员查询数据过滤
10 files modified
105 ■■■■ changed files
src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java 5 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyServiceImpl.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/controller/UserController.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DeptMapper.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml 8 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java 60 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/vo/DeptVO.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/vo/RoleVO.java 3 ●●●●● patch | view | raw | blame | history
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
     */