package com.zteits.pay.job.vipcardpush; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSONObject; import com.clouds.common.utils.ResultUtils; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import com.zteits.clouds.api.apibase.bean.BizResult; import com.zteits.clouds.api.apibase.constants.BasicEnum; import com.zteits.clouds.api.dto.bill.vipcard.VipNoPushCardCustInfoDTO; import com.zteits.clouds.api.dto.bill.vipcard.param.VipPushRequest; import com.zteits.clouds.api.dto.park.dto.ParkingLotDTO; import com.zteits.clouds.api.dto.park.param.QueryParkLotInfoByPkNoRequest; import com.zteits.clouds.api.service.bill.vipcard.VipCardService; import com.zteits.clouds.api.service.park.ParkingLotQueryService; import com.zteits.pay.job.vipcardpush.route.VipCardPushRoute; import com.zteits.pay.job.vipcardpush.service.VipCardPushService; import com.zteits.pay.job.vipcardpush.vo.VipNoPushCardCustInfoVO; 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 java.util.List; /** * 会员卡同步第三方 * 目前只写同步irain *

* Copyright: Copyright (c) 2017 ZTE-ITS * * @ClassName: VipCardNoPushJob.java * @Description: * @version: v1.0.0 * @author: wangbiao * @date: 2017年11月23日 * Modification History: * Date Author Version Description * ---------------------------------------------------------* * 2017年11月23日 wangbiao v1.0.0 创建 */ @Component("com.zteits.pay.job.vipcardpush.VipCardNoPushJob") public class VipCardNoPushJob { private static final Logger logger = LoggerFactory.getLogger(VipCardNoPushJob.class); @Autowired private VipCardService vipCardService; @Autowired private VipCardPushRoute vipCardPushRoute; @Autowired private ParkingLotQueryService parkingLotQueryService; @XxlJob(value = "VipCardNoPushJob") public ReturnT execute(String... arg0) throws Exception { int updateCount = 0; this.logger("---begin查询未推送irain购买会员卡信息"); VipPushRequest vipPushRequest = new VipPushRequest(); vipPushRequest.setSysCode("1001"); BizResult> rsList = vipCardService.queryNoPustVipCardCustInfo(vipPushRequest); this.logger("本次未推送条数=" + (CollectionUtils.isNotEmpty(rsList.getData()) ? rsList.getData().size() : 0)); if (rsList.isSuccess() && rsList.getData() != null) { int index = 1; for (VipNoPushCardCustInfoDTO cardInfo : rsList.getData()) { if (cardInfo == null || StringUtils.isEmpty(cardInfo.getPlNo())) { continue; } QueryParkLotInfoByPkNoRequest queryParkLotInfoByPkNoRequest = new QueryParkLotInfoByPkNoRequest(); queryParkLotInfoByPkNoRequest.setPklNo(cardInfo.getPlNo()); queryParkLotInfoByPkNoRequest.setSysCode(BasicEnum.SYS_CODE.getValue()); BizResult parkingLotDTOBizResult = parkingLotQueryService.QueryParkingLotByPkNo(queryParkLotInfoByPkNoRequest); if (!ResultUtils.isSuccess(parkingLotDTOBizResult) || parkingLotDTOBizResult.getData() == null) { continue; } ParkingLotDTO parkingLotDTO = parkingLotDTOBizResult.getData(); /** * 哎润道闸不合作,导致无法处理推送,去掉不在推送哎润 */ if(null != parkingLotDTO && parkingLotDTO.getSourceType().equals(1)){ continue; } this.logger("begin开始推送第" + (index++) + "条,从缓存获取停车场信息=" + JSONObject.toJSON(parkingLotDTO)); VipCardPushService route = vipCardPushRoute.getRoute(parkingLotDTO.getSourceType()); if (route == null) { logger("会员卡同步路由服务失败,未找到sourceType:" + parkingLotDTO.getSourceType() + "对应的服务"); continue; } VipNoPushCardCustInfoVO vipNoPushCardCustInfoVO = new VipNoPushCardCustInfoVO(); BeanUtils.copyProperties(cardInfo, vipNoPushCardCustInfoVO); vipNoPushCardCustInfoVO.setParkingLotDTO(parkingLotDTO); try { updateCount = route.pushVIPCard(vipNoPushCardCustInfoVO,false); } catch (Exception e) { logger(vipNoPushCardCustInfoVO.getCarNumber()+":会员卡同步路由服务失败:" + e); } } } else { this.logger("---本次没有要推送的会员卡信息.."); updateCount = 1; } return updateCount > 0 ? ReturnT.SUCCESS : ReturnT.FAIL; } private void logger(String msg) { XxlJobHelper.log(msg); logger.info(msg); } }