CustomerServiceImpl.java 3.23 KB
package cn.fw.valhalla.service.data.impl;

import cn.fw.valhalla.dao.mapper.CustomerMapper;
import cn.fw.valhalla.domain.db.customer.Customer;
import cn.fw.valhalla.domain.query.CustomerQueryVO;
import cn.fw.valhalla.domain.vo.customer.CustomerListVO;
import cn.fw.valhalla.service.data.CustomerService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * @author : kurisu
 * @className : CustomerServiceImpl
 * @description : 档案
 * @date: 2020-08-12 11:20
 */
@Service
@Slf4j
public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> implements CustomerService {
    @Override
    public List<CustomerListVO> getAppPageList(Integer startIndex, Integer pageSize, CustomerQueryVO queryVO) {
        List<CustomerListVO> appPageList = getBaseMapper().getAppPageList(startIndex, queryVO.getPageSize(), queryVO);
        return CollectionUtils.isEmpty(appPageList) ? new ArrayList<>() : appPageList;
    }

    @Override
    public Customer queryById(Long id) {
        return this.getBaseMapper().selectOne(Wrappers.<Customer>lambdaQuery()
                .eq(Customer::getId, id)
                .eq(Customer::getYn, Boolean.TRUE)
                .last("limit 1"));
    }

    @Override
    public Customer queryByPlateNo(String plateNo, Long groupId) {
        return this.getBaseMapper().selectOne(Wrappers.<Customer>lambdaQuery()
                .eq(Customer::getPlateNo, plateNo)
                .eq(Customer::getYn, Boolean.TRUE)
                .eq(Customer::getGroupId, groupId)
                .last("limit 1"));
    }

    @Override
    public Customer queryByFrameNo(String frameNo, Long groupId) {
        return this.getBaseMapper().selectOne(Wrappers.<Customer>lambdaQuery()
                .eq(Customer::getFrameNo, frameNo)
                .eq(Customer::getYn, Boolean.TRUE)
                .eq(Customer::getGroupId, groupId)
                .last("limit 1"));
    }

    @Override
    public List<Customer> queryByBaseId(Long baseId) {
        return this.list(Wrappers.<Customer>lambdaQuery()
                .eq(Customer::getBaseId, baseId)
                .eq(Customer::getYn, Boolean.TRUE)
        );
    }

    @Override
    public void forbidden(Long customerId) {
        this.update(Wrappers.<Customer>lambdaUpdate()
                .set(Customer::getYn, Boolean.FALSE)
                .eq(Customer::getId, customerId)
        );
    }

    @Override
    public void forbiddenPlate(Long customerId) {
        Customer customer = getById(customerId);
        if (Objects.nonNull(customer)) {
            customer.setPlateNo(customer.getPlateNo() + "-1");
            updateById(customer);
        }
    }

    @Override
    @Nullable
    public List<Customer> queryByAdviserId(@NonNull Long adviserId) {
        return this.list(Wrappers.<Customer>lambdaQuery()
                .eq(Customer::getAdviserId, adviserId)
                .eq(Customer::getYn, Boolean.TRUE)
        );
    }
}