From a64372663b31715ccbb1048eb03deb172dad2773 Mon Sep 17 00:00:00 2001 From: Jinquan_Ou <Jinquan@gdut.com> Date: 星期三, 12 四月 2023 23:26:39 +0800 Subject: [PATCH] 做了家庭资产的查询权限 --- zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java | 160 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 139 insertions(+), 21 deletions(-) diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java index bcd6416..add7243 100644 --- a/zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java +++ b/zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java @@ -8,28 +8,25 @@ import com.ruoyi.common.utils.MapUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.domain.ZInfoUser; import com.ruoyi.domain.ZfProperty; -import com.ruoyi.domain.ZfEvent; -import com.ruoyi.domain.ZfProperty; +import com.ruoyi.domain.dto.ZfPropertyDto; import com.ruoyi.mapper.ZfPropertyMapper; import com.ruoyi.service.IZfPropertyService; import com.ruoyi.service.ZInfoUserService; +import com.ruoyi.util.ArraysUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.Date; import java.util.HashMap; import java.util.List; -import java.util.function.Consumer; import java.util.stream.Collectors; + +import static com.ruoyi.constant.MenuAuthority.PROPERTY_LIST; /** @@ -50,7 +47,8 @@ @Override public List<ZfProperty> selectByCondition(ZfProperty zfProperty) { String familyIds = listFamilyIds(); - LambdaQueryWrapper<ZfProperty> lambdaQueryWrapper = buildCondition(zfProperty, familyIds); + String secondFamilyIds = listSecondFamilyIds(); + LambdaQueryWrapper<ZfProperty> lambdaQueryWrapper = buildCondition(zfProperty, familyIds, secondFamilyIds); List<ZfProperty> list = list(lambdaQueryWrapper); log.info("杩斿洖鐨勬暟鎹负:{}", list); return list; @@ -69,35 +67,155 @@ return lqw; } - private LambdaQueryWrapper<ZfProperty> buildCondition(ZfProperty zfProperty, String familyIds) { + private LambdaQueryWrapper<ZfProperty> buildCondition(ZfProperty zfProperty, String familyIds, String secondFamilyAuthority) { + //妯$硦鏌ヨ鐨勬潯浠� LambdaQueryWrapper<ZfProperty> lqw = buildCondition(zfProperty); - if (familyIds.contains(",")) { - String[] familyList = familyIds.split(","); - lqw.in(ZfProperty::getFamilyId,familyList); - } else { - lqw.eq(ZfProperty::getFamilyId, familyIds); + + //瀹氫箟涓�涓竷灏旀爣璁帮紝鏍囪绗竴瀹跺涵鍙锋槸鍚︽湁閫楀彿 + boolean flag = false; + + StringBuilder secondFamilyIdsBuffer = new StringBuilder(); + + //澶勭悊浼犲叆鐨剆econdFamilyAuthority 3{2007 2018 2015},4{2007 2019} + + if (StringUtils.isNotEmpty(secondFamilyAuthority)) { + + if (secondFamilyAuthority.contains(",")) { + //閫楀彿闅斿紑寰楀埌濡備笅涓诧細3{2007 2018 2015} + String[] authorityList = secondFamilyAuthority.split(","); + for (String authorityAndId : authorityList) { + + //寰楀埌鏉冮檺涓� + String authorities = authorityAndId.substring(2, authorityAndId.length() - 1); + + if (authorities.contains(" ")) { + //绌烘牸闅斿紑寰楀埌鑿滃崟id锛岀湅鏄惁鏈夊搴旂殑鏉冮檺 + String[] authorityIdList = authorities.split(" "); + for (String s : authorityIdList) { + if (s.equals(PROPERTY_LIST)) { + secondFamilyIdsBuffer.append(authorityAndId.charAt(0)).append(","); + break; + } + } + } else { + if (authorities.equals(PROPERTY_LIST)) { + secondFamilyIdsBuffer.append(authorityAndId.charAt(0)).append(","); + } + } + } + + //鎶婂悗闈㈢殑閫楀彿鍘绘帀 + if (secondFamilyIdsBuffer.length() > 1) { + secondFamilyIdsBuffer.deleteCharAt(secondFamilyIdsBuffer.length() - 1); + } + + } + } + + //灏哠tringBuffer杞垚String + String secondFamilyIds = secondFamilyIdsBuffer.toString(); + + + //绗竴瀹跺涵鍙风殑鏉′欢 + if (familyIds.contains(",")) { + flag = true; + } + + //绗簩瀹跺涵鍙风殑鏉′欢 + if (StringUtils.isNotEmpty(secondFamilyIds)) { + if (secondFamilyIds.contains(",")) { + String[] secondFamilyIdList = secondFamilyIds.split(","); + if (flag) { + //濡傛灉绗竴瀹跺涵鍙峰拰绗簩瀹跺涵鍙烽兘鏈夐�楀彿 + String[] familyList = familyIds.split(","); + String[] totalFamilyIdList = ArraysUtil.appendToArray(familyList, secondFamilyIdList); + lqw.in(ZfProperty::getFamilyId, totalFamilyIdList); + } else { + //濡傛灉绗竴瀹跺涵鍙锋病鏈夐�楀彿浣嗘槸绗簩瀹跺涵鍙锋湁閫楀彿 + String[] totalFamilyIdList = ArraysUtil.appendToArray(secondFamilyIdList, familyIds); + lqw.in(ZfProperty::getFamilyId, totalFamilyIdList); + } + + } else { + if (flag) { + //濡傛灉绗竴瀹跺涵鍙锋湁閫楀彿浣嗙浜屽搴彿娌℃湁閫楀彿 + String[] familyList = familyIds.split(","); + String[] totalFamilyIdList = ArraysUtil.appendToArray(familyList, secondFamilyIds); + lqw.in(ZfProperty::getFamilyId, totalFamilyIdList); + } else { + //濡傛灉绗竴瀹跺涵鍙峰拰绗簩瀹跺涵鍙烽兘娌℃湁閫楀彿 + String[] totalFamilyIdList = ArraysUtil.appendToArray(familyIds, secondFamilyIds); + lqw.in(ZfProperty::getFamilyId, totalFamilyIdList); + } + } + } else { + //濡傛灉娌℃湁绗簩瀹跺涵鍙� + if (flag) { + String[] familyList = familyIds.split(","); + lqw.in(ZfProperty::getFamilyId, familyList); + } else { + lqw.eq(ZfProperty::getFamilyId, familyIds); + } + + } + + lqw.orderByDesc(ZfProperty::getId); return lqw; } - private String listFamilyIds() { + + private ZInfoUser getMySelf() { SysUser user = SecurityUtils.getLoginUser().getUser(); Long userId = user.getUserId(); LambdaQueryWrapper<ZInfoUser> zInfoUserLambdaQueryWrapper = new LambdaQueryWrapper<>(); zInfoUserLambdaQueryWrapper.eq(ZInfoUser::getUserId, userId); - ZInfoUser zInfoUser = zInfoUserService.getOne(zInfoUserLambdaQueryWrapper); - return zInfoUser.getFamilyId(); + return zInfoUserService.getOne(zInfoUserLambdaQueryWrapper); + } + + private String listFamilyIds() { + ZInfoUser mySelf = getMySelf(); + return mySelf.getFamilyId(); + } + + private String listSecondFamilyIds() { + ZInfoUser mySelf = getMySelf(); + return mySelf.getSecondFamilyId(); } @Override public AjaxResult selectPropertyList(ZfProperty zfProperty, Integer pageNum, Integer pageSize) { String familyIds = listFamilyIds(); - LambdaQueryWrapper<ZfProperty> lqw = buildCondition(zfProperty, familyIds); + String secondFamilyAuthority = listSecondFamilyIds(); + LambdaQueryWrapper<ZfProperty> lqw = buildCondition(zfProperty, familyIds, secondFamilyAuthority); + Page<ZfProperty> zfPropertyPage = new Page<>(pageNum, pageSize); Page<ZfProperty> pageResult = page(zfPropertyPage, lqw); - HashMap<String, Object> data = MapUtils.getResult(pageResult); - return AjaxResult.success(data); + List<ZfProperty> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹� + + List<ZfPropertyDto> dtoResult = beanRecords.stream().map(record -> { + String recordFamilyId = record.getFamilyId(); + ZfPropertyDto zfPropertyDto = new ZfPropertyDto(); + BeanUtils.copyProperties(record, zfPropertyDto); + + if (familyIds.contains(",")) { + String[] familyIdList = familyIds.split(","); + for (String familyId : familyIdList) { + if (familyId.equals(recordFamilyId)) { + zfPropertyDto.setOwnData(1); + } + } + } else { + if (familyIds.equals(recordFamilyId)) { + zfPropertyDto.setOwnData(1); + } + } + return zfPropertyDto; + }).collect(Collectors.toList()); + + HashMap<String, Object> data = MapUtils.getResult(pageResult, dtoResult); + return AjaxResult.success(data); } @Override -- Gitblit v1.9.1