VipCardGetFromIrainJob.java
6.95 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
package com.zteits.pay.job;
import cn.jiguang.common.utils.StringUtils;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.clouds.common.utils.MD5Utils;
import com.xiaoleilu.hutool.exceptions.ExceptionUtil;
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.param.VipCardCustInfoIrainRequest;
import com.zteits.clouds.api.dto.bill.vipcard.param.VipCardCustIrainRequest;
import com.zteits.clouds.api.dto.park.dto.IrainPknoRelationDTO;
import com.zteits.clouds.api.dto.park.param.IrainPknoRelationSelectRequest;
import com.zteits.clouds.api.service.bill.vipcard.VipCardService;
import com.zteits.clouds.api.service.park.IrainPknoRelationService;
import com.zteits.pay.configuration.IrainConfigure;
import com.zteits.pay.util.HttpClientTutorial;
import jodd.util.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.*;
/**
* 从irain平台同步会员卡信息
* 按照停车场 先删除 后插入
*
* Copyright: Copyright (c) 2017 ZTE-ITS
*
* @ClassName: VipCardGetFromIrainJob.java
* @Description:
* @version: v1.0.0
* @author: wangbiao
* @date: 2018年1月8日
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2018年1月8日 wangbiao v1.0.0 创建
*/
@Component
public class VipCardGetFromIrainJob {
private static final Logger logger = LoggerFactory.getLogger(VipCardGetFromIrainJob.class);
@Autowired
private VipCardService vipCardService;
@Autowired
private IrainPknoRelationService irainPknoRelationService;
@XxlJob(value="VipCardGetFromIrainJob")
public ReturnT<String> execute(String... arg0) throws Exception {
Integer insertCount =0;
this.logger("---begin 同步会员卡信息 from irain to zteits");
IrainPknoRelationSelectRequest request = new IrainPknoRelationSelectRequest();
request.setSysCode("1001");
BizResult<List<IrainPknoRelationDTO>> rsList = irainPknoRelationService.selectIrainPknoRelation(request);
if(rsList.isSuccess() && rsList.getData()!=null) {
for(IrainPknoRelationDTO parkInfo :rsList.getData()) {
this.logger("---begin "+parkInfo.getParkLotpkno()+"同步会员卡信息 from irain to zteits");
Integer deleteCount =0;
if(StringUtils.isNotEmpty(parkInfo.getParkLotpkno())) {
VipCardCustIrainRequest requestirain = new VipCardCustIrainRequest();
requestirain.setParkCode(parkInfo.getParkLotpkno());
requestirain.setSysCode(BasicEnum.SYS_CODE.getValue());
BizResult<Integer> rsdel = vipCardService.deleteVipCardIrainByParkCode(requestirain);
if(rsdel != null && rsdel.getData() != null){
deleteCount = rsdel.getData();
}
this.logger("停车场:"+parkInfo.getParkLotpkno()+"同步会员卡之前,删除成功="+deleteCount+"条。");
}
if(StringUtil.isNotBlank(parkInfo.getIrainPkno1())) {
Map<String, Object> params = this.getPubParam4Irain();
params.put("park_code", parkInfo.getIrainPkno1());
String rs ="";
try {
rs = HttpClientTutorial.httpPostRequest(IrainConfigure.getIrain_url() + "/vehicle_auth/GetAuth", params);
logger.info("irain 获取授权信息:" + JSONObject.toJSONString(rs));
List<VipCardCustInfoIrainRequest> irainList = new ArrayList<>();
VipCardCustIrainRequest vipCardCustIrainRequest = new VipCardCustIrainRequest();
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");
for(int i=0;i<jSONArray.size();i++){
VipCardCustInfoIrainRequest vipCardCustInfoIrainRequest = new VipCardCustInfoIrainRequest();
JSONObject job = jSONArray.getJSONObject(i);
vipCardCustInfoIrainRequest.setParkCode(parkInfo.getParkLotpkno());
vipCardCustInfoIrainRequest.setCarNumber(job.getString("vpl_number"));
vipCardCustInfoIrainRequest.setCardSequence(job.getString("card_sequence"));
vipCardCustInfoIrainRequest.setCustName(job.getString("username"));
vipCardCustInfoIrainRequest.setCardNo(job.getString("cardno"));
vipCardCustInfoIrainRequest.setPhone(job.getString("phone"));
vipCardCustInfoIrainRequest.setAddress(job.getString("address"));
vipCardCustInfoIrainRequest.setBalance(job.getLong("balance"));
vipCardCustInfoIrainRequest.setEffDate(new Date(job.getLong("validbtime")*1000));
vipCardCustInfoIrainRequest.setExpDate(new Date(job.getLong("validetime")*1000));
vipCardCustInfoIrainRequest.setDetailType(job.getInteger("detail_type"));
vipCardCustInfoIrainRequest.setEmail(job.getString("email"));
vipCardCustInfoIrainRequest.setInArea(job.getString("in_area"));
vipCardCustInfoIrainRequest.setOutArea(job.getString("out_area"));
vipCardCustInfoIrainRequest.setCapAmount(job.getInteger("capamount"));
vipCardCustInfoIrainRequest.setCapCycle(job.getInteger("cap_cycle"));
vipCardCustInfoIrainRequest.setCapRule(job.getInteger("cap_rule"));
vipCardCustInfoIrainRequest.setDiscount(job.getInteger("discount"));
irainList.add(vipCardCustInfoIrainRequest);
}
vipCardCustIrainRequest.setIrainList(irainList);
vipCardCustIrainRequest.setSysCode("1001");
BizResult<Integer> rsisert = vipCardService.insertVipCardIrain(vipCardCustIrainRequest);
if(rsisert != null && rsisert.getData() != null){
insertCount = rsisert.getData();
}
this.logger("停车场:"+parkInfo.getParkLotpkno()+"会员卡同步成功,插入条数="+insertCount+ "条。");
}
}
} catch (Exception e) {
logger.info("irain 获取授权信息异常:");
this.logger(ExceptionUtil.stacktraceToString(e, 1000));
}
}
this.logger("---end "+parkInfo.getParkLotpkno()+"同步会员卡信息 from irain to zteits");
}
}else{
this.logger("---未查询到停车场信息..");
}
this.logger("---同步成功---insertCount="+insertCount);
return insertCount >= 0? ReturnT.SUCCESS :ReturnT.FAIL;
}
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;
}
}