package cn.iocoder.yudao.module.crm.dal.mysql.contact; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX; import cn.iocoder.yudao.module.crm.controller.admin.contact.vo.CrmContactPageReqVO; import cn.iocoder.yudao.module.crm.dal.dataobject.contact.CrmContactDO; import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; import cn.iocoder.yudao.module.crm.util.CrmPermissionUtils; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.apache.ibatis.annotations.Mapper; import java.util.Collection; import java.util.List; /** * CRM 联系人 Mapper * * @author 芋道源码 */ @Mapper public interface CrmContactMapper extends BaseMapperX { default int updateOwnerUserIdByCustomerId(Long customerId, Long ownerUserId) { return update(new LambdaUpdateWrapper() .eq(CrmContactDO::getCustomerId, customerId) .set(CrmContactDO::getOwnerUserId, ownerUserId)); } default PageResult selectPageByCustomerId(CrmContactPageReqVO pageVO) { return selectPage(pageVO, new LambdaQueryWrapperX() .eq(CrmContactDO::getCustomerId, pageVO.getCustomerId()) // 指定客户编号 .likeIfPresent(CrmContactDO::getName, pageVO.getName()) .eqIfPresent(CrmContactDO::getMobile, pageVO.getMobile()) .eqIfPresent(CrmContactDO::getTelephone, pageVO.getTelephone()) .eqIfPresent(CrmContactDO::getEmail, pageVO.getEmail()) .eqIfPresent(CrmContactDO::getQq, pageVO.getQq()) .eqIfPresent(CrmContactDO::getWechat, pageVO.getWechat()) .orderByDesc(CrmContactDO::getId)); } default PageResult selectPageByBusinessId(CrmContactPageReqVO pageVO, Collection ids) { return selectPage(pageVO, new LambdaQueryWrapperX() .in(CrmContactDO::getId, ids) // 指定联系人编号 .likeIfPresent(CrmContactDO::getName, pageVO.getName()) .eqIfPresent(CrmContactDO::getMobile, pageVO.getMobile()) .eqIfPresent(CrmContactDO::getTelephone, pageVO.getTelephone()) .eqIfPresent(CrmContactDO::getEmail, pageVO.getEmail()) .eqIfPresent(CrmContactDO::getQq, pageVO.getQq()) .eqIfPresent(CrmContactDO::getWechat, pageVO.getWechat()) .orderByDesc(CrmContactDO::getId)); } default PageResult selectPage(CrmContactPageReqVO pageReqVO, Long userId) { MPJLambdaWrapperX query = new MPJLambdaWrapperX<>(); // 拼接数据权限的查询条件 CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CONTACT.getType(), CrmContactDO::getId, userId, pageReqVO.getSceneType()); // 拼接自身的查询条件 query.selectAll(CrmContactDO.class) .likeIfPresent(CrmContactDO::getName, pageReqVO.getName()) .eqIfPresent(CrmContactDO::getMobile, pageReqVO.getMobile()) .eqIfPresent(CrmContactDO::getTelephone, pageReqVO.getTelephone()) .eqIfPresent(CrmContactDO::getEmail, pageReqVO.getEmail()) .eqIfPresent(CrmContactDO::getQq, pageReqVO.getQq()) .eqIfPresent(CrmContactDO::getWechat, pageReqVO.getWechat()) .orderByDesc(CrmContactDO::getId); return selectJoinPage(pageReqVO, CrmContactDO.class, query); } default List selectListByCustomerId(Long customerId) { return selectList(CrmContactDO::getCustomerId, customerId); } default List selectListByCustomerIdOwnerUserId(Long customerId, Long ownerUserId) { return selectList(CrmContactDO::getCustomerId, customerId, CrmContactDO::getOwnerUserId, ownerUserId); } }