首页 > 其他分享 >Executors.newCachedThreadPool()的使用

Executors.newCachedThreadPool()的使用

时间:2024-09-14 09:03:03浏览次数:1  
标签:info newCachedThreadPool Executors JSONObject meituanOrderInfoExp getMeituanOrde

//线程池
    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

相关文章

  • 目标检测与比对,使用yolov5s跑数据集构建模型
    1.1数据集下载我使用的是下面的数据集,有需要可去以下链接下载trianA数据集下载链接:https://pan.baidu.com/s/1zj3MqZEHKHpFACs95Ov4gQ?pwd=ma1ptrianB数据集下载链接:https://pan.baidu.com/s/1whg_-jLfbUnfpZkKjvdziQ?pwd=yg54 1.2yolov5s下载(1)官网......
  • C语言 ——— 学习并使用 #if …… #endif 条件编译指令
    目录何为条件编译指令常见的条件编译指令学习条件编译指令使用条件编译指令在程序预编译阶段,条件编译指令的代码转换多分支的条件编译指令何为条件编译指令在编译一个程序的时候,如果要将一条语句(一组语句)选择编译或者放弃时,就使用条件编译指令常见的条件编译指令#i......
  • SpringBoot:Web开发(基于SpringBoot使用MyBatis-Plus+JSP开发)
    目录前期准备构建项目(IDEA2023.1.2,JDK21,SpringBoot3.3.3)添加启动器Model准备这里我们利用MybatisX插件生成我们所需要的实体类、数据访问层以及服务层注意选择MyBatis-Plus3以及Lombok然后再在service接口中定义我们所需要的方法以及实现类(利用MyBatis-Plus省去我们......
  • 使用 Python 实现网络设备的自动发现
    以下是使用Python实现网络设备自动发现的一种方法:一、使用scapy库进行网络扫描scapy是一个强大的网络数据包处理库,可以用来发送和接收各种网络数据包,进行网络探测。1.安装scapy库:pipinstallscapy2.示例代码:fromscapy.allimport*defdiscover_devices(): ......
  • Notepad++ 使用 及 插件开发 记录
    Notepad++使用及插件开发记录Notepad++是一款免费的开源的跨平台的文本编辑器。支持语法高亮显示、语法折叠功能、宏、插件。类似软件有EmEditor、EditPad、Notepad2及Windows自带Notepad等。Notepad++和EmEditor功能更强。EmEditor打开文件更快,但是不开源、不免费、也没有D......
  • 78_JAVA_new的使用在JAVA与C++的异同之处
    Java和C++都使用new关键字来创建对象和分配内存,但它们在实现和使用上有一些重要的异同之处。以下是这两种语言中new使用的主要异同点:1. 内存管理Java:自动内存管理:Java使用垃圾回收(GarbageCollection,GC)机制来自动管理内存。对象的生命周期由垃圾回收器自动管理,......
  • 为什么在EffectiveJava中建议用EnumSet替代位字段,以及使用EnumMap替换序数索引
    在EffectiveJava中的第36条中建议用EnumSet替代位字段,在第37条中建议用EnumMap替换序数索引,为什么?EnumSet在EffectiveJava中的第36条中建议用EnumSet替代位字段36、用EnumSet替代位字段如果枚举类型的元素主要在Set中使用,传统上使用int枚举模式,通过不同的2的平......
  • 【油猴脚本】00003案例 Tampermonkey油猴脚本引入css 库,油猴脚本css库的使用
    前言:哈喽,大家好,今天给大家分享html+css绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦......
  • 使用NSSM把.Net Core部署至 Windows 服务
    1、官网http://www.nssm.cc/,下载地址http://www.nssm.cc/download2、下载后解压到自己喜欢的目录如:F:\work\nssm-2.24\win643、以管理员权限打开命令行工具,切换到nssm.exe所在路径,运行nssminstall,打开程序配置界面4、选择要部署的exe文件指定监听地址和端口如:dockerDemo.e......
  • vue3 tsx中使用hook
    代码使用方组件import{defineComponent,PropType,h,computed,ref,watch}from'vue';importuseMyHooksfrom'./hooks/useMyHooks';exportdefaultdefineComponent({setup(props,{slots}){const{count,increment,decrem......