package com.zteits.pay.biz; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import com.clouds.common.utils.ResultUtils; import com.zteits.clouds.api.apibase.bean.BizResult; import com.zteits.clouds.api.apibase.constants.ErrorType; import com.zteits.clouds.api.apibase.exception.BizException; import com.zteits.clouds.api.dto.park.dto.ParkingLotDTO; import com.zteits.clouds.api.dto.park.param.QueryParkLotInfoByPkOutNoRequest; import com.zteits.clouds.api.dto.pay.ParkCardDetailInfoDTO; import com.zteits.clouds.api.dto.pay.ParkCardRelDTO; import com.zteits.clouds.api.dto.pay.param.ParkCardDeleteByCardNosRequest; import com.zteits.clouds.api.dto.pay.param.ParkCardDetailInfoQueryByPlNosRequest; import com.zteits.clouds.api.service.park.ParkingLotQueryService; import com.zteits.clouds.api.service.pay.ParkCardService; import com.zteits.pay.dao.ParkCardDao; import com.zteits.pay.domain.TdBParkCard; import com.zteits.pay.domain.TdBParkCardRel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; /** * Copyright: Copyright (c) 2017 zteits * * @ClassName: com.zteits.pay.biz * @Description: * @version: v1.0.0 * @author: atao * @date: 2017/9/13 下午3:16 * Modification History: * Date Author Version Description * ---------------------------------------------------------* * 2017/9/13 atao v1.0.0 创建 */ @Component public class ParkCardServiceImpl implements ParkCardService { private static final Logger logger = LoggerFactory.getLogger(ParkCardServiceImpl.class); @Autowired private ParkCardDao parkCardDao; @Autowired private ParkingLotQueryService parkingLotQueryService; @Override public BizResult> queryParkCardDetailInfoByPlNos( ParkCardDetailInfoQueryByPlNosRequest request) { List resultList = new ArrayList<>(); if (CollectionUtils.isEmpty(request.getPlNos())) { throw new BizException(ErrorType.PARAMM_NULL, "停车场编号"); } List parkCardRelList = parkCardDao.queryParkCardRelByPlNos(request.getPlNos()); if (CollectionUtils.isEmpty(parkCardRelList)) { return new BizResult<>(resultList); } Map> parkCardRelMap = getParkCardRelMap(parkCardRelList, request); List carNos = Arrays.asList(parkCardRelMap.keySet().toArray(new String[] {})); List parkCardList = parkCardDao.queryParkCardByCardNos(carNos); if (CollectionUtils.isEmpty(parkCardList)) { return new BizResult<>(resultList); } ParkCardDetailInfoDTO tempDTO = null; for (TdBParkCard card : parkCardList) { tempDTO = new ParkCardDetailInfoDTO(); BeanUtils.copyProperties(card, tempDTO); tempDTO.setParkCardRelDTOList(parkCardRelMap.get(tempDTO.getCardNo())); resultList.add(tempDTO); } return new BizResult<>(resultList); } @Override public BizResult deleteParkCardByCardNos(ParkCardDeleteByCardNosRequest request) { return null; } private Map> getParkCardRelMap(List parkCardRelList, ParkCardDetailInfoQueryByPlNosRequest request) { Map> parkCardRelMap = new HashMap<>(); if (CollectionUtils.isEmpty(parkCardRelList)) { return parkCardRelMap; } QueryParkLotInfoByPkOutNoRequest dubboRequest = new QueryParkLotInfoByPkOutNoRequest(); dubboRequest.setSysCode(request.getSysCode()); dubboRequest.getBaseRequest().setRequestId(request.getBaseRequest().getRequestId()); List tempList = null; ParkCardRelDTO tempDto = null; for (TdBParkCardRel rel : parkCardRelList) { dubboRequest.setPklOutNo(rel.getPlNo()); BizResult result = parkingLotQueryService.QueryParkingLotByPkOutNo(dubboRequest); if (ResultUtils.isSuccess(result)) { rel.setPlName(result.getData().getPlName()); } else { logger.error("根据停车场编码查询停车场信息调用dubbo服务报错,报错信息:code={},errMsg={}", result.getErrCode().getCode(), result.getErrMsg()); } tempList = parkCardRelMap.get(rel.getCardNo()); if (null == tempList) { tempList = new ArrayList<>(); } tempDto = new ParkCardRelDTO(); BeanUtils.copyProperties(rel, tempDto); tempList.add(tempDto); parkCardRelMap.put(rel.getCardNo(), tempList); } return parkCardRelMap; } }