VipOldCardNoPushJob.java
13.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
//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<String> execute(String... arg0) throws Exception {
//
// int updateCount =0;
// this.logger("---begin查询未推送irain购买会员卡信息");
// AppPayCardOrderRequest request = new AppPayCardOrderRequest();
// request.setSysCode("1001");
// BizResult<List<TdBParkCardCustDTO>> 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<String, Object> 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;
// }
//
// /**
// * 重新计算开始和结束时间.<br/>
// * @param jSONArray
// * @param cardInfo
// * @return
// * 2018年1月10日 wangfs.<br/>
// */
// private TdBParkCardCustDTO compareStartTime(JSONArray jSONArray,TdBParkCardCustDTO cardInfo){
// try {
// for(int i=0;i<jSONArray.size();i++){
// JSONObject job = jSONArray.getJSONObject(i);
// //irain开始时间
// Long irainBeginTimeStr = job.getLong("validbtime") * 1000;
// //irain结束时间
// Long irainEndTimeStr = job.getLong("validetime") * 1000;
// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
// //1.irain开始时间
// Date irainBeginTime = null;
// //2.irain结束时间
// Date irainEndTime = null;
// if(irainBeginTimeStr > 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<String, Object> 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<Integer> 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<String, Object> 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<Integer> 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<String, Object> getPubParam4Irain(){
// Long time = System.currentTimeMillis();
// String md5 = MD5Utils.enMD5(IrainConfigure.getIrain_appid() + IrainConfigure.getIrain_appsecret() + time);
// Map<String, Object> params = new HashMap<>();
// params.put("appid", IrainConfigure.getIrain_appid());
// params.put("sign", md5);
// params.put("timestamp", time);
// return params;
// }
//
//}