ParkingSharedDaoImpl.java 6.93 KB
package com.zteits.park.dao.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.apibase.constants.ErrorType;
import com.zteits.clouds.api.apibase.constants.ParkingShareEnum;
import com.zteits.clouds.api.apibase.constants.PsIsOccupyEnum;
import com.zteits.clouds.api.apibase.exception.BizException;
import com.zteits.clouds.api.dto.park.param.TdPParkingShareRequest;
import com.zteits.clouds.api.dto.pay.sharesettlement.dto.ParkingShareOrderTempDTO;
import com.zteits.clouds.api.dto.pay.sharesettlement.param.ParkShareOrderTempInfoQueryRequest;
import com.zteits.park.dao.ParkingSharedDao;
import com.zteits.park.domain.TdPParkingShare;
import com.zteits.park.domain.TdPParkingShareExample;
import com.zteits.park.domain.TdPParkingShareExample.Criteria;
import com.zteits.park.mapper.TdPParkingShareMapper;
import com.zteits.park.mapper.smapper.TdPParkingShareSMapper;
@Component
public class ParkingSharedDaoImpl implements ParkingSharedDao {
	@Autowired
	private TdPParkingShareMapper tdPParkingShareMapper;
	@Autowired
	private TdPParkingShareSMapper tdPParkingShareSMapper;

	@Override
	public TdPParkingShare querySharedByPlNoAndBerthNo(String plNo, String psBerthNo) {
		TdPParkingShareExample example = new TdPParkingShareExample();
		example.createCriteria().andPlNoEqualTo(plNo)
		.andPsBerthNoEqualTo(psBerthNo)
		.andDataStatusEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
		List<TdPParkingShare> parkingShares = tdPParkingShareMapper.selectByExample(example);
		if(CollectionUtils.isEmpty(parkingShares)){
			return null;
		}
		return parkingShares.get(0);
	}

	@Override
	public PageInfo<TdPParkingShare> queryParkShardInfoPage(TdPParkingShareRequest request) {
		TdPParkingShare tdPParkingShare = new TdPParkingShare();
		BeanUtils.copyProperties(request, tdPParkingShare);
		//设置分页信息
		PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
		List<TdPParkingShare> dtos = tdPParkingShareSMapper.queryShareBerthUsedList(request);
		return new PageInfo<>(dtos);
	}

	@Override
	public List<TdPParkingShare> queryShareBerthList(TdPParkingShareRequest request) {
		return tdPParkingShareSMapper.queryShareBerthList(request);
	}

	@Override
	public int saveParkingBerthShare(TdPParkingShare tdPParkingShare) {
		return tdPParkingShareMapper.insertSelective(tdPParkingShare);
	}

	@Override
	public int updateParkShareBerth(TdPParkingShare tdPParkingShare,String plNO,String psBerthNo) {
		if(StringUtils.isBlank(plNO) || StringUtils.isBlank(psBerthNo)){
			throw new BizException(ErrorType.PARAMM_NULL,"停车场编号和泊位编号必须全部有值",false);
		}
		TdPParkingShareExample example = new TdPParkingShareExample();
		example.createCriteria().andDataStatusEqualTo(DataStatusEnum.DATA_STATUS_VALID.value())
		.andPlNoEqualTo(plNO)
		.andPsBerthNoEqualTo(psBerthNo);
		return tdPParkingShareMapper.updateByExampleSelective(tdPParkingShare, example );
	}
	@Override
    public PageInfo<ParkingShareOrderTempDTO> queryParkShareOrderTempInfo(ParkShareOrderTempInfoQueryRequest request) {

        if (0 == request.getBaseRequest().getPageNum()) {
            request.getBaseRequest().setPageNum(1);
        }

        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());

        List<ParkingShareOrderTempDTO> list = tdPParkingShareSMapper.queryParkShareOrderTempInfo(request);

        return new PageInfo<>(list);
    }

	@Override
	public List<TdPParkingShare> selectByExample(TdPParkingShareExample example) {
		return tdPParkingShareMapper.selectByExample(example);
	}

	@Override
	public int updateByExampleSelective(TdPParkingShare record, TdPParkingShareExample example) {
		if(record.getModifyTime()==null){
			record.setModifyTime(new Date());
		}
		return tdPParkingShareMapper.updateByExampleSelective(record, example);
	}

	@Override
	public int clearOrderInfo(String orderId,Date modifyDate) {
		TdPParkingShareExample example = new TdPParkingShareExample();
		Criteria sql = example.createCriteria();
		sql.andPsOrderIdEqualTo(orderId);
		if(modifyDate!=null){
			sql.andModifyTimeEqualTo(modifyDate);
		}
		TdPParkingShare tdPParkingShare = new TdPParkingShare();
		tdPParkingShare.setPsIsOccupy(PsIsOccupyEnum.NO_RENT.getCode());
		tdPParkingShare.setModifyTime(new Date());
		return this.updateByExampleSelective(tdPParkingShare, example);
	}

	@Override
    public PageInfo<TdPParkingShare> queryShareBerthByCondition(TdPParkingShareRequest request) {
        TdPParkingShareExample example = new TdPParkingShareExample();
        Criteria sql = example.createCriteria().andPlNoIn(request.getPlNos())
            .andDataStatusEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
        if (StringUtils.isNotEmpty(request.getPsExamineState())) {
            sql.andPsExamineStateEqualTo(request.getPsExamineState());
        }
        if (StringUtils.isNotEmpty(request.getPsIsOccupy())) {
            sql.andPsIsOccupyEqualTo(request.getPsIsOccupy());
        }
        if (request.getPsBusiTimeEnd() != null) {
            sql.andPsBusiTimeEndLessThan(request.getPsBusiTimeEnd());
        }
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        List<TdPParkingShare> list = tdPParkingShareMapper.selectByExample(example);
        return new PageInfo<TdPParkingShare>(list);
    }

	@Override
    public List<TdPParkingShare> queryParkShardList(TdPParkingShareRequest request) {
        /** 审批状态:0:待审核 1:审批中 2:通过 3 :驳回  String psExamineState*/
        TdPParkingShareExample example = new TdPParkingShareExample();
        example.createCriteria().andDataStatusEqualTo(
                DataStatusEnum.DATA_STATUS_VALID.value()).andPsExamineStateEqualTo(
                        ParkingShareEnum.PS_EXAMINE_STATE_AUDITSUCCESS.getValue());
        return tdPParkingShareMapper.selectByExample(example);
    }

	@Override
    public Boolean deleteShareBerthByIds(List<Long> ids,Date modifyTime,String modifyOp) {
        TdPParkingShareExample example = new TdPParkingShareExample();
        example.createCriteria().andIdIn(ids).andDataStatusEqualTo(
            DataStatusEnum.DATA_STATUS_VALID.value());
        TdPParkingShare tdPParkingShare = new TdPParkingShare();
        tdPParkingShare.setDataStatus(DataStatusEnum.DATA_STATUS_NO_VALID.value());
        tdPParkingShare.setModifyOp(modifyOp);
        tdPParkingShare.setModifyTime(modifyTime==null?new Date():modifyTime);
        Boolean result = tdPParkingShareMapper.updateByExampleSelective(tdPParkingShare, example) > 0;
        return result;
    }
}