|
|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
package org.dromara.oa.crm.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
|
|
@ -7,8 +8,8 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.github.yulichang.toolkit.JoinWrappers;
|
|
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
|
|
import org.dromara.oa.crm.domain.CrmCustomerInfo;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.dromara.oa.crm.domain.bo.CrmCustomerContactBo;
|
|
|
|
|
@ -33,6 +34,32 @@ public class CrmCustomerContactServiceImpl implements ICrmCustomerContactService
|
|
|
|
|
|
|
|
|
|
private final CrmCustomerContactMapper baseMapper;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 客户管理员角色权限字符
|
|
|
|
|
*/
|
|
|
|
|
private static final String CRM_CUSTOMER_ADMIN_ROLE_KEY = "KHMA";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 是否具备客户全量数据权限(客户管理员角色或超级管理员)
|
|
|
|
|
*/
|
|
|
|
|
private boolean isCrmCustomerDataAdmin() {
|
|
|
|
|
return LoginHelper.isSuperAdmin() || StpUtil.hasRole(CRM_CUSTOMER_ADMIN_ROLE_KEY);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 无客户管理员角色时仅查询本人创建的数据
|
|
|
|
|
*/
|
|
|
|
|
private void applyCustomerDataScope(MPJLambdaWrapper<CrmCustomerContact> lqw) {
|
|
|
|
|
if (isCrmCustomerDataAdmin()) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Long userId = LoginHelper.getUserId();
|
|
|
|
|
if (userId == null) {
|
|
|
|
|
lqw.eq(CrmCustomerContact::getContactId, -1L);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
lqw.eq(CrmCustomerContact::getCreateBy, userId);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 查询客户联系人信息
|
|
|
|
|
*
|
|
|
|
|
@ -91,6 +118,7 @@ public class CrmCustomerContactServiceImpl implements ICrmCustomerContactService
|
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getWechatAccount()), CrmCustomerContact::getWechatAccount, bo.getWechatAccount())
|
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getQqNumber()), CrmCustomerContact::getQqNumber, bo.getQqNumber())
|
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), CrmCustomerContact::getActiveFlag, bo.getActiveFlag());
|
|
|
|
|
applyCustomerDataScope(lqw);
|
|
|
|
|
return lqw;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|