| 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; | 
| import com.doumee.core.utils.Utils; | 
| import com.doumee.dao.business.CustomerLogMapper; | 
| import com.doumee.dao.business.model.*; | 
| import com.doumee.service.business.CustomerLogService; | 
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
| import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; | 
| 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; | 
|   | 
| import java.util.List; | 
| import java.util.Objects; | 
|   | 
| /** | 
|  * 客户留资记录信息表Service实现 | 
|  * @author 江蹄蹄 | 
|  * @date 2024/07/04 14:40 | 
|  */ | 
| @Service | 
| public class CustomerLogServiceImpl implements CustomerLogService { | 
|   | 
|     @Autowired | 
|     private CustomerLogMapper customerLogMapper; | 
|     @Autowired | 
|     private ZbomCRMService zbomCRMService; | 
|   | 
|     @Override | 
|     public Long create(CustomerLog customerLog) { | 
|         customerLogMapper.insert(customerLog); | 
|         return customerLog.getId(); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteById(Long id) { | 
|         customerLogMapper.deleteById(id); | 
|     } | 
|   | 
|     @Override | 
|     public void delete(CustomerLog customerLog) { | 
|         UpdateWrapper<CustomerLog> deleteWrapper = new UpdateWrapper<>(customerLog); | 
|         customerLogMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<Long> ids) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         customerLogMapper.deleteBatchIds(ids); | 
|     } | 
|   | 
|     @Override | 
|     public void updateById(CustomerLog customerLog) { | 
|         customerLogMapper.updateById(customerLog); | 
|     } | 
|   | 
|     @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; | 
|         } | 
|         for (CustomerLog customerLog: customerLogs) { | 
|             this.updateById(customerLog); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public CustomerLog findById(Long id) { | 
|         return customerLogMapper.selectById(id); | 
|     } | 
|   | 
|     @Override | 
|     public CustomerLog findOne(CustomerLog customerLog) { | 
|         QueryWrapper<CustomerLog> wrapper = new QueryWrapper<>(customerLog); | 
|         return customerLogMapper.selectOne(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<CustomerLog> findList(CustomerLog customerLog) { | 
|         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()) { | 
|             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; | 
|     } | 
|   | 
|     @Override | 
|     public long count(CustomerLog customerLog) { | 
|         QueryWrapper<CustomerLog> wrapper = new QueryWrapper<>(customerLog); | 
|         return customerLogMapper.selectCount(wrapper); | 
|     } | 
| } |