//线程池 private final ExecutorService executorService= Executors.newCachedThreadPool(); executorService.submit(() -> orderDecrypt(meituanOrderInfoExp)); @Transactional @Override public void orderDecrypt(MeituanOrderInfoExp meituanOrderInfoExp) { JSONObject obj=new JSONObject(); try { TakeawayInfo takeawayInfo=new TakeawayInfo(); takeawayInfo.setAppPoiCode(meituanOrderInfoExp.getMeituanOrderInfo().getAppPoiCode()); TakeawayInfo info=takeawayInfoService.takeawayInfoByCache(takeawayInfo, "app_poi_code"); if(info!=null){ SystemParam systemParam = new SystemParam(info.getAppId(), info.getAppSecret()); JSONArray array=new JSONArray(); JSONObject paraObj1=new JSONObject(); JSONObject paraObj2=new JSONObject(); JSONObject paraObj3=new JSONObject(); JSONObject paraObj4=new JSONObject(); JSONObject paraObj5=new JSONObject(); if(StringUtils.isNotBlank(meituanOrderInfoExp.getMeituanOrderInfo().getEncryptRecipientAddress())){ paraObj1.put("cipher_text",meituanOrderInfoExp.getMeituanOrderInfo().getEncryptRecipientAddress()); array.add(paraObj1); } if(StringUtils.isNotBlank(meituanOrderInfoExp.getMeituanOrderInfo().getEncryptRecipientPhone())){ //加密订单收货人联系电话 paraObj2.put("cipher_text",meituanOrderInfoExp.getMeituanOrderInfo().getEncryptRecipientPhone()); array.add(paraObj2); } if(StringUtils.isNotBlank(meituanOrderInfoExp.getMeituanOrderInfo().getEncryptRecipientName())){ //加密订单收货人姓名 paraObj3.put("cipher_text",meituanOrderInfoExp.getMeituanOrderInfo().getEncryptRecipientName()); array.add(paraObj3); } if(StringUtils.isNotBlank(meituanOrderInfoExp.getMeituanOrderInfo().getEncryptOrderPhoneNumber())){ //加密推送订单的预订人手机号 paraObj4.put("cipher_text",meituanOrderInfoExp.getMeituanOrderInfo().getEncryptOrderPhoneNumber()); array.add(paraObj4); } if(StringUtils.isNotBlank(meituanOrderInfoExp.getMeituanOrderInfo().getEncryptOrderShippingAddress())) { //加密收货人具体地址 paraObj5.put("cipher_text",meituanOrderInfoExp.getMeituanOrderInfo().getEncryptOrderShippingAddress()); array.add(paraObj5); } log.info("\n==>美团单号="+meituanOrderInfoExp.getMeituanOrderInfo().getOrderId()+"即将解密的字符串为="+array.toJSONString()); try { obj= MtRequest.healthBatchDecrypt(systemParam,array); log.info("\n==>美团单号="+meituanOrderInfoExp.getMeituanOrderInfo().getOrderId()+"对字段解密结果"+obj); }catch (Exception e){ log.info("\n==>美团单号="+meituanOrderInfoExp.getMeituanOrderInfo().getOrderId()+"对字段解密异常"+e); } if("1".equals(obj.getString("result_code"))){ JSONObject obj1=obj.getJSONObject("data"); JSONArray obj2=obj1.getJSONArray("plain_info_list"); if(obj2!=null && !obj2.isEmpty()){ for(int i=0;i<obj2.size();i++ ){ JSONObject obj3=obj2.getJSONObject(i); if(obj3.getString("cipher_text").equals(meituanOrderInfoExp.getMeituanOrderInfo().getEncryptRecipientAddress())){ // encrypt_recipient_address 加密订单收货人地址 meituanOrderInfoExp.getMeituanOrderInfo().setEncryptRecipientAddress(obj3.getString("plain_text")); }else if(obj3.getString("cipher_text").equals(meituanOrderInfoExp.getMeituanOrderInfo().getEncryptRecipientPhone())){ // encrypt_recipient_phone 加密订单收货人联系电话 meituanOrderInfoExp.getMeituanOrderInfo().setEncryptRecipientPhone(obj3.getString("plain_text")); }else if(obj3.getString("cipher_text").equals(meituanOrderInfoExp.getMeituanOrderInfo().getEncryptRecipientName())){ //encrypt_recipient_name 加密订单收货人姓名 meituanOrderInfoExp.getMeituanOrderInfo().setEncryptRecipientName(obj3.getString("plain_text")); }else if(obj3.getString("cipher_text").equals(meituanOrderInfoExp.getMeituanOrderInfo().getEncryptOrderPhoneNumber())){ //encrypt_order_phone_numbe 加密推送订单的预订人手机号 meituanOrderInfoExp.getMeituanOrderInfo().setEncryptOrderPhoneNumber(obj3.getString("plain_text")); }else if(obj3.getString("cipher_text").equals(meituanOrderInfoExp.getMeituanOrderInfo().getEncryptOrderShippingAddress())){ //encrypt_order_shipping_address 加密收货人具体地址 meituanOrderInfoExp.getMeituanOrderInfo().setEncryptOrderShippingAddress(obj3.getString("plain_text")); } } //先取EncryptRecipientPhone这个里边的值,如果不包含下划线的,则取这个反之从备注中截取手机号 if(StringUtils.isNotBlank(meituanOrderInfoExp.getMeituanOrderInfo().getEncryptRecipientPhone()) && meituanOrderInfoExp.getMeituanOrderInfo().getEncryptRecipientPhone().indexOf('_') == -1){ meituanOrderInfoExp.getMeituanOrderInfo().setRealPhoneNum(meituanOrderInfoExp.getMeituanOrderInfo().getEncryptRecipientPhone()); }else{ //从备注中截取用户真实的手机号码 if(StringUtils.isNotBlank(meituanOrderInfoExp.getMeituanOrderInfo().getCaution())){ meituanOrderInfoExp.getMeituanOrderInfo().setRealPhoneNum(subString(meituanOrderInfoExp.getMeituanOrderInfo().getCaution())); } } //更新美团订单表中的相关数据 //将美团数据同步过来后在进行设置是否进行处理 meituanOrderInfoExp.getMeituanOrderInfo().setIsHandle("0"); meituanOrderInfoMapper.updateOrderDate(meituanOrderInfoExp.getMeituanOrderInfo()); log.info("\n==>美团单号="+meituanOrderInfoExp.getMeituanOrderInfo().getOrderId()+"对字段解密入库成功!"); } }else{ log.info("解密失败,美团返回解密结果为"+obj); } }else{ log.info("根据订单AppPoiCode="+meituanOrderInfoExp.getMeituanOrderInfo().getAppPoiCode()+"没有查询到门店相关信息"); } } catch (Exception e) { log.info("解密失败,失败原因为"+e); } }
标签:info,newCachedThreadPool,Executors,JSONObject,meituanOrderInfoExp,getMeituanOrde From: https://www.cnblogs.com/qxqbk/p/18413277