jiangping
2023-12-08 1140f80aefef30b543c99aaed47bcbca731b24e2
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarEventServiceImpl.java
@@ -1,15 +1,23 @@
package com.doumee.service.business.impl;
import cn.hutool.core.lang.PatternPool;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.ReUtil;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.admin.request.VisitEventQuery;
import com.doumee.dao.admin.response.CarEventDTO;
import com.doumee.dao.business.CarEventMapper;
import com.doumee.dao.business.model.CarEvent;
import com.doumee.dao.business.join.CarEventJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.CarEventService;
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;
@@ -26,6 +34,9 @@
    @Autowired
    private CarEventMapper carEventMapper;
    @Autowired
    private CarEventJoinMapper carEventJoinMapper;
    @Override
    public Integer create(CarEvent carEvent) {
@@ -83,7 +94,7 @@
        QueryWrapper<CarEvent> wrapper = new QueryWrapper<>(carEvent);
        return carEventMapper.selectList(wrapper);
    }
    @Override
    public PageData<CarEvent> findPage(PageWrap<CarEvent> pageWrap) {
        IPage<CarEvent> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -250,4 +261,49 @@
        QueryWrapper<CarEvent> wrapper = new QueryWrapper<>(carEvent);
        return carEventMapper.selectCount(wrapper);
    }
    @Override
    public PageData<CarEventDTO> findVisitCarPage(PageWrap<VisitEventQuery> pageWrap) {
        //是否是数字
        boolean number = Validator.isNumber(pageWrap.getModel().getKeyWords());
        //是否包含中文
        boolean b = Validator.hasChinese(pageWrap.getModel().getKeyWords());
        //是否包含英文
        boolean hasWord = ReUtil.contains(PatternPool.WORD, pageWrap.getModel().getKeyWords());
        IPage<VisitEvent> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<CarEvent> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.leftJoin(Cars.class,Cars::getCode,CarEvent::getPlateNos)
                    .leftJoin(Member.class,Member::getId,Cars::getMemberId)
                    .leftJoin(Company.class,Company::getId,Member::getCompanyId);
        queryWrapper.selectAll(CarEvent.class)
                    .selectAs(Member::getType,CarEventDTO::getPersonType)
                    .selectAs(Member::getPhone,CarEventDTO::getPersonPhone)
                    .selectAs(Member::getIdcardDecode,CarEventDTO::getPersonIdcardDecode)
                    .selectAs(Member::getName,CarEventDTO::getPersonName)
                    .selectAs(Company::getName,CarEventDTO::getPersonCompanyName);
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCarNo()),
                                CarEvent::getCardNo,
                                pageWrap.getModel().getCarNo())
                .like(number,
                        Member::getPhone,
                        pageWrap.getModel().getKeyWords())
                .like((b || hasWord),
                        Member::getPhone,
                        pageWrap.getModel().getKeyWords())
                .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),
                        Company::getName,
                        pageWrap.getModel().getCompanyName())
                .eq(StringUtils.isNotBlank(pageWrap.getModel().getMemberType()),
                        Member::getType,
                        pageWrap.getModel().getMemberType())
                .eq(StringUtils.isNotBlank(pageWrap.getModel().getSrcType()),
                        CarEvent::getSrcType,
                        pageWrap.getModel().getSrcType());
        IPage<CarEventDTO> carEventDTOIPage = carEventJoinMapper.selectJoinPage(page, CarEventDTO.class, queryWrapper);
        return PageData.from(carEventDTOIPage);
    }
}