VipCardCustSubPlateInfoServiceImpl.java 4.14 KB
package com.zteits.bill.biz.vipcard;

import com.alibaba.fastjson.JSONObject;
import com.zteits.bill.dao.vipcard.TVipCardCustSubPlateInfoDao;
import com.zteits.bill.domain.TVipCardCustSubPlateInfo;
import com.zteits.clouds.api.apibase.bean.BizResult;
import com.zteits.clouds.api.dto.bill.vipcard.VipCardCustSubPlateInfoDTO;
import com.zteits.clouds.api.dto.bill.vipcard.param.QueryVipCardCustSubPlateInfoByCarNumberRequest;
import com.zteits.clouds.api.dto.bill.vipcard.param.UpdateVipCardCustSubPlateInfoRequest;
import com.zteits.clouds.api.dto.bill.vipcard.param.VipCardInfoReq;
import com.zteits.clouds.api.service.bill.vipcard.VipCardCustSubPlateInfoService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

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

/**
 * @className: VipCardCustSubPlateInfoServiceImpl
 * @description:
 * @version: v1.0.0
 * @author: zengqc
 * @date: 2020-10-15 11:14
 */
@Service("com.zteits.bill.biz.vipcard.VipCardCustSubPlateInfoServiceImpl")
public class VipCardCustSubPlateInfoServiceImpl
        implements VipCardCustSubPlateInfoService {

    private static final Logger logger = LoggerFactory.getLogger(VipCardCustSubPlateInfoServiceImpl.class);

    @Autowired
    private TVipCardCustSubPlateInfoDao tVipCardCustSubPlateInfoDao;

    /**
     * 根据停车场编号,车牌号码获取某个车子母车信息列表
     * 列表为空说明不存在
     *
     * @param request
     * @return
     */
    @Override
    public BizResult<List<VipCardCustSubPlateInfoDTO>> queryVipCardCustSubPlateInfoByCarNumber(QueryVipCardCustSubPlateInfoByCarNumberRequest request) {
        List<VipCardCustSubPlateInfoDTO> infoList = new ArrayList<>();
        TVipCardCustSubPlateInfo cardInfo = tVipCardCustSubPlateInfoDao.querySubPlateCardInfo(request);

        logger.info("子母车卡信息{}", JSONObject.toJSONString(cardInfo));
        if (null == cardInfo) {
            return new BizResult<>(infoList);
        }
        request.setCardNo(cardInfo.getCardNo());
        List<TVipCardCustSubPlateInfo> entityList = tVipCardCustSubPlateInfoDao.queryVipCardCustSubPlateInfoByCarNumber(request);
        logger.info("子母车卡列表{}", JSONObject.toJSONString(entityList));
        for (TVipCardCustSubPlateInfo entity : entityList) {
            VipCardCustSubPlateInfoDTO dto = new VipCardCustSubPlateInfoDTO();
            BeanUtils.copyProperties(entity, dto);
            dto.setEffDate(cardInfo.getEffDate());
            dto.setExpDate(cardInfo.getExpDate());
            infoList.add(dto);
        }
        return new BizResult<>(infoList);
    }

    /**
     * 更新子母车的入场信息
     *
     * @param request
     * @return
     */
    @Override
    public BizResult<Boolean> updateSubPlateParkInInfo(UpdateVipCardCustSubPlateInfoRequest request) {
        tVipCardCustSubPlateInfoDao.updateSubPlateParkInInfo(request);
        return new BizResult<>(true);
    }

    /**
     * 更新子母车的出场信息
     *
     * @param request
     * @return
     */
    @Override
    public BizResult<Boolean> updateSubPlateParkOutInfo(UpdateVipCardCustSubPlateInfoRequest request) {
        tVipCardCustSubPlateInfoDao.updateSubPlateParkOutInfo(request);
        return new BizResult<>(true);
    }

    /**
     * 根据停车场编号,车牌号码,获取该车所有子母车中作为固定车的记录
     *
     * @param vipCardInfoReq
     * @return
     */
    @Override
    public BizResult<List<VipCardCustSubPlateInfoDTO>> queryAllVipCardCustSubPlateInfoByCarNumber(VipCardInfoReq vipCardInfoReq) {
        List<TVipCardCustSubPlateInfo> entityList = tVipCardCustSubPlateInfoDao.queryAllVipCardCustSubPlateInfoByCarNumber(vipCardInfoReq);
        List<VipCardCustSubPlateInfoDTO> dtoList = new ArrayList<>();
        for (TVipCardCustSubPlateInfo entity : entityList) {
            VipCardCustSubPlateInfoDTO dto = new VipCardCustSubPlateInfoDTO();
            BeanUtils.copyProperties(entity, dto);
            dtoList.add(dto);
        }
        return new BizResult<>(dtoList);
    }


}