liukangdong
2024-09-29 b2d360d9113b6955287108ca9e90d76a1f3c1419
server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java
@@ -1,5 +1,8 @@
package com.doumee.service.business.impl;
import com.doumee.biz.zbom.ZbomCRMService;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
@@ -12,6 +15,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -29,6 +33,8 @@
    @Autowired
    private CustomerLogMapper customerLogMapper;
    @Autowired
    private ZbomCRMService zbomCRMService;
    @Override
    public Long create(CustomerLog customerLog) {
@@ -61,6 +67,37 @@
    }
    @Override
    public void reSubmit(CustomerLog customerLog){
        CustomerLog log = customerLogMapper.selectById(customerLog.getId());
        if(log ==null || Constants.equalsInteger(log.getIsdeleted(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(Constants.equalsInteger(log.getCrmStatus(),Constants.ONE)){
            //如果已经提交成功过
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该留资数据已提交,无需重新提交!");
        }
        zbomCRMService.dealCustomerLogData(log);
    }
    @Override
    public void reSubmitAll(CustomerLog log){
        List<CustomerLog> logList = customerLogMapper.selectList(new QueryWrapper<CustomerLog>()
                .lambda()
                .eq(CustomerLog::getIsdeleted,Constants.ZERO)
                .eq(log.getCrmStatus()!=null,CustomerLog::getCrmStatus,log.getCrmStatus())
                .ne(CustomerLog::getCrmStatus,Constants.ONE));
        if(logList ==null || logList.size() ==0){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,不存在待处理数据");
        }
        if(Constants.equalsInteger(log.getCrmStatus(),Constants.ONE)){
            //如果已经提交成功过
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该留资数据已提交,无需重新提交!");
        }
        for(CustomerLog model :logList){
            zbomCRMService.dealCustomerLogData(model);
        }
    }
    @Override
    public void updateByIdInBatch(List<CustomerLog> customerLogs) {
        if (CollectionUtils.isEmpty(customerLogs)) {
            return;
@@ -86,23 +123,127 @@
        QueryWrapper<CustomerLog> wrapper = new QueryWrapper<>(customerLog);
        return customerLogMapper.selectList(wrapper);
    }
    @Override
    public PageData<CustomerLog> findPage(PageWrap<CustomerLog> pageWrap) {
        IPage<CustomerLog> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<CustomerLog> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.selectAll(CustomerLog.class)
                .selectAs(Member::getName,CustomerLog::getMemberName)
                .leftJoin(Customer.class,Customer::getId,CustomerLog::getCostomerId)
                            .eq(CustomerLog::getIsdeleted, Constants.ZERO)
                .leftJoin(Member.class,Member::getId,Customer::getMemberId)
                .eq(Objects.nonNull(pageWrap.getModel().getType()),CustomerLog::getType, pageWrap.getModel().getType())
                .eq(Objects.nonNull(pageWrap.getModel().getMemberId()),Customer::getMemberId, pageWrap.getModel().getMemberId());
        if (pageWrap.getModel().getMemberId() != null) {
            queryWrapper.eq(Customer::getMemberId, pageWrap.getModel().getMemberId());
        }
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.eq(CustomerLog::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.eq(CustomerLog::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.ge(CustomerLog::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.le(CustomerLog::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.eq(CustomerLog::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.ge(CustomerLog::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.le(CustomerLog::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.eq(CustomerLog::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.eq(CustomerLog::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getOrderDate() != null) {
            queryWrapper.eq(CustomerLog::getOrderDate, pageWrap.getModel().getOrderDate());
        }
        if (pageWrap.getModel().getPlaDate() != null) {
            queryWrapper.eq(CustomerLog::getPlaDate, pageWrap.getModel().getPlaDate());
        }
        if (pageWrap.getModel().getDesignType() != null) {
            queryWrapper.eq(CustomerLog::getDesignType, pageWrap.getModel().getDesignType());
        }
        if (pageWrap.getModel().getHouseStatus() != null) {
            queryWrapper.eq(CustomerLog::getHouseStatus, pageWrap.getModel().getHouseStatus());
        }
        if (pageWrap.getModel().getDistrict() != null) {
            queryWrapper.eq(CustomerLog::getDistrict, pageWrap.getModel().getDistrict());
        }
        if (pageWrap.getModel().getArea() != null) {
            queryWrapper.eq(CustomerLog::getArea, pageWrap.getModel().getArea());
        }
        if (pageWrap.getModel().getInfo() != null) {
            queryWrapper.eq(CustomerLog::getInfo, pageWrap.getModel().getInfo());
        }
        if (pageWrap.getModel().getCostomerId() != null) {
            queryWrapper.eq(CustomerLog::getCostomerId, pageWrap.getModel().getCostomerId());
        }
        if (pageWrap.getModel().getHouseType() != null) {
            queryWrapper.eq(CustomerLog::getHouseType, pageWrap.getModel().getHouseType());
        }
        if (pageWrap.getModel().getSex() != null) {
            queryWrapper.eq(CustomerLog::getSex, pageWrap.getModel().getSex());
        }
        if (pageWrap.getModel().getAgeInfo() != null) {
            queryWrapper.eq(CustomerLog::getAgeInfo, pageWrap.getModel().getAgeInfo());
        }
        if (pageWrap.getModel().getStyleInfo() != null) {
            queryWrapper.eq(CustomerLog::getStyleInfo, pageWrap.getModel().getStyleInfo());
        }
        if (pageWrap.getModel().getProvinceName() != null) {
            queryWrapper.like(CustomerLog::getProvinceName, pageWrap.getModel().getProvinceName());
        }
        if (pageWrap.getModel().getCityName() != null) {
            queryWrapper.like(CustomerLog::getCityName, pageWrap.getModel().getCityName());
        }
        if (pageWrap.getModel().getProvicneCode() != null) {
            queryWrapper.eq(CustomerLog::getProvicneCode, pageWrap.getModel().getProvicneCode());
        }
        if (pageWrap.getModel().getCityCode() != null) {
            queryWrapper.eq(CustomerLog::getCityCode, pageWrap.getModel().getCityCode());
        }
        if (pageWrap.getModel().getPhone() != null) {
            queryWrapper.like(CustomerLog::getPhone, pageWrap.getModel().getPhone());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.eq(CustomerLog::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getBudget() != null) {
            queryWrapper.eq(CustomerLog::getBudget, pageWrap.getModel().getBudget());
        }
        if (pageWrap.getModel().getCrmStatus() != null) {
            queryWrapper.eq(CustomerLog::getCrmStatus, pageWrap.getModel().getCrmStatus());
        }
        if (pageWrap.getModel().getCrmDate() != null) {
            queryWrapper.ge(CustomerLog::getCrmDate, Utils.Date.getStart(pageWrap.getModel().getCrmDate()));
            queryWrapper.le(CustomerLog::getCrmDate, Utils.Date.getEnd(pageWrap.getModel().getCrmDate()));
        }
        if (pageWrap.getModel().getCrmInfo() != null) {
            queryWrapper.eq(CustomerLog::getCrmInfo, pageWrap.getModel().getCrmInfo());
        }
        if (pageWrap.getModel().getQueryStartDate() != null) {
            queryWrapper.ge(CustomerLog::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getQueryStartDate()));
        }
        if (pageWrap.getModel().getQueryEndDate() != null) {
            queryWrapper.le(CustomerLog::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getQueryEndDate()));
        }
        queryWrapper.orderByDesc(CustomerLog::getCreateDate);
        PageData<CustomerLog> pageData = PageData.from(customerLogMapper.selectJoinPage(page,CustomerLog.class, queryWrapper));
        for (CustomerLog customerLog:pageData.getRecords()) {
            customerLog.setPhone(
                    customerLog.getPhone().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")
            );
            if(Objects.nonNull(pageWrap.getModel().getIsHiddenPhone())&& Constants.equalsInteger(pageWrap.getModel().getIsHiddenPhone(),Constants.ZERO)){
                customerLog.setPhone(Constants.desensitizationPhone(customerLog.getPhone()));
                if(Constants.equalsInteger(customerLog.getType(),Constants.TWO)&& StringUtils.isNotBlank(customerLog.getMemberName())){
                    customerLog.setName(customerLog.getMemberName());
                }
            }
        }
        return pageData;
    }