DealLZJJHeartPushJob.java 6.1 KB
//package com.zteits.pay.job;
//
//import org.apache.commons.collections4.CollectionUtils;
//import org.apache.commons.lang3.StringUtils;
//import com.alibaba.fastjson.JSONObject;
//import com.clouds.common.cache.sys.SysCodeValueCacheUtil;
//import com.clouds.common.constants.CodeValKindEnum;
//import com.clouds.common.utils.DateUtil;
//import com.clouds.common.utils.SHA256Util;
//import com.clouds.common.utils.ThreeDESUtil;
//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.pay.domain.ParkDeviceDO;
//import com.zteits.pay.domain.TdCThirdPushConfig;
//import com.zteits.pay.service.thirdpush.ThirdPushConfigService;
//import com.zteits.pay.util.HttpClientTutorial;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import java.io.UnsupportedEncodingException;
//import java.util.*;
//
///**
// * 上传兰州交警心跳定时任务,每分钟一次
// */
//@Component
//public class DealLZJJHeartPushJob {
//    private static final Logger logger = LoggerFactory.getLogger(DealLZJJHeartPushJob.class);
//
//    @Autowired
//    private ThirdPushConfigService thirdPushConfigService;
//
//    @XxlJob(value="DealLZJJHeartPushJob")
//    public ReturnT<String> execute(String... arg0) throws Exception {
//
//        String prefix = SysCodeValueCacheUtil.queryCodeValue(CodeValKindEnum.LZ_JJ_PUSH_FLG);
//        logger("配置是否开启兰州交警发送开关:" + prefix);
////        prefix = "true";
//        if(StringUtils.isBlank(prefix)||prefix.equalsIgnoreCase("false")){
//            logger("没有配置是否开启兰州交警发送开关,不执行定时心跳推送");
//        }else{
//            logger("上传心跳开始" + DateUtil.getDateString(new Date(),DateUtil.DATETIME_FORMAT));
//            //查询所有配置车场
//            List<TdCThirdPushConfig> ls = thirdPushConfigService.getThirdConfigCache();
//            if(CollectionUtils.isNotEmpty(ls)){
//                for (TdCThirdPushConfig tdCThirdPushConfig: ls) {
//                    //vsersion 默认1.0
//                    String version = tdCThirdPushConfig.getVersion();
//                    //商户号
//                    String merchantCode = tdCThirdPushConfig.getMerchantCode();
//                    String parkId = tdCThirdPushConfig.getParkId();
//                    //私钥
//                    String privatekey = tdCThirdPushConfig.getSecretKey();
//                    //请求时间
//                    String timestamp = DateUtil.getDateString(new Date(),DateUtil.DATETIME_FORMAT);
//                    //上传地址
//                    String httpUrl = tdCThirdPushConfig.getPushIpUrl();
//                    //请求的接口类型
//                    String messageType = "1000";
//
//                    Map<String,Object> dataMap = new HashMap<>();
//                    dataMap.put("status", "online");
//                    dataMap.put("actionTime", new Date().getTime());
//
//                    List<ParkDeviceDO> lsP =new ArrayList<ParkDeviceDO>();
//                    ParkDeviceDO parkDeviceDO = new ParkDeviceDO();
//                    parkDeviceDO.setDeviceName("摄像头");
//                    parkDeviceDO.setStatus("正常");
//                    lsP.add(parkDeviceDO);
//                    dataMap.put("deviceStatusList", lsP);
//
//                    String data = JSONObject.toJSONString(dataMap);
//                    logger("车场编号:" + parkId + "数据data加密前 :"+data);
//
//                    String secretData = ThreeDESUtil.getEncString(data, tdCThirdPushConfig.getSecretKey()) ;
//                    logger("数据data加密后 :"+secretData);
//
//                    String param  = version+messageType+secretData+merchantCode+timestamp+privatekey;
//                    logger("param 签名前 :"+param);
//                    //sign Sha256加密
//                    String sign = SHA256Util.getSHA256StrJava(param);
//                    logger("sign 签名后 :"+sign);
//
//                    Map<String, Object> returnMap = new HashMap<String, Object>();
//
//                    returnMap.put("merchantCode",merchantCode);
//                    returnMap.put("messageType",messageType);
//                    returnMap.put("data",secretData);
//                    returnMap.put("sign",sign);
//                    returnMap.put("version",version);
//                    returnMap.put("timestamp",timestamp);
//                    returnMap.put("parkId",parkId);
//
//                    String req = JSONObject.toJSONString(returnMap);
//                    logger("给LZJJ 发送心跳数据:"+req);
//                    String rs = "";
//                    try {
//                        logger("上传数据接口地址:="+httpUrl);
//                        rs = HttpClientTutorial.httpPostRequest(httpUrl, req);
//                        logger("接口返回rs:="+rs);
//                        if(rs != "" && rs.contains("data")){
//                            JSONObject resultJson = JSONObject.parseObject(rs);
//                            String data1 = resultJson.getString("data");
//                            String datajm = ThreeDESUtil.getDesString(data1, privatekey);
//                            logger("返回解密data数据:" + datajm);
//                        }
//                    } catch (UnsupportedEncodingException e) {
//                        e.printStackTrace();
//                        continue;
//                    }
//                    logger("车场编号:" + parkId + "发送心跳1000成功,响应信息"+rs);
//                }
//            }else{
//                logger("配置表为空,没有找到需要上传的车场信息");
//            }
//            logger("上传心跳结束" + DateUtil.getDateString(new Date(),DateUtil.DATETIME_FORMAT));
//        }
//        return  ReturnT.SUCCESS;
//    }
//
//    private void logger(String msg){
//        XxlJobHelper.log(msg);
//        logger.info(msg);
//    }
//}