package cn.iocoder.yudao.module.aftersales.service.permission;
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.util.ObjUtil;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.module.aftersales.dal.dataobject.permission.AfterSalePermissionDO;
|
import cn.iocoder.yudao.module.aftersales.dal.mysql.permission.AfterSalePermissionMapper;
|
import cn.iocoder.yudao.module.aftersales.enums.permission.AfterSalePermissionLevelEnum;
|
import cn.iocoder.yudao.module.aftersales.service.permission.bo.AfterSalePermissionCreateReqBO;
|
import jakarta.annotation.Resource;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.validation.annotation.Validated;
|
|
import java.util.Collection;
|
import java.util.Collections;
|
import java.util.List;
|
|
/**
|
* 售后模块数据权限 Service 实现类
|
*/
|
@Service
|
@Validated
|
public class AfterSalePermissionServiceImpl implements AfterSalePermissionService {
|
|
@Resource
|
private AfterSalePermissionMapper afterSalePermissionMapper;
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public Long createPermission(AfterSalePermissionCreateReqBO createReqBO) {
|
AfterSalePermissionDO permission = BeanUtils.toBean(createReqBO, AfterSalePermissionDO.class);
|
afterSalePermissionMapper.insert(permission);
|
return permission.getId();
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void deletePermission(Integer bizType, Long bizId) {
|
afterSalePermissionMapper.deleteByBiz(bizType, bizId);
|
}
|
|
@Override
|
public List<AfterSalePermissionDO> getPermissionListByBiz(Integer bizType, Long bizId) {
|
return afterSalePermissionMapper.selectListByBiz(bizType, bizId);
|
}
|
|
@Override
|
public List<AfterSalePermissionDO> getPermissionListByBiz(Integer bizType, Collection<Long> bizIds) {
|
if (CollUtil.isEmpty(bizIds)) {
|
return Collections.emptyList();
|
}
|
return afterSalePermissionMapper.selectListByBiz(bizType, bizIds);
|
}
|
|
@Override
|
public boolean hasPermission(Integer bizType, Long bizId, Long userId, AfterSalePermissionLevelEnum level) {
|
List<AfterSalePermissionDO> permissionList = getPermissionListByBiz(bizType, bizId);
|
return permissionList.stream()
|
.anyMatch(p -> ObjUtil.equal(p.getUserId(), userId)
|
&& ObjUtil.equal(p.getLevel(), level.getLevel()));
|
}
|
|
}
|