TdCCarDaoImpl.java 4.32 KB
package com.zteits.pay.dao.impl;

import java.util.List;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import com.clouds.common.constants.pagequery.PageSizeEnum;
import com.clouds.common.utils.page.PageUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.dto.pay.TdCCarDTO;
import com.zteits.clouds.api.dto.pay.car.param.CustCarInfoQueryReq;
import com.zteits.clouds.api.dto.pay.car.param.UserCarInfoQueryForPageReq;
import com.zteits.clouds.api.dto.pay.param.TdCCarRequest;
import com.zteits.pay.dao.TdCCarDao;
import com.zteits.pay.domain.TdCCar;
import com.zteits.pay.domain.TdCCarExample;
import com.zteits.pay.domain.TdCCarExample.Criteria;
import com.zteits.pay.mapper.TdCCarMapper;
import com.zteits.pay.mapper.smapper.TdCCarSMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class TdCCarDaoImpl implements TdCCarDao {
	@Autowired
	private TdCCarSMapper TdCCarSMapper;
	@Autowired
	private TdCCarMapper TdCCarMapper;

	@Override
	public TdCCar selectCustCarInfoById(Long id) {
		return  TdCCarMapper.selectByPrimaryKey(id);
	}

	@Override
	public List<TdCCar> selectCustInfoBycustId(TdCCarRequest request) {
		return TdCCarSMapper.selectCustInfoBycustId(request);
	}

	@Override
	public List<TdCCar> selectCustInfoBycustIds(List<String> custIds) {
		return TdCCarSMapper.selectCustInfoBycustIds(custIds);
	}

	@Override
	public Integer updateCars(TdCCar car) {
		 return TdCCarMapper.updateByPrimaryKeySelective(car);
	}

	@Override
	public Integer insertCars(TdCCar car) {
		return TdCCarMapper.insertSelective(car);
	}
	@Override
	public Integer deleteCars(TdCCar car) {
		return TdCCarSMapper.deleteCars(car);
	}
	@Override
	public List<TdCCar> selectCustInfo(TdCCar reqcar) {
		return TdCCarSMapper.selectCustInfo(reqcar);
	}

	@Override
	public PageInfo<TdCCar> queryUserCarInfoForPage(UserCarInfoQueryForPageReq req) {
		//校验分页数据
		PageUtil.pageSizeValidate(PageSizeEnum.PAGE_SIZE_BASE,req.getBaseRequest().getPageSize());
		TdCCarExample example = new TdCCarExample();

		Criteria sql =  example.createCriteria();
		sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
		if(StringUtils.isNotEmpty(req.getPhoneNum())){
			sql.andPhoneNumberEqualTo(req.getPhoneNum());
		}
		if(StringUtils.isNotEmpty(req.getCarNumber())){
			sql.andCarNumberLike('%'+req.getCarNumber()+'%');
		}

		if(CollectionUtils.isNotEmpty(req.getExamineStates())){
			sql.andExamineStateIn(req.getExamineStates());
		}
		example.setOrderByClause(" modfiy_date desc,create_date desc ");
		PageHelper.startPage(req.getBaseRequest().getPageNum(),req.getBaseRequest().getPageSize());
		List<TdCCar> tdCCarList = TdCCarMapper.selectByExample(example);

		return new PageInfo<>(tdCCarList);
	}

	@Override
	public List<TdCCar> selectCustInfoByCarNumber(CustCarInfoQueryReq req) {
		TdCCarExample example = new TdCCarExample();

		Criteria sql =  example.createCriteria();
		if(!req.isQueryUnBindCar()){
			sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
		}

		sql.andCarNumberEqualTo(req.getCarNumber());
		/**    需求需要,不能把 data_state desc
		 * 	赤峰需求 518 欠费追缴短信支持配置规则自动下发
		 *  期望APP解绑了车牌号的用户,在解绑后如果有新号码(联系电话或第三方获取电话),给新号码发短信,如果都没有,则给解绑的电话号发短信
		 */
		example.setOrderByClause("id desc, data_state desc");
		List<TdCCar> tdCCarList = TdCCarMapper.selectByExample(example);
		return tdCCarList;
	}

	@Override
	public PageInfo<TdCCarDTO> queryUserCarInfoForPageAndPN(UserCarInfoQueryForPageReq req) {
		PageUtil.pageSizeValidate(PageSizeEnum.PAGE_SIZE_BASE,req.getBaseRequest().getPageSize());
		PageHelper.startPage(req.getBaseRequest().getPageNum(),req.getBaseRequest().getPageSize());
		List<TdCCarDTO> tdCCarList = TdCCarSMapper.queryUserCarInfoForPageAndPN(req);
		return new PageInfo<>(tdCCarList);
	}

	@Override
	public List<TdCCarDTO> queryCustCarInfoByPhone(UserCarInfoQueryForPageReq req) {
		List<TdCCarDTO> tdCCarList = TdCCarSMapper.queryUserCarInfoForPageAndPN(req);
		return tdCCarList;
	}

}