//package com.zteits.pay.job; // // //import java.io.UnsupportedEncodingException; //import java.text.ParseException; //import java.text.SimpleDateFormat; //import java.util.Date; //import java.util.HashMap; //import java.util.List; //import java.util.Map; //import java.util.UUID; // //import org.eclipse.jetty.util.StringUtil; //import org.slf4j.Logger; //import org.slf4j.LoggerFactory; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.stereotype.Component; // //import org.apache.commons.lang3.StringUtils; //import com.alibaba.fastjson.JSONArray; //import com.alibaba.fastjson.JSONObject; //import com.clouds.common.cache.park.IRainPkNoRelationCacheUtil; //import com.clouds.common.cache.park.ParkingLotCacheUtil; //import com.clouds.common.utils.DateUtil; //import com.clouds.common.utils.MD5Utils; //import com.xxl.job.core.biz.model.ReturnT; // ////import com.xxl.job.core.context.XxlJobHelper; //import com.zteits.clouds.api.apibase.bean.BizResult; //import com.zteits.clouds.api.apibase.constants.IrainConfigure; //import com.zteits.clouds.api.apibase.constants.OrderEnum; //import com.zteits.clouds.api.dto.bill.vipcard.VipNoPushCardCustInfoDTO; //import com.zteits.clouds.api.dto.park.dto.ParkingLotDTO; //import com.zteits.clouds.api.dto.pay.TdBParkCardCustDTO; //import com.zteits.clouds.api.dto.pay.param.AppPayCardOrderRequest; //import com.zteits.clouds.api.dto.pay.param.TdBParkCardCustRequest; //import com.zteits.clouds.api.service.pay.TdBParkCardCustService; //import com.zteits.pay.util.HttpClientTutorial; // ///** // * 会员卡同步第三方 // * 目前只写同步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 创建 // */ //@XxlJob(value="VipOldCardNoPushJob") //@Component //public class VipOldCardNoPushJob { // private static final Logger logger = LoggerFactory.getLogger(VipOldCardNoPushJob.class); // @Autowired // private TdBParkCardCustService tdBParkCardCustService; // /**推送状态 2:已推送 1:未推送*/ // private static final Integer PUSH_STATE = 2; // @Override // public ReturnT execute(String... arg0) throws Exception { // // int updateCount =0; // this.logger("---begin查询未推送irain购买会员卡信息"); // AppPayCardOrderRequest request = new AppPayCardOrderRequest(); // request.setSysCode("1001"); // BizResult> rsList = tdBParkCardCustService.queryCarnNoPush(request); // this.logger("---endbegin查询未推送irain购买会员卡信息,结果="+JSONObject.toJSON(rsList)); // if(rsList.isSuccess() && rsList.getData()!=null) { // for(TdBParkCardCustDTO cardInfo :rsList.getData()) { // ParkingLotDTO parkingLotDTO = ParkingLotCacheUtil.getParkLotByPlNo(cardInfo.getPlNo()); // /***购买会员卡通知中irian*/ // if(parkingLotDTO!=null && parkingLotDTO.getSourceType()==OrderEnum.ORDER_SOURCE_TYPE_IN.value()) { // updateCount = pushVip2Irain(updateCount, cardInfo); // } // } // }else{ // this.logger("---本次没有要推送的会员卡信息.."); // updateCount =1; // } // return updateCount > 0 ? ReturnT.SUCCESS :ReturnT.FAIL; // } // /** // * 会员卡通知irian // * @Title: pushVip2Irain // * @Description: TODO(这里用一句话描述这个方法的作用) // * @param @param updateCount // * @param @param cardInfo // * @param @return    设定文件 // * @return int    返回类型 // * @throws // */ // private int pushVip2Irain(int updateCount, TdBParkCardCustDTO cardInfo) { // /**购买会员卡*/ // String park_code = IRainPkNoRelationCacheUtil.getIRainPayPkNoByPlNo(cardInfo.getPlNo()); // this.logger("查询irain对应的停车场编码="+park_code+"。"); // if(StringUtil.isNotBlank(park_code)) { // if(Integer.valueOf(1).equals(cardInfo.getOptType())) { // /**新增之前先查询 irain系统该车是否已经购买过会员卡,如果已经购买走续费逻辑否则走购买逻辑**/ // Map params = this.getPubParam4Irain(); // params.put("vpl_number", cardInfo.getCarNumber()); // params.put("park_code", park_code); // String rs =""; // try { // rs = HttpClientTutorial.httpPostRequest(IrainConfigure.getIrain_url() + "/vehicle_auth/GetAuth", params); // logger.info("irain 获取授权信息:" + JSONObject.toJSONString(rs)); // // JSONObject jsobj = JSONObject.parseObject(rs); // if (jsobj != null) { // if (!jsobj.get("status").toString().equals("0")) { // JSONObject jsobDate = JSONObject.parseObject(jsobj.get("data")+""); // JSONArray jSONArray = jsobDate.getJSONArray("list"); // // if(jSONArray.size()>0) { // // /**比较本地与Irain结束时间.*/ // TdBParkCardCustDTO cardInfoCompare = this.compareStartTime(jSONArray,cardInfo); // if(cardInfoCompare != null && cardInfoCompare.getExpDate() != null){ // cardInfoCompare.setExpDate(DateUtil.getOffsetDaysDate(cardInfoCompare.getExpDate(), 1)); // } // /***已经线下购买过会员卡 走续费逻辑*/ // updateCount = pushEditVipCard4Irain(updateCount, cardInfoCompare,park_code); // }else { // /**线下没有够没过会员卡 走购买逻辑**/ // updateCount = pushAddVipCard4Irain(updateCount, cardInfo, park_code); // } // } // } // // } catch (Exception e) { // logger.info("irain 获取授权信息:" + e); // } // } // /**会员卡续费**/ // else if(Integer.valueOf(2).equals(cardInfo.getOptType())) { // updateCount = pushEditVipCard4Irain(updateCount,cardInfo, park_code); // } // } // //1:购卡 // return updateCount; // } // // /** // * 重新计算开始和结束时间.
// * @param jSONArray // * @param cardInfo // * @return // * 2018年1月10日 wangfs.
// */ // private TdBParkCardCustDTO compareStartTime(JSONArray jSONArray,TdBParkCardCustDTO cardInfo){ // try { // for(int i=0;i 0){ // irainBeginTime = format.parse(format.format(new Date(irainBeginTimeStr))); // } // if(irainBeginTimeStr > 0){ // irainEndTime = format.parse(format.format(new Date(irainEndTimeStr))); // } // // /** 生效时间 */ // Date effDate = null ; // if(cardInfo.getEffDate() != null){ // effDate = format.parse(format.format(cardInfo.getEffDate())); // } // // /** // * 情况1: // * Irain 开始时间 结束时间 // * |_________________________| // * 本地开始时间 |______________| 本地开始时间在 Irain 开始结束范围之内 取本地开始时间 否则开始时间去Irain开始时间 // */ // if(effDate != null && irainBeginTime != null && irainEndTime != null){ // if(effDate.getTime() >= irainBeginTime.getTime() && effDate.getTime() <= irainEndTime.getTime() ){ // this.logger("车牌号="+cardInfo.getCarNumber()+"本地开始时间在irain 开始和结束时间之内,取irain开始时间"); // cardInfo.setEffDate(irainBeginTime); // } // } // } // } catch (ParseException e) { // } // // return cardInfo; // // // } // private int pushEditVipCard4Irain(int updateCount,TdBParkCardCustDTO cardInfo, String park_code) { // this.logger("---start---会员卡续费成功,开始通知irain"); // try { // Map params = this.getPubParam4Irain(); // params.put("vpl_number", cardInfo.getCarNumber()); // params.put("serial_number",UUID.randomUUID());// cardInfo.getCustCardNo()); // params.put("park_code", park_code); // params.put("start_time", cardInfo.getEffDate().getTime()/1000);// 起始时间 是 时间戳 // params.put("end_time",cardInfo.getExpDate().getTime()/1000);// 结束时间 是 时间戳 // String rs = ""; // this.logger("会员卡续费通知irain 请求:"+JSONObject.toJSONString(params)); // for (int i = 0; i < 3; i++) { // if (StringUtils.isBlank(rs)) { // rs = HttpClientTutorial.httpPostRequest(IrainConfigure.getIrain_url() + "/vehicle_auth/ModifyAuthPeroid",params); // } // } // this.logger("会员卡续费通知irain 返回:"+JSONObject.toJSONString(rs)); // JSONObject jsobj = JSONObject.parseObject(rs); // if (jsobj != null) { // if (!jsobj.get("status").toString().equals("0")) { // this.logger("会员卡续费通知irain成功 修改推送状态"); // // TdBParkCardCustRequest tdBParkCardCustRequest = new TdBParkCardCustRequest(); // tdBParkCardCustRequest.setPushState(PUSH_STATE); // tdBParkCardCustRequest.setId(cardInfo.getId()); // tdBParkCardCustRequest.setSysCode("1001"); // logger.info("续费会员卡通知irain成功 修改推送状态:" + JSONObject.toJSONString(tdBParkCardCustRequest)); // BizResult result = tdBParkCardCustService.updateCardCust(tdBParkCardCustRequest); // if(result !=null && result.getData()>0){ // updateCount = result.getData(); // this.logger("id={"+cardInfo.getId()+"}已推送并更新成功.."); // } // logger.info("续费会员卡通知irain成功 修改推送状态返回:" + JSONObject.toJSONString(result)); // } // } // } catch (UnsupportedEncodingException e) { // this.logger("会员卡续费成功,结束通知irain失败:"+e.getMessage()); // } // this.logger("---end---会员卡续费成功,结束通知irain"); // return updateCount; // } // // // private int pushAddVipCard4Irain(int updateCount, TdBParkCardCustDTO cardInfo, String park_code) { // this.logger("---start---购买会员成功,开始通知irain"); // try { // Map params = this.getPubParam4Irain(); // params.put("vpl_number", cardInfo.getCarNumber()+","+UUID.randomUUID()); // params.put("serial_number",UUID.randomUUID());// cardInfo.getCustCardNo()); // params.put("park_code", park_code); // params.put("user_name", cardInfo.getCarNumber());// 用户ming // params.put("park_no", UUID.randomUUID());// 车位编号号 是 // /** // * 2 : 黑名单 3: 授权收费一 4: 授权收费二 5: 月租车 6:商户优惠车 7: 协议单位优惠车 8:员工车 9:免费车 10:内部车 15:军警车 // */ // params.put("type", 5);// // params.put("begin_time", cardInfo.getEffDate().getTime()/1000);// 起始时间 是 时间戳 // params.put("end_time",cardInfo.getExpDate().getTime()/1000);// 结束时间 是 时间戳 // String rs = ""; // for (int i = 0; i < 3; i++) { // if (StringUtils.isBlank(rs)) { // rs = HttpClientTutorial.httpPostRequest(IrainConfigure.getIrain_url() + "/vehicle_auth/Issued",params); // } // } // this.logger("会员卡购买通知irain 返回:"+JSONObject.toJSONString(rs)); // JSONObject jsobj = JSONObject.parseObject(rs); // if (jsobj != null) { // if (!jsobj.get("status").toString().equals("0")) { // this.logger("购买会员卡通知irain成功 修改推送状态:" ); // TdBParkCardCustRequest tdBParkCardCustRequest = new TdBParkCardCustRequest(); // tdBParkCardCustRequest.setPushState(PUSH_STATE); // tdBParkCardCustRequest.setId(cardInfo.getId()); // tdBParkCardCustRequest.setSysCode("1001"); // logger.info("购买会员卡通知irain成功 修改推送状态:" + JSONObject.toJSONString(tdBParkCardCustRequest)); // BizResult result = tdBParkCardCustService.updateCardCust(tdBParkCardCustRequest); // logger.info("购买会员卡通知irain成功 修改推送状态返回:" + JSONObject.toJSONString(result)); // // if(result !=null && result.getData()>0){ // updateCount = result.getData(); // this.logger("id={"+cardInfo.getId()+"}已推送并更新成功.."); // } // } // } // } catch (UnsupportedEncodingException e) { // this.logger("会员卡购买成功,结束通知irain失败:"+e.getMessage()); // } // this.logger("---end---购买会员成功,结束通知irain"); // return updateCount; // } // // private void logger(String msg){ // XxlJobHelper.log(msg); // logger.info(msg); // } // // private Map getPubParam4Irain(){ // Long time = System.currentTimeMillis(); // String md5 = MD5Utils.enMD5(IrainConfigure.getIrain_appid() + IrainConfigure.getIrain_appsecret() + time); // Map params = new HashMap<>(); // params.put("appid", IrainConfigure.getIrain_appid()); // params.put("sign", md5); // params.put("timestamp", time); // return params; // } // //}