feat(crm): 添加报价单数据权限注解

- 在 CrmQuoteInfoMapper 接口的多个查询方法上添加@DataPermission注解
- 使用@DataColumn注解绑定部门和用户字段权限("deptName"对应"t.create_dept","userName"对应"t.create_by")
- 修改 CrmQuoteInfoServiceImpl 中查询列表方法,调用带数据权限的方法selectCustomCrmQuoteInfoVoList
- 实现对报价单相关查询的部门及用户级别数据权限控制
dev
zangch@mesnac.com 3 weeks ago
parent 11e7303f8e
commit 5f98db3519

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.annotation.DataColumn;
import org.dromara.common.mybatis.annotation.DataPermission;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.oa.crm.domain.CrmQuoteInfo; import org.dromara.oa.crm.domain.CrmQuoteInfo;
import org.dromara.oa.crm.domain.vo.CrmQuoteInfoVo; import org.dromara.oa.crm.domain.vo.CrmQuoteInfoVo;
@ -27,6 +29,10 @@ public interface CrmQuoteInfoMapper extends BaseMapperPlus<CrmQuoteInfo, CrmQuot
* @param queryWrapper * @param queryWrapper
* @return * @return
*/ */
@DataPermission({
@DataColumn(key = "deptName", value = "t.create_dept"),
@DataColumn(key = "userName", value = "t.create_by")
})
public Page<CrmQuoteInfoVo> selectCustomCrmQuoteInfoVoList(@Param("page") Page<CrmQuoteInfoVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<CrmQuoteInfo> queryWrapper); public Page<CrmQuoteInfoVo> selectCustomCrmQuoteInfoVoList(@Param("page") Page<CrmQuoteInfoVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<CrmQuoteInfo> queryWrapper);
/** /**
@ -35,6 +41,10 @@ public interface CrmQuoteInfoMapper extends BaseMapperPlus<CrmQuoteInfo, CrmQuot
* @param queryWrapper * @param queryWrapper
* @return * @return
*/ */
@DataPermission({
@DataColumn(key = "deptName", value = "t.create_dept"),
@DataColumn(key = "userName", value = "t.create_by")
})
public List<CrmQuoteInfoVo> selectCustomCrmQuoteInfoVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<CrmQuoteInfo> queryWrapper); public List<CrmQuoteInfoVo> selectCustomCrmQuoteInfoVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<CrmQuoteInfo> queryWrapper);
/** /**
@ -59,6 +69,10 @@ public interface CrmQuoteInfoMapper extends BaseMapperPlus<CrmQuoteInfo, CrmQuot
* @param queryWrapper * @param queryWrapper
* @return * @return
*/ */
@DataPermission({
@DataColumn(key = "deptName", value = "t.create_dept"),
@DataColumn(key = "userName", value = "t.create_by")
})
Long countCustomCrmQuoteInfo(@Param(Constants.WRAPPER) Wrapper<CrmQuoteInfo> queryWrapper); Long countCustomCrmQuoteInfo(@Param(Constants.WRAPPER) Wrapper<CrmQuoteInfo> queryWrapper);
/** /**
@ -68,6 +82,10 @@ public interface CrmQuoteInfoMapper extends BaseMapperPlus<CrmQuoteInfo, CrmQuot
* @param queryWrapper * @param queryWrapper
* @return * @return
*/ */
@DataPermission({
@DataColumn(key = "deptName", value = "t.create_dept"),
@DataColumn(key = "userName", value = "t.create_by")
})
Page<CrmQuoteInfoVo> selectCustomCrmQuoteInfoVoPage(@Param("page") Page<CrmQuoteInfoVo> page, @Param(Constants.WRAPPER) Wrapper<CrmQuoteInfo> queryWrapper); Page<CrmQuoteInfoVo> selectCustomCrmQuoteInfoVoPage(@Param("page") Page<CrmQuoteInfoVo> page, @Param(Constants.WRAPPER) Wrapper<CrmQuoteInfo> queryWrapper);
/** /**
@ -108,6 +126,10 @@ public interface CrmQuoteInfoMapper extends BaseMapperPlus<CrmQuoteInfo, CrmQuot
* @param queryWrapper * @param queryWrapper
* @return * @return
*/ */
@DataPermission({
@DataColumn(key = "deptName", value = "t.create_dept"),
@DataColumn(key = "userName", value = "t.create_by")
})
Boolean existsCrmQuoteInfo(@Param(Constants.WRAPPER) Wrapper<CrmQuoteInfo> queryWrapper); Boolean existsCrmQuoteInfo(@Param(Constants.WRAPPER) Wrapper<CrmQuoteInfo> queryWrapper);

@ -12,7 +12,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.oa.crm.domain.*; import org.dromara.oa.crm.domain.*;
import org.dromara.oa.crm.domain.bo.CrmQuoteInfoBo; import org.dromara.oa.crm.domain.bo.CrmQuoteInfoBo;
import org.dromara.oa.crm.domain.bo.CrmQuoteMaterialBo; import org.dromara.oa.crm.domain.bo.CrmQuoteMaterialBo;
import org.dromara.oa.crm.domain.bo.CrmSupplierInfoBo;
import org.dromara.oa.crm.domain.vo.CrmCustomerContactVo; import org.dromara.oa.crm.domain.vo.CrmCustomerContactVo;
import org.dromara.oa.crm.domain.vo.CrmQuoteInfoVo; import org.dromara.oa.crm.domain.vo.CrmQuoteInfoVo;
import org.dromara.oa.crm.domain.vo.CrmQuoteMaterialVo; import org.dromara.oa.crm.domain.vo.CrmQuoteMaterialVo;
@ -23,9 +22,9 @@ import org.dromara.oa.crm.service.ICrmQuoteInfoService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -88,7 +87,7 @@ public class CrmQuoteInfoServiceImpl implements ICrmQuoteInfoService {
@Override @Override
public List<CrmQuoteInfoVo> queryList(CrmQuoteInfoBo bo) { public List<CrmQuoteInfoVo> queryList(CrmQuoteInfoBo bo) {
MPJLambdaWrapper<CrmQuoteInfo> lqw = buildQueryWrapper(bo); MPJLambdaWrapper<CrmQuoteInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw); return baseMapper.selectCustomCrmQuoteInfoVoList(lqw);
} }
private MPJLambdaWrapper<CrmQuoteInfo> buildQueryWrapper(CrmQuoteInfoBo bo) { private MPJLambdaWrapper<CrmQuoteInfo> buildQueryWrapper(CrmQuoteInfoBo bo) {

Loading…
Cancel
Save