package com.engine.tjyh.xc.cmd; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.entity.BizLogContext; import com.engine.core.interceptor.CommandContext; import com.engine.tjyh.xc.util.WorkflowCreateHandler; import okhttp3.*; import org.apache.commons.codec.digest.DigestUtils; import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.TimeUtil; import weaver.general.Util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.util.*; /** * @Description * @Author matrix * @Date 2023/6/15 10:09 **/ public class XcCmd2 extends AbstractCommonCommand> { public XcCmd2(JSONObject params) { this.params = params; } @Override public BizLogContext getLogContext() { return null; } @Override public Map execute(CommandContext commandContext) { RecordSet rs = new RecordSet(); BaseBean bb = new BaseBean(); Map apimap = new HashMap(); writeLog("XcCmd--------:"+params); String appKey = bb.getPropValue("tjyhxcjc","appKey"); String appSecurity = bb.getPropValue("tjyhxcjc","appSecurity"); String url = bb.getPropValue("tjyhxcjc","url"); String orderurl = bb.getPropValue("tjyhxcjc","orderurl"); String workflowId = bb.getPropValue("tjyhxcjc","workflowId"); Map map= new HashMap<>(); map.put("appKey",appKey); map.put("appSecurity",appSecurity); String input = JSON.toJSONString(map); // String back =" postData(input,url)"; // JSONObject backObj = JSONObject.parseObject(back); // String ticket = backObj.getString("Ticket"); // bb.writeLog("ticket="+ticket); // // JSONObject obj = (JSONObject) params; // String approveScenario = obj.getString("approveScenario"); // String corpId = obj.getString("corpId"); // String orderId = obj.getString("orderId"); // String orderStatus = obj.getString("orderStatus"); // String productType = obj.getString("productType"); // String sign = obj.getString("sign"); String tgq="2"; //1 改签 2:退 // if("FlightInternational".equals(productType)||"FlightDomestic".equals(productType)){ // //机票 ,改签成功 // if("rebookSuccess".equals(orderStatus)){ // tgq="1"; // } // //退票成功(退款成功) // if("refunded".equals(orderStatus)){ // tgq="2"; // } // } // if("HotelContract".equals(productType)||"HotelMember".equals(productType)){ // // 取消 // if("Cancelled".equals(orderStatus)){ // tgq="2"; // } // } // if("Train".equals(productType)){ // //已改签 // if("Rebooked".equals(orderStatus)){ // tgq="1"; // } // //SubmitRefund 退票成功 // if("SubmitRefund".equals(orderStatus)){ // tgq="2"; // } // } // // if("0".equals(tgq)){ // apimap.put("errno","-1"); // apimap.put("errmsg","不触发流程"); // return apimap; // } // // // Map orderMap = new HashMap(); // Map authMap = new HashMap(); // authMap.put("AppKey",appKey); // authMap.put("Ticket",ticket); // orderMap.put("Auth",authMap); // orderMap.put("JourneyNo",""); // orderMap.put("OrderID",orderId); // orderMap.put("SearchType",1); // // String orderInput = JSON.toJSONString(orderMap); String orderBack = JSON.toJSONString(params); bb.writeLog("orderBack="+orderBack); if(isJsonValid(orderBack)) { JSONObject orderObj = JSONObject.parseObject(orderBack); JSONArray array = orderObj.getJSONArray("ItineraryList"); for (int i = 0; i < array.size(); i++) { JSONObject detailObj = array.getJSONObject(i); JSONArray flightOrderInfoList = detailObj.getJSONArray("FlightOrderInfoList"); JSONArray hotelOrderInfoList = detailObj.getJSONArray("HotelOrderInfoList"); JSONArray trainOrderInfoList = detailObj.getJSONArray("TrainOrderInfoList"); if(flightOrderInfoList!=null){ doFlightOrder(flightOrderInfoList,workflowId,tgq); } if(hotelOrderInfoList!=null){ doHotailOrder(hotelOrderInfoList,workflowId,tgq); } if(trainOrderInfoList!=null){ doTrainOrder(trainOrderInfoList,workflowId,tgq); } } }else{ apimap.put("errno","-1"); apimap.put("errmsg","订单数据格式不对"); } if("".equals(params.toString())){ apimap.put("errno","-1"); apimap.put("errmsg","空数据"); }else { apimap.put("errno", "0"); apimap.put("errmsg", ""); } return apimap; } public static String GetSign(String corpId,String productType,String orderStatus,String orderId,String statusIDs ,String refundType,String secret,String approveScenario) { //构造字典 HashMap hashMap=new HashMap(); hashMap.put("secret",secret); hashMap.put("corpId",corpId); hashMap.put("productType",productType); hashMap.put("orderId",orderId); hashMap.put("orderStatus",orderStatus); //排序 Collection collection=hashMap.keySet(); ArrayList list=new ArrayList(collection); Collections.sort(list); //拼接 String str=""; for( int i=0;i