fix(system): 修复微信公众号平台相关 API 的数据权限问题
- 在 getOpenIdByCondition 和 getByCondition 方法中添加数据权限忽略逻辑 - 使用 AtomicReference 和 DataPermissionUtils.executeIgnore 包装原有逻辑,以忽略数据权限检查 - 优化代码结构,提高可读性和维护性
This commit is contained in:
parent
3b4b422aea
commit
8b08872062
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
|
||||
import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
|
||||
import cn.iocoder.yudao.module.system.api.auth.dto.AdminOauthUserOtherInfoApiDTO;
|
||||
import cn.iocoder.yudao.module.system.api.auth.vo.AdminOauthUserOtherInfoApiVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.auth.AdminOauthUserOtherInfoDO;
|
||||
@ -13,7 +14,9 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
@RestController // 提供 RESTful API 接口,给 Feign 调用
|
||||
@Validated
|
||||
@ -24,20 +27,24 @@ public class AdminOauthUserOtherInfoApiImpl implements AdminOauthUserOtherInfoAp
|
||||
|
||||
|
||||
@Override
|
||||
@DataPermission(enable = false)
|
||||
public CommonResult<List<AdminOauthUserOtherInfoApiVO>> getOpenIdByCondition(AdminOauthUserOtherInfoApiDTO dto) {
|
||||
AdminOauthUserOtherInfoDTO adminOauthUserOtherInfoDTO = BeanUtil.copyProperties(dto, AdminOauthUserOtherInfoDTO.class);
|
||||
List<AdminOauthUserOtherInfoDO> list = adminOauthUserOtherInfoService.getOpenIdByCondition(adminOauthUserOtherInfoDTO);
|
||||
return CommonResult.success(BeanUtil.copyToList(list, AdminOauthUserOtherInfoApiVO.class));
|
||||
AtomicReference<List<AdminOauthUserOtherInfoDO>> list = new AtomicReference<>(new ArrayList<>());
|
||||
DataPermissionUtils.executeIgnore(
|
||||
() -> list.set(adminOauthUserOtherInfoService.getOpenIdByCondition(adminOauthUserOtherInfoDTO))
|
||||
);
|
||||
return CommonResult.success(BeanUtil.copyToList(list.get(), AdminOauthUserOtherInfoApiVO.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
@DataPermission(enable = false)
|
||||
public CommonResult<AdminOauthUserOtherInfoApiVO> getByCondition(AdminOauthUserOtherInfoApiDTO dto) {
|
||||
AdminOauthUserOtherInfoDTO adminOauthUserOtherInfoDTO = BeanUtil.copyProperties(dto, AdminOauthUserOtherInfoDTO.class);
|
||||
List<AdminOauthUserOtherInfoDO> list = adminOauthUserOtherInfoService.getOpenIdByCondition(adminOauthUserOtherInfoDTO);
|
||||
if (CollUtil.isNotEmpty(list)) {
|
||||
return CommonResult.success(BeanUtil.copyProperties(list.get(0), AdminOauthUserOtherInfoApiVO.class));
|
||||
AtomicReference<List<AdminOauthUserOtherInfoDO>> list = new AtomicReference<>(new ArrayList<>());
|
||||
DataPermissionUtils.executeIgnore(
|
||||
() -> list.set(adminOauthUserOtherInfoService.getOpenIdByCondition(adminOauthUserOtherInfoDTO))
|
||||
);
|
||||
if (CollUtil.isNotEmpty(list.get())) {
|
||||
return CommonResult.success(BeanUtil.copyProperties(list.get().get(0), AdminOauthUserOtherInfoApiVO.class));
|
||||
}
|
||||
return CommonResult.success(null);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user