diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..adfae25 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,311 @@ + + + + \ No newline at end of file diff --git a/.idea/iotlink.iml b/.idea/iotlink.iml new file mode 100644 index 0000000..174bcc9 --- /dev/null +++ b/.idea/iotlink.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_belerweb_pinyin4j_2_5_1.xml b/.idea/libraries/Maven__com_belerweb_pinyin4j_2_5_1.xml new file mode 100644 index 0000000..c5c1b4e --- /dev/null +++ b/.idea/libraries/Maven__com_belerweb_pinyin4j_2_5_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..36582bc --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..25ad51d --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 5a01f3f..c9359b7 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,27 @@ -

IoTLink 0.8.0

-
-star -fork -
+

IoTLink v1.0.0

基于SpringBoot开发的轻量级的物联网综合业务支撑平台

+

IoTLink

+> 提供开箱即用的物联卡云端SaaS部署和本地私有部署解决方案,为您的物联卡提供数据采集的服务器端PaaS平台支撑。 + + 使用 IoTLink 您可以: + +- 业务告警、生命周期分布、业务使用量情况 等一览平台数据信息。 +- 管理物联卡 用量记录、套餐封装、在线信息获取、智能诊断、分组备注、企业代理管理、预存、充值、返利 等。 +- 微信端 B端企业管理 toB 信息看板数据信息全局掌控 预存、返利、提现、诊断、充值、订单等便携数据处理。 +- 微信端 C端用户自查询 卡基本信息、用量、续费、预存、支付密码、常见问题、智能诊断、实名绑定 等 用户自处理操作。 + + +特色功能 + +1. 业务分离,独立操作 系统功能与业务执行分离 优化用户体验加强业务独立。 +2. 上游通道灵活配置,一次对接终生实用,支持二次开发、拓展、拒绝对接费用。 +3. 通道轮询进度查看 可查看通道下 用量、生命周期、激活时间 等各个类别轮询进度一手掌握。 +4. 关键数据私钥加密保障,全程加密传输 防止爬虫获取数据。 +5. 首页 数据一览一手掌控 业务告警、生命周期分布、业务量使用情况、平台数据信息 等。 +6. 商品、仓储、客户、合同、入款、发货 ERP企业常用功能拓展即将上线,敬请期待。 @@ -22,23 +37,7 @@ IoTLink基于 SpringBoot、Vue、Mybatis、RabbitMq、Mysql、Redis 等开发, 生命周期:重新定义了物联卡在使用过程中各个特征时期,目前分为七大生命周期,包括:可测试、库存、待激活、已激活、已停机、预销户、已销户(参考移动EC)。 -提供开箱即用的物联卡云端SaaS部署和本地私有部署解决方案,为您的物联卡提供数据采集的服务器端PaaS平台支撑。 - -使用 IoTLink 您可以: - --业务告警、生命周期分布、业务使用量情况 等一览平台数据信息。 --管理物联卡 用量记录、套餐封装、在线信息获取、智能诊断、分组备注、企业代理管理、预存、充值、返利 等。 --微信端 B端企业管理 toB 信息看板数据信息全局掌控 预存、返利、提现、诊断、充值、订单等便携数据处理。 --微信端 C端用户自查询 卡基本信息、用量、续费、预存、支付密码、常见问题、智能诊断、实名绑定 等 用户自处理操作。 - -特色功能 - -1. 业务分离,独立操作 系统功能与业务执行分离 优化用户体验加强业务独立。 -2. 上游通道灵活配置,一次对接终生实用,支持二次开发、拓展、拒绝对接费用。 -3. 通道轮询进度查看 可查看通道下 用量、生命周期、激活时间 等各个类别轮询进度一手掌握。 -4. 关键数据私钥加密保障,全程加密传输 防止爬虫获取数据。 -5. 首页 数据一览一手掌控 业务告警、生命周期分布、业务量使用情况、平台数据信息 等。 -6. 商品、仓储、客户、合同、入款、发货 ERP企业常用功能拓展即将上线,敬请期待。 +其他资料正在补充中... 特别鸣谢:[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue),[element](https://github.com/ElemeFE/element),[vue-element-admin](https://github.com/PanJiaChen/vue-element-admin),[eladmin-web](https://github.com/elunez/eladmin-web) @@ -60,6 +59,7 @@ IoTLink基于 SpringBoot、Vue、Mybatis、RabbitMq、Mysql、Redis 等开发, ![输入图片说明](http://doc.5iot.com/flie/FunctionList.jpg) + ## 1.4 愿景 愿所有的物联网公司、物联网从业者、物联网开发者享受开源的魅力。让物联网在不久的将来更具工具化,为各行各业赋能创造。 @@ -133,11 +133,12 @@ com.yunze ├── yunze-consumption-car-stop // 达量停机 消费者 ├── yunze-consumption-order // 订单充值 消费者 ├── yunze-consumption-update // yz_card_info 表修改 消费者 -├── yunze-generator // 代码生成 -├── yunze-quartz // 定时任务 -├── yunze-system // 系统代码 -├── yunze-admin // 后台服务 -├── yunze-ui // 页面前端代码 +├── yunze-generator // 代码生成 +├── yunze-quartz // 定时任务 +├── yunze-system // 系统代码 +├── yunze-admin // 后台服务 +├── yunze-ui // 页面前端代码 +├── yunze-timed-task // 定时任务执行 ``` @@ -176,11 +177,11 @@ com.yunze ``` -## 2.4 文档网站 +## 2.4 项目部署 -点击下方链接进入官方手册查看项目部署方式: +点击下方链接进入官方语雀帮助手册查看项目部署方式: -[http://doc.5iot.com](http://doc.5iot.com) +[如何快速部署 IoTLink](https://www.5iot.com/doc/?target=/md/deploy) 建议服务器最低配置: @@ -197,11 +198,11 @@ com.yunze **常见问题列表** -- [如何快速部署 IoTLink](http://doc.5iot.com/docs/guide/deploy.html) -- [目前支持哪些上游接口](http://doc.5iot.com/docs/iotlinkdoc/commonProblem.html#_1-%E7%9B%AE%E5%89%8D%E6%94%AF%E6%8C%81%E5%93%AA%E4%BA%9B%E4%B8%8A%E6%B8%B8%E6%8E%A5%E5%8F%A3) -- [为什么项目启动时报错](http://doc.5iot.com/docs/iotlinkdoc/commonProblem.html#_3-%E4%B8%BA%E4%BB%80%E4%B9%88%E9%A1%B9%E7%9B%AE%E5%90%AF%E5%8A%A8%E6%97%B6%E6%8A%A5%E9%94%99) -- [数据库使用 Group By 查询报错](http://doc.5iot.com/docs/iotlinkdoc/commonProblem.html#_4-%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BD%BF%E7%94%A8-group-by-%E6%9F%A5%E8%AF%A2%E6%8A%A5%E9%94%99) -- [项目每个分支的作用是什么](http://doc.5iot.com/docs/iotlinkdoc/commonProblem.html#_5-%E9%A1%B9%E7%9B%AE%E6%AF%8F%E4%B8%AA%E5%88%86%E6%94%AF%E7%9A%84%E4%BD%9C%E7%94%A8%E6%98%AF%E4%BB%80%E4%B9%88) +- [如何快速部署 IoTLink](https://www.5iot.com/doc/?target=/md/deploy) +- [目前支持哪些上游接口](https://www.5iot.com/doc/?target=/md/upstreamApi) +- [为什么项目启动时报错](https://www.5iot.com/doc/?target=/md/startError) +- [数据库使用 Group By 查询报错](https://www.5iot.com/doc/?target=/md/sqlError) +- [项目每个分支的作用是什么](https://www.5iot.com/doc/?target=/md/branchDescription) # 四、最近规划 @@ -219,43 +220,73 @@ com.yunze # 六、项目截图 -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page -light_page +![首页](http://doc.5iot.com/flie/pageShow/pageShow1-1.png) -## 微信web端 +![物联网卡管理](http://doc.5iot.com/flie/pageShow/pageShow2-1.png) -light_page -light_page -light_page -light_page -light_page -light_page +![卡详情](http://doc.5iot.com/flie/pageShow/pageShow2.1.png) + +![公司所属查询](http://doc.5iot.com/flie/pageShow/pageShow2.2.png) + +![更新基础信息](http://doc.5iot.com/flie/pageShow/pageShow2.3.png) + +![物联网卡设置](http://doc.5iot.com/flie/pageShow/pageShow3.png) + +![平台资费](http://doc.5iot.com/flie/pageShow/pageShow4.png) + +![资费订购](http://doc.5iot.com/flie/pageShow/pageShow5.png) + +![订购历史](http://doc.5iot.com/flie/pageShow/pageShow6.png) + +![用量详情](http://doc.5iot.com/flie/pageShow/pageShow7.png) + +![上游通道](http://doc.5iot.com/flie/pageShow/pageShow8.png) + +![上游通道详情](http://doc.5iot.com/flie/pageShow/pageShow8.1.png) + +![通道进度](http://doc.5iot.com/flie/pageShow/pageShow9.png) + +![执行任务管理](http://doc.5iot.com/flie/pageShow/pageShow10.png) + +![执行任务下载](http://doc.5iot.com/flie/pageShow/pageShow10.1.png) + +![内部管理](http://doc.5iot.com/flie/pageShow/pageShow11.png) + +![企业管理](http://doc.5iot.com/flie/pageShow/pageShow12.png) + +![角色管理](http://doc.5iot.com/flie/pageShow/pageShow13.png) + +![全部订单](http://doc.5iot.com/flie/pageShow/pageShow14.png) + +![定时任务](http://doc.5iot.com/flie/pageShow/pageShow15.png) + +![菜单管理](http://doc.5iot.com/flie/pageShow/pageShow16.png) + +![岗位管理](http://doc.5iot.com/flie/pageShow/pageShow17.png) + +![字典管理](http://doc.5iot.com/flie/pageShow/pageShow18.png) + +![参数设置](http://doc.5iot.com/flie/pageShow/pageShow19.png) + +![日志执行](http://doc.5iot.com/flie/pageShow/pageShow20.png) + +![规则管理](http://doc.5iot.com/flie/pageShow/pageShow21.png) + +![推送配置](http://doc.5iot.com/flie/pageShow/pageShow22.png) + +![推送记录](http://doc.5iot.com/flie/pageShow/pageShow23.png) + +![绑定卡号](http://doc.5iot.com/flie/pageShow/wxpageShow1.png) + +![主页](http://doc.5iot.com/flie/pageShow/wxpageShow2.png) + +![资费订购](http://doc.5iot.com/flie/pageShow/wxpageShow3.png) + +![流量查询](http://doc.5iot.com/flie/pageShow/wxpageShow4.png) + +![充值记录](http://doc.5iot.com/flie/pageShow/wxpageShow5.png) + +![购物下单](http://doc.5iot.com/flie/pageShow/wxpageShow6.png) diff --git a/doc/IoTLink操作手册v1.0.0.pdf b/doc/IoTLink操作手册v1.0.0.pdf new file mode 100644 index 0000000..4c91464 Binary files /dev/null and b/doc/IoTLink操作手册v1.0.0.pdf differ diff --git a/jar/依赖jar/IoTGateway-Sdk_2.7_fat.jar b/jar/依赖jar/IoTGateway-Sdk_2.7_fat.jar new file mode 100644 index 0000000..07563cb Binary files /dev/null and b/jar/依赖jar/IoTGateway-Sdk_2.7_fat.jar differ diff --git a/jar/依赖jar/README.md b/jar/依赖jar/README.md new file mode 100644 index 0000000..46758f2 --- /dev/null +++ b/jar/依赖jar/README.md @@ -0,0 +1,14 @@ + +# 目录说明 + +> 该jar包为 联通接口调用 需使用 (未封装成自然月联通结算周期为27至次月26号23:59:59) 目前 + +>在`yunze-apiCommon` 打包遇到缺少 com.cu.api 【联通jar包依赖,开源版本中目前暂未使用到,删除依赖即可】 时 可删除 jar依赖 + +>或者 添加 `IoTGateway-Sdk_2.7_fat.jar` 至你的maven仓库 + +>PS: -Dfile= ;后面是跟的你的jar地址 + +## 例: + +> mvn install:install-file -Dfile="C:\iotlink\jar\依赖jar\IoTGateway-Sdk_2.7_fat.jar" -DgroupId=com.cu -DartifactId=api -Dversion=2 -Dpackaging=jar \ No newline at end of file diff --git a/jar/依赖jar/yunze-apiCommon.zip b/jar/依赖jar/yunze-apiCommon.zip deleted file mode 100644 index d82539d..0000000 Binary files a/jar/依赖jar/yunze-apiCommon.zip and /dev/null differ diff --git a/mnt/yunze/download/csv/1.txt b/mnt/yunze/download/csv/1.txt new file mode 100644 index 0000000..e69de29 diff --git a/pom.xml b/pom.xml index a90dba7..85af316 100644 --- a/pom.xml +++ b/pom.xml @@ -6,14 +6,14 @@ com.yunze yunze - 0.8.0 + 1.0.0 yunze http://www.5iot.com IOT综合业务支撑平台 - 0.8.0 + 1.0.0 UTF-8 UTF-8 1.8 @@ -244,7 +244,9 @@ yunze-consumption-car-disconnected yunze-consumption-web-shopping yunze-consumption-web - + yunze-timed-task + yunze-apiCommon + yunze-consumption-car-api pom diff --git a/sql/README.md b/sql/README.md new file mode 100644 index 0000000..2ac0238 --- /dev/null +++ b/sql/README.md @@ -0,0 +1,19 @@ +## sql 文件夹说明 + + +### 命名规则 + +> 文件名以 ‘iotdb’ 开头 + 版本号 + 更新日期 如 【iotdb0.5.0-20220112.sql】 为 0.5.0 版本 更新 时间 为 2022-01-12 + +### 必须执行 SQL queryChildrenAreaInfo.sql + +> 'queryChildrenAreaInfo.sql' 为 查询企业下子企业 查询函数 用来控制权限管理 执行该 SQL 需要 root 账号去执行 + +### 如果您是首次部署 IoTLink + +> 如果您是首次部署 IoTLink 请直接执行 最新版本 一键一直版 SQL + + +### 如果您需要部署 微信端 + +> 如果您需要部署 微信端 功能 需要 执行 【iotdb0.7.0-202203331-wxWeb.sql】 SQL 文件。 diff --git a/sql/V1.0.0/0.8.0升级到1.0.1/iotdb1.0.0-20220830.sql b/sql/V1.0.0/0.8.0升级到1.0.1/iotdb1.0.0-20220830.sql new file mode 100644 index 0000000..ef4d100 --- /dev/null +++ b/sql/V1.0.0/0.8.0升级到1.0.1/iotdb1.0.0-20220830.sql @@ -0,0 +1,1599 @@ +# 该文件为 V0.8.0 升级到 V1.0.0 需执行文件 + + +# 菜单 批量更新 [2022-08-30] [zf] + +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '系统管理', `parent_id` = 0, `order_num` = 51, `path` = 'system', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'system', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = 'admin', `update_time` = '2021-08-06 12:29:06', `remark` = '系统管理目录' WHERE `menu_id` = 1; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '系统监控', `parent_id` = 1, `order_num` = 52, `path` = 'monitor', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'monitor', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = 'admin', `update_time` = '2022-01-15 15:13:01', `remark` = '系统监控目录' WHERE `menu_id` = 2; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '研发工具', `parent_id` = 1, `order_num` = 53, `path` = 'tool', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'tool', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = 'admin', `update_time` = '2022-01-15 15:13:08', `remark` = '系统工具目录' WHERE `menu_id` = 3; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '关于IoTLink', `parent_id` = 0, `order_num` = 2, `path` = 'iotlinkindex', `component` = 'Iotlinkindex', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'Iotlinkindex', `icon` = 'button', `create_by` = 'admin', `create_time` = '2022-02-14 13:50:56', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 8; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '内部管理', `parent_id` = 2027, `order_num` = 99, `path` = 'user', `component` = 'system/user/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '1', `status` = '1', `perms` = 'system:user:list', `icon` = 'star', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = 'admin', `update_time` = '2022-03-30 15:45:12', `remark` = '用户管理菜单' WHERE `menu_id` = 100; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '角色管理', `parent_id` = 2027, `order_num` = 6, `path` = 'role', `component` = 'system/role/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:role:list', `icon` = 'peoples', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = 'admin', `update_time` = '2021-10-12 09:41:23', `remark` = '角色管理菜单' WHERE `menu_id` = 101; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '菜单管理', `parent_id` = 1, `order_num` = 3, `path` = 'menu', `component` = 'system/menu/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:menu:list', `icon` = 'cascader', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = 'admin', `update_time` = '2022-04-21 16:38:29', `remark` = '菜单管理菜单' WHERE `menu_id` = 102; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '企业管理', `parent_id` = 2027, `order_num` = 1, `path` = 'dept', `component` = 'system/dept/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:dept:list', `icon` = 'tree', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = 'admin', `update_time` = '2022-04-21 16:42:57', `remark` = '部门管理菜单' WHERE `menu_id` = 103; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '岗位管理', `parent_id` = 1, `order_num` = 5, `path` = 'post', `component` = 'system/post/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '1', `status` = '0', `perms` = 'system:post:list', `icon` = 'post', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = 'admin', `update_time` = '2022-04-11 15:32:16', `remark` = '岗位管理菜单' WHERE `menu_id` = 104; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '字典管理', `parent_id` = 1, `order_num` = 6, `path` = 'dict', `component` = 'system/dict/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:dict:list', `icon` = 'dict', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '字典管理菜单' WHERE `menu_id` = 105; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '参数设置', `parent_id` = 1, `order_num` = 7, `path` = 'config', `component` = 'system/config/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:config:list', `icon` = 'edit', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '参数设置菜单' WHERE `menu_id` = 106; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '通知公告', `parent_id` = 1, `order_num` = 8, `path` = 'notice', `component` = 'system/notice/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:notice:list', `icon` = 'message', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '通知公告菜单' WHERE `menu_id` = 107; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '日志管理', `parent_id` = 1, `order_num` = 9, `path` = 'log', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'log', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '日志管理菜单' WHERE `menu_id` = 108; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '在线用户', `parent_id` = 2, `order_num` = 1, `path` = 'online', `component` = 'monitor/online/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:online:list', `icon` = 'online', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '在线用户菜单' WHERE `menu_id` = 109; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '定时任务', `parent_id` = 2, `order_num` = 2, `path` = 'job', `component` = 'monitor/job/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:job:list', `icon` = 'job', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '定时任务菜单' WHERE `menu_id` = 110; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '数据监控', `parent_id` = 2, `order_num` = 3, `path` = 'druid', `component` = 'monitor/druid/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:druid:list', `icon` = 'druid', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '数据监控菜单' WHERE `menu_id` = 111; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '服务监控', `parent_id` = 2, `order_num` = 4, `path` = 'server', `component` = 'monitor/server/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:server:list', `icon` = 'server', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '服务监控菜单' WHERE `menu_id` = 112; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '缓存监控', `parent_id` = 2, `order_num` = 5, `path` = 'cache', `component` = 'monitor/cache/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:cache:list', `icon` = 'redis', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '缓存监控菜单' WHERE `menu_id` = 113; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '表单构建', `parent_id` = 3, `order_num` = 1, `path` = 'build', `component` = 'tool/build/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'tool:build:list', `icon` = 'build', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '表单构建菜单' WHERE `menu_id` = 114; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '代码生成', `parent_id` = 3, `order_num` = 2, `path` = 'gen', `component` = 'tool/gen/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'tool:gen:list', `icon` = 'code', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '代码生成菜单' WHERE `menu_id` = 115; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '系统接口', `parent_id` = 3, `order_num` = 3, `path` = 'swagger', `component` = 'tool/swagger/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'tool:swagger:list', `icon` = 'swagger', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '系统接口菜单' WHERE `menu_id` = 116; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '操作日志', `parent_id` = 108, `order_num` = 1, `path` = 'operlog', `component` = 'monitor/operlog/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:operlog:list', `icon` = 'form', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '操作日志菜单' WHERE `menu_id` = 500; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '登录日志', `parent_id` = 108, `order_num` = 2, `path` = 'logininfor', `component` = 'monitor/logininfor/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:logininfor:list', `icon` = 'logininfor', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '登录日志菜单' WHERE `menu_id` = 501; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户查询', `parent_id` = 100, `order_num` = 1, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1001; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户新增', `parent_id` = 100, `order_num` = 2, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1002; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户修改', `parent_id` = 100, `order_num` = 3, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1003; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户删除', `parent_id` = 100, `order_num` = 4, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1004; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户导出', `parent_id` = 100, `order_num` = 5, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:export', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1005; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户导入', `parent_id` = 100, `order_num` = 6, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:import', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1006; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '重置密码', `parent_id` = 100, `order_num` = 7, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:resetPwd', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1007; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '角色查询', `parent_id` = 101, `order_num` = 1, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:role:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1008; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '角色新增', `parent_id` = 101, `order_num` = 2, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:role:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1009; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '角色修改', `parent_id` = 101, `order_num` = 3, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:role:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1010; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '角色删除', `parent_id` = 101, `order_num` = 4, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:role:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1011; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '角色导出', `parent_id` = 101, `order_num` = 5, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:role:export', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1012; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '菜单查询', `parent_id` = 102, `order_num` = 1, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:menu:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1013; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '菜单新增', `parent_id` = 102, `order_num` = 2, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:menu:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1014; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '菜单修改', `parent_id` = 102, `order_num` = 3, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:menu:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1015; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '菜单删除', `parent_id` = 102, `order_num` = 4, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:menu:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1016; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '部门查询', `parent_id` = 103, `order_num` = 1, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dept:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1017; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '部门新增', `parent_id` = 103, `order_num` = 2, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dept:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1018; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '部门修改', `parent_id` = 103, `order_num` = 3, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dept:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1019; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '部门删除', `parent_id` = 103, `order_num` = 4, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dept:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1020; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '岗位查询', `parent_id` = 104, `order_num` = 1, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:post:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1021; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '岗位新增', `parent_id` = 104, `order_num` = 2, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:post:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1022; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '岗位修改', `parent_id` = 104, `order_num` = 3, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:post:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1023; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '岗位删除', `parent_id` = 104, `order_num` = 4, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:post:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1024; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '岗位导出', `parent_id` = 104, `order_num` = 5, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:post:export', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1025; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '字典查询', `parent_id` = 105, `order_num` = 1, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dict:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1026; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '字典新增', `parent_id` = 105, `order_num` = 2, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dict:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1027; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '字典修改', `parent_id` = 105, `order_num` = 3, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dict:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1028; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '字典删除', `parent_id` = 105, `order_num` = 4, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dict:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1029; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '字典导出', `parent_id` = 105, `order_num` = 5, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dict:export', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1030; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '参数查询', `parent_id` = 106, `order_num` = 1, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:config:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1031; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '参数新增', `parent_id` = 106, `order_num` = 2, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:config:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1032; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '参数修改', `parent_id` = 106, `order_num` = 3, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:config:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1033; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '参数删除', `parent_id` = 106, `order_num` = 4, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:config:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1034; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '参数导出', `parent_id` = 106, `order_num` = 5, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:config:export', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1035; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '公告查询', `parent_id` = 107, `order_num` = 1, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:notice:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1036; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '公告新增', `parent_id` = 107, `order_num` = 2, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:notice:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1037; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '公告修改', `parent_id` = 107, `order_num` = 3, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:notice:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1038; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '公告删除', `parent_id` = 107, `order_num` = 4, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:notice:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1039; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '操作查询', `parent_id` = 500, `order_num` = 1, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:operlog:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1040; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '操作删除', `parent_id` = 500, `order_num` = 2, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:operlog:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1041; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '日志导出', `parent_id` = 500, `order_num` = 4, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:operlog:export', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1042; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '登录查询', `parent_id` = 501, `order_num` = 1, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:logininfor:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1043; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '登录删除', `parent_id` = 501, `order_num` = 2, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:logininfor:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1044; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '日志导出', `parent_id` = 501, `order_num` = 3, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:logininfor:export', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1045; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '在线查询', `parent_id` = 109, `order_num` = 1, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:online:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1046; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '批量强退', `parent_id` = 109, `order_num` = 2, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:online:batchLogout', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1047; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '单条强退', `parent_id` = 109, `order_num` = 3, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:online:forceLogout', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1048; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '任务查询', `parent_id` = 110, `order_num` = 1, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:job:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1049; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '任务新增', `parent_id` = 110, `order_num` = 2, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:job:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1050; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '任务修改', `parent_id` = 110, `order_num` = 3, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:job:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1051; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '任务删除', `parent_id` = 110, `order_num` = 4, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:job:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1052; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '状态修改', `parent_id` = 110, `order_num` = 5, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:job:changeStatus', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1053; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '任务导出', `parent_id` = 110, `order_num` = 7, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:job:export', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1054; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '生成查询', `parent_id` = 115, `order_num` = 1, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'tool:gen:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1055; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '生成修改', `parent_id` = 115, `order_num` = 2, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'tool:gen:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1056; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '生成删除', `parent_id` = 115, `order_num` = 3, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'tool:gen:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1057; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '导入代码', `parent_id` = 115, `order_num` = 2, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'tool:gen:import', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1058; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '预览代码', `parent_id` = 115, `order_num` = 4, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'tool:gen:preview', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1059; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '生成代码', `parent_id` = 115, `order_num` = 5, `path` = '#', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'tool:gen:code', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1060; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '通信管理', `parent_id` = 0, `order_num` = 19, `path` = 'card', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'excel', `create_by` = 'admin', `create_time` = '2021-06-05 10:59:36', `update_by` = 'admin', `update_time` = '2022-06-21 12:25:32', `remark` = '' WHERE `menu_id` = 2000; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '物联卡管理', `parent_id` = 2000, `order_num` = 0, `path` = 'card', `component` = 'yunze/flowcard/card/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:card:list', `icon` = 'date', `create_by` = 'admin', `create_time` = '2021-06-05 11:00:26', `update_by` = 'admin', `update_time` = '2021-10-30 10:55:32', `remark` = '' WHERE `menu_id` = 2001; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '详情查询', `parent_id` = 2001, `order_num` = 2, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:find', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-09 13:48:19', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2003; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '查询套餐信息', `parent_id` = 2001, `order_num` = 99, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:queryflow', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-09 13:51:13', `update_by` = 'admin', `update_time` = '2021-06-11 14:20:22', `remark` = '' WHERE `menu_id` = 2004; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '在线信息查询', `parent_id` = 2003, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:queryOnlineStatus', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-11 09:21:29', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2005; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '套餐简要信息查询', `parent_id` = 2003, `order_num` = 0, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:cardFlow:queryflowSimple', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-11 09:23:33', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2006; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '查询简要套餐名称', `parent_id` = 2001, `order_num` = 3, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:cardFlow:queryPackageSimple', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-11 14:20:13', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2008; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '导出', `parent_id` = 2001, `order_num` = 4, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:exportData', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-15 12:34:30', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2009; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '查询API通道名称', `parent_id` = 2001, `order_num` = 5, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:cardRoute:findSp', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-15 17:10:14', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2010; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '查询参数API通道', `parent_id` = 2001, `order_num` = 6, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:queryParamsChannelId', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-16 09:13:34', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2011; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '物联卡通道', `parent_id` = 2000, `order_num` = 22, `path` = 'channel', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'tree', `create_by` = 'admin', `create_time` = '2021-06-19 11:22:42', `update_by` = 'admin', `update_time` = '2022-01-15 15:27:33', `remark` = '' WHERE `menu_id` = 2012; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '通道管理', `parent_id` = 2012, `order_num` = 0, `path` = 'cardRoute', `component` = 'yunze/API/cardRoute/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:cardRoute:list', `icon` = 'cascader', `create_by` = 'admin', `create_time` = '2021-06-19 12:27:16', `update_by` = 'admin', `update_time` = '2022-01-15 15:29:48', `remark` = '' WHERE `menu_id` = 2013; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '通道详情', `parent_id` = 2013, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:cardRoute:find', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-21 09:04:27', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2014; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '通道编辑', `parent_id` = 2013, `order_num` = 2, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:cardRoute:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-21 09:04:43', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2015; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '通道删除', `parent_id` = 2013, `order_num` = 3, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:cardRoute:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-21 09:04:59', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2016; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '查询公司所属', `parent_id` = 0, `order_num` = 0, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:listAgent', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-21 11:18:33', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2017; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '执行日志', `parent_id` = 108, `order_num` = 0, `path` = 'ExecutionTask', `component` = 'yunze/flowcard/executionTask', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:ExecutionTask:list', `icon` = 'server', `create_by` = 'admin', `create_time` = '2021-06-21 13:39:44', `update_by` = 'admin', `update_time` = '2022-01-15 15:32:06', `remark` = '' WHERE `menu_id` = 2018; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '执行任务下载', `parent_id` = 2018, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:executionTask:download', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-21 14:32:39', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2019; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '平台资费', `parent_id` = 2109, `order_num` = 1, `path` = 'tariffGroup', `component` = 'yunze/flowcard/tariffGroup/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffGroup:list', `icon` = 'validCode', `create_by` = 'admin', `create_time` = '2021-06-22 10:44:50', `update_by` = 'admin', `update_time` = '2021-10-30 10:58:51', `remark` = '' WHERE `menu_id` = 2020; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '客户资费', `parent_id` = 2109, `order_num` = 2, `path` = 'agentTariffGroup', `component` = 'yunze/flowcard/tariffGroup/agent', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:agentTariffGroup:list', `icon` = 'validCode', `create_by` = 'admin', `create_time` = '2021-06-22 11:58:20', `update_by` = 'admin', `update_time` = '2022-03-03 15:38:56', `remark` = '' WHERE `menu_id` = 2021; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '平台资费组新增', `parent_id` = 2020, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffGroup:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-23 16:00:39', `update_by` = 'admin', `update_time` = '2021-06-23 16:17:58', `remark` = '' WHERE `menu_id` = 2022; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '平台资费组编辑', `parent_id` = 2020, `order_num` = 2, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffGroup:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-23 16:14:55', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2023; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '平台资费计划新增', `parent_id` = 2020, `order_num` = 4, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffPlan:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-23 16:16:22', `update_by` = 'admin', `update_time` = '2022-04-28 14:08:03', `remark` = '' WHERE `menu_id` = 2024; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '平台资费计划详情', `parent_id` = 2020, `order_num` = 5, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffPlan:find', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-23 16:17:05', `update_by` = 'admin', `update_time` = '2022-04-28 14:08:10', `remark` = '' WHERE `menu_id` = 2025; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '平台资费计划编辑', `parent_id` = 2020, `order_num` = 6, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffPlan:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-23 16:17:43', `update_by` = 'admin', `update_time` = '2022-04-28 14:08:15', `remark` = '' WHERE `menu_id` = 2026; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '账号管理', `parent_id` = 2125, `order_num` = 0, `path` = 'agent', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'peoples', `create_by` = 'admin', `create_time` = '2021-06-25 09:29:24', `update_by` = 'admin', `update_time` = '2022-01-15 15:09:04', `remark` = '' WHERE `menu_id` = 2027; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '企业列表', `parent_id` = 2027, `order_num` = 98, `path` = 'agent', `component` = 'yunze/user/agent/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '1', `status` = '1', `perms` = 'yunze:agent:list', `icon` = 'excel', `create_by` = 'admin', `create_time` = '2021-06-25 09:32:10', `update_by` = 'admin', `update_time` = '2022-03-30 15:45:01', `remark` = '' WHERE `menu_id` = 2028; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户查询', `parent_id` = 2028, `order_num` = 1, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2029; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户新增', `parent_id` = 2028, `order_num` = 2, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2030; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户修改', `parent_id` = 2028, `order_num` = 3, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2031; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户删除', `parent_id` = 2028, `order_num` = 4, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2032; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户导出', `parent_id` = 2028, `order_num` = 5, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:export', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2033; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户导入', `parent_id` = 2028, `order_num` = 6, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:import', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2034; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '重置密码', `parent_id` = 2028, `order_num` = 7, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:resetPwd', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2035; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '划分资费查看', `parent_id` = 2028, `order_num` = 0, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:DividePlan', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-28 14:03:36', `update_by` = 'admin', `update_time` = '2021-06-28 14:14:43', `remark` = '' WHERE `menu_id` = 2037; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '划分保存', `parent_id` = 2037, `order_num` = 10, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffGroup:tariffDivision', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-28 14:15:33', `update_by` = 'admin', `update_time` = '2021-06-28 14:39:09', `remark` = '' WHERE `menu_id` = 2038; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '资费组查询', `parent_id` = 2037, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffGroup:findPackage', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-28 14:17:37', `update_by` = 'admin', `update_time` = '2021-06-28 14:18:03', `remark` = '' WHERE `menu_id` = 2039; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '资费计划查询', `parent_id` = 2037, `order_num` = 2, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffPlan:findPacket', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-28 14:39:01', `update_by` = 'admin', `update_time` = '2021-06-28 14:40:33', `remark` = '' WHERE `menu_id` = 2040; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户信息', `parent_id` = 2027, `order_num` = 2, `path` = 'agentUser', `component` = 'yunze/user/agentUser/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:list', `icon` = 'user', `create_by` = 'admin', `create_time` = '2021-06-25 09:32:10', `update_by` = 'admin', `update_time` = '2022-04-21 16:43:03', `remark` = '' WHERE `menu_id` = 2041; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户查询', `parent_id` = 2041, `order_num` = 1, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:query', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2042; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户新增', `parent_id` = 2041, `order_num` = 2, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:add', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2043; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户修改', `parent_id` = 2041, `order_num` = 3, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:edit', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2044; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用户删除', `parent_id` = 2041, `order_num` = 4, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:remove', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2045; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '重置密码', `parent_id` = 2041, `order_num` = 7, `path` = '', `component` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:resetPwd', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2048; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '划分资费查看', `parent_id` = 2041, `order_num` = 0, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:agent:DividePlan', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-28 14:03:36', `update_by` = 'admin', `update_time` = '2021-06-28 14:14:43', `remark` = '' WHERE `menu_id` = 2050; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '划分保存', `parent_id` = 2050, `order_num` = 10, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffGroup:agentTariffDivision', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-28 14:15:33', `update_by` = 'admin', `update_time` = '2021-06-29 13:33:58', `remark` = '' WHERE `menu_id` = 2051; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '资费组查询', `parent_id` = 2050, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffGroup:findPackage', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-28 14:17:37', `update_by` = 'admin', `update_time` = '2021-06-28 14:18:03', `remark` = '' WHERE `menu_id` = 2052; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '资费计划查询', `parent_id` = 2050, `order_num` = 2, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffPlan:findPacket', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-06-28 14:39:01', `update_by` = 'admin', `update_time` = '2021-06-28 14:40:33', `remark` = '' WHERE `menu_id` = 2053; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '卡板划分', `parent_id` = 2001, `order_num` = 7, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:divide', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-07-02 10:00:00', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2058; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '部门所属人员查询', `parent_id` = 2058, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:findDeptUser', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-07-02 10:01:49', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2059; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '同步用量', `parent_id` = 2001, `order_num` = 8, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:SynFlow', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-07-21 18:04:29', `update_by` = 'admin', `update_time` = '2021-07-21 18:05:02', `remark` = '' WHERE `menu_id` = 2060; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '同步状态', `parent_id` = 2001, `order_num` = 9, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:SynStatus', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-07-21 18:04:46', `update_by` = 'admin', `update_time` = '2021-07-21 18:05:08', `remark` = '' WHERE `menu_id` = 2061; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '机卡解绑', `parent_id` = 2001, `order_num` = 10, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:CardBinding', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-07-26 13:09:59', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2062; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '订单管理', `parent_id` = 2125, `order_num` = 23, `path` = 'order', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'chart', `create_by` = 'admin', `create_time` = '2021-08-06 12:28:49', `update_by` = 'admin', `update_time` = '2022-08-03 11:17:48', `remark` = '' WHERE `menu_id` = 2063; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '系统订单', `parent_id` = 2063, `order_num` = 10, `path` = 'OrderAll', `component` = 'yunze/order/ordeAll', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:order:list', `icon` = 'chart', `create_by` = 'admin', `create_time` = '2021-08-06 12:32:11', `update_by` = 'admin', `update_time` = '2022-04-11 15:32:49', `remark` = '' WHERE `menu_id` = 2064; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '订单列表查询', `parent_id` = 2063, `order_num` = 0, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:order:list', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-08-06 12:32:56', `update_by` = 'admin', `update_time` = '2021-08-06 12:33:03', `remark` = '' WHERE `menu_id` = 2065; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '可查询删除订单', `parent_id` = 2063, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:order:dellist', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-08-09 11:04:05', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2066; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '手动执行加包', `parent_id` = 2063, `order_num` = 2, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:order:manualaddPackage', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-08-09 11:13:19', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2067; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '金额订单', `parent_id` = 2063, `order_num` = 11, `path` = 'OrderMoney', `component` = 'yunze/order/orderMoney', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:order:list', `icon` = 'money', `create_by` = 'admin', `create_time` = '2021-08-09 11:51:56', `update_by` = 'admin', `update_time` = '2021-08-09 11:52:37', `remark` = '' WHERE `menu_id` = 2068; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '资费订单', `parent_id` = 2063, `order_num` = 12, `path` = 'OrderTariff', `component` = 'yunze/order/orderTariff', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:order:list', `icon` = 'size', `create_by` = 'admin', `create_time` = '2021-08-09 12:03:34', `update_by` = 'admin', `update_time` = '2021-09-27 10:17:37', `remark` = '' WHERE `menu_id` = 2069; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '订单详情', `parent_id` = 2063, `order_num` = 3, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:order:findOrder', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-08-10 17:08:32', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2070; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '资费订购', `parent_id` = 2109, `order_num` = 3, `path` = 'rechargeTariff', `component` = 'yunze/flowcard/rechargeTariff/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:order:addPackage', `icon` = 'money', `create_by` = 'admin', `create_time` = '2021-08-11 11:47:00', `update_by` = 'admin', `update_time` = '2022-03-03 15:38:35', `remark` = '' WHERE `menu_id` = 2071; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '查询单条 资费计划 简要', `parent_id` = 2071, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:cardFlow:FindPacket', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-08-12 11:04:20', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2072; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '物联卡设置', `parent_id` = 2000, `order_num` = 1, `path` = 'cardSetting', `component` = 'yunze/flowcard/cardSetting/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:card:Setting', `icon` = 'system', `create_by` = 'admin', `create_time` = '2021-08-17 08:23:21', `update_by` = 'admin', `update_time` = '2021-10-30 11:06:55', `remark` = '' WHERE `menu_id` = 2073; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '划分通道获取通道名称', `parent_id` = 2073, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:cardRoute:findCr', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-08-17 12:16:00', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2074; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '平台导入充值', `parent_id` = 2071, `order_num` = 2, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:order:importRecharge', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-08-18 11:33:57', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2075; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '连接管理导入设置', `parent_id` = 2073, `order_num` = 2, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:importSet', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-08-18 11:35:15', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2076; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '特殊操作', `parent_id` = 3, `order_num` = 4, `path` = 'specialOperation', `component` = 'yunze/specialOperation/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:card:importSelImei', `icon` = 'system', `create_by` = 'admin', `create_time` = '2021-08-20 15:09:10', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2079; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '导入', `parent_id` = 2001, `order_num` = 11, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:import', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-08-23 15:47:34', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2080; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '是否内部人员', `parent_id` = 0, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:sys:internal', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-09-03 14:24:54', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2081; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用量详情', `parent_id` = 2109, `order_num` = 7, `path` = 'flowhis', `component` = 'yunze/flowcard/card/cardFlowHis', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '1', `status` = '0', `perms` = 'yunze:flowhis:list', `icon` = 'monitor', `create_by` = 'admin', `create_time` = '2021-08-25 10:55:35', `update_by` = 'admin', `update_time` = '2022-04-22 13:28:11', `remark` = '' WHERE `menu_id` = 2082; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '通道轮询', `parent_id` = 2012, `order_num` = 2, `path` = 'polling', `component` = 'yunze/API/polling/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:polling:list', `icon` = 'online', `create_by` = 'admin', `create_time` = '2021-08-26 11:19:57', `update_by` = 'admin', `update_time` = '2022-01-15 15:29:41', `remark` = '' WHERE `menu_id` = 2084; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '订购历史', `parent_id` = 2109, `order_num` = 6, `path` = 'flow', `component` = 'yunze/flowcard/card/cardFlow', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:flow:list', `icon` = 'cardActivation', `create_by` = 'admin', `create_time` = '2021-09-02 08:48:44', `update_by` = 'admin', `update_time` = '2022-04-21 16:39:05', `remark` = '' WHERE `menu_id` = 2085; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '系统日志', `parent_id` = 108, `order_num` = 3, `path` = 'sysLog', `component` = 'yunze/system/sysLog/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:sysLog:list', `icon` = 'skill', `create_by` = 'admin', `create_time` = '2021-08-23 14:53:03', `update_by` = 'admin', `update_time` = '2022-01-15 15:31:59', `remark` = '' WHERE `menu_id` = 2086; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '订购资费查询', `parent_id` = 2001, `order_num` = 12, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:flow:list', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-09-18 09:31:28', `update_by` = 'admin', `update_time` = '2021-09-30 14:47:33', `remark` = '' WHERE `menu_id` = 2087; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '导入查询', `parent_id` = 2001, `order_num` = 13, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:ImportQuery', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-09-23 09:22:31', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2088; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '购物订单', `parent_id` = 2063, `order_num` = 13, `path` = 'OrderShopping', `component` = 'yunze/order/OrderShopping', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:order:list', `icon` = 'shopping', `create_by` = 'admin', `create_time` = '2021-09-27 10:16:46', `update_by` = 'admin', `update_time` = '2021-09-27 10:17:13', `remark` = '' WHERE `menu_id` = 2089; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '卡信息变更查询', `parent_id` = 2001, `order_num` = 14, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:change:list', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-09-27 13:31:00', `update_by` = 'admin', `update_time` = '2021-09-30 15:00:20', `remark` = '' WHERE `menu_id` = 2093; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '查询发货订单', `parent_id` = 2089, `order_num` = 21, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:order:findShip', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-09-30 11:28:54', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2102; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用量详情', `parent_id` = 2001, `order_num` = 16, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:flowhis:list', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-09-30 15:00:11', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2104; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '变更卡分组、备注', `parent_id` = 2001, `order_num` = 17, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:importSetCardInfo', `icon` = 'system', `create_by` = 'admin', `create_time` = '2021-10-14 09:45:45', `update_by` = 'admin', `update_time` = '2021-10-14 17:30:18', `remark` = '' WHERE `menu_id` = 2106; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '设备管理', `parent_id` = 2000, `order_num` = 8, `path` = 'card', `component` = 'yunze/flowcard/card/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '1', `perms` = 'yunze:card:list', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-10-30 10:50:56', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2108; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '物联卡资费', `parent_id` = 2000, `order_num` = 21, `path` = 'TariffGroup', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'button', `create_by` = 'admin', `create_time` = '2021-10-30 10:58:35', `update_by` = 'admin', `update_time` = '2022-02-18 10:03:45', `remark` = '' WHERE `menu_id` = 2109; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '批量停复机、断开网', `parent_id` = 2001, `order_num` = 18, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:ApiUpdBatch', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-11-02 13:15:53', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2110; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '规则管理', `parent_id` = 2114, `order_num` = 1, `path` = 'cc', `component` = 'yunze/automation/cc/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:cc:list', `icon` = 'email', `create_by` = 'admin', `create_time` = '2021-10-13 13:46:33', `update_by` = 'admin', `update_time` = '2022-01-15 15:37:15', `remark` = '' WHERE `menu_id` = 2111; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '推送记录', `parent_id` = 2114, `order_num` = 3, `path` = 'cchis', `component` = 'yunze/automation/cchis/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:cchis:list', `icon` = 'form', `create_by` = 'admin', `create_time` = '2021-10-19 15:27:32', `update_by` = 'admin', `update_time` = '2022-01-15 15:34:05', `remark` = '' WHERE `menu_id` = 2112; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '推送配置', `parent_id` = 2114, `order_num` = 2, `path` = 'ccurl', `component` = 'yunze/automation/ccurl/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:ccurl:list', `icon` = 'upload', `create_by` = 'admin', `create_time` = '2021-10-19 16:59:20', `update_by` = 'admin', `update_time` = '2022-01-15 15:33:57', `remark` = '' WHERE `menu_id` = 2113; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '自动化规则', `parent_id` = 0, `order_num` = 26, `path` = 'loglog', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'guide', `create_by` = 'admin', `create_time` = '2021-10-13 13:39:34', `update_by` = 'admin', `update_time` = '2022-01-15 15:11:17', `remark` = '' WHERE `menu_id` = 2114; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '客户管理', `parent_id` = 0, `order_num` = 20, `path` = 'market', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'server', `create_by` = 'admin', `create_time` = '2021-12-07 12:14:02', `update_by` = 'admin', `update_time` = '2022-01-15 15:08:20', `remark` = '' WHERE `menu_id` = 2125; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '导出订单', `parent_id` = 2063, `order_num` = 4, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:order:outOrder', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-12-08 16:39:06', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2137; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '勾选式停机', `parent_id` = 2001, `order_num` = 20, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:Stopped', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-12-28 09:04:24', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2153; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '勾选式复机', `parent_id` = 2001, `order_num` = 21, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:MachineArr', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-12-28 09:04:52', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2154; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '勾选式断网', `parent_id` = 2001, `order_num` = 22, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:DisconnectNetworkArr', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-12-28 09:05:18', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2155; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '勾选式开网', `parent_id` = 2001, `order_num` = 23, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:OpenNetworkArr', `icon` = '#', `create_by` = 'admin', `create_time` = '2021-12-28 09:05:38', `update_by` = 'admin', `update_time` = '2021-12-28 09:06:00', `remark` = '' WHERE `menu_id` = 2156; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '勾选式批量同步用量', `parent_id` = 2001, `order_num` = 24, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:ConsumptionArr', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-10 10:24:57', `update_by` = 'admin', `update_time` = '2022-01-10 10:26:46', `remark` = '' WHERE `menu_id` = 2167; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '勾选式同步状态', `parent_id` = 2001, `order_num` = 25, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:PublicMethodArr', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-10 10:25:15', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2168; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '勾选式同步状态和用量', `parent_id` = 2001, `order_num` = 26, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:ConsumptionAndStateArr', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-10 10:25:39', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2169; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '获取自动化管理抄送名字', `parent_id` = 2114, `order_num` = 4, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:cc:nameadd', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-12 10:41:45', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2170; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '首页加载', `parent_id` = 0, `order_num` = 27, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:findToDay', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:15:09', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2172; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '已停机数量', `parent_id` = 2172, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:downCount', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2173; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '超用量数量', `parent_id` = 2172, `order_num` = 2, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:overdoseCount', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2175; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '快到期数量', `parent_id` = 2172, `order_num` = 3, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:expiringSoonCount', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2176; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '已达阈值数量', `parent_id` = 2172, `order_num` = 4, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:thresholdReachedCount', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2177; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = 'Sim卡总数', `parent_id` = 2172, `order_num` = 5, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:simCardCount', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2178; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = 'Sim卡本月新增数量', `parent_id` = 2172, `order_num` = 6, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:simCardNewCount', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2179; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '本月数据用量GB', `parent_id` = 2172, `order_num` = 7, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:currentMonth', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2180; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = 'SIm卡活跃度', `parent_id` = 2172, `order_num` = 8, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:simActivity', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2181; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '生命周期分布', `parent_id` = 2172, `order_num` = 9, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:lifeCycleDistribution', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2182; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '业务使用情况-数据', `parent_id` = 2172, `order_num` = 10, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:businessVolumeFlow', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2183; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '业务使用情况-语音', `parent_id` = 2172, `order_num` = 11, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:businessVolumeVoice', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2184; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '业务使用情况-短信', `parent_id` = 2172, `order_num` = 12, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:businessVolumeMessage', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2185; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '微信订单收款', `parent_id` = 2172, `order_num` = 17, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:weChatOrderCollection', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2190; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '本月订单总金额', `parent_id` = 2172, `order_num` = 18, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:orderAmount', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2191; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '系统企业总数', `parent_id` = 2172, `order_num` = 19, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:systemCliqueCount', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2192; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '系统用户总数', `parent_id` = 2172, `order_num` = 20, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:systemUserCount', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2193; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '本月激活卡数', `parent_id` = 2172, `order_num` = 21, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:activationCardCount', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2194; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '本月发货卡数', `parent_id` = 2172, `order_num` = 22, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:shipCard', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2195; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '本月登录ip总数', `parent_id` = 2172, `order_num` = 23, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:logInIp', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 10:16:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2196; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '在线用户', `parent_id` = 2172, `order_num` = 24, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:index:onlineCount', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-01-26 16:37:47', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2197; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '物联卡诊断', `parent_id` = 2000, `order_num` = 19, `path` = 'diagnosis', `component` = 'yunze/flowcard/diagnosis/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'yunze:card:diagnosis', `icon` = 'druid', `create_by` = 'admin', `create_time` = '2022-02-15 10:20:29', `update_by` = 'admin', `update_time` = '2022-02-18 10:04:40', `remark` = '' WHERE `menu_id` = 2202; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '物联卡匹对', `parent_id` = 2202, `order_num` = 6, `path` = 'cardMatch', `component` = 'yunze/flowcard/cardMatch/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:cardMatch', `icon` = 'search', `create_by` = 'admin', `create_time` = '2022-02-18 10:01:46', `update_by` = 'admin', `update_time` = '2022-03-24 15:35:54', `remark` = '' WHERE `menu_id` = 2203; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '授信', `parent_id` = 103, `order_num` = 5, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:dept:credit', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-02-25 15:15:12', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2204; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '企业预存', `parent_id` = 103, `order_num` = 6, `path` = 'deptPrestore', `component` = 'yunze/system/deptPrestore/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dept:prestore', `icon` = 'money', `create_by` = 'admin', `create_time` = '2022-03-01 11:37:00', `update_by` = 'admin', `update_time` = '2022-03-01 16:07:10', `remark` = '' WHERE `menu_id` = 2205; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '企业预存-微信支付', `parent_id` = 103, `order_num` = 7, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:dept:initiatePreSave', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-03-01 16:07:03', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2206; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = 'API使用', `parent_id` = 2209, `order_num` = 5, `path` = 'apifile', `component` = 'tool/apifile/index', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'tool:apifile:list', `icon` = 'slider', `create_by` = 'admin', `create_time` = '2022-02-17 13:31:29', `update_by` = 'admin', `update_time` = '2022-03-02 17:59:51', `remark` = '' WHERE `menu_id` = 2208; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = 'API集成', `parent_id` = 1, `order_num` = 54, `path` = 'AapIntegrated', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = NULL, `icon` = 'Ip', `create_by` = 'admin', `create_time` = '2022-03-02 17:35:48', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2209; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '批量取消实名', `parent_id` = 2001, `order_num` = 27, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:cancelrealname', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-03-03 09:48:48', `update_by` = 'admin', `update_time` = '2022-03-03 09:48:58', `remark` = '' WHERE `menu_id` = 2214; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '用量详情导出', `parent_id` = 2082, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:flowhis:exportflowhis', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-03-03 10:01:41', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2219; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '单卡停机原因查询', `parent_id` = 2202, `order_num` = 1, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:simStopReason', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-03-04 09:09:11', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2238; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '单卡开关机状态实时查询', `parent_id` = 2202, `order_num` = 2, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:onOffStatus', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-03-04 09:09:29', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2239; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '单卡已开通APN信息查询', `parent_id` = 2202, `order_num` = 3, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:apnInfo', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-03-04 09:09:43', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2240; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '物联卡机卡分离状态查询', `parent_id` = 2202, `order_num` = 4, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:cardBindStatus', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-03-04 09:10:00', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2241; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '单卡状态变更历史查询', `parent_id` = 2202, `order_num` = 5, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:simChangeHistory', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-03-04 09:10:14', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2242; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '卡信息更新', `parent_id` = 2001, `order_num` = 28, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:card:replace', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-03-14 14:52:58', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2252; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '划分资费系统内部使用', `parent_id` = 2041, `order_num` = 5, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:sys:DividePlan', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-03-29 14:22:06', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2253; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '通道查询资费组', `parent_id` = 2013, `order_num` = 10, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:cardRoute:packageRoute', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-04-28 13:52:01', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2269; +UPDATE `iotdb`.`sys_menu` SET `menu_name` = '平台资费组详情', `parent_id` = 2020, `order_num` = 3, `path` = '', `component` = NULL, `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'yunze:tariffGroup:find', `icon` = '#', `create_by` = 'admin', `create_time` = '2022-04-28 14:07:53', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `menu_id` = 2270; + + +## 菜单新增 [2022-08-30] [zf] + +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2090, '产品管理', 2116, 0, 'commodity', NULL, 1, 0, 'M', '0', '0', '', 'shopping', 'admin', '2021-09-27 12:25:41', 'admin', '2022-08-03 11:41:36', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2091, '产品分类', 2090, 0, 'productCategory', 'yunze/commodity/prdCategory/index', 1, 0, 'C', '0', '0', 'yunze:shop:prdCategory', 'cascader', 'admin', '2021-09-27 13:20:05', 'admin', '2022-08-03 11:42:51', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2092, '产品列表', 2090, 2, 'product', 'yunze/commodity/product/index', 1, 0, 'C', '0', '0', 'yunze:product:list', 'zip', 'admin', '2021-09-27 16:50:01', 'admin', '2022-08-03 11:47:12', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2094, '商品代理设置', 2092, 21, '', NULL, 1, 0, 'F', '0', '0', 'yunze:productAgent:edit', '#', 'admin', '2021-09-30 08:39:59', 'admin', '2021-09-30 11:21:23', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2096, '新增商品', 2092, 23, '', NULL, 1, 0, 'F', '0', '0', 'yunze:product:add', '#', 'admin', '2021-09-30 11:22:00', 'admin', '2021-09-30 11:22:08', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2097, '编辑商品', 2092, 24, '', NULL, 1, 0, 'F', '0', '0', 'yunze:product:edit', '#', 'admin', '2021-09-30 11:22:39', 'admin', '2021-09-30 11:26:14', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2098, '商品图片编辑', 2092, 25, '', NULL, 1, 0, 'F', '0', '0', 'yunze:productPic:Prdedit', '#', 'admin', '2021-09-30 11:23:22', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2099, '商品图片查看', 2092, 26, '', NULL, 1, 0, 'F', '0', '0', 'yunze:productPic:findList', '#', 'admin', '2021-09-30 11:23:48', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2100, '新增分类', 2091, 21, '', NULL, 1, 0, 'F', '0', '0', 'yunze:prdCategory:save', '#', 'admin', '2021-09-30 11:26:48', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2101, '商品分类编辑', 2091, 22, '', NULL, 1, 0, 'F', '0', '0', 'yunze:prdCategory:upd', '#', 'admin', '2021-09-30 11:27:12', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2115, '同步激活时间', 2001, 19, '', NULL, 1, 0, 'F', '0', '0', 'yunze:card:SynActivateDate', '#', 'admin', '2021-11-16 10:02:52', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2122, 'B端商品', 2090, 3, 'BCommodity', NULL, 1, 0, 'M', '1', '0', '', 'phone', 'admin', '2021-12-03 14:26:05', 'admin', '2022-08-03 11:46:06', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2158, '获取自定义字典', 1, 30, '', NULL, 1, 0, 'F', '0', '0', 'yunze:Administration:type', '#', 'admin', '2021-12-30 11:30:16', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2186, '客户总数', 2172, 13, '', NULL, 1, 0, 'F', '0', '0', 'yunze:index:customerCount', '#', 'admin', '2022-01-26 10:16:47', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2254, '灵活变更状态', 2001, 29, '', NULL, 1, 0, 'F', '0', '0', 'yunze:card:fbestate', '#', 'admin', '2022-03-25 13:33:10', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2256, '上游套餐', 2109, 8, 'cardSetmeal', 'yunze/flowcard/cardSetmeal/index', 1, 0, 'C', '0', '0', 'yunze:cardSetmeal:list', 'used', 'admin', '2022-04-11 13:16:38', 'admin', '2022-04-11 13:18:17', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2263, '上游已订购套餐', 2109, 9, 'offeringinfolist', 'yunze/flowcard/offeringinfolist/index', 1, 0, 'C', '0', '0', 'yunze:offeringinfolist:list', 'post', 'admin', '2022-04-25 11:21:17', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2264, '上游资费组管理', 2109, 10, 'offeringinfo', 'yunze/flowcard/offeringinfo/index', 1, 0, 'C', '0', '0', 'yunze_offeringinfo_list', 'button', 'admin', '2022-04-25 13:47:20', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2265, '删除按钮', 2264, 1, '', NULL, 1, 0, 'F', '0', '0', 'yunze:offeringinfo:delete', '#', 'admin', '2022-04-26 14:08:20', 'admin', '2022-04-28 15:25:51', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2266, '修改按钮', 2264, 2, '', NULL, 1, 0, 'F', '0', '0', 'yunze:offeringinfo:update', '#', 'admin', '2022-04-26 14:08:46', 'admin', '2022-04-28 15:26:03', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2267, '上游单卡订购套餐列表', 2001, 30, '', NULL, 1, 0, 'F', '0', '0', 'yunze:card:selUsage', '#', 'admin', '2022-04-28 11:46:17', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2268, '上游套餐记录列表', 2001, 34, '', NULL, 1, 0, 'F', '0', '0', 'yunze:card:reminder', '#', 'admin', '2022-04-28 11:46:43', 'admin', '2022-08-16 10:26:44', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2271, '上游订购套餐查询', 2001, 32, '', NULL, 1, 0, 'F', '0', '0', 'yunze:card:queryOffering', '#', 'admin', '2022-05-07 10:18:13', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2272, '同步用量和状态', 2001, 35, '', NULL, 1, 0, 'F', '0', '0', 'yunze:card:InfoFlow', '#', 'admin', '2022-05-07 16:02:54', 'admin', '2022-08-16 10:27:00', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2273, '变更分组及备注', 2001, 31, '', NULL, 1, 0, 'F', '0', '0', 'yunze:card:singleUpd', '#', 'admin', '2022-05-07 16:03:37', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2274, '单卡灵活变更状态', 2001, 33, '', NULL, 1, 0, 'F', '0', '0', 'yunze:card:singleState', '#', 'admin', '2022-05-07 16:04:19', 'admin', '2022-08-16 10:25:12', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2275, '轮询错误详情', 2, 6, 'error', 'monitor/error/index', 1, 0, 'C', '0', '0', 'monitor:error:list', 'bug', 'admin', '2022-05-16 10:03:03', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2276, '轮询错误概要', 2, 7, 'group', 'monitor/group/index', 1, 0, 'C', '0', '0', 'monitor:group:list', '404', 'admin', '2022-05-16 10:04:49', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2277, '修改', 2264, 1, '', NULL, 1, 0, 'F', '0', '0', 'yunze:error:upd', '#', 'admin', '2022-05-17 16:11:02', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2278, '删除', 2264, 2, '', NULL, 1, 0, 'F', '0', '0', 'yunze:error:del', '#', 'admin', '2022-05-17 16:11:22', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2279, '批量修改', 2264, 3, '', NULL, 1, 0, 'F', '0', '0', 'yunze:error:updArr', '#', 'admin', '2022-05-17 16:11:43', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2280, '批量删除', 2264, 4, '', NULL, 1, 0, 'F', '0', '0', 'yunze:error:delArr', '#', 'admin', '2022-05-17 16:12:04', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2281, '修改', 2265, 1, '', NULL, 1, 0, 'F', '0', '0', 'yunze:group:upd', '#', 'admin', '2022-05-17 16:12:28', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2282, '删除', 2265, 2, '', NULL, 1, 0, 'F', '0', '0', 'yunze:group:del', '#', 'admin', '2022-05-17 16:12:44', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2283, '批量修改', 2265, 3, '', NULL, 1, 0, 'F', '0', '0', 'yunze:group:updArr', '#', 'admin', '2022-05-17 16:13:12', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2284, '批量删除', 2265, 4, '', NULL, 1, 0, 'F', '0', '0', 'yunze:group:delArr', '#', 'admin', '2022-05-17 16:13:34', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2285, '导出', 2274, 1, '', NULL, 1, 0, 'F', '0', '0', 'yunze:businessDtails:export', '#', 'admin', '2022-05-27 14:45:16', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2286, '批量业务受理', 108, 4, 'batchBusiness', 'yunze/flowcard/batchBusiness/index', 1, 0, 'C', '0', '0', 'yunze:batchBusiness:list', 'druid', 'admin', '2022-05-25 16:15:38', 'admin', '2022-05-31 09:12:53', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2288, '查询批量业务详情', 2286, 1, '', NULL, 1, 0, 'F', '0', '0', 'yunze:businessDtails:success', '#', 'admin', '2022-05-31 15:09:09', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2289, '批量业务导出', 2286, 2, '', NULL, 1, 0, 'F', '0', '0', 'yunze:businessDtails:export', '#', 'admin', '2022-05-31 15:09:25', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2290, '通道新增', 2013, 4, '', NULL, 1, 0, 'F', '0', '0', 'yunze:cardRoute:add', '#', 'admin', '2022-06-02 16:18:10', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2291, '通道导出', 2013, 5, '', NULL, 1, 0, 'F', '0', '0', 'yunze:cardRoute:exportData', '#', 'admin', '2022-06-02 16:18:30', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2292, '退订', 2069, 1, '', NULL, 1, 0, 'F', '0', '0', 'yunze:order:nobscribe', '#', 'admin', '2022-06-15 16:06:17', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2293, '执行加包', 2069, 2, '', NULL, 1, 0, 'F', '0', '0', 'yunze:order:package', '#', 'admin', '2022-06-15 16:15:36', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2294, '续费查询', 2001, 34, '', NULL, 1, 0, 'F', '0', '0', 'yunze:tariffPlan:Renewal', '#', 'admin', '2022-06-21 15:40:11', 'admin', '2022-08-16 10:25:20', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2295, '续费进度', 2109, 0, 'applicationforRenewal', 'yunze/flowcard/applicationforRenewal/index', 1, 0, 'C', '0', '0', 'yunze:renewal:list', 'cardMaturity', 'admin', '2022-06-22 14:38:03', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2296, '续费申请新增', 2295, 1, '', NULL, 1, 0, 'F', '0', '0', 'yunze:renewal:add', '#', 'admin', '2022-06-22 14:38:49', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2297, '续费详情修改', 2295, 2, '', NULL, 1, 0, 'F', '0', '0', 'yunze:renewal:upd', '#', 'admin', '2022-06-22 14:39:10', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2298, '详情查看', 2295, 3, '', NULL, 1, 0, 'F', '0', '0', 'yunze:renewal:find', '#', 'admin', '2022-06-24 11:23:13', 'admin', '2022-06-24 11:23:25', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2299, '授信修改', 103, 8, '', NULL, 1, 0, 'F', '0', '0', 'yunze:dept:updCredit', '#', 'admin', '2022-06-25 00:28:29', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2300, '导出', 2020, 6, '', NULL, 1, 0, 'F', '0', '0', 'yunze:tariffGroup:export', '#', 'admin', '2022-05-30 10:33:16', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2301, '导出', 2021, 1, '', NULL, 1, 0, 'F', '0', '0', 'yunze:agentTariffGroup:export', '#', 'admin', '2022-05-30 10:34:40', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2309, '导入查询', 2063, 6, '', NULL, 1, 0, 'F', '0', '0', 'yunze:order:cardNumberAge', '#', 'admin', '2022-06-27 16:20:13', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2310, '选择运营商时加载出对应的通道', 2001, 15, '', NULL, 1, 0, 'F', '0', '0', 'yunze:cardRoute:operator', '#', 'admin', '2022-07-18 15:44:44', 'admin', '2022-08-16 10:27:30', ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2311, '企业预存-平台操作', 103, 9, '', NULL, 1, 0, 'F', '0', '0', 'yunze:dept:sysPreSaved', '#', 'admin', '2022-08-01 10:24:10', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2312, '预存抵扣-平台操作', 103, 10, '', NULL, 1, 0, 'F', '0', '0', 'yunze:dept:sysDeduct', '#', 'admin', '2022-08-01 14:20:58', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2313, '平台文本域充值', 2071, 3, '', NULL, 1, 0, 'F', '0', '0', 'yunze:order:TextRecharge', '#', 'admin', '2022-08-03 11:05:38', '', NULL, ''); +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2314, '企业文本域充值', 2071, 4, '', NULL, 1, 0, 'F', '0', '0', 'yunze:order:DeptTextRecharge', '#', 'admin', '2022-08-04 10:47:53', '', NULL, ''); + +INSERT INTO `iotdb`.`sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2116, '仓库管理', 0, 25, 'warehouse', NULL, 1, 0, 'M', '0', '0', '', 'tab', 'admin', '2021-11-17 08:32:14', 'admin', '2021-11-17 08:33:11', ''); + +# 字典表 更新 [2022-08-30] [zf] + +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '用户性别', `dict_type` = 'sys_user_sex', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '用户性别列表' WHERE `dict_id` = 1; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '菜单状态', `dict_type` = 'sys_show_hide', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '菜单状态列表' WHERE `dict_id` = 2; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '系统开关', `dict_type` = 'sys_normal_disable', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '系统开关列表' WHERE `dict_id` = 3; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '任务状态', `dict_type` = 'sys_job_status', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '任务状态列表' WHERE `dict_id` = 4; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '任务分组', `dict_type` = 'sys_job_group', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '任务分组列表' WHERE `dict_id` = 5; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '系统是否', `dict_type` = 'sys_yes_no', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '系统是否列表' WHERE `dict_id` = 6; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通知类型', `dict_type` = 'sys_notice_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '通知类型列表' WHERE `dict_id` = 7; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通知状态', `dict_type` = 'sys_notice_status', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '通知状态列表' WHERE `dict_id` = 8; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '操作类型', `dict_type` = 'sys_oper_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '操作类型列表' WHERE `dict_id` = 9; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '系统状态', `dict_type` = 'sys_common_status', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '登录状态列表' WHERE `dict_id` = 10; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '运营商类型', `dict_type` = 'card_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 10:49:08', `update_by` = 'admin', `update_time` = '2022-03-15 09:05:53', `remark` = '运营商类型\n' WHERE `dict_id` = 100; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡列表查询条件', `dict_type` = 'yunze_card_seltype', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 09:19:56', `update_by` = '', `update_time` = NULL, `remark` = '卡列表查询条件' WHERE `dict_id` = 101; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡板列表时间查询类型', `dict_type` = 'yunze_card_sel_timetype', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 12:22:33', `update_by` = '', `update_time` = NULL, `remark` = '卡板列表时间查询类型' WHERE `dict_id` = 102; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡板删除标记', `dict_type` = 'yunze_card_deltype', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 12:25:44', `update_by` = '', `update_time` = NULL, `remark` = 'del_flag' WHERE `dict_id` = 103; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '运营商类型', `dict_type` = 'yunze_card_operators_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:14:48', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 104; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡状态描述', `dict_type` = 'yunze_card_status_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:28:35', `update_by` = 'admin', `update_time` = '2022-01-24 15:25:05', `remark` = NULL WHERE `dict_id` = 105; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '资费计划生效类别', `dict_type` = 'yunze_card_takeEffect_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 08:54:58', `update_by` = 'admin', `update_time` = '2021-06-22 12:12:32', `remark` = NULL WHERE `dict_id` = 106; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '资费计划生效中类型', `dict_type` = 'yunze_card_valid_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 08:59:53', `update_by` = 'admin', `update_time` = '2021-06-22 12:12:19', `remark` = NULL WHERE `dict_id` = 107; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '支付方式', `dict_type` = 'yunze_card_pay_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 09:02:21', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 108; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '自定义是否', `dict_type` = 'yunze_customize_whether', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 09:07:06', `update_by` = '', `update_time` = NULL, `remark` = '0 否,1 是' WHERE `dict_id` = 109; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡类型', `dict_type` = 'yunze_card_card_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 08:51:19', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 110; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡板网络类型', `dict_type` = 'yunze_card_network_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 08:53:30', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 111; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡板在线状态', `dict_type` = 'yunze_card_online_status', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 14:00:59', `update_by` = '', `update_time` = NULL, `remark` = '卡板列表在线信息' WHERE `dict_id` = 112; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡板接入方式', `dict_type` = 'yunze_card_access_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 14:02:21', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 113; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡板列表起止条件查询', `dict_type` = 'yunze_card_StartAndEnd_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-11 15:17:02', `update_by` = '', `update_time` = NULL, `remark` = '号码类型' WHERE `dict_id` = 114; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通道管理查询类型', `dict_type` = 'yunze_channel_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 12:20:10', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 115; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '查询排序类型', `dict_type` = 'ORDER_BY_rule', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 13:31:47', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 116; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通道排序类型', `dict_type` = 'channel_ORDER_BY_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 13:34:08', `update_by` = '', `update_time` = NULL, `remark` = '通道管理排序类型' WHERE `dict_id` = 117; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通道状态', `dict_type` = 'channel_status', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 13:41:06', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 118; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通道编码', `dict_type` = 'channel_code', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 14:45:39', `update_by` = '', `update_time` = NULL, `remark` = 'API调用 通道编码' WHERE `dict_id` = 119; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '执行任务表查询类型', `dict_type` = 'executionTask_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 11:29:19', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 120; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '执行任务管理排序类型', `dict_type` = 'executionTask_ORDER_BY_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 11:39:21', `update_by` = '', `update_time` = NULL, `remark` = '流量卡》执行任务管理' WHERE `dict_id` = 121; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '执行任务导出类别', `dict_type` = 'yunze_ExecutionTask_OutType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 14:17:16', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 122; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '资费计划周期', `dict_type` = 'yunze_packet_valid_name', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-22 16:19:38', `update_by` = 'admin', `update_time` = '2021-06-22 16:24:03', `remark` = '月 年' WHERE `dict_id` = 123; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '资费组查询条件', `dict_type` = 'yunze_tariffGroup_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-22 17:14:54', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 124; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '资费计划条件', `dict_type` = 'yunze_tariffPlan_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-22 17:16:24', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 125; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '订单交易类型', `dict_type` = 'yunze_order_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-03 10:50:16', `update_by` = 'admin', `update_time` = '2021-08-06 11:21:53', `remark` = NULL WHERE `dict_id` = 126; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '订单状态', `dict_type` = 'yunze_order_status', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-03 10:52:05', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 127; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通道轮询类型', `dict_type` = 'yunze_polling_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-08 14:19:59', `update_by` = 'admin', `update_time` = '2021-07-08 14:20:15', `remark` = '通道轮序详情表用' WHERE `dict_id` = 129; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '执行任务类别', `dict_type` = 'yunze_task_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-28 08:35:29', `update_by` = '', `update_time` = NULL, `remark` = '执行任务表,主要用于记录' WHERE `dict_id` = 130; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '订单查询条件', `dict_type` = 'yunze_order_seltype', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 10:48:24', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 131; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '订单生成方式', `dict_type` = 'yunze_order_creType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 10:57:52', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 132; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '分润类型', `dict_type` = 'yunze_order_profitType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 11:02:08', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 133; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '订单管理时间查询类型', `dict_type` = 'yunze_order_sel_timetype', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 11:43:56', `update_by` = 'admin', `update_time` = '2021-08-06 17:31:11', `remark` = NULL WHERE `dict_id` = 135; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '订单管理起止条件', `dict_type` = 'yunze_order_StartAndEnd_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 17:41:37', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 136; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '资费计划类别', `dict_type` = 'yunze_packet_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-01 16:04:44', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 137; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '资费类型规则', `dict_type` = 'yunze_base_packet_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-03 15:29:17', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 138; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '对外接口日志时间类型', `dict_type` = 'yunze_syslogs_sel_timetype', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-24 08:52:32', `update_by` = 'admin', `update_time` = '2021-08-24 12:04:02', `remark` = '日志创建时间' WHERE `dict_id` = 139; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '用量详情', `dict_type` = 'dosage_details_flow_his', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-26 09:13:18', `update_by` = 'admin', `update_time` = '2021-08-26 09:13:58', `remark` = '用量详情' WHERE `dict_id` = 141; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '用量详情时间类型', `dict_type` = 'yunze_yz_card_flow_his', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-26 09:43:21', `update_by` = '', `update_time` = NULL, `remark` = '用量详情时间类型' WHERE `dict_id` = 142; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通道进度时间类型', `dict_type` = 'yunze_yz_passageway', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-31 11:37:08', `update_by` = '', `update_time` = NULL, `remark` = '通道进度时间类型' WHERE `dict_id` = 143; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通道编号', `dict_type` = 'yz_passageway_polling', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-31 14:03:30', `update_by` = '', `update_time` = NULL, `remark` = '通道进度编号' WHERE `dict_id` = 144; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '排序规则', `dict_type` = 'yunze_sorting_rules', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 13:32:43', `update_by` = '', `update_time` = NULL, `remark` = '排序规则' WHERE `dict_id` = 146; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '时间类型', `dict_type` = 'yunze_card_flow', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 13:53:34', `update_by` = '', `update_time` = NULL, `remark` = '订购资费查询' WHERE `dict_id` = 147; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '排序类型', `dict_type` = 'Lifting_sequence', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 14:00:42', `update_by` = '', `update_time` = NULL, `remark` = '排序类型' WHERE `dict_id` = 148; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '条件查询', `dict_type` = 'yz_card_flow', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 14:19:22', `update_by` = '', `update_time` = NULL, `remark` = '订购资费条件查询' WHERE `dict_id` = 149; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '条件选择', `dict_type` = 'system_yz_sys_logs_sysLog', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-24 08:33:58', `update_by` = '', `update_time` = NULL, `remark` = '日志执行' WHERE `dict_id` = 150; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '模块类别', `dict_type` = 'yz_sys_logs_project', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-24 08:47:40', `update_by` = '', `update_time` = NULL, `remark` = '执行模块类别\n' WHERE `dict_id` = 151; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡变更类型', `dict_type` = 'yz_cardChange_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 09:37:48', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 152; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡变更类型来源', `dict_type` = 'yz_cardChange_sourceType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 09:38:44', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 153; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '断开网状态', `dict_type` = 'yz_cardConnection_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 11:41:26', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 154; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡信息变更执行状态', `dict_type` = 'yz_cardChange_ExecutionStatus', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-15 08:37:48', `update_by` = 'admin', `update_time` = '2021-09-15 08:38:16', `remark` = '' WHERE `dict_id` = 155; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡号类别', `dict_type` = 'cardNumber', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-09 17:13:07', `update_by` = '', `update_time` = NULL, `remark` = '卡号类别' WHERE `dict_id` = 156; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '自动化触发类型', `dict_type` = 'yz_cc_trigger_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 14:52:22', `update_by` = 'admin', `update_time` = '2021-09-24 15:18:37', `remark` = NULL WHERE `dict_id` = 157; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '推送执行动作类型', `dict_type` = 'yz_cc_execution_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 15:18:30', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 158; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '自动化状态', `dict_type` = 'yz_cc_status', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 15:19:52', `update_by` = 'admin', `update_time` = '2021-09-24 15:20:21', `remark` = NULL WHERE `dict_id` = 159; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '自动化推送模板', `dict_type` = 'yz_cc_template', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 15:34:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 160; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '自动化抄送状态', `dict_type` = 'yz_cc_HisStatus', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-26 17:03:05', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 162; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '自动化抄送结果', `dict_type` = 'yz_cc_result', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-26 17:06:03', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 163; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通用启用状态', `dict_type` = 'yz_enabled_state', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-27 14:51:46', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 164; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '商品出售状态', `dict_type` = 'yz_commodity_sell', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-27 18:04:05', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 165; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '商品审核状态', `dict_type` = 'yz_check_state', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-27 18:06:19', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 166; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '停复机', `dict_type` = 'Stop_and_resume', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-28 09:31:31', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 167; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '断开网', `dict_type` = 'Disconnect_the_network', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-28 09:39:45', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 168; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡信息变更查询条件', `dict_type` = 'yz_card_info_change', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-29 19:54:02', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 169; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '客户状态', `dict_type` = 'yz_customer_state', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-11 15:54:03', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 170; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '客户来源', `dict_type` = 'yz_customer_source', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-11 16:04:56', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 171; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '客户等级', `dict_type` = 'yz_customer_grade', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-12 10:45:48', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 172; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '客户一级分类', `dict_type` = 'yz_customer_grade_one', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-29 16:08:24', `update_by` = '', `update_time` = NULL, `remark` = '客户一级分类' WHERE `dict_id` = 174; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '客户二级分类', `dict_type` = 'yz_customer_grade_tow', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-29 16:08:55', `update_by` = '', `update_time` = NULL, `remark` = '客户二级分类' WHERE `dict_id` = 175; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '客户查询类型', `dict_type` = 'yz_customer_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-02 16:25:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 176; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '客户时间查询类型', `dict_type` = 'yz_customer_selTimeType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-02 16:28:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 177; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '客户敏感信息变更类型', `dict_type` = 'yz_CustomerChange_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-05 13:59:36', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 178; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '客户类型', `dict_type` = 'yz_CustomerSort_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-05 15:55:44', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 179; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '自动化时间类型', `dict_type` = 'Automation_time', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-19 14:29:36', `update_by` = '', `update_time` = NULL, `remark` = '自动化时间 类型' WHERE `dict_id` = 180; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '自动化配置时间类型', `dict_type` = 'Automated_configuration', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-19 16:33:02', `update_by` = '', `update_time` = NULL, `remark` = '自动化配置时间类型' WHERE `dict_id` = 181; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '自动化条件类型', `dict_type` = 'yz_cc_condition', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 15:57:52', `update_by` = 'admin', `update_time` = '2021-10-25 16:00:03', `remark` = '自动化' WHERE `dict_id` = 186; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '自动化条件选择', `dict_type` = 'cc_query_criteria', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-26 10:00:40', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 187; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '商品分类时间类型', `dict_type` = 'prdCategory_timet', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-29 15:32:48', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 188; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '自动化配置时间类型 ', `dict_type` = 'yunze_task_sel_timetype', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-29 16:11:23', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 189; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '是否更新未填写属性', `dict_type` = 'buttonyesno', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-11 21:25:52', `update_by` = '', `update_time` = NULL, `remark` = '物联网卡管理 新增 勾选式 编辑 分组 备注 可选择型更新字段;' WHERE `dict_id` = 190; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '入库源', `dict_type` = 'Warehousing_source', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-17 09:53:14', `update_by` = '', `update_time` = NULL, `remark` = '入库出库信息' WHERE `dict_id` = 191; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '商品供应商', `dict_type` = 'yz_Commodity_supplier', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 10:12:36', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 192; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '商品运营商', `dict_type` = 'yz_Commodity_Operator', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 10:13:36', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 193; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = 'B端商品查询条件', `dict_type` = 'yz_Bcommodity_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 16:28:29', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 194; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = 'C端商品查询条件', `dict_type` = 'yz_Ccommodity_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 16:29:15', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 195; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = 'B端商品分类查询条件', `dict_type` = 'yz_BcommoditySort_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 16:31:52', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 196; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通用删除', `dict_type` = 'yz_Universal_delete', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 09:51:39', `update_by` = '', `update_time` = NULL, `remark` = '用与状态删除标记' WHERE `dict_id` = 197; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '销售合同分润模式', `dict_type` = 'yz_profit_sharingType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 14:38:31', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 198; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '销售合同开票类型', `dict_type` = 'yz_Invoicing_Type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 15:38:43', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 199; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '销售合同状态', `dict_type` = 'yz_Contract_status', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-10 17:46:46', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 200; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '合同收款状态', `dict_type` = 'yz_ReceivePayment_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-10 18:07:57', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 201; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '销售合同查询条件', `dict_type` = 'yz_SalesContract_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-11 16:42:53', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 202; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '销售合同查询时间类型', `dict_type` = 'yz_SalesContract_selTimeType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-11 16:51:19', `update_by` = 'admin', `update_time` = '2021-12-11 16:53:03', `remark` = NULL WHERE `dict_id` = 203; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '入款类型', `dict_type` = 'cwgl_Deposit_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-13 16:04:10', `update_by` = '', `update_time` = NULL, `remark` = '入款信息' WHERE `dict_id` = 204; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '入款状态', `dict_type` = 'cwgl_Deposit_state', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-13 16:04:42', `update_by` = '', `update_time` = NULL, `remark` = '入款信息\n' WHERE `dict_id` = 205; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '发货状态', `dict_type` = 'Ship_state', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-13 16:44:28', `update_by` = '', `update_time` = NULL, `remark` = '订单合同' WHERE `dict_id` = 206; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '入款信息来源类别', `dict_type` = 'DepositSource_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-13 16:57:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 207; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '发票性质', `dict_type` = 'invoice_Nature', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 08:37:15', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 208; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '合同性质', `dict_type` = 'contract_nature', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 09:02:24', `update_by` = '', `update_time` = NULL, `remark` = '订单合同发货信息' WHERE `dict_id` = 209; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '合同发货查询条件', `dict_type` = 'yunze_OrderDelivery_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 12:27:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 210; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '合同发货查询时间类型', `dict_type` = 'yunze_OrderDelivery_timetype', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 13:28:39', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 211; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '发货选择类型', `dict_type` = 'Delivery_selection_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 15:58:20', `update_by` = 'admin', `update_time` = '2021-12-15 09:23:20', `remark` = '' WHERE `dict_id` = 212; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '发货方式', `dict_type` = 'Delivery_method', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 16:39:07', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 213; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '发货类型', `dict_type` = 'Delivery_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-15 09:23:35', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 214; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '运费方式', `dict_type` = 'Shipping_method', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-15 10:27:38', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 215; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '发货申请查询条件', `dict_type` = 'yunze_ShippingApplication_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-21 16:16:07', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 216; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '发货申请时间查询类型', `dict_type` = 'yunze_ShippingApplication_timetype', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-21 16:18:18', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 217; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '快递查询-查询条件', `dict_type` = 'yunze_ExpressInquiry_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:06:31', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 218; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '快递查询-时间查询类型', `dict_type` = 'yunze_ExpressInquiry_timetype', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:07:05', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 219; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '快递签收状态', `dict_type` = 'yunze_ExpressInquiry_SignFor', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:12:24', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 220; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '快递评价', `dict_type` = 'yunze_ExpressInquiry_Evaluation', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:13:00', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 221; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '卡状态', `dict_type` = 'yunze_card_status_ShowId', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 10:50:08', `update_by` = '', `update_time` = NULL, `remark` = '对外展示' WHERE `dict_id` = 222; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '库存明细查询条件', `dict_type` = 'yunze_InventoryDetails_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:55:55', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 223; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '入库明细-时间查询类型', `dict_type` = 'yunze_inventorydetails_timetype', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 11:03:50', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 224; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '入库明细-起止条件查询类型', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 11:05:47', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 225; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '库存数量-查询条件类型', `dict_type` = 'yunze_CustomerInquiries_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 15:29:48', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 226; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '出库状态', `dict_type` = 'yunze_ShippingApplication_OutboundStatus ', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-05 10:24:50', `update_by` = '', `update_time` = NULL, `remark` = '发货申请出库状态' WHERE `dict_id` = 227; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '维度条件', `dict_type` = 'yunze_card_dimensionType', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-24 09:08:42', `update_by` = 'admin', `update_time` = '2022-01-24 09:22:32', `remark` = NULL WHERE `dict_id` = 228; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '维度字段', `dict_type` = 'yunze_card_dimensionField', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-24 09:09:12', `update_by` = 'admin', `update_time` = '2022-01-24 09:14:14', `remark` = NULL WHERE `dict_id` = 229; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '移动卡号省份归属地', `dict_type` = 'yz_YDcard_attribution', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:29:55', `update_by` = '', `update_time` = NULL, `remark` = '移动卡号省份归属地' WHERE `dict_id` = 238; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通道轮询算法', `dict_type` = 'yz_route_algorithm', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-08 14:10:17', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 243; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '电信CMP无线接入模式', `dict_type` = 'DianXin_CMP_netModel', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-23 18:21:23', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 249; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '电信CMP接入类型', `dict_type` = 'DianXin_CMP_RAT', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-23 18:27:23', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 250; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '电信CMP在线状态', `dict_type` = 'DianXin_CMP_online', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-23 18:29:36', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 251; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '用户查询条件', `dict_type` = 'yz_sysUser_selType', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-29 08:56:33', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 252; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通用是否带空选项', `dict_type` = 'yz_cm_whether', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-25 10:25:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 266; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通道表是否正常', `dict_type` = 'yz_cd_state', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-19 09:00:47', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 267; +UPDATE `iotdb`.`sys_dict_type` SET `dict_name` = '通道表对接信息', `dict_type` = 'yz_cd_Interface', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-19 09:04:54', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_id` = 268; + + + + +# 字典表 新增 [2022-08-30] [zf] +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (161, '购买订单发货状态', 'yz_orderShopping_Ship', '0', 'admin', '2021-09-26 12:10:12', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (235, '授信类型', 'sys_Credit_type', '0', 'admin', '2022-02-25 15:24:04', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (236, '金额变更类型', 'yz_sys_money_changeType', '0', 'admin', '2022-02-28 12:29:47', '', NULL, '金额变更记录表'); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (237, '金额变更执行结果', 'yz_money_change_result', '0', 'admin', '2022-02-28 13:59:55', '', NULL, '金额变更执行结果'); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (244, '无法激活时间返回', 'yz_route_noActivateDate', '0', 'admin', '2022-03-08 14:14:55', '', NULL, '无法激活时间返回上游通道类型id'); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (246, '卡状态灵活变更', 'yz_cardFlexible_change_type', '0', 'admin', '2022-03-10 10:04:06', '', NULL, '卡状态灵活变更类型'); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (253, '主表灵活变更状态', 'yunze_status_Flexible', '0', 'admin', '2022-03-25 12:18:16', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (254, '上游套餐条件', 'yunze_Upstream_card', '0', 'admin', '2022-04-11 14:25:31', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (255, '上游套餐时间选择', 'yunze_Upstream_time', '0', 'admin', '2022-04-11 14:27:58', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (256, '上游套餐多维度参数', 'yunze_dimensionField', '0', 'admin', '2022-04-11 14:39:24', 'admin', '2022-04-11 14:39:54', NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (257, '上游套餐查询值', 'yunze_dimensionType', '0', 'admin', '2022-04-11 14:45:52', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (258, '上游API返回资费计划类型', 'card_api_offeringinfo_type', '0', 'admin', '2022-04-15 13:56:15', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (259, '已对接套餐上游套餐获取接口', 'yz_card_api_synOfferinginfo', '0', 'admin', '2022-04-15 17:47:47', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (260, '批量业务订单类型', 'yz_bulk_business_type', '0', 'admin', '2022-04-19 15:48:21', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (261, '批量业务订单状态', 'yz_bulk_business_state_id', '0', 'admin', '2022-04-19 15:49:01', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (269, '上游已订购套餐时间类型', 'yunze_offeringinfolist_timetype', '0', 'admin', '2022-04-25 13:28:50', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (270, '上游已订购套餐条件查询', 'yunze_offeringinfolist_type', '0', 'admin', '2022-04-25 13:38:37', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (271, '上游资费组管理时间', 'yunze_offeringinfo_timetype', '0', 'admin', '2022-04-25 14:28:11', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (273, '上游业务错误编码', 'api_businessError_code', '0', 'admin', '2022-05-13 09:44:30', '', NULL, '业务错误编码抄送给运营'); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (274, '批量业务详情状态', 'yz_bulk_businessDtails_state_id', '0', 'admin', '2022-05-18 11:31:40', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (275, '轮询错误详情条件查询', 'yunze_typeOptionsError', '0', 'admin', '2022-05-16 14:13:55', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (276, '轮询错误概要条件查询', 'yunze_typeOptionsGroup', '0', 'admin', '2022-05-16 14:37:05', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (277, '批量业务订单条件查询', 'yunze_batchBusiness_type', '0', 'admin', '2022-05-26 10:13:48', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (278, '批量业务详情条件查询', 'yunze_businessDetails_type', '0', 'admin', '2022-05-26 10:25:47', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (279, '指定卡状态同步生命周期', 'pollingOther_cardCardStatus', '0', 'admin', '2022-06-06 10:14:04', 'admin', '2022-06-13 11:26:20', NULL); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (280, '指定卡状态同步激活时间', 'pollingOther_cardCardActivateDate', '0', 'admin', '2022-06-13 11:27:05', 'admin', '2022-06-13 16:45:29', '且系统没有激活时间记录的'); +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (281, '资费订单卡号类型', 'cardNumberAge', '0', 'admin', '2022-05-30 13:25:23', '', NULL, NULL); + + + + + + + +# 字典详情 新增 [2022-08-30] [zf] + +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (306, 0, '待发货', '0', 'yz_orderShopping_Ship', NULL, NULL, 'N', '0', 'admin', '2021-09-26 12:10:33', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (307, 1, '备货中', '1', 'yz_orderShopping_Ship', NULL, NULL, 'N', '0', 'admin', '2021-09-26 12:10:51', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (308, 2, '已发货', '2', 'yz_orderShopping_Ship', NULL, NULL, 'N', '0', 'admin', '2021-09-26 12:10:59', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (309, 3, '运输中', '3', 'yz_orderShopping_Ship', NULL, NULL, 'N', '0', 'admin', '2021-09-26 12:11:13', 'admin', '2021-09-26 12:11:27', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (310, 4, '代签收', '4', 'yz_orderShopping_Ship', NULL, NULL, 'N', '0', 'admin', '2021-09-26 12:11:40', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (311, 5, '已签收', '5', 'yz_orderShopping_Ship', NULL, NULL, 'N', '0', 'admin', '2021-09-26 12:11:54', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (312, 6, '拒收', '6', 'yz_orderShopping_Ship', NULL, NULL, 'N', '0', 'admin', '2021-09-26 12:12:13', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (587, 1, '增加', '1', 'sys_Credit_type', NULL, NULL, 'N', '0', 'admin', '2022-02-25 15:24:58', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (588, 2, '减少', '2', 'sys_Credit_type', NULL, NULL, 'N', '0', 'admin', '2022-02-25 15:25:12', 'admin', '2022-02-25 15:25:20', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (593, 1, '手动变更', '1', 'yz_sys_money_changeType', NULL, NULL, 'N', '0', 'admin', '2022-02-28 12:30:09', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (594, 2, '业务变更', '2', 'yz_sys_money_changeType', NULL, NULL, 'N', '0', 'admin', '2022-02-28 12:30:11', 'admin', '2022-02-28 12:30:25', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (595, 1, '成功', '1', 'yz_money_change_result', NULL, NULL, 'N', '0', 'admin', '2022-02-28 14:00:22', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (596, 2, '失败', '2', 'yz_money_change_result', NULL, NULL, 'N', '0', 'admin', '2022-02-28 14:00:28', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (650, 0, '联通CMP', 'LianTong_CMP', 'yz_route_noActivateDate', NULL, NULL, 'N', '0', 'admin', '2022-03-08 14:17:08', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (651, 2, '山东省移动', 'SDIOT', 'yz_route_noActivateDate', NULL, NULL, 'N', '0', 'admin', '2022-03-08 14:17:48', 'admin', '2022-03-08 14:20:00', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (652, 1, '电信DCP', 'DianXin_DCP', 'yz_route_noActivateDate', NULL, NULL, 'N', '0', 'admin', '2022-03-08 14:18:30', 'admin', '2022-03-08 14:19:12', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (653, 3, '硕朗', 'ShuoLang', 'yz_route_noActivateDate', NULL, NULL, 'N', '0', 'admin', '2022-03-08 14:20:28', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (665, 0, '已激活转已停机', '0', 'yz_cardFlexible_change_type', NULL, NULL, 'N', '0', 'admin', '2022-03-10 10:04:22', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (666, 1, '已停机转已激活', '1', 'yz_cardFlexible_change_type', NULL, NULL, 'N', '0', 'admin', '2022-03-10 10:04:30', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (667, 2, '库存转已激活', '2', 'yz_cardFlexible_change_type', NULL, NULL, 'N', '0', 'admin', '2022-03-10 10:04:35', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (668, 3, '可测试转库存', '3', 'yz_cardFlexible_change_type', NULL, NULL, 'N', '0', 'admin', '2022-03-10 10:04:41', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (669, 4, '可测试转待激活', '4', 'yz_cardFlexible_change_type', NULL, NULL, 'N', '0', 'admin', '2022-03-10 10:04:47', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (670, 5, '可测试转已激活', '5', 'yz_cardFlexible_change_type', NULL, NULL, 'N', '0', 'admin', '2022-03-10 10:04:53', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (671, 6, '待激活转已激活', '6', 'yz_cardFlexible_change_type', NULL, NULL, 'N', '0', 'admin', '2022-03-10 10:05:02', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (725, 0, '已激活转已停机', '0', 'yunze_status_Flexible', NULL, NULL, 'N', '0', 'admin', '2022-03-25 12:25:46', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (726, 1, '已停机转已激活', '1', 'yunze_status_Flexible', NULL, NULL, 'N', '0', 'admin', '2022-03-25 12:25:56', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (727, 2, '库存转已激活', '2', 'yunze_status_Flexible', NULL, NULL, 'N', '0', 'admin', '2022-03-25 12:26:05', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (728, 3, '可测试转库存', '3', 'yunze_status_Flexible', NULL, NULL, 'N', '0', 'admin', '2022-03-25 12:26:12', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (729, 4, '可测试转待激活', '4', 'yunze_status_Flexible', NULL, NULL, 'N', '0', 'admin', '2022-03-25 12:26:19', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (730, 5, '可测试转已激活', '5', 'yunze_status_Flexible', NULL, NULL, 'N', '0', 'admin', '2022-03-25 12:26:29', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (731, 6, '待激活转已激活', '6', 'yunze_status_Flexible', NULL, NULL, 'N', '0', 'admin', '2022-03-25 12:26:36', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (736, 0, 'iccid', '0', 'yunze_Upstream_card', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:26:02', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (737, 2, '资费激活名称', '2', 'yunze_Upstream_card', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:26:34', 'admin', '2022-04-11 16:51:15', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (738, 0, '创建时间', '0', 'yunze_Upstream_time', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:29:54', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (739, 1, '总量', '1', 'yunze_dimensionField', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:43:16', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (740, 2, '使用量', '2', 'yunze_dimensionField', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:43:30', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (741, 3, '剩余量', '3', 'yunze_dimensionField', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:43:55', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (742, 4, '已用百分比', '4', 'yunze_dimensionField', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:44:24', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (743, 1, '>=', '1', 'yunze_dimensionType', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:46:10', 'admin', '2022-04-11 14:46:36', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (744, 2, '>', '2', 'yunze_dimensionType', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:46:47', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (745, 3, '=', '3', 'yunze_dimensionType', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:52:16', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (746, 4, '<', '4', 'yunze_dimensionType', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:52:27', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (747, 5, '<=', '5', 'yunze_dimensionType', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:52:39', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (748, 6, '!=', '6', 'yunze_dimensionType', NULL, NULL, 'N', '0', 'admin', '2022-04-11 14:52:48', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (749, 1, '最近修改时间', '1', 'yunze_Upstream_time', NULL, NULL, 'N', '0', 'admin', '2022-04-11 16:50:47', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (750, 1, '资费id', '1', 'yunze_Upstream_card', NULL, NULL, 'N', '0', 'admin', '2022-04-11 16:51:35', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (751, 3, 'APN 名称', '3', 'yunze_Upstream_card', NULL, NULL, 'N', '0', 'admin', '2022-04-11 16:51:54', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (753, 1, '未分类', '1', 'card_api_offeringinfo_type', NULL, NULL, 'N', '0', 'admin', '2022-04-15 13:56:41', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (754, 2, '功能产品', '2', 'card_api_offeringinfo_type', NULL, NULL, 'N', '0', 'admin', '2022-04-15 13:57:07', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (755, 3, '资费产品', '3', 'card_api_offeringinfo_type', NULL, NULL, 'N', '0', 'admin', '2022-04-15 13:57:16', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (756, 1, 'YiDong_EC', 'YiDong_EC', 'yz_card_api_synOfferinginfo', NULL, NULL, 'N', '0', 'admin', '2022-04-15 17:49:17', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (757, 2, 'YiDong_EC_TOKE_ShuoLang', 'YiDong_EC_TOKE_ShuoLang', 'yz_card_api_synOfferinginfo', NULL, NULL, 'N', '0', 'admin', '2022-04-15 17:49:25', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (758, 3, 'YiDong_EC_TengYu', 'YiDong_EC_TengYu', 'yz_card_api_synOfferinginfo', NULL, NULL, 'N', '0', 'admin', '2022-04-15 17:49:31', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (759, 4, 'YiDong_EC_Combo', 'YiDong_EC_Combo', 'yz_card_api_synOfferinginfo', NULL, NULL, 'N', '0', 'admin', '2022-04-15 17:49:37', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (760, 5, 'YiDong_ECv2', 'YiDong_ECv2', 'yz_card_api_synOfferinginfo', NULL, NULL, 'N', '0', 'admin', '2022-04-15 17:49:45', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (761, 6, 'YiDong_ECv2_Combo', 'YiDong_ECv2_Combo', 'yz_card_api_synOfferinginfo', NULL, NULL, 'N', '0', 'admin', '2022-04-15 17:49:50', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (764, 1, '批量复机', '1', 'yz_bulk_business_type', NULL, NULL, 'N', '0', 'admin', '2022-04-19 16:06:45', 'admin', '2022-05-18 10:44:17', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (765, 2, '批量停机', '2', 'yz_bulk_business_type', NULL, NULL, 'N', '0', 'admin', '2022-04-19 16:06:56', 'admin', '2022-05-18 10:44:23', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (792, 0, '创建时间', '0', 'yunze_offeringinfolist_timetype', NULL, NULL, 'N', '0', 'admin', '2022-04-25 13:29:39', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (793, 1, '生效时间', '1', 'yunze_offeringinfolist_timetype', NULL, NULL, 'N', '0', 'admin', '2022-04-25 13:30:29', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (794, 2, '失效时间', '2', 'yunze_offeringinfolist_timetype', NULL, NULL, 'N', '0', 'admin', '2022-04-25 13:30:46', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (795, 3, '修改时间', '3', 'yunze_offeringinfolist_timetype', NULL, NULL, 'N', '0', 'admin', '2022-04-25 13:31:08', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (796, 0, 'iccid', '0', 'yunze_offeringinfolist_type', NULL, NULL, 'N', '0', 'admin', '2022-04-25 13:40:41', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (797, 1, '资费名称', '1', 'yunze_offeringinfolist_type', NULL, NULL, 'N', '0', 'admin', '2022-04-25 13:40:56', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (798, 2, '资费 ID', '2', 'yunze_offeringinfolist_type', NULL, NULL, 'N', '0', 'admin', '2022-04-25 13:41:09', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (799, 3, 'APN 名称', '3', 'yunze_offeringinfolist_type', NULL, NULL, 'N', '0', 'admin', '2022-04-25 13:41:28', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (800, 0, '创建时间', '0', 'yunze_offeringinfo_timetype', NULL, NULL, 'N', '0', 'admin', '2022-04-25 14:30:52', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (801, 1, '最近一次修改时间', '1', 'yunze_offeringinfo_timetype', NULL, NULL, 'N', '0', 'admin', '2022-04-25 14:31:12', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (810, 0, 'YiDong_EC', '11011', 'api_businessError_code', NULL, NULL, 'N', '0', 'admin', '2022-05-13 09:45:34', 'admin', '2022-05-13 09:49:43', '码号信息错误,请检查MSISDN、ICCID、IMSI是否正确'); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (811, 1, 'YiDong_EC', '12035', 'api_businessError_code', NULL, NULL, 'N', '0', 'admin', '2022-05-13 09:46:15', '', NULL, '卡号不属于本企业'); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (812, 3, 'YiDong_EC', '14008', 'api_businessError_code', NULL, NULL, 'N', '0', 'admin', '2022-05-13 09:46:34', 'admin', '2022-05-13 09:49:47', '查询不到信息'); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (813, 6, 'YiDong_ECv2', '25', 'api_businessError_code', NULL, NULL, 'N', '0', 'admin', '2022-05-13 09:47:07', 'admin', '2022-05-13 09:50:29', 'ICCID号不是所查询的集团下的用户'); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (814, 4, 'YiDong_EC', '12007', 'api_businessError_code', NULL, NULL, 'N', '0', 'admin', '2022-05-13 09:47:31', 'admin', '2022-05-13 09:50:19', 'MSISDN号不是所查询的集团下的用户'); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (815, 5, 'DianXin_CMP', '-1', 'api_businessError_code', NULL, NULL, 'N', '0', 'admin', '2022-05-13 09:49:35', 'admin', '2022-05-13 09:50:23', '无权限(请检查做业务的卡/流量池是否属于本账号,或是否有权限调用此接口)'); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (819, 7, 'YYWL', '1', 'api_businessError_code', NULL, NULL, 'N', '0', 'admin', '2022-05-16 10:36:21', '', NULL, '企业下无此卡'); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (823, 3, '批量断网', '3', 'yz_bulk_business_type', NULL, NULL, 'N', '0', 'admin', '2022-05-18 10:44:04', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (824, 4, '批量开网', '4', 'yz_bulk_business_type', NULL, NULL, 'N', '0', 'admin', '2022-05-18 10:44:46', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (825, 5, '批量订购', '5', 'yz_bulk_business_type', NULL, NULL, 'N', '0', 'admin', '2022-05-18 10:56:10', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (826, 6, '批量设置', '6', 'yz_bulk_business_type', NULL, NULL, 'N', '0', 'admin', '2022-05-18 10:57:20', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (827, 7, '批量修改', '7', 'yz_bulk_business_type', NULL, NULL, 'N', '0', 'admin', '2022-05-18 10:57:32', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (828, 8, '取消实名', '8', 'yz_bulk_business_type', NULL, NULL, 'N', '0', 'admin', '2022-05-18 10:57:32', 'admin', '2022-05-18 10:58:01', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (829, 9, '查询IMEI', '9', 'yz_bulk_business_type', NULL, NULL, 'N', '0', 'admin', '2022-05-18 10:58:37', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (830, 10, '灵活变更状态', '10', 'yz_bulk_business_type', NULL, NULL, 'N', '0', 'admin', '2022-05-18 10:59:16', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (831, 0, '全部', 'null', 'yz_bulk_business_state_id', NULL, NULL, 'N', '0', 'admin', '2022-05-18 11:04:59', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (832, 1, '完成', '1', 'yz_bulk_business_state_id', NULL, NULL, 'N', '0', 'admin', '2022-05-18 11:05:10', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (833, 2, '受理中', '2', 'yz_bulk_business_state_id', NULL, NULL, 'N', '0', 'admin', '2022-05-18 11:05:26', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (834, 3, '执行中', '3', 'yz_bulk_business_state_id', NULL, NULL, 'N', '0', 'admin', '2022-05-18 11:05:42', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (835, 4, '已超时', '4', 'yz_bulk_business_state_id', NULL, NULL, 'N', '0', 'admin', '2022-05-18 11:06:43', 'admin', '2022-05-18 11:06:49', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (836, 0, '待处理', '0', 'yz_bulk_businessDtails_state_id', NULL, NULL, 'N', '0', 'admin', '2022-05-18 11:32:24', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (837, 1, '成功', '1', 'yz_bulk_businessDtails_state_id', NULL, NULL, 'N', '0', 'admin', '2022-05-18 11:32:32', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (838, 2, '失败', '2', 'yz_bulk_businessDtails_state_id', NULL, NULL, 'N', '0', 'admin', '2022-05-18 11:32:38', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (841, 1, 'iccid', '1', 'yunze_typeOptionsError', NULL, NULL, 'N', '0', 'admin', '2022-05-16 14:14:48', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (842, 2, '错误代码', '2', 'yunze_typeOptionsError', NULL, NULL, 'N', '0', 'admin', '2022-05-16 15:40:03', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (843, 3, '错误信息', '3', 'yunze_typeOptionsError', NULL, NULL, 'N', '0', 'admin', '2022-05-16 15:40:10', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (844, 1, '错误代码', '1', 'yunze_typeOptionsGroup', NULL, NULL, 'N', '0', 'admin', '2022-05-16 15:40:58', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (845, 2, '错误信息', '2', 'yunze_typeOptionsGroup', NULL, NULL, 'N', '0', 'admin', '2022-05-16 15:41:04', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (846, 1, '任务名', '1', 'yunze_batchBusiness_type', NULL, NULL, 'N', '0', 'admin', '2022-05-26 10:14:20', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (847, 2, '编号', '2', 'yunze_batchBusiness_type', NULL, NULL, 'N', '0', 'admin', '2022-05-26 10:14:27', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (848, 3, '创建人', '3', 'yunze_batchBusiness_type', NULL, NULL, 'N', '0', 'admin', '2022-05-26 10:14:39', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (849, 1, '号码', '1', 'yunze_businessDetails_type', NULL, NULL, 'N', '0', 'admin', '2022-05-26 10:26:12', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (850, 2, '描述', '2', 'yunze_businessDetails_type', NULL, NULL, 'N', '0', 'admin', '2022-05-26 10:26:24', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (860, 5, '已停机', '5', 'pollingOther_cardCardStatus', NULL, NULL, 'N', '0', 'admin', '2022-06-06 10:14:46', 'admin', '2022-06-07 10:43:31', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (863, 3, '待激活', '3', 'pollingOther_cardCardStatus', NULL, NULL, 'N', '0', 'admin', '2022-06-07 10:43:17', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (864, 4, '已激活', '4', 'pollingOther_cardCardActivateDate', NULL, NULL, 'N', '0', 'admin', '2022-06-13 12:11:46', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (875, 1, '订单号', '1', 'cardNumberAge', NULL, NULL, 'N', '0', 'admin', '2022-05-30 13:25:43', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (876, 2, 'ICCID', '2', 'cardNumberAge', NULL, NULL, 'N', '0', 'admin', '2022-05-30 13:25:57', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (877, 3, '微信订单号', '3', 'cardNumberAge', NULL, NULL, 'N', '0', 'admin', '2022-05-30 13:26:10', '', NULL, NULL); + + + +# 字典详情 更新 [2022-08-30] [zf] + + +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '男', `dict_value` = '0', `dict_type` = 'sys_user_sex', `css_class` = '', `list_class` = '', `is_default` = 'Y', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '性别男' WHERE `dict_code` = 1; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '女', `dict_value` = '1', `dict_type` = 'sys_user_sex', `css_class` = '', `list_class` = '', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '性别女' WHERE `dict_code` = 2; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '未知', `dict_value` = '2', `dict_type` = 'sys_user_sex', `css_class` = '', `list_class` = '', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '性别未知' WHERE `dict_code` = 3; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '显示', `dict_value` = '0', `dict_type` = 'sys_show_hide', `css_class` = '', `list_class` = 'primary', `is_default` = 'Y', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '显示菜单' WHERE `dict_code` = 4; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '隐藏', `dict_value` = '1', `dict_type` = 'sys_show_hide', `css_class` = '', `list_class` = 'danger', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '隐藏菜单' WHERE `dict_code` = 5; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '正常', `dict_value` = '0', `dict_type` = 'sys_normal_disable', `css_class` = '', `list_class` = 'primary', `is_default` = 'Y', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '正常状态' WHERE `dict_code` = 6; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '停用', `dict_value` = '1', `dict_type` = 'sys_normal_disable', `css_class` = '', `list_class` = 'danger', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '停用状态' WHERE `dict_code` = 7; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '正常', `dict_value` = '0', `dict_type` = 'sys_job_status', `css_class` = '', `list_class` = 'primary', `is_default` = 'Y', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '正常状态' WHERE `dict_code` = 8; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '暂停', `dict_value` = '1', `dict_type` = 'sys_job_status', `css_class` = '', `list_class` = 'danger', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '停用状态' WHERE `dict_code` = 9; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '默认', `dict_value` = 'DEFAULT', `dict_type` = 'sys_job_group', `css_class` = '', `list_class` = '', `is_default` = 'Y', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '默认分组' WHERE `dict_code` = 10; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '系统', `dict_value` = 'SYSTEM', `dict_type` = 'sys_job_group', `css_class` = '', `list_class` = '', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '系统分组' WHERE `dict_code` = 11; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '是', `dict_value` = 'Y', `dict_type` = 'sys_yes_no', `css_class` = '', `list_class` = 'primary', `is_default` = 'Y', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '系统默认是' WHERE `dict_code` = 12; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '否', `dict_value` = 'N', `dict_type` = 'sys_yes_no', `css_class` = '', `list_class` = 'danger', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '系统默认否' WHERE `dict_code` = 13; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '通知', `dict_value` = '1', `dict_type` = 'sys_notice_type', `css_class` = '', `list_class` = 'warning', `is_default` = 'Y', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '通知' WHERE `dict_code` = 14; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '公告', `dict_value` = '2', `dict_type` = 'sys_notice_type', `css_class` = '', `list_class` = 'success', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '公告' WHERE `dict_code` = 15; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '正常', `dict_value` = '0', `dict_type` = 'sys_notice_status', `css_class` = '', `list_class` = 'primary', `is_default` = 'Y', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '正常状态' WHERE `dict_code` = 16; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '关闭', `dict_value` = '1', `dict_type` = 'sys_notice_status', `css_class` = '', `list_class` = 'danger', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '关闭状态' WHERE `dict_code` = 17; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '新增', `dict_value` = '1', `dict_type` = 'sys_oper_type', `css_class` = '', `list_class` = 'info', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '新增操作' WHERE `dict_code` = 18; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '修改', `dict_value` = '2', `dict_type` = 'sys_oper_type', `css_class` = '', `list_class` = 'info', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '修改操作' WHERE `dict_code` = 19; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '删除', `dict_value` = '3', `dict_type` = 'sys_oper_type', `css_class` = '', `list_class` = 'danger', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '删除操作' WHERE `dict_code` = 20; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '授权', `dict_value` = '4', `dict_type` = 'sys_oper_type', `css_class` = '', `list_class` = 'primary', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '授权操作' WHERE `dict_code` = 21; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '导出', `dict_value` = '5', `dict_type` = 'sys_oper_type', `css_class` = '', `list_class` = 'warning', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '导出操作' WHERE `dict_code` = 22; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '导入', `dict_value` = '6', `dict_type` = 'sys_oper_type', `css_class` = '', `list_class` = 'warning', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '导入操作' WHERE `dict_code` = 23; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 7, `dict_label` = '强退', `dict_value` = '7', `dict_type` = 'sys_oper_type', `css_class` = '', `list_class` = 'danger', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '强退操作' WHERE `dict_code` = 24; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 8, `dict_label` = '生成代码', `dict_value` = '8', `dict_type` = 'sys_oper_type', `css_class` = '', `list_class` = 'warning', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '生成操作' WHERE `dict_code` = 25; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 9, `dict_label` = '清空数据', `dict_value` = '9', `dict_type` = 'sys_oper_type', `css_class` = '', `list_class` = 'danger', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '清空操作' WHERE `dict_code` = 26; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '成功', `dict_value` = '0', `dict_type` = 'sys_common_status', `css_class` = '', `list_class` = 'primary', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '正常状态' WHERE `dict_code` = 27; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '失败', `dict_value` = '1', `dict_type` = 'sys_common_status', `css_class` = '', `list_class` = 'danger', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '停用状态' WHERE `dict_code` = 28; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '中国移动', `dict_value` = '1', `dict_type` = 'card_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 10:49:40', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 100; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '中国联通', `dict_value` = '2', `dict_type` = 'card_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 10:50:08', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 101; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '中国电信', `dict_value` = '3', `dict_type` = 'card_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 10:50:18', `update_by` = 'admin', `update_time` = '2021-06-05 10:51:06', `remark` = NULL WHERE `dict_code` = 102; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '其他', `dict_value` = '4', `dict_type` = 'card_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-05 10:50:42', `update_by` = 'admin', `update_time` = '2021-06-05 10:51:10', `remark` = NULL WHERE `dict_code` = 103; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '卡号', `dict_value` = '1', `dict_type` = 'yunze_card_seltype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 09:21:09', `update_by` = 'admin', `update_time` = '2021-06-07 09:22:33', `remark` = '卡号查询 vid/msisdn/iccid/imsi' WHERE `dict_code` = 104; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '备注', `dict_value` = '2', `dict_type` = 'yunze_card_seltype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 09:22:29', `update_by` = '', `update_time` = NULL, `remark` = '卡板备注' WHERE `dict_code` = 105; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '开卡日期', `dict_value` = '1', `dict_type` = 'yunze_card_sel_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 12:23:05', `update_by` = 'admin', `update_time` = '2022-01-24 09:52:03', `remark` = NULL WHERE `dict_code` = 106; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '激活日期', `dict_value` = '2', `dict_type` = 'yunze_card_sel_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 12:23:35', `update_by` = 'admin', `update_time` = '2022-01-24 09:52:19', `remark` = NULL WHERE `dict_code` = 107; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '入库日期', `dict_value` = '3', `dict_type` = 'yunze_card_sel_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 12:23:50', `update_by` = 'admin', `update_time` = '2022-01-24 09:52:23', `remark` = NULL WHERE `dict_code` = 108; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '正常', `dict_value` = '0', `dict_type` = 'yunze_card_deltype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 12:26:06', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 109; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '已删除', `dict_value` = '1', `dict_type` = 'yunze_card_deltype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 12:26:12', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 110; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '移动', `dict_value` = '1', `dict_type` = 'yunze_card_operators_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:15:06', `update_by` = 'admin', `update_time` = '2021-06-07 16:15:24', `remark` = NULL WHERE `dict_code` = 111; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '联通', `dict_value` = '2', `dict_type` = 'yunze_card_operators_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:15:15', `update_by` = 'admin', `update_time` = '2021-06-07 16:15:27', `remark` = NULL WHERE `dict_code` = 112; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '电信', `dict_value` = '3', `dict_type` = 'yunze_card_operators_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:15:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 113; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '全网通', `dict_value` = '4', `dict_type` = 'yunze_card_operators_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:16:00', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 114; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '单项停机', `dict_value` = '3', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:29:20', `update_by` = 'admin', `update_time` = '2021-06-09 10:16:03', `remark` = NULL WHERE `dict_code` = 115; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '正常', `dict_value` = '1', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:29:32', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 116; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '停机', `dict_value` = '2', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:29:46', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 117; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '预销号', `dict_value` = '4', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:30:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 118; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '过户', `dict_value` = '5', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:30:15', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 119; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '休眠', `dict_value` = '6', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:30:31', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 120; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 7, `dict_label` = '待激活', `dict_value` = '7', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:30:41', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 121; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 8, `dict_label` = '未知', `dict_value` = '8', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:31:02', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 122; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 9, `dict_label` = '测试期正常', `dict_value` = '9', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:31:21', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 123; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 10, `dict_label` = '测试期停机', `dict_value` = '10', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:31:30', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 124; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 11, `dict_label` = '停机保号', `dict_value` = '11', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:31:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 125; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 12, `dict_label` = '机卡分离停机', `dict_value` = '12', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:31:59', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 126; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 13, `dict_label` = '空套餐', `dict_value` = '13', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-07 16:32:11', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 127; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '当月生效', `dict_value` = '1', `dict_type` = 'yunze_card_takeEffect_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 08:55:50', `update_by` = 'admin', `update_time` = '2021-06-22 11:14:16', `remark` = NULL WHERE `dict_code` = 128; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '次月生效', `dict_value` = '2', `dict_type` = 'yunze_card_takeEffect_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 08:56:18', `update_by` = 'admin', `update_time` = '2021-06-22 11:14:20', `remark` = NULL WHERE `dict_code` = 129; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '周期延顺', `dict_value` = '3', `dict_type` = 'yunze_card_takeEffect_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 08:58:17', `update_by` = 'admin', `update_time` = '2021-06-22 11:14:23', `remark` = NULL WHERE `dict_code` = 130; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '已失效', `dict_value` = '0', `dict_type` = 'yunze_card_valid_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 09:01:14', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 131; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '生效中', `dict_value` = '1', `dict_type` = 'yunze_card_valid_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 09:01:23', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 132; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '微信支付', `dict_value` = 'wx', `dict_type` = 'yunze_card_pay_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 09:02:50', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 133; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '余额支付', `dict_value` = 'be', `dict_type` = 'yunze_card_pay_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 09:03:39', `update_by` = 'admin', `update_time` = '2021-06-09 09:03:45', `remark` = NULL WHERE `dict_code` = 134; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '人工操作', `dict_value` = 'al', `dict_type` = 'yunze_card_pay_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 09:04:28', `update_by` = 'admin', `update_time` = '2021-08-06 10:55:23', `remark` = NULL WHERE `dict_code` = 135; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '否', `dict_value` = '0', `dict_type` = 'yunze_customize_whether', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 09:07:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 136; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '是', `dict_value` = '1', `dict_type` = 'yunze_customize_whether', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-09 09:07:26', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 137; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '普通贴片MS0 5mm*6mm', `dict_value` = '1', `dict_type` = 'yunze_card_card_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 08:52:08', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 138; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '普通SIM卡MS0 5mm*6mm', `dict_value` = '2', `dict_type` = 'yunze_card_card_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 08:52:40', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 139; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = 'NB', `dict_value` = '1', `dict_type` = 'yunze_card_network_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 08:53:41', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 140; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '4G SIM', `dict_value` = '2', `dict_type` = 'yunze_card_network_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 08:53:52', `update_by` = 'admin', `update_time` = '2021-06-10 08:54:09', `remark` = NULL WHERE `dict_code` = 141; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '5G SIM', `dict_value` = '3', `dict_type` = 'yunze_card_network_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 08:54:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 142; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '离线', `dict_value` = '00', `dict_type` = 'yunze_card_online_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 14:01:14', `update_by` = 'admin', `update_time` = '2021-06-10 14:01:22', `remark` = 'EC' WHERE `dict_code` = 143; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '在线', `dict_value` = '01', `dict_type` = 'yunze_card_online_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 14:01:36', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 144; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '3G', `dict_value` = '1', `dict_type` = 'yunze_card_access_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 14:02:48', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 145; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '2G', `dict_value` = '2', `dict_type` = 'yunze_card_access_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 14:02:55', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 146; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '4G', `dict_value` = '6', `dict_type` = 'yunze_card_access_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 14:03:10', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 147; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 8, `dict_label` = 'NB', `dict_value` = '8', `dict_type` = 'yunze_card_access_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-10 14:03:23', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 148; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '虚拟编号', `dict_value` = '1', `dict_type` = 'yunze_card_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-11 15:17:27', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 149; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = 'MSISDN', `dict_value` = '2', `dict_type` = 'yunze_card_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-11 15:17:45', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 150; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = 'ICCID', `dict_value` = '3', `dict_type` = 'yunze_card_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-11 15:17:55', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 151; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = 'IMSI', `dict_value` = '4', `dict_type` = 'yunze_card_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-11 15:18:06', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 152; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '通道名称', `dict_value` = '2', `dict_type` = 'yunze_channel_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 12:22:37', `update_by` = 'admin', `update_time` = '2021-06-21 08:40:22', `remark` = NULL WHERE `dict_code` = 153; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '升序', `dict_value` = '1', `dict_type` = 'ORDER_BY_rule', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 13:32:30', `update_by` = '', `update_time` = NULL, `remark` = 'ASC' WHERE `dict_code` = 154; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '倒叙', `dict_value` = '2', `dict_type` = 'ORDER_BY_rule', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 13:32:41', `update_by` = '', `update_time` = NULL, `remark` = 'DESC' WHERE `dict_code` = 155; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = 'channel_ORDER_BY_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 13:34:42', `update_by` = '', `update_time` = NULL, `remark` = 'createTime' WHERE `dict_code` = 156; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '通道编号', `dict_value` = '2', `dict_type` = 'channel_ORDER_BY_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 13:34:58', `update_by` = '', `update_time` = NULL, `remark` = 'cd_code' WHERE `dict_code` = 157; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '启用', `dict_value` = '1', `dict_type` = 'channel_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 13:41:52', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 158; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '停用', `dict_value` = '2', `dict_type` = 'channel_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 13:42:02', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 159; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '已删除', `dict_value` = '3', `dict_type` = 'channel_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 13:42:11', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 160; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '中国移动', `dict_value` = 'YiDong_EC', `dict_type` = 'channel_code', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 14:46:59', `update_by` = '', `update_time` = NULL, `remark` = '移动EC新平台' WHERE `dict_code` = 161; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '中国电信', `dict_value` = 'DianXin_CMP', `dict_type` = 'channel_code', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 14:47:40', `update_by` = 'admin', `update_time` = '2021-06-19 14:48:41', `remark` = '电信CMP' WHERE `dict_code` = 162; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '全球电信', `dict_value` = 'DianXin_DCP', `dict_type` = 'channel_code', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-19 14:49:19', `update_by` = '', `update_time` = NULL, `remark` = 'DianXin_DCP' WHERE `dict_code` = 164; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '通道别名', `dict_value` = '3', `dict_type` = 'yunze_channel_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 08:40:15', `update_by` = 'admin', `update_time` = '2021-06-21 08:40:27', `remark` = NULL WHERE `dict_code` = 165; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '任务名', `dict_value` = '1', `dict_type` = 'executionTask_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 11:30:21', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 166; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '创建人', `dict_value` = '2', `dict_type` = 'executionTask_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 11:30:37', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 167; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '下载地址', `dict_value` = '3', `dict_type` = 'executionTask_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 11:31:08', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 168; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = 'executionTask_ORDER_BY_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 11:40:22', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 169; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '任务名', `dict_value` = '2', `dict_type` = 'executionTask_ORDER_BY_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 11:40:35', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 170; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '修改时间', `dict_value` = '3', `dict_type` = 'executionTask_ORDER_BY_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 11:41:44', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 171; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '连接管理导入', `dict_value` = '_CardImport', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 14:17:45', `update_by` = 'admin', `update_time` = '2021-07-28 12:19:58', `remark` = NULL WHERE `dict_code` = 172; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '连接管理导出', `dict_value` = '_CardOut', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 14:17:54', `update_by` = 'admin', `update_time` = '2021-07-28 12:20:05', `remark` = NULL WHERE `dict_code` = 173; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '上游通道导出', `dict_value` = '_ChannelOut', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-21 14:18:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 174; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '月', `dict_value` = '1', `dict_type` = 'yunze_packet_valid_name', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-22 16:20:27', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 175; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '年', `dict_value` = '2', `dict_type` = 'yunze_packet_valid_name', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-22 16:20:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 176; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '资费组名称', `dict_value` = '1', `dict_type` = 'yunze_tariffGroup_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-22 17:15:27', `update_by` = 'admin', `update_time` = '2021-06-22 17:35:27', `remark` = NULL WHERE `dict_code` = 177; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '平台资费组名称', `dict_value` = '2', `dict_type` = 'yunze_tariffGroup_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-22 17:15:41', `update_by` = 'admin', `update_time` = '2021-06-22 17:40:30', `remark` = NULL WHERE `dict_code` = 178; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '资费计划名称', `dict_value` = '1', `dict_type` = 'yunze_tariffPlan_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-22 17:18:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 179; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '平台计划名称', `dict_value` = '2', `dict_type` = 'yunze_tariffPlan_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-06-22 17:18:19', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 180; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '金额充值', `dict_value` = '1', `dict_type` = 'yunze_order_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-03 10:50:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 181; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '用量充值', `dict_value` = '2', `dict_type` = 'yunze_order_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-03 10:51:03', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 182; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '未支付', `dict_value` = '0', `dict_type` = 'yunze_order_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-03 10:52:22', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 183; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '支付成功', `dict_value` = '1', `dict_type` = 'yunze_order_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-03 10:52:48', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 184; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '激活生效', `dict_value` = '4', `dict_type` = 'yunze_card_takeEffect_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-03 11:35:12', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 185; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '未生效', `dict_value` = '2', `dict_type` = 'yunze_card_valid_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-03 11:36:23', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 186; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 14, `dict_label` = '运营商管理状态', `dict_value` = '14', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-06 15:44:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 188; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '轮询任务', `dict_value` = 'POLLING', `dict_type` = 'sys_job_group', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-07 15:23:51', `update_by` = 'admin', `update_time` = '2021-11-12 09:32:39', `remark` = NULL WHERE `dict_code` = 189; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '激活时间-高频', `dict_value` = '1', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-08 14:20:36', `update_by` = 'admin', `update_time` = '2022-03-09 14:36:14', `remark` = '无激活时间才获取激活时间' WHERE `dict_code` = 190; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '卡状态-高频', `dict_value` = '2', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-08 14:25:02', `update_by` = 'admin', `update_time` = '2022-03-09 13:35:27', `remark` = NULL WHERE `dict_code` = 191; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '用量轮序-高频', `dict_value` = '3', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-08 14:26:05', `update_by` = 'admin', `update_time` = '2022-03-09 08:53:08', `remark` = NULL WHERE `dict_code` = 192; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '工业贴片MS1 5mm*6mm', `dict_value` = '3', `dict_type` = 'yunze_card_card_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-09 09:12:57', `update_by` = 'admin', `update_time` = '2021-08-05 08:26:02', `remark` = 'NB贴片' WHERE `dict_code` = 193; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 15, `dict_label` = '测试去激活', `dict_value` = '15', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-16 09:06:00', `update_by` = 'admin', `update_time` = '2021-07-16 09:06:16', `remark` = '电信CMP' WHERE `dict_code` = 194; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 16, `dict_label` = '拆机', `dict_value` = '16', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-16 09:08:06', `update_by` = '', `update_time` = NULL, `remark` = '电信CMP' WHERE `dict_code` = 195; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 17, `dict_label` = '可测试', `dict_value` = '17', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-16 14:16:08', `update_by` = 'admin', `update_time` = '2021-07-16 14:16:14', `remark` = NULL WHERE `dict_code` = 196; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 18, `dict_label` = '销号', `dict_value` = '18', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-21 15:41:43', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 199; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 19, `dict_label` = '库存', `dict_value` = '19', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-21 15:43:36', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 200; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '达量停机', `dict_value` = '4', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-23 17:35:17', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 202; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '连接管理导出', `dict_value` = '1', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-28 08:36:33', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 203; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '连接管理划卡', `dict_value` = '2', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-28 08:36:55', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 204; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '连接管理导入', `dict_value` = '3', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-28 08:44:46', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 205; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '上游通道导出', `dict_value` = '4', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-28 08:45:56', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 206; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '连接管理划卡', `dict_value` = '_CardDistribute', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-28 12:20:35', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 207; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '连接管理划卡备份', `dict_value` = '_CardDistributeBackup', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-28 13:04:27', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 208; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 20, `dict_label` = '违章停机', `dict_value` = '20', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-31 14:37:07', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 210; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 21, `dict_label` = '断网', `dict_value` = '21', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-31 15:16:09', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 211; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 22, `dict_label` = '开始', `dict_value` = '22', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-02 09:17:24', `update_by` = '', `update_time` = NULL, `remark` = '联通CMP' WHERE `dict_code` = 212; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 23, `dict_label` = '已失效', `dict_value` = '23', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-02 09:21:25', `update_by` = '', `update_time` = NULL, `remark` = '联通CMP' WHERE `dict_code` = 213; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 24, `dict_label` = '已清除', `dict_value` = '24', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-02 09:21:45', `update_by` = 'admin', `update_time` = '2021-08-02 09:22:09', `remark` = '联通CMP' WHERE `dict_code` = 214; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 25, `dict_label` = '已更换', `dict_value` = '25', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-02 09:21:53', `update_by` = 'admin', `update_time` = '2021-08-02 09:22:06', `remark` = '联通CMP' WHERE `dict_code` = 215; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '工业插拔', `dict_value` = '4', `dict_type` = 'yunze_card_card_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-05 08:25:50', `update_by` = 'admin', `update_time` = '2021-08-05 08:26:35', `remark` = 'NB插拔' WHERE `dict_code` = 216; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '订单号', `dict_value` = '2', `dict_type` = 'yunze_order_seltype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 10:48:36', `update_by` = 'admin', `update_time` = '2021-08-09 09:46:32', `remark` = NULL WHERE `dict_code` = 218; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '交易名称', `dict_value` = '3', `dict_type` = 'yunze_order_seltype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 10:48:51', `update_by` = 'admin', `update_time` = '2021-08-09 09:46:47', `remark` = NULL WHERE `dict_code` = 219; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '微信订单号', `dict_value` = '4', `dict_type` = 'yunze_order_seltype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 10:49:08', `update_by` = 'admin', `update_time` = '2021-08-09 09:46:52', `remark` = NULL WHERE `dict_code` = 220; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = 'ICCID', `dict_value` = '1', `dict_type` = 'yunze_order_seltype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 10:49:22', `update_by` = 'admin', `update_time` = '2021-08-09 09:46:37', `remark` = NULL WHERE `dict_code` = 221; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '平台记录', `dict_value` = 's', `dict_type` = 'yunze_card_pay_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 10:55:00', `update_by` = 'admin', `update_time` = '2021-08-06 10:55:16', `remark` = NULL WHERE `dict_code` = 222; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '系统', `dict_value` = 'sys', `dict_type` = 'yunze_order_creType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 10:58:15', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 223; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '人工', `dict_value` = 'ai', `dict_type` = 'yunze_order_creType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 10:58:57', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 224; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '否', `dict_value` = '0', `dict_type` = 'yunze_order_profitType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 11:02:31', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 225; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '比例', `dict_value` = '1', `dict_type` = 'yunze_order_profitType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 11:03:11', `update_by` = 'admin', `update_time` = '2021-08-06 11:03:51', `remark` = NULL WHERE `dict_code` = 226; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '差价', `dict_value` = '2', `dict_type` = 'yunze_order_profitType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 11:03:22', `update_by` = 'admin', `update_time` = '2021-08-06 11:03:41', `remark` = NULL WHERE `dict_code` = 227; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '备注', `dict_value` = '5', `dict_type` = 'yunze_order_seltype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 11:07:10', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 228; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = 'yunze_order_sel_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 11:44:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 229; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '加包时间', `dict_value` = '2', `dict_type` = 'yunze_order_sel_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 11:44:28', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 230; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = 'ICCID', `dict_value` = '1', `dict_type` = 'yunze_order_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-06 17:41:59', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 231; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '平台批量充值', `dict_value` = '5', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-12 16:13:18', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 233; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '平台资费订购', `dict_value` = '_importRecharge', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-13 13:48:14', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 234; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '连接管理设置', `dict_value` = '6', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-18 11:57:54', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 235; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 7, `dict_label` = '连接设置详情', `dict_value` = '_CardImportSet', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-18 11:59:56', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 236; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 8, `dict_label` = '连接管理设置备份', `dict_value` = '_CardImportSetBackup', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-18 12:00:14', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 237; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '备份任务', `dict_value` = 'BACKUP', `dict_type` = 'sys_job_group', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-18 17:25:27', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 238; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 9, `dict_label` = 'imei查询', `dict_value` = '_CardImportSelImei', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-20 16:36:39', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 239; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 7, `dict_label` = '特殊操作 查询imie', `dict_value` = '7', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-20 16:37:44', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 240; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '基础资费', `dict_value` = '0', `dict_type` = 'yunze_packet_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-01 16:05:19', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 241; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '叠加资费', `dict_value` = '1', `dict_type` = 'yunze_packet_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-01 16:05:30', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 242; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '仅一次', `dict_value` = '0', `dict_type` = 'yunze_base_packet_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-03 15:31:06', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 243; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '可叠加', `dict_value` = '1', `dict_type` = 'yunze_base_packet_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-03 15:31:18', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 244; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '请求参数', `dict_value` = '4', `dict_type` = 'system_yz_sys_logs_sysLog', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-24 10:49:25', `update_by` = '', `update_time` = NULL, `remark` = '请求参数' WHERE `dict_code` = 245; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '响应参数', `dict_value` = '5', `dict_type` = 'system_yz_sys_logs_sysLog', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-24 10:49:52', `update_by` = '', `update_time` = NULL, `remark` = '响应参数' WHERE `dict_code` = 246; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '操作名称', `dict_value` = '6', `dict_type` = 'system_yz_sys_logs_sysLog', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-24 10:50:20', `update_by` = '', `update_time` = NULL, `remark` = '操作名称' WHERE `dict_code` = 247; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = 'iotapi', `dict_value` = 'iotapi', `dict_type` = 'yz_sys_logs_project', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-24 10:51:45', `update_by` = 'admin', `update_time` = '2021-08-24 12:02:16', `remark` = NULL WHERE `dict_code` = 248; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '对应串号', `dict_value` = '1', `dict_type` = 'dosage_details_flow_his', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-26 09:14:59', `update_by` = '', `update_time` = NULL, `remark` = '对应串号' WHERE `dict_code` = 249; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = 'yunze_yz_card_flow_his', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-26 09:44:16', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 250; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '修改时间', `dict_value` = '2', `dict_type` = 'yunze_yz_card_flow_his', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-26 09:44:54', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 251; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '0', `dict_type` = 'yunze_yz_passageway', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-31 11:39:48', `update_by` = '', `update_time` = NULL, `remark` = '通道进度创建时间' WHERE `dict_code` = 252; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '修改时间', `dict_value` = '1', `dict_type` = 'yunze_yz_passageway', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-31 11:40:25', `update_by` = '', `update_time` = NULL, `remark` = '通道进度修改时间' WHERE `dict_code` = 253; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '轮序批次编码', `dict_value` = '0', `dict_type` = 'yz_passageway_polling', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-31 14:05:46', `update_by` = 'admin', `update_time` = '2021-09-01 10:11:19', `remark` = NULL WHERE `dict_code` = 254; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '同步时间', `dict_value` = '2', `dict_type` = 'yunze_yz_passageway', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-31 14:13:21', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 255; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = 'iccid', `dict_value` = '0', `dict_type` = 'yunze_sorting_rules', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 13:34:33', `update_by` = '', `update_time` = NULL, `remark` = '排序规则iccid' WHERE `dict_code` = 257; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '0', `dict_type` = 'yunze_card_flow', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 13:54:40', `update_by` = '', `update_time` = NULL, `remark` = '创建时间' WHERE `dict_code` = 258; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '生效时间', `dict_value` = '1', `dict_type` = 'yunze_card_flow', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 13:55:05', `update_by` = '', `update_time` = NULL, `remark` = '生效时间' WHERE `dict_code` = 259; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '到期时间', `dict_value` = '2', `dict_type` = 'yunze_card_flow', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 13:55:23', `update_by` = '', `update_time` = NULL, `remark` = '到期时间' WHERE `dict_code` = 260; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '更新累计包时间', `dict_value` = '3', `dict_type` = 'yunze_card_flow', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 13:55:48', `update_by` = '', `update_time` = NULL, `remark` = '更新累计包时间' WHERE `dict_code` = 261; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '升序', `dict_value` = '0', `dict_type` = 'Lifting_sequence', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 14:01:04', `update_by` = '', `update_time` = NULL, `remark` = '升序' WHERE `dict_code` = 262; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '降序', `dict_value` = '1', `dict_type` = 'Lifting_sequence', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 14:01:19', `update_by` = '', `update_time` = NULL, `remark` = '降序' WHERE `dict_code` = 263; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '订单号', `dict_value` = '0', `dict_type` = 'yz_card_flow', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 14:23:41', `update_by` = '', `update_time` = NULL, `remark` = '订购资费订单号' WHERE `dict_code` = 264; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '对应串号', `dict_value` = '1', `dict_type` = 'yz_card_flow', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-06 14:25:29', `update_by` = '', `update_time` = NULL, `remark` = '订购资费对应串号' WHERE `dict_code` = 265; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '0', `dict_type` = 'yunze_syslogs_sel_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-24 08:55:05', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 266; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '请求url', `dict_value` = '1', `dict_type` = 'system_yz_sys_logs_sysLog', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-24 10:46:33', `update_by` = '', `update_time` = NULL, `remark` = '请求url' WHERE `dict_code` = 267; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '执行的类方法', `dict_value` = '2', `dict_type` = 'system_yz_sys_logs_sysLog', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-24 10:47:19', `update_by` = 'admin', `update_time` = '2021-08-24 10:47:54', `remark` = NULL WHERE `dict_code` = 268; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = 'ip', `dict_value` = '3', `dict_type` = 'system_yz_sys_logs_sysLog', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-24 10:48:30', `update_by` = 'admin', `update_time` = '2021-08-24 10:48:45', `remark` = NULL WHERE `dict_code` = 269; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '生命周期', `dict_value` = '1', `dict_type` = 'yz_cardChange_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 09:39:11', `update_by` = 'admin', `update_time` = '2021-09-14 09:39:25', `remark` = NULL WHERE `dict_code` = 270; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '断开网状态', `dict_value` = '2', `dict_type` = 'yz_cardChange_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 09:39:51', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 271; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '达量停机', `dict_value` = '1', `dict_type` = 'yz_cardChange_sourceType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 09:41:33', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 272; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '未订购轮询停机', `dict_value` = '2', `dict_type` = 'yz_cardChange_sourceType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 09:41:48', `update_by` = 'admin', `update_time` = '2021-09-14 14:53:39', `remark` = NULL WHERE `dict_code` = 273; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '手动变更', `dict_value` = '3', `dict_type` = 'yz_cardChange_sourceType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 09:42:02', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 274; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = 'C端充值', `dict_value` = '4', `dict_type` = 'yz_cardChange_sourceType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 09:42:32', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 275; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '批量操作', `dict_value` = '5', `dict_type` = 'yz_cardChange_sourceType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 09:42:54', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 276; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '未订购资费断网', `dict_value` = '5', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 10:16:15', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 277; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '正常', `dict_value` = '1', `dict_type` = 'yz_cardConnection_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 11:41:44', `update_by` = 'admin', `update_time` = '2021-09-14 11:42:04', `remark` = NULL WHERE `dict_code` = 278; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '断网', `dict_value` = '2', `dict_type` = 'yz_cardConnection_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 11:41:58', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 279; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '成功', `dict_value` = '1', `dict_type` = 'yz_cardChange_ExecutionStatus', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-15 08:38:37', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 280; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '失败', `dict_value` = '2', `dict_type` = 'yz_cardChange_ExecutionStatus', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-15 08:38:43', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 281; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '虚拟编号', `dict_value` = '0', `dict_type` = 'cardNumber', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-09 17:15:00', `update_by` = '', `update_time` = NULL, `remark` = '卡号类别虚拟编号' WHERE `dict_code` = 282; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = 'MSISDN', `dict_value` = '1', `dict_type` = 'cardNumber', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-09 17:15:18', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 283; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = 'ICCID', `dict_value` = '2', `dict_type` = 'cardNumber', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-09 17:15:35', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 284; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = 'IMSI', `dict_value` = '3', `dict_type` = 'cardNumber', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-09 17:15:49', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 285; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 26, `dict_label` = '用户注销', `dict_value` = '26', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-18 15:51:11', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 287; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 27, `dict_label` = '停断网', `dict_value` = '27', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-18 15:52:19', `update_by` = 'admin', `update_time` = '2021-10-11 15:58:07', `remark` = '欠停' WHERE `dict_code` = 288; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 28, `dict_label` = '挂失', `dict_value` = '28', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-18 15:53:15', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 289; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 29, `dict_label` = '故障卡', `dict_value` = '29', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-18 15:54:10', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 290; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 30, `dict_label` = '未实名停机', `dict_value` = '30', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-18 15:54:59', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 291; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 31, `dict_label` = '超量停机', `dict_value` = '31', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-18 15:58:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 292; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 32, `dict_label` = '停机保号', `dict_value` = '32', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-18 15:59:26', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 293; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 33, `dict_label` = '已锁定', `dict_value` = '33', `dict_type` = 'yunze_card_status_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-18 16:00:02', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 294; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '商品购买', `dict_value` = '3', `dict_type` = 'yunze_order_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-23 12:46:25', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 295; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 99, `dict_label` = '购买下单邮件推送', `dict_value` = '99', `dict_type` = 'yz_cc_trigger_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 14:53:03', `update_by` = 'admin', `update_time` = '2021-09-24 15:15:31', `remark` = NULL WHERE `dict_code` = 296; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '卡状态变更', `dict_value` = '1', `dict_type` = 'yz_cc_trigger_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 14:53:14', `update_by` = 'admin', `update_time` = '2021-09-24 15:16:06', `remark` = NULL WHERE `dict_code` = 297; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '单卡有效期', `dict_value` = '2', `dict_type` = 'yz_cc_trigger_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 15:16:23', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 298; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '单卡用量', `dict_value` = '3', `dict_type` = 'yz_cc_trigger_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 15:16:36', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 299; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '邮件推送', `dict_value` = '1', `dict_type` = 'yz_cc_execution_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 15:21:10', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 300; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = 'API推送', `dict_value` = '2', `dict_type` = 'yz_cc_execution_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 15:31:31', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 301; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '正常', `dict_value` = '1', `dict_type` = 'yz_cc_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 15:32:13', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 302; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '已停用', `dict_value` = '2', `dict_type` = 'yz_cc_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 15:32:25', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 303; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '已删除', `dict_value` = '3', `dict_type` = 'yz_cc_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 15:32:49', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 304; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '默认', `dict_value` = '1', `dict_type` = 'yz_cc_template', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-24 15:34:19', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 305; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '待处理', `dict_value` = '0', `dict_type` = 'yz_cc_HisStatus', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-26 17:03:54', `update_by` = 'admin', `update_time` = '2021-09-26 17:04:01', `remark` = NULL WHERE `dict_code` = 313; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '已处理', `dict_value` = '1', `dict_type` = 'yz_cc_HisStatus', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-26 17:04:53', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 314; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '失败', `dict_value` = '0', `dict_type` = 'yz_cc_result', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-26 17:06:24', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 315; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '成功', `dict_value` = '1', `dict_type` = 'yz_cc_result', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-26 17:06:32', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 316; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '已废弃', `dict_value` = '0', `dict_type` = 'yz_enabled_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-27 14:52:05', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 317; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '正常', `dict_value` = '1', `dict_type` = 'yz_enabled_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-27 14:52:15', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 318; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '下架', `dict_value` = '0', `dict_type` = 'yz_commodity_sell', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-27 18:04:30', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 319; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '售卖中', `dict_value` = '1', `dict_type` = 'yz_commodity_sell', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-27 18:04:47', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 320; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '未审核', `dict_value` = '0', `dict_type` = 'yz_check_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-27 18:06:44', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 321; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '已审核', `dict_value` = '1', `dict_type` = 'yz_check_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-27 18:06:55', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 322; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '不操作', `dict_value` = '1', `dict_type` = 'Stop_and_resume', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-28 09:32:13', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 323; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '停机', `dict_value` = '2', `dict_type` = 'Stop_and_resume', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-28 09:32:30', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 324; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '复机', `dict_value` = '3', `dict_type` = 'Stop_and_resume', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-28 09:32:48', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 325; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '不操作', `dict_value` = '1', `dict_type` = 'Disconnect_the_network', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-28 09:40:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 326; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '断网', `dict_value` = '2', `dict_type` = 'Disconnect_the_network', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-28 09:40:22', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 327; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '开网', `dict_value` = '3', `dict_type` = 'Disconnect_the_network', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-28 09:40:32', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 328; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = 'ICCID', `dict_value` = '1', `dict_type` = 'yz_card_info_change', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-29 19:54:17', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 329; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '正常', `dict_value` = '1', `dict_type` = 'yz_customer_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-11 15:55:03', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 330; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '已停用', `dict_value` = '2', `dict_type` = 'yz_customer_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-11 15:56:15', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 331; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '自有2021年前含老客户', `dict_value` = '1', `dict_type` = 'yz_customer_source', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-11 16:05:53', `update_by` = 'admin', `update_time` = '2021-10-11 16:06:20', `remark` = NULL WHERE `dict_code` = 332; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '自有2022年起新客户', `dict_value` = '2', `dict_type` = 'yz_customer_source', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-11 16:06:15', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 333; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 99, `dict_label` = '其他', `dict_value` = '99', `dict_type` = 'yz_customer_source', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-11 16:06:36', `update_by` = 'admin', `update_time` = '2021-10-11 16:06:47', `remark` = NULL WHERE `dict_code` = 334; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = 'A', `dict_value` = '1', `dict_type` = 'yz_customer_grade', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-12 10:47:07', `update_by` = '', `update_time` = NULL, `remark` = 'VIP' WHERE `dict_code` = 335; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = 'B', `dict_value` = '2', `dict_type` = 'yz_customer_grade', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-12 10:47:16', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 336; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = 'C', `dict_value` = '3', `dict_type` = 'yz_customer_grade', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-12 10:47:23', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 337; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = 'D', `dict_value` = '4', `dict_type` = 'yz_customer_grade', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-12 10:47:29', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 338; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 99, `dict_label` = '其他', `dict_value` = '99', `dict_type` = 'yz_customer_grade', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-12 10:47:43', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 339; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 10, `dict_label` = '卡分组备注更新', `dict_value` = '_CardSetCardInfo', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-14 08:53:09', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 340; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 14, `dict_label` = '卡分组备注更新备份', `dict_value` = '_CardSetCardInfoBackup', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-14 08:53:20', `update_by` = 'admin', `update_time` = '2021-12-24 15:47:40', `remark` = NULL WHERE `dict_code` = 341; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 8, `dict_label` = '特殊操作 变更卡分组、备注', `dict_value` = '8', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-14 08:53:56', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 342; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '终端', `dict_value` = '1', `dict_type` = 'yz_customer_grade_one', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-29 16:09:19', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 347; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '直客', `dict_value` = '1', `dict_type` = 'yz_customer_grade_tow', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-30 14:17:21', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 348; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '生产厂家', `dict_value` = '2', `dict_type` = 'yz_customer_grade_tow', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-30 14:17:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 349; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 11, `dict_label` = '分销商', `dict_value` = '11', `dict_type` = 'yz_customer_grade_tow', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-30 14:17:54', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 350; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 12, `dict_label` = '贸易商', `dict_value` = '12', `dict_type` = 'yz_customer_grade_tow', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-30 14:18:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 351; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '代理', `dict_value` = '2', `dict_type` = 'yz_customer_grade_one', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-30 14:18:29', `update_by` = 'admin', `update_time` = '2021-10-30 14:18:35', `remark` = NULL WHERE `dict_code` = 352; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:25:31', `update_by` = '', `update_time` = NULL, `remark` = '创建时间' WHERE `dict_code` = 353; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:28:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 354; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:30:09', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 355; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:30:35', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 356; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:38:08', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 357; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:39:21', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 358; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:39:24', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 359; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:39:24', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 360; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:39:32', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 361; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:40:26', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 362; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:41:18', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 363; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:42:14', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 364; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '学生', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 14:44:35', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 365; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '123', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 15:00:36', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 366; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = 'Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 15:40:21', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 367; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '无', `dict_value` = '1', `dict_type` = 'yz_cc_condition', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 15:59:29', `update_by` = 'admin', `update_time` = '2021-10-25 15:59:34', `remark` = NULL WHERE `dict_code` = 368; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '判断条件', `dict_value` = '1', `dict_type` = 'cc_query_criteria', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-26 10:01:08', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 369; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '最后修改时间', `dict_value` = '1', `dict_type` = 'prdCategory_timet', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-29 15:33:27', `update_by` = 'admin', `update_time` = '2021-10-29 15:33:48', `remark` = NULL WHERE `dict_code` = 370; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = 'yunze_task_sel_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-29 16:11:55', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 371; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-19 14:30:24', `update_by` = '', `update_time` = NULL, `remark` = '自动化 创建时间 类型' WHERE `dict_code` = 372; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-19 14:31:46', `update_by` = '', `update_time` = NULL, `remark` = '自动化创建类型' WHERE `dict_code` = 373; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '0', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-19 14:32:41', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 374; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automation_time', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-19 14:34:03', `update_by` = '', `update_time` = NULL, `remark` = '创建时间' WHERE `dict_code` = 375; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automated_configuration', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-19 16:33:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 376; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automated_configuration', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-19 16:35:23', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 377; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automated_configuration', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 09:52:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 378; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '0', `dict_type` = ' Automated_configuration', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 09:55:51', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 379; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = ' Automated_configuration', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-10-25 13:38:57', `update_by` = '', `update_time` = NULL, `remark` = '创建时间' WHERE `dict_code` = 380; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '客户名称', `dict_value` = '1', `dict_type` = 'yz_customer_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-02 16:26:22', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 381; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '税号', `dict_value` = '2', `dict_type` = 'yz_customer_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-02 16:26:37', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 382; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '地址详情', `dict_value` = '3', `dict_type` = 'yz_customer_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-02 16:27:05', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 383; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '创建时间', `dict_value` = '0', `dict_type` = 'yz_customer_selTimeType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-02 16:28:55', `update_by` = 'admin', `update_time` = '2021-11-04 16:29:49', `remark` = NULL WHERE `dict_code` = 384; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '最后修改时间', `dict_value` = '1', `dict_type` = 'yz_customer_selTimeType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-02 16:29:26', `update_by` = 'admin', `update_time` = '2021-11-04 16:29:53', `remark` = NULL WHERE `dict_code` = 385; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '是否回收', `dict_value` = '1', `dict_type` = 'yz_CustomerChange_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-05 14:04:06', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 386; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '合伙人费率', `dict_value` = '2', `dict_type` = 'yz_CustomerChange_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-05 14:04:25', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 387; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '销售费率', `dict_value` = '3', `dict_type` = 'yz_CustomerChange_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-05 14:04:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 388; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '售后费率', `dict_value` = '4', `dict_type` = 'yz_CustomerChange_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-05 14:04:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 389; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '所属合伙人', `dict_value` = '5', `dict_type` = 'yz_CustomerChange_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-05 14:05:58', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 390; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '所属销售', `dict_value` = '6', `dict_type` = 'yz_CustomerChange_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-05 14:06:08', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 391; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '企业', `dict_value` = '1', `dict_type` = 'yz_CustomerSort_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-05 15:56:02', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 392; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '个人', `dict_value` = '2', `dict_type` = 'yz_CustomerSort_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-05 15:56:09', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 393; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '平台仅一次', `dict_value` = '2', `dict_type` = 'yunze_packet_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-09 16:51:51', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 394; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 9, `dict_label` = '月初复机操作', `dict_value` = '9', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-09 10:30:35', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 395; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '月初已订购复机', `dict_value` = '6', `dict_type` = 'yz_cardChange_sourceType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-09 14:46:47', `update_by` = '', `update_time` = NULL, `remark` = '月初有流量的卡进行复机' WHERE `dict_code` = 396; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 10, `dict_label` = 'C端充值变更失败再次复机', `dict_value` = '10', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-10 13:46:58', `update_by` = '', `update_time` = NULL, `remark` = 'C端充值 轮询 卡状态变更失败的 进行再次 复机;(前提是没用完用量)' WHERE `dict_code` = 397; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 7, `dict_label` = 'C端充值变更失败再次复机', `dict_value` = '7', `dict_type` = 'yz_cardChange_sourceType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-11 11:32:03', `update_by` = '', `update_time` = NULL, `remark` = 'C端充值 轮询 卡状态变更失败的 进行再次 复机;(前提是没用完用量)' WHERE `dict_code` = 398; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 15, `dict_label` = '中国移动ECV2', `dict_value` = 'YiDong_ECv2', `dict_type` = 'channel_code', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-29 12:06:53', `update_by` = 'admin', `update_time` = '2021-11-29 12:07:11', `remark` = 'pboss' WHERE `dict_code` = 400; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '是', `dict_value` = '1', `dict_type` = 'buttonyesno', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-11 21:26:37', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 401; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '否', `dict_value` = '2', `dict_type` = 'buttonyesno', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-11 21:26:53', `update_by` = 'admin', `update_time` = '2021-11-12 16:07:02', `remark` = NULL WHERE `dict_code` = 402; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 11, `dict_label` = '全部订单导出', `dict_value` = '11', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-23 15:26:59', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 407; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 10, `dict_label` = '订单管理导出', `dict_value` = '_Exportallorders', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-24 13:32:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 408; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 12, `dict_label` = '购物订单导出', `dict_value` = '12', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-25 10:03:38', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 409; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 13, `dict_label` = '购物订单导出', `dict_value` = '_Shoppingexport', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-25 10:10:07', `update_by` = 'admin', `update_time` = '2021-12-24 15:47:36', `remark` = NULL WHERE `dict_code` = 410; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '发货日期', `dict_value` = '4', `dict_type` = 'yunze_card_sel_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-25 16:04:05', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 411; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '中移物联', `dict_value` = '1', `dict_type` = 'yz_Commodity_supplier', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 10:14:31', `update_by` = 'admin', `update_time` = '2022-04-03 09:30:43', `remark` = NULL WHERE `dict_code` = 412; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '中国移动', `dict_value` = '2', `dict_type` = 'yz_Commodity_supplier', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 10:14:59', `update_by` = 'admin', `update_time` = '2022-04-03 09:30:31', `remark` = NULL WHERE `dict_code` = 413; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '中国移动', `dict_value` = '1', `dict_type` = 'yz_Commodity_Operator', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 10:15:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 414; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '中国联通', `dict_value` = '2', `dict_type` = 'yz_Commodity_Operator', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 10:15:30', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 415; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '中国电信', `dict_value` = '3', `dict_type` = 'yz_Commodity_Operator', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 10:15:40', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 416; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '商品名称', `dict_value` = '1', `dict_type` = 'yz_Bcommodity_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 16:29:29', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 417; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '分类名称', `dict_value` = '1', `dict_type` = 'yz_BcommoditySort_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 16:32:03', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 418; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '名称', `dict_value` = '1', `dict_type` = 'yz_Ccommodity_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 16:44:26', `update_by` = 'admin', `update_time` = '2021-12-06 16:44:48', `remark` = NULL WHERE `dict_code` = 419; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '型号', `dict_value` = '2', `dict_type` = 'yz_Ccommodity_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 16:44:41', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 420; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '备注', `dict_value` = '3', `dict_type` = 'yz_Ccommodity_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-06 16:44:58', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 421; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '已删除', `dict_value` = '0', `dict_type` = 'yz_Universal_delete', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 09:51:55', `update_by` = 'admin', `update_time` = '2021-12-07 09:52:06', `remark` = NULL WHERE `dict_code` = 422; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '正常', `dict_value` = '1', `dict_type` = 'yz_Universal_delete', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 09:52:18', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 423; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '不分润', `dict_value` = '0', `dict_type` = 'yz_profit_sharingType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 14:38:55', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 424; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '正常分润', `dict_value` = '1', `dict_type` = 'yz_profit_sharingType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 15:11:40', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 425; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '合伙人分润', `dict_value` = '2', `dict_type` = 'yz_profit_sharingType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 15:12:08', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 426; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '销售分润', `dict_value` = '3', `dict_type` = 'yz_profit_sharingType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 15:12:24', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 427; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '售后分润', `dict_value` = '4', `dict_type` = 'yz_profit_sharingType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 15:20:48', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 428; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '合伙人+销售分润', `dict_value` = '5', `dict_type` = 'yz_profit_sharingType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 15:21:13', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 429; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '合伙人+售后分润', `dict_value` = '6', `dict_type` = 'yz_profit_sharingType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 15:21:41', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 430; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 7, `dict_label` = '销售+售后分润', `dict_value` = '7', `dict_type` = 'yz_profit_sharingType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 15:22:03', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 431; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '不开票', `dict_value` = '0', `dict_type` = 'yz_Invoicing_Type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 15:38:57', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 432; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '增值票', `dict_value` = '1', `dict_type` = 'yz_Invoicing_Type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 15:39:19', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 433; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '普通票', `dict_value` = '2', `dict_type` = 'yz_Invoicing_Type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-07 15:39:33', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 434; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '已申请', `dict_value` = '1', `dict_type` = 'yz_Contract_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-10 17:49:29', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 435; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '待发货', `dict_value` = '2', `dict_type` = 'yz_Contract_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-10 17:49:36', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 436; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '待出库', `dict_value` = '3', `dict_type` = 'yz_Contract_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-10 17:49:51', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 437; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '已完成', `dict_value` = '4', `dict_type` = 'yz_Contract_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-10 17:50:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 438; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 99, `dict_label` = '作废', `dict_value` = '99', `dict_type` = 'yz_Contract_status', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-10 17:51:09', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 439; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '未打款', `dict_value` = '0', `dict_type` = 'yz_ReceivePayment_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-10 18:08:38', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 440; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '部分到款', `dict_value` = '1', `dict_type` = 'yz_ReceivePayment_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-10 18:08:59', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 441; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '已收款', `dict_value` = '3', `dict_type` = 'yz_ReceivePayment_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-10 18:09:12', `update_by` = 'admin', `update_time` = '2021-12-10 18:09:21', `remark` = NULL WHERE `dict_code` = 442; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '客户名称', `dict_value` = '1', `dict_type` = 'yz_SalesContract_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-11 16:43:14', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 443; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '甲方代表', `dict_value` = '2', `dict_type` = 'yz_SalesContract_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-11 16:43:33', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 444; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '合同金额', `dict_value` = '3', `dict_type` = 'yz_SalesContract_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-11 16:44:00', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 445; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '备注', `dict_value` = '4', `dict_type` = 'yz_SalesContract_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-11 16:49:54', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 446; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建时间', `dict_value` = '1', `dict_type` = 'yz_SalesContract_selTimeType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-11 16:51:58', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 447; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '修改时间', `dict_value` = '2', `dict_type` = 'yz_SalesContract_selTimeType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-11 16:52:10', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 448; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '合同日期', `dict_value` = '0', `dict_type` = 'yz_SalesContract_selTimeType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-11 16:52:21', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 449; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '现金', `dict_value` = '1', `dict_type` = 'cwgl_Deposit_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-13 16:05:33', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 450; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '未到款', `dict_value` = '1', `dict_type` = 'cwgl_Deposit_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-13 16:27:01', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 451; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '有尾款', `dict_value` = '2', `dict_type` = 'cwgl_Deposit_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-13 16:27:44', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 452; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '已到款', `dict_value` = '3', `dict_type` = 'cwgl_Deposit_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-13 16:27:53', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 453; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '未发', `dict_value` = '1', `dict_type` = 'Ship_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-13 16:44:40', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 454; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '未发全', `dict_value` = '2', `dict_type` = 'Ship_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-13 16:44:50', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 455; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '已发', `dict_value` = '3', `dict_type` = 'Ship_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-13 16:53:05', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 456; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '销售合同', `dict_value` = '1', `dict_type` = 'DepositSource_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-13 16:57:28', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 457; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '合同开票', `dict_value` = '1', `dict_type` = 'invoice_Nature', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 08:37:33', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 458; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '预付开票', `dict_value` = '2', `dict_type` = 'invoice_Nature', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 08:37:50', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 459; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '代开票', `dict_value` = '3', `dict_type` = 'invoice_Nature', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 08:37:59', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 460; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '销售订单', `dict_value` = '1', `dict_type` = 'contract_nature', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 09:02:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 461; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '临时订单', `dict_value` = '2', `dict_type` = 'contract_nature', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 09:02:52', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 462; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '客户名称', `dict_value` = '1', `dict_type` = 'yunze_OrderDelivery_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 12:28:06', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 464; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '预计发货时间', `dict_value` = '1', `dict_type` = 'yunze_OrderDelivery_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 13:28:52', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 465; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '合同创建时间', `dict_value` = '2', `dict_type` = 'yunze_OrderDelivery_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 13:52:23', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 466; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '临时订单', `dict_value` = '1', `dict_type` = 'Delivery_selection_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '1', `create_by` = 'admin', `create_time` = '2021-12-14 15:58:49', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 467; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '合同发货', `dict_value` = '2', `dict_type` = 'Delivery_selection_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 15:59:09', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 468; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '普通发货', `dict_value` = '3', `dict_type` = 'Delivery_selection_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 15:59:15', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 469; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '发票发货', `dict_value` = '4', `dict_type` = 'Delivery_selection_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 15:59:23', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 470; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '其他发货', `dict_value` = '5', `dict_type` = 'Delivery_selection_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 15:59:33', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 471; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '快递', `dict_value` = '1', `dict_type` = 'Delivery_method', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 16:39:21', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 472; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '物流', `dict_value` = '2', `dict_type` = 'Delivery_method', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 16:39:27', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 473; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '送货', `dict_value` = '3', `dict_type` = 'Delivery_method', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 16:39:43', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 474; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '自取', `dict_value` = '4', `dict_type` = 'Delivery_method', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 16:39:50', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 475; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '其他', `dict_value` = '5', `dict_type` = 'Delivery_method', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-14 16:39:58', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 476; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '合同发货', `dict_value` = '1', `dict_type` = 'Delivery_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-15 09:23:44', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 477; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '其他发货', `dict_value` = '2', `dict_type` = 'Delivery_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-15 09:23:50', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 478; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '寄付', `dict_value` = '1', `dict_type` = 'Shipping_method', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-15 10:27:50', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 479; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '到付', `dict_value` = '2', `dict_type` = 'Shipping_method', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-15 10:27:56', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 480; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '客户名称', `dict_value` = '1', `dict_type` = 'yunze_ShippingApplication_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-21 16:16:56', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 481; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '发货人姓名', `dict_value` = '2', `dict_type` = 'yunze_ShippingApplication_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-21 16:17:12', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 482; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '申请发货日期', `dict_value` = '1', `dict_type` = 'yunze_ShippingApplication_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-21 16:18:29', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 483; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '数据修改时间', `dict_value` = '2', `dict_type` = 'yunze_ShippingApplication_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-21 16:18:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 484; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '单位', `dict_value` = '1', `dict_type` = 'yunze_ExpressInquiry_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:07:31', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 485; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '收件人', `dict_value` = '2', `dict_type` = 'yunze_ExpressInquiry_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:07:44', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 486; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '快递编号', `dict_value` = '3', `dict_type` = 'yunze_ExpressInquiry_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:07:52', `update_by` = 'admin', `update_time` = '2021-12-23 16:28:22', `remark` = NULL WHERE `dict_code` = 487; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '发货日期', `dict_value` = '1', `dict_type` = 'yunze_ExpressInquiry_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:09:37', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 488; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '收件日期', `dict_value` = '2', `dict_type` = 'yunze_ExpressInquiry_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:09:49', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 489; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '未收', `dict_value` = '1', `dict_type` = 'yunze_ExpressInquiry_SignFor', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:15:32', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 490; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '已收', `dict_value` = '2', `dict_type` = 'yunze_ExpressInquiry_SignFor', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:15:46', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 491; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '退回', `dict_value` = '3', `dict_type` = 'yunze_ExpressInquiry_SignFor', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:15:52', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 492; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '未评价', `dict_value` = '1', `dict_type` = 'yunze_ExpressInquiry_Evaluation', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:16:17', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 493; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '正常', `dict_value` = '2', `dict_type` = 'yunze_ExpressInquiry_Evaluation', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:16:22', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 494; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '慢', `dict_value` = '3', `dict_type` = 'yunze_ExpressInquiry_Evaluation', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:16:40', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 495; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '损坏', `dict_value` = '4', `dict_type` = 'yunze_ExpressInquiry_Evaluation', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:16:52', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 496; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '丢件', `dict_value` = '5', `dict_type` = 'yunze_ExpressInquiry_Evaluation', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 10:17:09', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 497; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '快递单号', `dict_value` = '4', `dict_type` = 'yunze_ExpressInquiry_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-23 16:28:30', `update_by` = 'admin', `update_time` = '2021-12-23 16:29:38', `remark` = NULL WHERE `dict_code` = 498; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '库存', `dict_value` = '1', `dict_type` = 'yunze_card_status_ShowId', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 10:51:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 499; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '可测试', `dict_value` = '2', `dict_type` = 'yunze_card_status_ShowId', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 10:51:42', `update_by` = 'admin', `update_time` = '2021-12-24 10:51:47', `remark` = NULL WHERE `dict_code` = 500; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '待激活', `dict_value` = '3', `dict_type` = 'yunze_card_status_ShowId', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 10:51:55', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 501; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '已激活', `dict_value` = '4', `dict_type` = 'yunze_card_status_ShowId', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 10:52:03', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 502; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '已停机', `dict_value` = '5', `dict_type` = 'yunze_card_status_ShowId', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 10:52:10', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 503; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '预销户', `dict_value` = '6', `dict_type` = 'yunze_card_status_ShowId', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 10:52:25', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 504; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 7, `dict_label` = '已销户', `dict_value` = '7', `dict_type` = 'yunze_card_status_ShowId', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 10:52:41', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 505; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 8, `dict_label` = '未知', `dict_value` = '8', `dict_type` = 'yunze_card_status_ShowId', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 10:52:51', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 506; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 11, `dict_label` = '批量同步用量', `dict_value` = '_Consumption', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 15:47:18', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 507; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 15, `dict_label` = '批量-同步状态', `dict_value` = '_PublicMethod', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 15:48:01', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 508; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 16, `dict_label` = '批量-同步状态和用量', `dict_value` = '_ConsumptionAndState', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 15:48:16', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 509; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 17, `dict_label` = '批量-停机', `dict_value` = '_Stopped', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 15:49:01', `update_by` = 'admin', `update_time` = '2021-12-24 16:06:45', `remark` = NULL WHERE `dict_code` = 510; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 18, `dict_label` = '批量-复机', `dict_value` = '_Machine', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 15:49:20', `update_by` = 'admin', `update_time` = '2021-12-24 16:06:50', `remark` = NULL WHERE `dict_code` = 511; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 19, `dict_label` = '批量-断网', `dict_value` = '_DisconnectNetwork', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 15:50:56', `update_by` = 'admin', `update_time` = '2021-12-24 16:06:54', `remark` = NULL WHERE `dict_code` = 512; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 20, `dict_label` = '批量-开网', `dict_value` = '_OpenNetwork', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 15:52:00', `update_by` = 'admin', `update_time` = '2021-12-24 16:06:59', `remark` = NULL WHERE `dict_code` = 513; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 21, `dict_label` = '批量变更', `dict_value` = '_CardChangeInfo', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-24 16:07:22', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 514; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '箱号', `dict_value` = '1', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:56:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 515; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '盘号', `dict_value` = '2', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:56:50', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 516; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '产品编码', `dict_value` = '3', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:57:06', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 517; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '序列号', `dict_value` = '4', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:57:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 518; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '批号', `dict_value` = '5', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:57:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 519; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '卷盘号', `dict_value` = '6', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:57:50', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 520; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 7, `dict_label` = 'MAC', `dict_value` = '7', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:58:09', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 521; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 8, `dict_label` = '设备码', `dict_value` = '8', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:58:26', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 522; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 9, `dict_label` = '串号', `dict_value` = '9', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:58:57', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 523; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 10, `dict_label` = 'SN', `dict_value` = '10', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:59:10', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 524; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 11, `dict_label` = '原SN', `dict_value` = '11', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:59:27', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 525; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 12, `dict_label` = 'ICCID', `dict_value` = '12', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:59:51', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 526; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 13, `dict_label` = 'IMSI', `dict_value` = '13', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 11:00:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 527; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 14, `dict_label` = 'IMEI', `dict_value` = '14', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 11:00:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 528; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 15, `dict_label` = 'CMEI', `dict_value` = '15', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 11:00:57', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 529; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 16, `dict_label` = '所属入库编号', `dict_value` = '16', `dict_type` = 'yunze_InventoryDetails_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 11:01:24', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 530; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '创建日期', `dict_value` = '1', `dict_type` = 'yunze_inventorydetails_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 11:04:05', `update_by` = 'admin', `update_time` = '2021-12-28 11:04:29', `remark` = NULL WHERE `dict_code` = 531; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '入库日期', `dict_value` = '2', `dict_type` = 'yunze_inventorydetails_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 11:04:15', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 532; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '箱号', `dict_value` = '1', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:56:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 533; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '盘号', `dict_value` = '2', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:56:50', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 534; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '产品编码', `dict_value` = '3', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:57:06', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 535; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '序列号', `dict_value` = '4', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:57:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 536; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '批号', `dict_value` = '5', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:57:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 537; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '卷盘号', `dict_value` = '6', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:57:50', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 538; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 7, `dict_label` = 'MAC', `dict_value` = '7', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:58:09', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 539; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 8, `dict_label` = '设备码', `dict_value` = '8', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:58:26', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 540; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 9, `dict_label` = '串号', `dict_value` = '9', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:58:57', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 541; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 10, `dict_label` = 'SN', `dict_value` = '10', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:59:10', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 542; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 11, `dict_label` = '原SN', `dict_value` = '11', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:59:27', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 543; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 12, `dict_label` = 'ICCID', `dict_value` = '12', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 10:59:51', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 544; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 13, `dict_label` = 'IMSI', `dict_value` = '13', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 11:00:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 545; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 14, `dict_label` = 'IMEI', `dict_value` = '14', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 11:00:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 546; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 15, `dict_label` = 'CMEI', `dict_value` = '15', `dict_type` = 'yunze_inventorydetails_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 11:00:57', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 547; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '商品名称', `dict_value` = '1', `dict_type` = 'yunze_CustomerInquiries_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 15:32:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 548; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '型号/编号', `dict_value` = '2', `dict_type` = 'yunze_CustomerInquiries_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-28 15:32:32', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 549; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = 'IMEI', `dict_value` = '3', `dict_type` = 'yunze_card_seltype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-29 16:22:39', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 550; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = 'IMEI', `dict_value` = '5', `dict_type` = 'yunze_card_StartAndEnd_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2021-12-29 16:23:09', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 551; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 22, `dict_label` = '客户导入', `dict_value` = '_CustomerImport', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-02 10:52:36', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 552; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 13, `dict_label` = '客户导入', `dict_value` = '13', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-02 10:53:19', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 553; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '老客户', `dict_value` = '3', `dict_type` = 'yz_customer_source', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-03 11:01:08', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 554; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 13, `dict_label` = '同行', `dict_value` = '13', `dict_type` = 'yz_customer_grade_tow', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-03 12:25:26', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 555; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '无需出库', `dict_value` = '0', `dict_type` = 'yunze_ShippingApplication_OutboundStatus ', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-05 10:25:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 556; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '未出库', `dict_value` = '1', `dict_type` = 'yunze_ShippingApplication_OutboundStatus ', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-05 10:25:12', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 557; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '已出库', `dict_value` = '2', `dict_type` = 'yunze_ShippingApplication_OutboundStatus ', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-05 10:25:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 558; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '有用量非正常状态', `dict_value` = '4', `dict_type` = 'yz_cc_trigger_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-12 17:37:59', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 559; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 14, `dict_label` = '已订购用量状态已停机', `dict_value` = '14', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-13 13:52:55', `update_by` = 'admin', `update_time` = '2022-01-13 14:59:46', `remark` = NULL WHERE `dict_code` = 560; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 23, `dict_label` = '已订购用量状态已停机', `dict_value` = '_AbnormalStatus', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-13 13:53:41', `update_by` = 'admin', `update_time` = '2022-03-15 15:43:44', `remark` = NULL WHERE `dict_code` = 561; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '任务ID', `dict_value` = '4', `dict_type` = 'executionTask_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-13 16:40:03', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 562; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '>=', `dict_value` = '1', `dict_type` = 'yunze_card_dimensionType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-24 09:16:18', `update_by` = 'admin', `update_time` = '2022-01-24 09:34:59', `remark` = NULL WHERE `dict_code` = 564; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '>', `dict_value` = '2', `dict_type` = 'yunze_card_dimensionType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-24 09:16:33', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 565; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '=', `dict_value` = '3', `dict_type` = 'yunze_card_dimensionType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-24 09:16:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 566; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '<', `dict_value` = '4', `dict_type` = 'yunze_card_dimensionType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-24 09:16:51', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 567; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '<=', `dict_value` = '5', `dict_type` = 'yunze_card_dimensionType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-24 09:17:04', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 568; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '!=', `dict_value` = '6', `dict_type` = 'yunze_card_dimensionType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-24 09:17:46', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 569; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '账期用量', `dict_value` = '1', `dict_type` = 'yunze_card_dimensionField', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-24 09:18:59', `update_by` = 'admin', `update_time` = '2022-01-24 09:19:23', `remark` = NULL WHERE `dict_code` = 570; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '剩余用量', `dict_value` = '2', `dict_type` = 'yunze_card_dimensionField', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-24 09:19:11', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 571; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '到期日期', `dict_value` = '5', `dict_type` = 'yunze_card_sel_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-24 09:51:52', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 572; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '创建时间', `dict_value` = '6', `dict_type` = 'yunze_card_sel_timetype', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-24 14:27:27', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 573; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 8, `dict_label` = 'Api变更', `dict_value` = '8', `dict_type` = 'yz_cardChange_sourceType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-02-09 15:17:15', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 578; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '授信支付', `dict_value` = 'ct', `dict_type` = 'yunze_card_pay_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-02-28 09:54:10', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 589; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '企业预存', `dict_value` = '4', `dict_type` = 'yunze_order_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-02-28 09:55:13', `update_by` = 'admin', `update_time` = '2022-02-28 09:55:28', `remark` = NULL WHERE `dict_code` = 590; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '企业提现', `dict_value` = '5', `dict_type` = 'yunze_order_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-02-28 09:55:44', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 591; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '预存抵扣', `dict_value` = '6', `dict_type` = 'yunze_order_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-02-28 10:10:29', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 592; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '预存支付', `dict_value` = 'pe', `dict_type` = 'yunze_card_pay_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 09:26:54', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 597; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '北京', `dict_value` = '01', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:30:10', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 598; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '天津', `dict_value` = '02', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:30:21', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 599; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '河北', `dict_value` = '03', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:30:31', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 600; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '山西', `dict_value` = '04', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:30:43', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 601; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '内蒙古', `dict_value` = '05', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:30:52', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 602; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '辽宁', `dict_value` = '06', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:31:00', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 603; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 7, `dict_label` = '吉林', `dict_value` = '07', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:31:07', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 604; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 8, `dict_label` = '黑龙江', `dict_value` = '08', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:31:17', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 605; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 9, `dict_label` = '上海', `dict_value` = '09', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:31:24', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 606; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 10, `dict_label` = '江苏', `dict_value` = '10', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:31:32', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 607; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 11, `dict_label` = ' 浙江', `dict_value` = '11', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:31:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 608; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 12, `dict_label` = '安徽', `dict_value` = '12', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:31:51', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 609; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 13, `dict_label` = '福建', `dict_value` = '132', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:32:00', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 610; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 14, `dict_label` = '江西', `dict_value` = '14', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:32:08', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 611; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 15, `dict_label` = '山东', `dict_value` = '15', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:32:16', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 612; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 16, `dict_label` = '河南', `dict_value` = '16', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:32:22', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 613; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 17, `dict_label` = ' 湖北', `dict_value` = '17', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:32:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 614; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 18, `dict_label` = '湖南', `dict_value` = '18', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:32:46', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 615; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 19, `dict_label` = '广东', `dict_value` = '19', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:32:55', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 616; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 20, `dict_label` = '广西', `dict_value` = '20', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:33:03', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 617; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 21, `dict_label` = '海南', `dict_value` = '21', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:33:11', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 618; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 22, `dict_label` = '四川', `dict_value` = '22', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:33:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 619; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 23, `dict_label` = '贵州', `dict_value` = '23', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:33:30', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 620; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 24, `dict_label` = '云南', `dict_value` = '24', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:33:39', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 621; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 25, `dict_label` = '西藏', `dict_value` = '25', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:33:50', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 622; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 26, `dict_label` = '陕西', `dict_value` = '26', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:33:58', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 623; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 27, `dict_label` = '甘肃', `dict_value` = '27', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:34:09', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 624; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 28, `dict_label` = '青海', `dict_value` = '28', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:34:17', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 625; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 29, `dict_label` = '宁夏', `dict_value` = '29', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:34:26', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 626; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 30, `dict_label` = '新疆', `dict_value` = '30', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:34:34', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 627; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 31, `dict_label` = '重庆', `dict_value` = '31', `dict_type` = 'yz_YDcard_attribution', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-02 14:34:41', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 628; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = 'LTE', `dict_value` = '3', `dict_type` = 'yunze_card_access_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-07 13:16:29', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 646; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '测试期资费', `dict_value` = '3', `dict_type` = 'yunze_packet_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-07 15:23:48', `update_by` = 'admin', `update_time` = '2022-03-07 15:24:01', `remark` = NULL WHERE `dict_code` = 647; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '高频轮询', `dict_value` = '1', `dict_type` = 'yz_route_algorithm', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-08 14:10:53', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 648; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '智能轮询', `dict_value` = '2', `dict_type` = 'yz_route_algorithm', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-08 14:11:35', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 649; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '用量轮序-智能-已激活', `dict_value` = '6', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 08:53:44', `update_by` = 'admin', `update_time` = '2022-03-09 10:01:27', `remark` = '用量轮序-智能-有激活时间' WHERE `dict_code` = 654; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 7, `dict_label` = '用量轮序-智能-未激活-有用量', `dict_value` = '7', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 09:25:55', `update_by` = 'admin', `update_time` = '2022-03-09 10:01:13', `remark` = '用量轮序-智能-无激活时间-有用量' WHERE `dict_code` = 655; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 10, `dict_label` = '用量轮序-智能-未激活-未发货-已到沉默期', `dict_value` = '8', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 09:27:24', `update_by` = 'admin', `update_time` = '2022-03-09 13:35:45', `remark` = '用量轮序-智能-无激活时间-无发货日期-已到沉默期' WHERE `dict_code` = 656; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 9, `dict_label` = '用量轮序-智能-未激活-已发货', `dict_value` = '9', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 09:40:17', `update_by` = 'admin', `update_time` = '2022-03-09 10:01:59', `remark` = '用量轮序-智能-无激活时间-有发货日期' WHERE `dict_code` = 657; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 21, `dict_label` = '卡状态-智能-已激活', `dict_value` = '10', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 13:31:24', `update_by` = 'admin', `update_time` = '2022-03-09 13:33:53', `remark` = NULL WHERE `dict_code` = 658; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 22, `dict_label` = '卡状态-智能-未激活-有用量', `dict_value` = '11', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 13:32:21', `update_by` = 'admin', `update_time` = '2022-03-09 13:34:02', `remark` = NULL WHERE `dict_code` = 659; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 24, `dict_label` = '卡状态-智能-未激活-未发货-已到沉默期', `dict_value` = '12', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 13:32:52', `update_by` = 'admin', `update_time` = '2022-03-09 13:34:17', `remark` = NULL WHERE `dict_code` = 660; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 23, `dict_label` = '卡状态-智能-未激活-已发货', `dict_value` = '13', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 13:33:05', `update_by` = 'admin', `update_time` = '2022-03-09 13:34:10', `remark` = NULL WHERE `dict_code` = 661; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 30, `dict_label` = '激活时间-智能-有用量', `dict_value` = '14', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 14:34:30', `update_by` = 'admin', `update_time` = '2022-03-09 14:34:39', `remark` = '无激活时间才获取激活时间' WHERE `dict_code` = 662; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 31, `dict_label` = '激活时间-智能-已发货', `dict_value` = '15', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 14:35:15', `update_by` = 'admin', `update_time` = '2022-03-09 14:35:27', `remark` = '无激活时间才获取激活时间' WHERE `dict_code` = 663; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 32, `dict_label` = '激活时间-智能-未发货-已到沉默期', `dict_value` = '16', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 14:36:03', `update_by` = 'admin', `update_time` = '2022-03-09 14:36:09', `remark` = '无激活时间才获取激活时间' WHERE `dict_code` = 664; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '未划分资费组', `dict_value` = '5', `dict_type` = 'yz_cc_trigger_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-08 11:18:20', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 683; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = '未划分通道', `dict_value` = '6', `dict_type` = 'yz_cc_trigger_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-08 17:35:30', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 684; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 7, `dict_label` = '归属总平台已有用量', `dict_value` = '7', `dict_type` = 'yz_cc_trigger_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 17:26:41', `update_by` = 'admin', `update_time` = '2022-03-10 11:11:24', `remark` = NULL WHERE `dict_code` = 687; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 11, `dict_label` = '状态未知获取', `dict_value` = '17', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-10 18:23:14', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 688; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 12, `dict_label` = '已激活无记录用量', `dict_value` = '18', `dict_type` = 'yunze_polling_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-10 18:36:42', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 689; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 15, `dict_label` = '批量变更卡信息', `dict_value` = '15', `dict_type` = 'yunze_task_type', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-15 11:08:53', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 690; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 24, `dict_label` = '批量变更卡信息主表', `dict_value` = '_CardInfoReplace', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-15 15:44:08', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 691; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 25, `dict_label` = '批量变更卡信息拓展表', `dict_value` = '_CardInfoExpandReplace', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-15 15:44:32', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 692; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 26, `dict_label` = '批量变更主表备份', `dict_value` = '__CardInfoReplaceBackup', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-15 15:45:01', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 693; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 27, `dict_label` = '批量变更拓展表备份', `dict_value` = '__CardInfoReplaceExpandBackup', `dict_type` = 'yunze_ExecutionTask_OutType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-15 15:45:50', `update_by` = '', `update_time` = NULL, `remark` = 'card' WHERE `dict_code` = 694; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '3G', `dict_value` = '1', `dict_type` = 'DianXin_CMP_netModel', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-23 18:21:45', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 695; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '4G', `dict_value` = '2', `dict_type` = 'DianXin_CMP_netModel', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-23 18:21:57', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 696; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 8, `dict_label` = 'NB', `dict_value` = '8', `dict_type` = 'DianXin_CMP_RAT', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-23 18:27:51', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 697; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 6, `dict_label` = 'LTE', `dict_value` = '6', `dict_type` = 'DianXin_CMP_RAT', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-23 18:28:11', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 698; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 102, `dict_label` = 'eHRPD', `dict_value` = '102', `dict_type` = 'DianXin_CMP_RAT', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-23 18:28:26', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 699; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '在线', `dict_value` = '0', `dict_type` = 'DianXin_CMP_online', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-23 18:29:45', `update_by` = 'admin', `update_time` = '2022-03-23 18:29:56', `remark` = NULL WHERE `dict_code` = 700; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '离线', `dict_value` = '-2', `dict_type` = 'DianXin_CMP_online', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-23 18:30:07', `update_by` = 'admin', `update_time` = '2022-03-24 09:26:11', `remark` = NULL WHERE `dict_code` = 701; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '未查询到会话信息', `dict_value` = '-3', `dict_type` = 'DianXin_CMP_online', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-23 18:30:28', `update_by` = 'admin', `update_time` = '2022-03-24 09:26:16', `remark` = NULL WHERE `dict_code` = 702; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '用户昵称', `dict_value` = '1', `dict_type` = 'yz_sysUser_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-29 08:57:25', `update_by` = 'admin', `update_time` = '2022-05-31 09:55:59', `remark` = NULL WHERE `dict_code` = 703; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '登录账号', `dict_value` = '2', `dict_type` = 'yz_sysUser_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-29 08:57:38', `update_by` = 'admin', `update_time` = '2022-05-31 09:56:04', `remark` = NULL WHERE `dict_code` = 704; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '手机号', `dict_value` = '3', `dict_type` = 'yz_sysUser_selType', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-29 09:59:11', `update_by` = 'admin', `update_time` = '2022-05-31 09:56:08', `remark` = NULL WHERE `dict_code` = 705; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '否', `dict_value` = '0', `dict_type` = 'yz_cm_whether', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-25 10:25:33', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 783; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '是', `dict_value` = '1', `dict_type` = 'yz_cm_whether', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-25 10:25:39', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 784; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '不选择', `dict_value` = '99', `dict_type` = 'yz_cm_whether', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-25 10:27:01', `update_by` = 'admin', `update_time` = '2022-04-25 11:26:41', `remark` = NULL WHERE `dict_code` = 785; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '否', `dict_value` = '0', `dict_type` = 'yz_cd_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-19 09:01:39', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 786; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '是', `dict_value` = '1', `dict_type` = 'yz_cd_state', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-19 09:03:16', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 787; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '接口信息不全', `dict_value` = '1', `dict_type` = 'yz_cd_Interface', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-19 09:05:26', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 788; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '接口申请中', `dict_value` = '2', `dict_type` = 'yz_cd_Interface', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-19 09:05:39', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 789; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '不需要对接', `dict_value` = '3', `dict_type` = 'yz_cd_Interface', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-19 09:05:49', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 790; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 4, `dict_label` = '已对接', `dict_value` = '4', `dict_type` = 'yz_cd_Interface', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-19 09:05:59', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 791; +UPDATE `iotdb`.`sys_dict_data` SET `dict_sort` = 5, `dict_label` = '未申请', `dict_value` = '5', `dict_type` = 'yz_cd_Interface', `css_class` = NULL, `list_class` = NULL, `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-27 16:56:23', `update_by` = '', `update_time` = NULL, `remark` = NULL WHERE `dict_code` = 808; + + + +# 系统参数 更新 [2022-08-30] [zf] + +INSERT INTO `iotdb`.`sys_config`(`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (17, '最大测试期天数', 'maxTestPeriodDays', '180', 'N', 'admin', '2022-05-09 13:51:34', 'admin', '2022-05-30 10:28:30', '最大测试期天数,用来在对外接口查询时推演激活时间'); +INSERT INTO `iotdb`.`sys_config`(`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (18, '登录短信最大发送数量', 'login.SendMessageCount', '10', 'Y', 'admin', '2022-05-25 11:54:38', 'admin', '2022-05-31 15:06:05', NULL); +INSERT INTO `iotdb`.`sys_config`(`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (19, '阿里云短信发送账号', 'aliyun.sdenMessage.accessKeyId', '去阿里云开通短信下发', 'N', 'admin', '2022-05-30 10:26:28', 'admin', '2022-05-30 10:27:12', '阿里云短信发送账号'); +INSERT INTO `iotdb`.`sys_config`(`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (20, '阿里云短信发送密码', 'aliyun.sdenMessage.secret', '目前仅对接阿里云短信下发', 'N', 'admin', '2022-05-30 10:27:05', 'admin', '2022-05-30 10:27:16', '阿里云短信发送密码'); +INSERT INTO `iotdb`.`sys_config`(`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (21, '阿里云短信发送签名', 'aliyun.sdenMessage.SignName', '山东云则信息技术有限公司', 'N', 'admin', '2022-05-30 10:28:24', '', NULL, '阿里云短信发送签名'); +INSERT INTO `iotdb`.`sys_config`(`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (22, '执行任务保留最大天数', 'ExecutionTask.RetentionDays', '14', 'Y', 'admin', '2022-06-01 14:55:45', 'admin', '2022-08-04 09:11:18', NULL); +INSERT INTO `iotdb`.`sys_config`(`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (23, '批量执行保留最大天数', 'BulkBusiness.RetentionDays', '31', 'Y', 'admin', '2022-06-01 14:56:39', 'admin', '2022-07-11 14:08:55', NULL); +INSERT INTO `iotdb`.`sys_config`(`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (24, '卡状态变更信息保留最大天数', 'yunze.cardInfoChange.LongDay', '90', 'Y', 'admin', '2022-07-06 08:48:34', 'admin', '2022-07-06 09:17:23', '默认90天'); +INSERT INTO `iotdb`.`sys_config`(`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (25, '日志信息保留最大天数', 'logMaxDay', '40', 'Y', 'admin', '2022-07-15 16:23:29', '', NULL, '包含系统日志定时任务日志等'); + + + +# 新增字段 yz_card_info [2022-6-17] [zf] +alter table yz_card_info add is_NetworkBreak smallint(6) default null comment '未订购资费 是否 轮询断网'; + + + + +# 新增 【主要用于记录卡用量接口查询时错误记录】 【卡用量接口查询时错误记录-分类】 表 [2022-05-17] [zf] + +CREATE TABLE `yz_card_polling_error` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `iccid` varchar(32) NOT NULL, + `codeOn` varchar(10) NOT NULL COMMENT '错误代码', + `message` varchar(800) DEFAULT NULL COMMENT '错误信息', + `cd_code` varchar(32) NOT NULL COMMENT '通道编码', + `create_date` datetime NOT NULL COMMENT '创建时间', + `upd_date` datetime NOT NULL COMMENT '最近一次修改时间', + `is_notice` smallint(5) NOT NULL COMMENT '是否需要通知默认是', + `rt_map` longblob NOT NULL COMMENT '返回数据', + PRIMARY KEY (`id`), + KEY `cd_code_ss` (`cd_code`) USING BTREE, + KEY `cd_code` (`cd_code`,`iccid`,`codeOn`) USING BTREE, + KEY `is_notice` (`is_notice`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='主要用于记录卡用量接口查询时错误记录'; + + + +CREATE TABLE `yz_card_polling_error_group` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `codeOn` varchar(10) NOT NULL COMMENT '错误代码', + `message` varchar(800) DEFAULT NULL COMMENT '错误信息', + `cd_code` varchar(32) NOT NULL COMMENT '通道编码', + `create_date` datetime NOT NULL COMMENT '创建时间', + `upd_date` datetime NOT NULL COMMENT '最近一次修改时间', + `is_notice` smallint(5) NOT NULL COMMENT '是否需要通知默认是', + `ct_sum` int(8) NOT NULL COMMENT '卡总数', + PRIMARY KEY (`id`), + KEY `upd_date` (`upd_date`,`is_notice`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='卡用量接口查询时错误记录-分类'; + + +# 新增 上游接口返回已订购资费信息 [2022-6-17] [zf] +CREATE TABLE `yz_card_api_offeringinfo` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `cd_code` varchar(32) CHARACTER SET utf8mb4 NOT NULL COMMENT '通道类型', + `offeringId` varchar(100) CHARACTER SET utf8mb4 NOT NULL COMMENT '资费 ID', + `offeringName` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '资费名称', + `apnName` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT 'APN 名称', + `create_date` datetime NOT NULL COMMENT '创建时间', + `upd_date` datetime NOT NULL COMMENT '最近一次修改时间', + `type` smallint(5) NOT NULL DEFAULT '1' COMMENT '资费类型', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='上游接口返回已订购资费信息'; + + + +# 新增 上游接口返回已订购资费信息 [2022-6-17] [zf] +CREATE TABLE `yz_card_api_offeringinfolist` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `iccid` varchar(32) NOT NULL, + `offeringId` varchar(100) CHARACTER SET utf8mb4 NOT NULL COMMENT '资费 ID', + `offeringName` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '资费名称', + `effectiveDate` varchar(20) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '生效时间', + `expiriedDate` varchar(20) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '失效时间', + `apnName` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT 'APN 名称', + `create_date` datetime NOT NULL COMMENT '创建时间', + `upd_date` datetime NOT NULL COMMENT '最近一次修改时间', + `cd_code` varchar(32) CHARACTER SET utf8mb4 NOT NULL COMMENT '通道类型', + PRIMARY KEY (`id`), + KEY `iccid` (`iccid`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='上游接口返回已订购资费信息'; + + + + +# 新增 批量任务主表 +CREATE TABLE `yz_bulk_business` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `code` varchar(100) CHARACTER SET utf8mb4 NOT NULL COMMENT '编号', + `create_time` datetime NOT NULL, + `update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP, + `start_time` datetime DEFAULT NULL COMMENT '开始时间', + `end_time` datetime DEFAULT NULL COMMENT '结束时间', + `task_name` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '任务名', + `url` varchar(2000) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '任务下载地址 1,2,3', + `auth` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '任务创建人', + `agent_id` varchar(11) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '代理编号', + `type` int(11) DEFAULT NULL COMMENT '类型', + `state_id` smallint(5) NOT NULL COMMENT '状态', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8mb4 COMMENT='批量任务主表'; + + +# 新增 批量任务主表 详情表 +CREATE TABLE `yz_bulk_business_dtails` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `b_id` int(11) NOT NULL COMMENT '主表id', + `card_number` varchar(50) NOT NULL COMMENT '号码', + `create_time` datetime NOT NULL COMMENT '创建时间', + `update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', + `end_time` datetime DEFAULT NULL COMMENT '结束时间', + `mydescribe` varchar(500) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '描述', + `state_id` smallint(5) NOT NULL COMMENT '状态', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=28967 DEFAULT CHARSET=utf8mb4 ; + +# 修改订单表 加包参数字段长度 +ALTER TABLE yz_order MODIFY COLUMN add_parameter VARCHAR(1000); + + +# 增加字段 [2022-06-27] + +alter table yz_card_info add flowTime datetime(0) default null comment '最近一次同步用量时间'; +alter table yz_card_info add stateTime datetime(0) default null comment '最近一次同步状态时间'; + + +# 续费申请表 [2022-07-07] + +CREATE TABLE `yz_applicationfor_renewal_primary` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `dept_id` int(11) NOT NULL COMMENT '代理编号 与 agent_id 一致 但需要用于系统结构 数据验证', + `create_time` datetime NOT NULL COMMENT '创建时间', + `status` smallint(5) NOT NULL DEFAULT '0' COMMENT '状态:0申请中-1审核通过-2审核不通过', + `info` varchar(3000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注信息-企业提交', + `annotation` varchar(3000) DEFAULT NULL COMMENT '内部可看-批注', + `feedback` varchar(3000) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '反馈信息-企业可看', + `user_id` int(11) NOT NULL COMMENT '申请人', + `update_time` datetime NOT NULL COMMENT '修改时间', + `is_send` smallint(5) NOT NULL COMMENT '是否抄送通知 0 否 1 是', + `review_time` datetime DEFAULT NULL COMMENT '审核处理时间', + `card_sumCount` int(11) NOT NULL COMMENT '续费卡总数', + `amount` double(10,2) NOT NULL DEFAULT '0.00' COMMENT '总计金额', + PRIMARY KEY (`id`), + KEY `dept_key` (`dept_id`,`user_id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='续费申请表'; + + + + +# 资费计划表增加 卡总数 + +alter table yz_card_packet add card_count varchar(50) default null comment '卡总数'; +alter table yz_agent_packet add card_count varchar(50) default null comment '卡总数'; + +# 上游返回套餐记录信息 + +CREATE TABLE `yz_card_usage_reminder` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `iccid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'iccid', + `offeringId` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '资费id', + `offeringName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '资费激活名称', + `apnName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'APN 名称', + `totalAmount` double(10,2) NOT NULL COMMENT '总量,单位:MB', + `useAmount` double(10,2) NOT NULL COMMENT '使用量,单位:MB', + `remainAmount` double(10,2) NOT NULL COMMENT '剩余量,单位:MB', + `percentage` double(6,2) NOT NULL COMMENT '已用百分比', + `create_date` datetime NOT NULL COMMENT '创建时间', + `upd_date` datetime NOT NULL COMMENT '最近一次修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `id` (`id`), + KEY `iccid` (`iccid`,`offeringId`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='上游返回套餐记录信息'; + + + +CREATE TABLE `yz_applicationfor_renewal` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `p_id` int(11) NOT NULL COMMENT '主表id', + `dept_id` int(11) NOT NULL COMMENT '代理编号 与 agent_id 一致 但需要用于系统结构 数据验证', + `create_time` datetime NOT NULL COMMENT '创建时间', + `update_time` datetime NOT NULL COMMENT '修改时间', + `packet_id` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '资费计划数据信息', + `packet_info` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '资费计划数据信息', + `card_count` int(11) NOT NULL COMMENT '续费卡总数', + `packet_wx_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '微信端显示名称', + `packet_price` double(10,2) NOT NULL DEFAULT '0.00' COMMENT '套餐包金额', + `packet_flow` double(10,2) NOT NULL DEFAULT '0.00' COMMENT '套餐包流量', + `packet_cost` double(10,2) NOT NULL COMMENT '成本价-谁申请的就是谁的', + `packet_valid_time` int(11) NOT NULL COMMENT '资费计划规格\r\n\r\n,根据packet_valid_name定义,表示为月或年', + `packet_valid_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '月' COMMENT '资费计划规则 月 年 ', + `generate_tariff_orders` smallint(6) NOT NULL COMMENT '是否已生成批量加包订单', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `order_key` (`p_id`) USING BTREE, + KEY `dept_key` (`dept_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='续费申请表-资费计划列表'; + + +CREATE TABLE `yz_applicationfor_renewal_iccid` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `iccid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'SIM 卡号', + `b_id` int(11) NOT NULL COMMENT '主表id', + PRIMARY KEY (`id`) USING BTREE, + KEY `pid_key` (`b_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='续费申请详情卡号'; + + +CREATE TABLE `yz_applicationfor_renewal_ordno` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ord_no` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '订单号', + `p_id` int(11) NOT NULL COMMENT '主表id', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `ord_no` (`ord_no`) USING BTREE, + KEY `pid_key` (`p_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='续费申请详情卡号'; + + +# 自动化任务添加 + + +INSERT INTO `iotdb`.`yz_automation_cc`(`id`, `trigger_type`, `channel_id`, `operation_type`, `triggering_conditions`, `conditions_type`, `execution_type`, `status`, `remark`, `execution_template`, `dep_id`, `create_time`, `cc_name`) VALUES (6, 8, NULL, NULL, NULL, 1, 1, 1, NULL, 1, 100, '2022-04-12 11:46:06', '上游套餐超过百分比抄送'); +INSERT INTO `iotdb`.`yz_automation_cc`(`id`, `trigger_type`, `channel_id`, `operation_type`, `triggering_conditions`, `conditions_type`, `execution_type`, `status`, `remark`, `execution_template`, `dep_id`, `create_time`, `cc_name`) VALUES (7, 9, '', '', NULL, NULL, 1, 1, NULL, 1, 100, '2022-05-13 13:59:50', 'API同步失败邮件抄送'); +INSERT INTO `iotdb`.`yz_automation_cc`(`id`, `trigger_type`, `channel_id`, `operation_type`, `triggering_conditions`, `conditions_type`, `execution_type`, `status`, `remark`, `execution_template`, `dep_id`, `create_time`, `cc_name`) VALUES (8, 10, '', '', NULL, NULL, 1, 1, NULL, 1, 100, '2022-05-13 13:59:50', 'API同步失败邮件抄送'); +INSERT INTO `iotdb`.`yz_automation_cc`(`id`, `trigger_type`, `channel_id`, `operation_type`, `triggering_conditions`, `conditions_type`, `execution_type`, `status`, `remark`, `execution_template`, `dep_id`, `create_time`, `cc_name`) VALUES (33, 11, '', '', NULL, NULL, 1, 1, NULL, 1, 100, '2022-06-24 17:01:53', '续费通知-抄送'); + + +# 字典添加 + +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (762, 8, '上游套餐超过百分比抄送', '8', 'yz_cc_trigger_type', NULL, NULL, 'N', '0', 'admin', '2022-04-18 14:18:50', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (816, 9, 'API同步错误-运营类型', '9', 'yz_cc_trigger_type', NULL, NULL, 'N', '0', 'admin', '2022-05-13 13:57:02', 'admin', '2022-05-13 14:10:51', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (817, 10, 'API同步错误-非运营类型', '10', 'yz_cc_trigger_type', NULL, NULL, 'N', '0', 'admin', '2022-05-13 14:11:02', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (898, 11, '续费通知', '11', 'yz_cc_trigger_type', NULL, NULL, 'N', '0', 'admin', '2022-06-24 17:01:02', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (907, 12, '用量快到期', '12', 'yz_cc_trigger_type', NULL, NULL, 'N', '0', 'admin', '2022-08-15 09:05:00', '', NULL, NULL); + + +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (285, '续费申请查询条件', 'yunze_renewal_seltype', '0', 'admin', '2022-06-24 09:44:00', '', NULL, NULL); + +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (890, 0, '订单号', '0', 'yunze_renewal_seltype', NULL, NULL, 'N', '0', 'admin', '2022-06-24 09:44:25', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (897, 1, '备注', '1', 'yunze_renewal_seltype', NULL, NULL, 'N', '0', 'admin', '2022-06-24 09:57:08', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (899, 2, 'ID', '2', 'yunze_renewal_seltype', NULL, NULL, 'N', '0', 'admin', '2022-06-24 18:39:06', '', NULL, NULL); + + +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (891, 0, '创建时间', '0', 'yunze_renewal_timeType', NULL, NULL, 'N', '0', 'admin', '2022-06-24 09:45:39', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (892, 1, '审核时间', '1', 'yunze_renewal_timeType', NULL, NULL, 'N', '0', 'admin', '2022-06-24 09:45:46', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (893, 2, '修改时间', '2', 'yunze_renewal_timeType', NULL, NULL, 'N', '0', 'admin', '2022-06-24 09:45:53', '', NULL, NULL); + + +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (286, '续费申请时间筛选条件', 'yunze_renewal_timeType', '0', 'admin', '2022-06-24 09:45:28', '', NULL, NULL); + + + +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (894, 0, '审核中', '0', 'yunze_renewal_state', NULL, NULL, 'N', '0', 'admin', '2022-06-24 09:47:20', '', NULL, NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (895, 1, '已审核', '1', 'yunze_renewal_state', NULL, NULL, 'N', '0', 'admin', '2022-06-24 09:47:29', 'admin', '2022-06-24 09:47:57', NULL); +INSERT INTO `iotdb`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (896, 2, '未通过', '2', 'yunze_renewal_state', NULL, NULL, 'N', '0', 'admin', '2022-06-24 09:47:38', 'admin', '2022-06-24 09:48:14', NULL); + + +INSERT INTO `iotdb`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (287, '续费申请状态', 'yunze_renewal_state', '0', 'admin', '2022-06-24 09:46:50', '', NULL, NULL); + + + + + + + + +# 新增 角色和菜单关联表 [zf] [2020-09-01] + + +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2071); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2072); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2109); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2167); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2168); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2169); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2206); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2257); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2259); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2261); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2286); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2288); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2295); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2296); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2298); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (2, 2314); + +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (4, 1); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (4, 108); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (4, 2082); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (4, 2109); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (4, 2125); + + + +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 108); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 1019); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2044); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2090); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2105); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2107); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2115); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2116); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2120); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2123); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2124); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2129); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2130); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2131); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2132); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2134); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2135); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2136); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2138); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2139); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2140); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2141); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2142); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2143); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2144); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2145); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2148); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2149); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2150); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2152); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2157); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2158); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2159); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2161); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2162); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2163); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2164); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2171); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2202); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2203); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2208); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2209); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2210); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2211); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2212); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2213); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2214); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2237); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2238); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2239); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2240); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2241); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2242); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2252); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2253); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2254); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2256); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2257); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2258); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2259); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2261); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2262); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2263); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2264); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2266); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2267); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2268); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2269); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2270); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2271); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2272); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2273); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2274); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2286); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2288); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2289); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2290); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2292); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2293); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2294); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2309); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2310); +INSERT INTO `iotdb`.`sys_role_menu`(`role_id`, `menu_id`) VALUES (5, 2313); + + + +# 定时任务增加 [zf] [2022-09-01] + + +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (17, '购物邮件自动化抄送', 'Automation', 'emailCCShopping.CCShopping(500)', '0 0/10 * * * ?', '1', '1', '0', 'admin', '2021-10-08 12:20:18', 'admin', '2022-04-18 15:40:44', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (20, 'C端充值变更失败再次复机', 'POLLING', 'cendvalue.cendalue(120)', '0 0/3 * * * ? *', '1', '1', '0', 'admin', '2021-11-09 16:57:25', 'admin', '2022-08-15 15:24:22', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (28, '已订购用量状态已停机邮件抄送', 'Automation', 'emailCCCardAbnormalStatus.CCCardAbnormalStatus', '0 0 9,15 * * ? ', '2', '1', '0', 'admin', '2022-01-13 15:09:03', 'admin', '2022-04-18 15:48:04', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (29, '邮件抄送 [有用量停机状态]失败再次抄送', 'Automation', 'emailCCCardAbnormalStatus.RetryCC(100)', '0 0/3 10 * * ?', '1', '1', '0', 'admin', '2022-01-13 17:28:55', 'admin', '2022-08-15 15:25:44', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (44, '自动化任务邮件抄送超百分比(80)', 'Automation', 'usageMail.Reminder(80)', '0 0 10 ? * MON-FRI', '1', '1', '1', 'admin', '2022-04-11 18:07:58', 'admin', '2022-04-18 15:59:47', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (54, '卡号同步上游套餐', 'POLLING', 'cardSynOfferinginfolistTask.SynOfferinginfo', '0 0 20 1/3 * ?', '1', '1', '0', 'admin', '2022-04-15 17:58:29', 'admin', '2022-04-19 08:46:33', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (55, '同步上游套餐类型表', 'SYSTEM', 'cardSynOfferinginfoTask.SynOfferinginfo', '0 0 0/3 * * ?', '1', '1', '0', 'admin', '2022-04-18 10:45:24', 'admin', '2022-04-18 13:42:51', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (56, '自动化任务邮件抄送超百分比(80)', 'Automation', 'reminder.Reminder(80)', '0 0 10 ? * MON-FRI', '1', '1', '0', 'admin', '2022-04-11 18:07:58', 'admin', '2022-04-18 15:51:44', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (59, '邮件抄送超百分比-重试', 'DEFAULT', 'reminder.RetryCC(50)', '0 0/1 * * * ?', '1', '1', '0', 'admin', '2022-04-18 15:47:39', '', '2022-04-18 16:10:51', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (63, '同步-卡用量接口查询时错误记录-分类', 'POLLING', 'synPollingErrorGroupTask.SynOfferinginfo', '0 0 3 * * ?', '1', '1', '0', 'admin', '2022-05-13 13:23:06', 'admin', '2022-07-25 11:52:24', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (64, 'API同步数据错误抄送-运营类型', 'POLLING', 'emaiApiSynError.Send(\'9\')', '0 0 10 ? * MON-FRI', '1', '1', '0', 'admin', '2022-05-13 17:45:08', '', '2022-05-16 17:38:28', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (65, 'API同步数据错误抄送-非运营类型', 'POLLING', 'emaiApiSynError.Send(\'10\')', '0 0 10 ? * MON-FRI', '1', '1', '0', 'admin', '2022-05-16 16:02:09', '', '2022-05-16 17:38:57', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (66, '同步失败-运营类型【重试】', 'POLLING', 'emaiApiSynError.RetryCC(50,\'9\')', '0 0/1 * * * ?', '1', '1', '0', 'admin', '2022-05-16 16:16:17', '', '2022-05-16 17:38:59', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (67, '同步失败-非运营类型【重试】', 'POLLING', 'emaiApiSynError.RetryCC(50,\'10\')', '0 0/1 * * * ?', '1', '1', '0', 'admin', '2022-05-16 16:16:48', '', '2022-05-16 17:39:00', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (68, '清理执行任务', 'SYSTEM', 'cleanUpExecutionTaskFlieTask.ExecutionTaskFlie', '0 10 0 * * ?', '1', '1', '0', 'admin', '2022-06-01 15:51:03', 'admin', '2022-07-25 11:52:02', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (69, '指定卡状态同步生命周期', 'POLLING', 'cardOtherStatusTask.pollingCardStatus(60)', '0 0 20 * * ?', '1', '1', '0', 'admin', '2022-06-06 12:14:29', 'admin', '2022-07-25 11:51:53', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (70, '指定状态获取激活时间', 'POLLING', 'cardOtherActivateDateTask.pollingCardActivateDate(60)', '0 0 22 * * ?', '1', '1', '0', 'admin', '2022-06-13 15:38:17', 'admin', '2022-07-25 11:51:38', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (71, '未找到加包重置加包状态', 'SYSTEM', 'sysOrder.UpdOrderStatus', '0 0 0/1 * * ?', '1', '1', '0', 'admin', '2022-06-15 10:56:22', '', '2022-06-15 11:46:00', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (72, '未订购断网', 'POLLING', 'cardBreakNetworkTask.pollingCardBreakNetwork(120)', '0 0/50 * * * ?', '1', '1', '0', 'admin', '2022-05-12 14:29:35', 'admin', '2022-06-27 16:00:04', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (73, '续费邮件通知', 'Automation', 'emailCCRenewal.CCExecution(1)', '0 0/10 * * * ?', '1', '1', '0', 'admin', '2022-06-24 18:45:47', '', '2022-06-25 02:16:53', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (74, '续费审核通过生成订单', 'SYSTEM', 'orderRenewalGeneration.RenewalToGenerateOrder(3)', '0 0/10 * * * ?', '1', '1', '0', 'admin', '2022-06-24 23:07:25', 'admin', '2022-06-27 15:35:53', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (75, '删除卡状态变更信息', 'SYSTEM', 'cardInfoChange.ClearUp', '10 0 1 * * ? *', '1', '1', '0', 'admin', '2022-07-06 09:08:57', 'admin', '2022-07-07 09:08:13', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (76, '日志清理', 'SYSTEM', 'sysLogClearTask.Generate(30)', '15 0 1 * * ? *', '1', '1', '0', 'admin', '2022-07-15 17:14:19', '', '2022-07-20 17:44:38', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (77, '平台资产明细生成', 'SYSTEM', 'indexpageGenerateTask.GenerateAssetDetails(60,\'100\')', '10 0 0 * * ? *', '1', '1', '0', 'admin', '2022-07-15 17:18:51', '', '2022-07-20 17:44:44', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (78, '资费计划-卡数量同步', 'SYSTEM', 'cardPacketCountTask.SynPacketCount', '45 0 0 * * ? *', '1', '1', '0', 'admin', '2022-07-20 10:45:44', '', '2022-07-20 17:49:28', ''); +INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (79, '短信下发执行', 'SYSTEM', 'cardSmsTask.SynPacketCount(\'1\')', '0 0/1 * * * ?', '1', '1', '0', 'admin', '2022-08-18 16:21:37', 'admin', '2022-08-24 17:13:42', ''); + + +# 修改定时任务 + + +UPDATE `sys_job` SET `invoke_target` = 'ryTask.ryNoParams', `cron_expression` = '0/10 * * * * ?', `misfire_policy` = '3', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `job_id` = 1 AND `job_name` = '系统默认(无参)' AND `job_group` = 'DEFAULT'; +UPDATE `sys_job` SET `invoke_target` = 'ryTask.ryParams(\'ry\')', `cron_expression` = '0/15 * * * * ?', `misfire_policy` = '3', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `job_id` = 2 AND `job_name` = '系统默认(有参)' AND `job_group` = 'DEFAULT'; +UPDATE `sys_job` SET `invoke_target` = 'ryTask.ryMultipleParams(\'ry\', true, 2000L, 316.50D, 100)', `cron_expression` = '0/20 * * * * ?', `misfire_policy` = '3', `concurrent` = '0', `status` = '1', `create_by` = 'admin', `create_time` = '2021-06-05 09:12:10', `update_by` = 'admin', `update_time` = '2021-07-04 08:47:54', `remark` = '' WHERE `job_id` = 3 AND `job_name` = '系统默认(多参)' AND `job_group` = 'DEFAULT'; +UPDATE `sys_job` SET `invoke_target` = 'orderAddPackageProductionTask.activationAddPackageProductionAndActivateDate(180)', `cron_expression` = '0 0 0/1 * * ? ', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-04 15:50:06', `update_by` = 'admin', `update_time` = '2022-01-10 14:09:38', `remark` = '' WHERE `job_id` = 4 AND `job_name` = '根据订单轮询更新激活时间' AND `job_group` = 'DEFAULT'; +UPDATE `sys_job` SET `invoke_target` = 'cardActivateDateTask.pollingActivateDateIntelligent(120)', `cron_expression` = '30 0 0 * * ? ', `misfire_policy` = '2', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-07 15:32:32', `update_by` = 'admin', `update_time` = '2022-06-21 13:25:11', `remark` = '' WHERE `job_id` = 5 AND `job_name` = '激活时间-高频' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'passagewayPollingTask.SynChannel()', `cron_expression` = '0 0/20 * * * ?', `misfire_policy` = '2', `concurrent` = '0', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-15 17:07:12', `update_by` = 'admin', `update_time` = '2022-03-29 09:17:48', `remark` = '' WHERE `job_id` = 6 AND `job_name` = '轮询-同步通道数据' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'cardStatusTask.pollingCardStatus(120)', `cron_expression` = '0 0 11,22 * * ? ', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-20 12:03:30', `update_by` = 'admin', `update_time` = '2022-03-09 18:06:10', `remark` = '' WHERE `job_id` = 7 AND `job_name` = '轮询-卡状态-高频' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'cardFlowTask.pollingCardFlow(120)', `cron_expression` = '0 0 6,18 * * ? ', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-21 13:33:23', `update_by` = 'admin', `update_time` = '2022-03-09 18:06:13', `remark` = '' WHERE `job_id` = 8 AND `job_name` = '轮询-用量-高频' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'cardStopTask.pollingCardStop(60)', `cron_expression` = '0 0/55 * * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2021-07-23 18:07:40', `update_by` = 'admin', `update_time` = '2022-03-29 09:17:26', `remark` = '' WHERE `job_id` = 9 AND `job_name` = '达量停机' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'orderAddPackageProductionTask.addPackageProduction(180)', `cron_expression` = '0 0/10 * * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-04 16:52:55', `update_by` = 'admin', `update_time` = '2022-05-27 14:05:28', `remark` = '' WHERE `job_id` = 10 AND `job_name` = '除 生效类型为 [激活生效] 外 所有加包 增加到生产任务中去' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'orderAddPackageProductionTask.activationAddPackageProductionAndActivateDate(180)', `cron_expression` = '0 0/20 * * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-13 15:04:26', `update_by` = 'admin', `update_time` = '2022-05-27 14:05:36', `remark` = '' WHERE `job_id` = 11 AND `job_name` = '生效类型为 [激活生效] 且 已有生效时间 增加到生产任务中去' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'cardFlowTask.StartCardFlow(60)', `cron_expression` = '0 0/1 * * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2021-08-19 14:44:15', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `job_id` = 12 AND `job_name` = '手动开启用量监听' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'sysLogsTask.backups()', `cron_expression` = '50 0 0 * * ? *', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2021-08-19 17:57:28', `update_by` = 'admin', `update_time` = '2022-06-21 13:25:31', `remark` = '' WHERE `job_id` = 13 AND `job_name` = '删除对外接口日志' AND `job_group` = 'BACKUP'; +UPDATE `sys_job` SET `invoke_target` = 'initMQ.initMQConfig', `cron_expression` = '0 0 0 * * ? *', `misfire_policy` = '1', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2021-08-31 13:16:27', `update_by` = '', `update_time` = NULL, `remark` = '' WHERE `job_id` = 14 AND `job_name` = 'MQ初始化' AND `job_group` = 'DEFAULT'; +UPDATE `sys_job` SET `invoke_target` = 'cardDisconnectedTask.pollingCardDisconnected(120)', `cron_expression` = '0 0/45 * * * ? ', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2021-09-14 14:08:36', `update_by` = 'admin', `update_time` = '2022-08-15 15:24:49', `remark` = '' WHERE `job_id` = 15 AND `job_name` = '未订购停机' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'backupTest.gentable(30)', `cron_expression` = '0 1 0 * * ? *', `misfire_policy` = '1', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2021-09-16 18:12:41', `update_by` = 'admin', `update_time` = '2022-06-21 13:25:51', `remark` = '' WHERE `job_id` = 16 AND `job_name` = '备份所有表' AND `job_group` = 'BACKUP'; +UPDATE `sys_job` SET `invoke_target` = 'cardActivateDateTask.pollingActivateDate(\'Serious\', 60)', `cron_expression` = '0 0 0/8 * * ? ', `misfire_policy` = '1', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2021-10-28 17:21:14', `update_by` = 'admin', `update_time` = '2021-11-12 11:31:34', `remark` = '' WHERE `job_id` = 18 AND `job_name` = '轮询-激活时间有用量' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'month.gentable(120)', `cron_expression` = '0 0 0,2,4,6 1 * ? *', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-08 09:56:52', `update_by` = 'admin', `update_time` = '2021-11-25 14:17:52', `remark` = '' WHERE `job_id` = 19 AND `job_name` = '月初流量卡进行复机' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'cardFlowTask.pollingCardFlowOne(60,\'49\')', `cron_expression` = '0 0 0/1 * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2021-11-22 10:29:55', `update_by` = 'admin', `update_time` = '2021-12-06 18:20:51', `remark` = '' WHERE `job_id` = 22 AND `job_name` = '创建单通道用量监听' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'cardFlowTask.CardFlowCreateListener(60,\'49\')', `cron_expression` = '0 0 0/1 * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2021-11-22 10:46:08', `update_by` = 'admin', `update_time` = '2021-12-06 18:21:01', `remark` = '' WHERE `job_id` = 23 AND `job_name` = '指定单个通道创建 消费者' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'rebootTask.RebootFlowPolling(180)', `cron_expression` = '0 0 0/3 * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2021-11-23 17:37:44', `update_by` = 'admin', `update_time` = '2022-02-22 10:26:22', `remark` = '' WHERE `job_id` = 24 AND `job_name` = '轮询重启无记录消费者创建' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'rebootTask.RebootCardStop(180)', `cron_expression` = '0 0 0/1 * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2021-11-27 13:47:23', `update_by` = '', `update_time` = '2022-03-09 11:48:21', `remark` = '' WHERE `job_id` = 25 AND `job_name` = '停机阈值重启' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'rebootTask.RebootCardDisconnected(180)', `cron_expression` = '0 0 0/1 * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2021-11-27 13:48:00', `update_by` = '', `update_time` = '2022-03-09 11:48:24', `remark` = '' WHERE `job_id` = 26 AND `job_name` = '未订购停机重启' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'mqcardflow.gettime(30)', `cron_expression` = '0 0 0/1 * * ? *', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2021-11-26 10:22:57', `update_by` = 'admin', `update_time` = '2022-01-24 14:19:30', `remark` = '' WHERE `job_id` = 27 AND `job_name` = '同步主表到期日期' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'indexpageGenerateTask.GenerateTask(60,\'100\')', `cron_expression` = '0 5 0 * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-01-25 11:35:11', `update_by` = 'admin', `update_time` = '2022-07-25 11:46:27', `remark` = '' WHERE `job_id` = 30 AND `job_name` = '首页数据生成' AND `job_group` = 'SYSTEM'; +UPDATE `sys_job` SET `invoke_target` = 'passagewayPollingTask.cleanRedisChannel()', `cron_expression` = '0 0/8 * * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2022-02-23 12:07:18', `update_by` = '', `update_time` = '2022-03-29 12:05:10', `remark` = '' WHERE `job_id` = 31 AND `job_name` = '清除当天已完成轮询进度' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'cardPostageCount.synchronization', `cron_expression` = '0 0/50 * * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-13 13:36:57', `update_by` = 'admin', `update_time` = '2022-06-17 09:26:54', `remark` = '' WHERE `job_id` = 40 AND `job_name` = '资费组【同步卡总数】' AND `job_group` = 'DEFAULT'; +UPDATE `sys_job` SET `invoke_target` = 'emailPayGroup.PayGroup', `cron_expression` = '0 0 10 ? * MON-FRI', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-08 09:39:24', `update_by` = 'admin', `update_time` = '2022-04-18 15:50:59', `remark` = '' WHERE `job_id` = 43 AND `job_name` = '自动化 邮件抄送 [未划分资费组]' AND `job_group` = 'Automation'; +UPDATE `sys_job` SET `invoke_target` = 'emailPassageway.Passageway', `cron_expression` = '0 0 10 ? * MON-FRI', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-08 16:07:24', `update_by` = 'admin', `update_time` = '2022-04-18 15:52:44', `remark` = '' WHERE `job_id` = 45 AND `job_name` = '自动化 邮件抄送 [未划分通道]' AND `job_group` = 'Automation'; +UPDATE `sys_job` SET `invoke_target` = 'emailPassageway.RetryCC(50)', `cron_expression` = '0 0/1 * * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-09 10:08:42', `update_by` = 'admin', `update_time` = '2022-04-18 15:51:14', `remark` = '' WHERE `job_id` = 46 AND `job_name` = '自动化 邮件抄送 重试 [未划分通道]' AND `job_group` = 'Automation'; +UPDATE `sys_job` SET `invoke_target` = 'emailPayGroup.RetryCC(50)', `cron_expression` = '0 0/1 * * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-10 12:16:03', `update_by` = 'admin', `update_time` = '2022-04-18 15:51:24', `remark` = '' WHERE `job_id` = 47 AND `job_name` = '自动化 邮件抄送 重试 [未划分资费组]' AND `job_group` = 'Automation'; +UPDATE `sys_job` SET `invoke_target` = 'cardStatusAiTask.pollingCardStatusNull(30)', `cron_expression` = '0 0 3 * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-10 18:41:28', `update_by` = 'admin', `update_time` = '2022-07-25 11:38:31', `remark` = '' WHERE `job_id` = 48 AND `job_name` = '卡状态未知获取状态' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'cardFlowAiTask.pollingCardFlowNotRecord(45)', `cron_expression` = '0 0 0/4 * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-10 18:42:51', `update_by` = 'admin', `update_time` = '2022-03-19 12:04:41', `remark` = '' WHERE `job_id` = 49 AND `job_name` = '用量记录无记录获取用量' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'cleanUpCardFliwHis.CleanUp(\'100\')', `cron_expression` = '0 0 0 * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '1', `create_by` = 'admin', `create_time` = '2022-03-23 14:47:11', `update_by` = 'admin', `update_time` = '2022-08-01 10:02:38', `remark` = '' WHERE `job_id` = 50 AND `job_name` = '清除大于X天用量记录' AND `job_group` = 'SYSTEM'; +UPDATE `sys_job` SET `invoke_target` = 'emailCardConsumption.CardConsumption()', `cron_expression` = '0 0 10 ? * MON-FRI', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-03-25 11:27:11', `update_by` = '', `update_time` = '2022-03-25 17:54:51', `remark` = '' WHERE `job_id` = 51 AND `job_name` = '归属为总平台-有用量' AND `job_group` = 'SYSTEM'; +UPDATE `sys_job` SET `invoke_target` = 'cardActivateDateAiTask.pollingActivateDateCompensate(60)', `cron_expression` = '20 0 19 * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-08 10:20:55', `update_by` = 'admin', `update_time` = '2022-06-23 11:11:31', `remark` = '' WHERE `job_id` = 52 AND `job_name` = '激活时间-补偿' AND `job_group` = 'POLLING'; +UPDATE `sys_job` SET `invoke_target` = 'cardCount.synchronization', `cron_expression` = '0 0 0/2 * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-13 08:37:47', `update_by` = 'admin', `update_time` = '2022-04-18 13:43:04', `remark` = '' WHERE `job_id` = 57 AND `job_name` = '卡通道表[同步更改字段数据]' AND `job_group` = 'DEFAULT'; +UPDATE `sys_job` SET `invoke_target` = 'cardPostageCount.synchronization', `cron_expression` = '0 0 0/2 * * ?', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-13 13:36:57', `update_by` = 'admin', `update_time` = '2022-04-18 13:43:06', `remark` = '' WHERE `job_id` = 58 AND `job_name` = '资费组【同步卡总数】' AND `job_group` = 'DEFAULT'; +UPDATE `sys_job` SET `invoke_target` = 'cardFlowLessThanZeroTask.pollingCardFlowLessThanZero(60)', `cron_expression` = '45 0 3 * * ? *', `misfire_policy` = '1', `concurrent` = '1', `status` = '0', `create_by` = 'admin', `create_time` = '2022-04-21 13:16:42', `update_by` = 'admin', `update_time` = '2022-07-25 11:52:51', `remark` = '' WHERE `job_id` = 62 AND `job_name` = '记录为负数卡号再次同步用量' AND `job_group` = 'Automation'; diff --git a/sql/必须执行/queryChildrenAreaInfo.sql b/sql/必须执行/queryChildrenAreaInfo.sql new file mode 100644 index 0000000..1cb6c7a --- /dev/null +++ b/sql/必须执行/queryChildrenAreaInfo.sql @@ -0,0 +1,22 @@ +## 增加子企业查询SQL函数修复bug,该函数需使用数据库root账号在数据库直接运行 + + +set global log_bin_trust_function_creators=TRUE; + +CREATE DEFINER=`root`@`%` FUNCTION `queryChildrenAreaInfo`( +`username_set` char(50) charset utf8mb4 collate utf8mb4_0900_ai_ci ) RETURNS varchar(16383) CHARSET utf8 + SQL SECURITY INVOKER +BEGIN + +DECLARE sTemp VARCHAR(16383); +DECLARE sTempChd VARCHAR(16383); + +SET sTemp=""; +SET sTempChd = CAST(username_set AS CHAR); + +WHILE sTempChd IS NOT NULL DO +SET sTemp= CONCAT(sTemp,",",sTempChd); +SELECT GROUP_CONCAT(dept_id) INTO sTempChd FROM sys_dept WHERE FIND_IN_SET(parent_id,sTempChd)>0; +END WHILE; +RETURN sTemp; +END diff --git a/yunze-C-business/business.iml b/yunze-C-business/business.iml index 2fcf612..0e3f312 100644 --- a/yunze-C-business/business.iml +++ b/yunze-C-business/business.iml @@ -183,173 +183,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/yunze-C-business/pom.xml b/yunze-C-business/pom.xml index e2293d9..500c6f7 100644 --- a/yunze-C-business/pom.xml +++ b/yunze-C-business/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-C-business/src/main/java/com/yunze/business/config/WxConfigInit.java b/yunze-C-business/src/main/java/com/yunze/business/config/WxConfigInit.java index 77b549f..42e883c 100644 --- a/yunze-C-business/src/main/java/com/yunze/business/config/WxConfigInit.java +++ b/yunze-C-business/src/main/java/com/yunze/business/config/WxConfigInit.java @@ -22,7 +22,10 @@ public class WxConfigInit { private WxConfigServiceImpl wxConfigService; /** + * auther: + * return: * 描述: 获取所有的公众号 + * 时间: 2021/12/14 9:40 */ public List getConfigs(){ List configs= wxConfigService.list(new QueryWrapper() diff --git a/yunze-C-business/src/main/java/com/yunze/business/entity/SysLogs.java b/yunze-C-business/src/main/java/com/yunze/business/entity/SysLogs.java index 0502212..1119525 100644 --- a/yunze-C-business/src/main/java/com/yunze/business/entity/SysLogs.java +++ b/yunze-C-business/src/main/java/com/yunze/business/entity/SysLogs.java @@ -17,7 +17,7 @@ import lombok.EqualsAndHashCode; *

* * @author yunxi - * @since 2020-12-21 + * @since 2021-12-21 */ @Getter @Setter diff --git a/yunze-C-business/src/main/java/com/yunze/business/service/impl/SysLogsServiceImpl.java b/yunze-C-business/src/main/java/com/yunze/business/service/impl/SysLogsServiceImpl.java index 380df0f..6cb67a1 100644 --- a/yunze-C-business/src/main/java/com/yunze/business/service/impl/SysLogsServiceImpl.java +++ b/yunze-C-business/src/main/java/com/yunze/business/service/impl/SysLogsServiceImpl.java @@ -16,6 +16,9 @@ import java.util.List; *

* 系统级日志 服务实现类 *

+ * + * @author wct + * @since 2021-12-21 */ @Service public class SysLogsServiceImpl extends ServiceImpl implements SysLogsService { diff --git a/yunze-C-business/src/main/java/com/yunze/business/util/CheckIsNull.java b/yunze-C-business/src/main/java/com/yunze/business/util/CheckIsNull.java index cb6cca5..b48402e 100644 --- a/yunze-C-business/src/main/java/com/yunze/business/util/CheckIsNull.java +++ b/yunze-C-business/src/main/java/com/yunze/business/util/CheckIsNull.java @@ -11,7 +11,7 @@ public class CheckIsNull { * auther: * return: * 描述: 检验非空方法 - * 时间: 2020/11/22 11:45 + * 时间: 2021/11/22 11:45 */ public static boolean isNull(Object object){ if(null==object){ diff --git a/yunze-C-business/src/test/test.iml b/yunze-C-business/src/test/test.iml new file mode 100644 index 0000000..a0e49a3 --- /dev/null +++ b/yunze-C-business/src/test/test.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/yunze-admin/pom.xml b/yunze-admin/pom.xml index 562d6de..f28d0c4 100644 --- a/yunze-admin/pom.xml +++ b/yunze-admin/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 jar diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/common/SmsApiController.java b/yunze-admin/src/main/java/com/yunze/web/controller/common/SmsApiController.java new file mode 100644 index 0000000..09fd65a --- /dev/null +++ b/yunze-admin/src/main/java/com/yunze/web/controller/common/SmsApiController.java @@ -0,0 +1,73 @@ +package com.yunze.web.controller.common; + +import com.yunze.common.constant.ALiYunSendMessage; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.commodity.YzWxByProductAgentMapper; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; +import java.util.Random; +import java.util.concurrent.TimeUnit; + +@RestController +@CrossOrigin // 跨域支持 +@RequestMapping +public class SmsApiController { + + + + @Resource + private RedisCache redisCache; + @Resource + private ALiYunSendMessage aLiYunSendMessage; + + + @Resource + private YzWxByProductAgentMapper yzWxByProductAgentMapper; + + @GetMapping("/send/{phone}") + public String code(@PathVariable String phone){ + int H = 24; + // 调用发送方法 + Object code = redisCache.getCacheObject("login_"+phone); + if (code!=null && code.toString().length()>0) { //不等于 空 + return "五分钟内不能重复获取!"; + } + + Object count = redisCache.getCacheObject("login_SendMessageCount_"+phone); + Integer sendCount = count!=null && count.toString().length()>0?Integer.parseInt(count.toString()):0; + Map map = new HashMap<>(); + map.put("config_key","login.SendMessageCount"); + int maxSendCount = yzWxByProductAgentMapper.SendCount(map);//数据库查询配置参数 + if(sendCount >= maxSendCount){ + return "["+H+"]小时内不能超过["+maxSendCount+"]次短信验证!"; + } + + StringBuilder builder = new StringBuilder(); + Random random = new Random(); + for (int i = 0; i < 6; i++) { + builder.append(random.nextInt(10));//实现验证码 6 位数字 + } + // 生成验证码并存储到redis 中 + code = builder.toString(); + + HashMap param = new HashMap<>(); + param.put("code",code); + + boolean isSend = aLiYunSendMessage.send(phone,"SMS_242220249",param); + + if(isSend){ + sendCount +=1; + redisCache.setCacheObject("login_SendMessageCount_"+phone, sendCount, H, TimeUnit.HOURS);//设置X小时过期 + + //设置 5 分钟过期 + redisCache.setCacheObject("login_"+phone, code, 5, TimeUnit.MINUTES);//设置5分钟过期 + return "验证成功 请查看手机验证码"; + + }else { + return "发送失败"; + } + } +} diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/system/SysLoginController.java b/yunze-admin/src/main/java/com/yunze/web/controller/system/SysLoginController.java index af1d3cb..362d565 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/system/SysLoginController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/system/SysLoginController.java @@ -5,8 +5,10 @@ import java.util.List; import java.util.Map; import java.util.Set; +import com.yunze.common.core.redis.RedisCache; import com.yunze.common.mapper.yunze.YzUserMapper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -46,7 +48,8 @@ public class SysLoginController private TokenService tokenService; @Resource private YzUserMapper yzUserMapper; - + @Resource + private RedisCache redisCache; /** * 登录方法 @@ -76,6 +79,63 @@ public class SysLoginController return ajax; } + /** + * 短信登录方法 + * @param loginBody 登录信息 + * @return 结果 + */ + @PostMapping("/message") + public AjaxResult loginMessage(@RequestBody LoginBody loginBody) throws Exception { + boolean bool = false; + AjaxResult ajax = null; + String username = loginBody.getUsername(); + String code = loginBody.getCode(); + + + boolean result = username.matches("[0-9]+"); + String password = ""; + String message = ""; + Object yz_code = redisCache.getCacheObject("login_"+username); + + if(yz_code!=null ){ + if(code.equals(yz_code)){ + if (result == true) { + System.out.println("该字符串是纯数字"); + Map fmap = new HashMap<>(); + fmap.put("phonenumber",username); + Map userMpa = yzUserMapper.user_Massage(fmap); + if(userMpa!=null && userMpa.get("user_name")!=null){ + bool = true; + username = userMpa.get("user_name"); + password = userMpa.get("password"); + }else{ + message = "未找到手机号对应账号信息,请核对后重试!"; + } + }else{ + message = "手机号格式不正确,请核对后重试!"; + } + }else{ + message = "验证码有误!"; + } + }else { + message = "验证码已失效!"; + } + + if(bool){ + ajax = AjaxResult.success(); + // 生成令牌 + String token = loginService.Massagelogin(username, password,loginBody.getUuid()); + + System.out.println(token); + ajax.put(Constants.TOKEN, token); + }else{ + + ajax = AjaxResult.error(message); + } + + return ajax; + } + /** * 获取用户信息 * diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/system/SysUserController.java b/yunze-admin/src/main/java/com/yunze/web/controller/system/SysUserController.java index 8bd022b..b36c95c 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/system/SysUserController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/system/SysUserController.java @@ -1,10 +1,14 @@ package com.yunze.web.controller.system; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; +import com.alibaba.fastjson.JSON; +import com.yunze.common.utils.ip.IpUtils; import com.yunze.common.utils.spring.SpringUtils; +import com.yunze.common.utils.yunze.AesEncryptUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -249,4 +253,8 @@ public class SysUserController extends BaseController user.setUpdateBy(SecurityUtils.getUsername()); return toAjax(userService.updateUserStatus(user)); } + + + + } diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzOrderController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzOrderController.java deleted file mode 100644 index 2902ee0..0000000 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzOrderController.java +++ /dev/null @@ -1,213 +0,0 @@ -package com.yunze.web.controller.yunze; - -import com.alibaba.fastjson.JSON; -import com.yunze.common.annotation.Log; -import com.yunze.common.core.domain.AjaxResult; -import com.yunze.common.core.domain.entity.SysUser; -import com.yunze.common.core.domain.model.LoginUser; -import com.yunze.common.enums.BusinessType; -import com.yunze.common.utils.ServletUtils; -import com.yunze.common.utils.ip.IpUtils; -import com.yunze.common.utils.spring.SpringUtils; -import com.yunze.common.utils.yunze.AesEncryptUtil; -import com.yunze.framework.web.service.TokenService; -import com.yunze.system.service.yunze.IYzCardFlowService; -import com.yunze.system.service.yunze.IYzOrderService; -import com.yunze.web.core.config.MyBaseController; -import io.swagger.annotations.Api; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 通道 管理 - * 2021-06-19 - * @author root - */ -@Api("订单管理") -@RestController -@RequestMapping("/yunze/order") -public class YzOrderController extends MyBaseController -{ - - @Resource - private IYzOrderService iYzOrderService; - @Resource - private IYzCardFlowService iYzCardFlowService; - - - /** - * 订单 列表 - */ - @PreAuthorize("@ss.hasPermi('yunze:order:list')") - @PostMapping(value = "/list", produces = { "application/json;charset=UTF-8" }) - public String list(@RequestBody String Pstr) - { - HashMap Parammap = new HashMap(); - if(Pstr!=null){ - Pstr = Pstr.replace("%2F", "/");//转义 / - } - try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); - Parammap.putAll(JSON.parseObject((String) Pstr)); - LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); - SysUser currentUser = loginUser.getUser(); - List agent_id = new ArrayList<>(); - if(currentUser.getDeptId()!=100){ - if(Parammap.get("agent_id")!=null){ - List P_agent_id = (List) Parammap.get("agent_id"); - agent_id.addAll(P_agent_id); - }else{ - agent_id.add(Integer.parseInt(currentUser.getDeptId().toString())); - Parammap.put("agent_id",agent_id); - } - } - return MyRetunSuccess(iYzOrderService.selMap(Parammap),null); - }catch (Exception e){ - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:order:list
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); - } - return Myerr("获取订单 列表信息列表 操作失败!"); - } - - - - /** - * 查询 资费计划 信息 - */ - @PreAuthorize("@ss.hasPermi('yunze:order:list')") - @PostMapping(value = "/queryPacketSimple", produces = { "application/json;charset=UTF-8" }) - public String queryPacketSimple() - { - HashMap Parammap = new HashMap(); - try { - LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); - SysUser currentUser = loginUser.getUser(); - List agent_id = new ArrayList<>(); - if(currentUser.getDeptId()!=100){ - agent_id.add(currentUser.getDeptId().toString()); - }else{ - agent_id.add(currentUser.getDeptId().toString()); - } - - Parammap.put("agent_id",agent_id); - return MyRetunSuccess(iYzCardFlowService.queryPacket_simple(Parammap),null); - }catch (Exception e){ - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:order:list
ip = " + ip + "
",e.getCause().toString()); - } - return Myerr("获取 【订单】 查询 资费计划 操作失败!"); - } - - - /** - * 查询 订单详情 - */ - @PreAuthorize("@ss.hasPermi('yunze:order:findOrder')") - @PostMapping(value = "/findOrder", produces = { "application/json;charset=UTF-8" }) - public String findOrder(@RequestBody String Pstr) - { - if(Pstr!=null){ - Pstr = Pstr.replace("%2F", "/");//转义 / - } - HashMap Parammap = new HashMap(); - try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); - Parammap.putAll(JSON.parseObject((String) Pstr)); - return MyRetunSuccess(iYzOrderService.findOrder(Parammap),null); - }catch (Exception e){ - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:order:findOrder
ip = " + ip + "
",e.getCause().toString()); - } - return Myerr("查询 【订单详情】 操作失败!"); - } - - - /** - * 平台导入充值 - * @param file - * @return - */ - @Log(title = "订单管理", businessType = BusinessType.IMPORT) - @PreAuthorize("@ss.hasPermi('yunze:order:importRecharge')") - @PostMapping(value = "/importRecharge", produces = { "application/json;charset=utf-8" }) - public AjaxResult importRecharge(MultipartFile file,@RequestParam Map map) - { - - String Pstr = map.get("Pstr").toString(); - if(Pstr!=null){ - Pstr = Pstr.replace("%2F", "/");//转义 / - } - HashMap Parammap = new HashMap(); - try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); - Parammap.putAll(JSON.parseObject((String) Pstr)); - LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); - SysUser User = loginUser.getUser(); - Parammap.put("User",User); - Parammap.put("agent_id",User.getDeptId()); - return AjaxResult.success(iYzOrderService.importRecharge(file,Parammap)); - }catch (Exception e){ - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:order:importRecharge
ip = " + ip + "
",e.getCause().toString()); - } - return AjaxResult.error("平台导入充值 操作失败!"); - } - - /** - * 导出 - * @return - */ - @Log(title = "全部订单导出", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('yunze:order:outOrder')") - @PostMapping(value = "/outOrder", produces = { "application/json;charset=utf-8" }) - public String exportData(@RequestBody String Pstr) - { - HashMap Parammap = new HashMap(); - if(Pstr!=null){ - Pstr = Pstr.replace("%2F", "/");//转义 / - } - try { - - Pstr = AesEncryptUtil.desEncrypt(Pstr); - // System.out.println(map); - Parammap.putAll(JSON.parseObject((String) Pstr)); - - LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); - SysUser currentUser = loginUser.getUser(); - - return MyRetunSuccess(iYzOrderService.exportallorders(Parammap,currentUser),null); - }catch (Exception e){ - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:order:outOrder
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); - } - return Myerr("全部订单导出 操作失败!"); - } - - - - - -} - - - - - - - - - - - - - - - - diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCcController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/automation/YzCcController.java similarity index 69% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCcController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/automation/YzCcController.java index 68e9d37..e9c5579 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCcController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/automation/YzCcController.java @@ -1,13 +1,12 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.automation; import com.alibaba.fastjson.JSON; import com.yunze.common.annotation.Log; -import com.yunze.common.core.controller.BaseController; import com.yunze.common.enums.BusinessType; import com.yunze.common.utils.ServletUtils; import com.yunze.common.utils.ip.IpUtils; import com.yunze.common.utils.yunze.AesEncryptUtil; -import com.yunze.system.service.yunze.YzCcService; +import com.yunze.system.service.yunze.IYzCcService; import com.yunze.web.core.config.MyBaseController; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; @@ -25,31 +24,31 @@ import java.util.HashMap; public class YzCcController extends MyBaseController { - @Autowired - private YzCcService YzCcService; + @Autowired + private IYzCcService IYzCcService; - /** - * 执行自动化 - */ - @PreAuthorize("@ss.hasPermi('yunze:cc:list')") - @PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"}) - public String SynFlow(@RequestBody String Pstr) { - HashMap Parammap = new HashMap(); - if (Pstr != null) { - Pstr = Pstr.replace("%2F", "/");//转义 / - } - try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); - // System.out.println(map); - Parammap.putAll(JSON.parseObject(Pstr)); - return MyRetunSuccess(YzCcService.ListCc(Parammap), null); - } catch (Exception e) { - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:cc:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); - } - return Myerr("自动化 操作失败!"); + /** + * 执行自动化 + */ + @PreAuthorize("@ss.hasPermi('yunze:cc:list')") + @PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"}) + public String SynFlow(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject(Pstr)); + return MyRetunSuccess(IYzCcService.ListCc(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:cc:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("自动化 操作失败!"); + } /** * 自动化新增 @@ -65,7 +64,7 @@ public class YzCcController extends MyBaseController { try { Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); - return MyRetunSuccess(YzCcService.YzCcAdd(Parammap), null); + return MyRetunSuccess(IYzCcService.YzCcAdd(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); logger.error("
yunze:cc:add
Pstr = " + Pstr + "
ip = " + ip + "
", e.toString()); @@ -82,7 +81,7 @@ public class YzCcController extends MyBaseController { { HashMap Parammap = new HashMap(); try { - return MyRetunSuccess(YzCcService.NameAdd(),null); + return MyRetunSuccess(IYzCcService.NameAdd(),null); }catch (Exception e){ String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); logger.error("
yunze:cc:nameadd " + "
ip = " + ip + "
",e.getCause().toString()); @@ -105,7 +104,7 @@ public class YzCcController extends MyBaseController { Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject(Pstr)); - return MyRetunSuccess(YzCcService.UpdateCc(Parammap), null); + return MyRetunSuccess(IYzCcService.UpdateCc(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); logger.error("
yunze:cc:update
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCcHisController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/automation/YzCcHisController.java similarity index 86% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCcHisController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/automation/YzCcHisController.java index 9fd54c2..730888e 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCcHisController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/automation/YzCcHisController.java @@ -1,11 +1,10 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.automation; import com.alibaba.fastjson.JSON; import com.yunze.common.utils.ServletUtils; import com.yunze.common.utils.ip.IpUtils; import com.yunze.common.utils.yunze.AesEncryptUtil; -import com.yunze.system.service.yunze.YzCcHisService; -import com.yunze.system.service.yunze.YzCcService; +import com.yunze.system.service.yunze.IYzCcHisService; import com.yunze.web.core.config.MyBaseController; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; @@ -27,7 +26,7 @@ import java.util.HashMap; public class YzCcHisController extends MyBaseController { @Autowired - private YzCcHisService yzCcHisService; + private IYzCcHisService IYzCcHisService; /** * 执行 自动化配置 */ @@ -42,7 +41,7 @@ public class YzCcHisController extends MyBaseController { Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject(Pstr)); - return MyRetunSuccess(yzCcHisService.ListCcHis(Parammap), null); + return MyRetunSuccess(IYzCcHisService.ListCcHis(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); logger.error("
yunze:cchis:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCcUrlController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/automation/YzCcUrlController.java similarity index 89% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCcUrlController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/automation/YzCcUrlController.java index 4024896..e80fa97 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCcUrlController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/automation/YzCcUrlController.java @@ -1,13 +1,12 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.automation; import com.alibaba.fastjson.JSON; import com.yunze.common.annotation.Log; -import com.yunze.common.core.controller.BaseController; import com.yunze.common.enums.BusinessType; import com.yunze.common.utils.ServletUtils; import com.yunze.common.utils.ip.IpUtils; import com.yunze.common.utils.yunze.AesEncryptUtil; -import com.yunze.system.service.yunze.YzCcUrlService; +import com.yunze.system.service.yunze.IYzCcUrlService; import com.yunze.web.core.config.MyBaseController; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; @@ -24,12 +23,11 @@ import java.util.Map; @Api("自动化推送") @RestController @RequestMapping("/yunze/ccurl") - public class YzCcUrlController extends MyBaseController { @Autowired - private YzCcUrlService yzCcUrlService; + private IYzCcUrlService IYzCcUrlService; /** @@ -46,7 +44,7 @@ public class YzCcUrlController extends MyBaseController { Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject(Pstr)); - return MyRetunSuccess(yzCcUrlService.ListCcUrl(Parammap), null); + return MyRetunSuccess(IYzCcUrlService.ListCcUrl(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); logger.error("
yunze:ccurl:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); @@ -68,7 +66,7 @@ public class YzCcUrlController extends MyBaseController { try { Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); - return MyRetunSuccess(yzCcUrlService.insertCcUrl(Parammap), null); + return MyRetunSuccess(IYzCcUrlService.insertCcUrl(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); logger.error("
yunze:ccurl:add
Pstr = " + Pstr + "
ip = " + ip + "
", e.toString()); @@ -91,7 +89,7 @@ public class YzCcUrlController extends MyBaseController { Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject(Pstr)); - return MyRetunSuccess(yzCcUrlService.updateCcUrl(Parammap), null); + return MyRetunSuccess(IYzCcUrlService.updateCcUrl(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); logger.error("
yunze:ccurl:update
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); @@ -114,7 +112,7 @@ public class YzCcUrlController extends MyBaseController { Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject(Pstr)); - Map Rmap = yzCcUrlService.DeleteCcUrl(Parammap); + Map Rmap = IYzCcUrlService.DeleteCcUrl(Parammap); boolean bool = (boolean) Rmap.get("bool"); String Msg = Rmap.get("Msg").toString(); if(bool){ diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/bulk/YzBulkBusinessController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/bulk/YzBulkBusinessController.java new file mode 100644 index 0000000..5496461 --- /dev/null +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/bulk/YzBulkBusinessController.java @@ -0,0 +1,62 @@ +package com.yunze.web.controller.yunze.bulk; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.core.domain.entity.SysUser; +import com.yunze.common.core.domain.model.LoginUser; +import com.yunze.common.utils.ServletUtils; +import com.yunze.common.utils.ip.IpUtils; +import com.yunze.common.utils.spring.SpringUtils; +import com.yunze.common.utils.yunze.AesEncryptUtil; +import com.yunze.framework.web.service.TokenService; +import com.yunze.system.service.yunze.bulk.IYzBulkBusinessService; +import com.yunze.web.core.config.MyBaseController; +import io.swagger.annotations.Api; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.HashMap; + +/** + * 批量业务受理 + * 2022-05-25 + */ +@Api("批量业务受理") +@RestController +@RequestMapping("/yunze/business") +public class YzBulkBusinessController extends MyBaseController { + + @Resource + private IYzBulkBusinessService IYzBulkBusinessService; + + /** + * 批量业务受理 列表查询 + */ + @PreAuthorize("@ss.hasPermi('yunze:batchBusiness:list')") + @PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"}) + public String SynFlow(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + String dept_id = currentUser.getDeptId().toString(); + if(!dept_id.equals("100")){ + Parammap.put("agent_id",dept_id); + } + return MyRetunSuccess(IYzBulkBusinessService.getList(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
system:batchBusiness:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("批量业务受理 操作失败!"); + } + +} diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/bulk/YzBulkBusinessDtailsController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/bulk/YzBulkBusinessDtailsController.java new file mode 100644 index 0000000..f33c812 --- /dev/null +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/bulk/YzBulkBusinessDtailsController.java @@ -0,0 +1,126 @@ +package com.yunze.web.controller.yunze.bulk; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.annotation.Log; +import com.yunze.common.core.domain.entity.SysUser; +import com.yunze.common.core.domain.model.LoginUser; +import com.yunze.common.enums.BusinessType; +import com.yunze.common.utils.ServletUtils; +import com.yunze.common.utils.ip.IpUtils; +import com.yunze.common.utils.spring.SpringUtils; +import com.yunze.common.utils.yunze.AesEncryptUtil; +import com.yunze.framework.web.service.TokenService; +import com.yunze.system.service.yunze.bulk.IYzBulkBusinessDtailsService; +import com.yunze.web.core.config.MyBaseController; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; + +/** + * 批量业务受理详情 + * 2022-05-25 + */ +@Api("批量业务受理详情") +@RestController +@RequestMapping("/yunze/businessDtails") +public class YzBulkBusinessDtailsController extends MyBaseController { + + @Autowired + private IYzBulkBusinessDtailsService IYzBulkBusinessDtailsService; + + + /** + * 批量业务受理详情 列表查询 + */ + @PreAuthorize("@ss.hasPermi('yunze:businessDetails:list')") + @PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"}) + public String SynFlow(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + return MyRetunSuccess(IYzBulkBusinessDtailsService.getList(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
system:businessDetails:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("批量业务受理详情 操作失败!"); + } + + + /** + * 状态查询列表 + */ + @PreAuthorize("@ss.hasPermi('yunze:businessDtails:success')") + @PostMapping(value = "/success", produces = {"application/json;charset=UTF-8"}) + public String successArr(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + return MyRetunSuccess(IYzBulkBusinessDtailsService.successArr(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
system:businessDetails:success
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("状态查询列表 操作失败!"); + } + + /** + * 导出 + * @return + */ + @Log(title = "状态查询导出", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('yunze:businessDtails:export')") + @PostMapping(value = "/export", produces = { "application/json;charset=utf-8" }) + public String exportData(@RequestBody String Pstr) + { + HashMap Parammap = new HashMap(); + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + return MyRetunSuccess(IYzBulkBusinessDtailsService.exportallorders(Parammap,currentUser),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:businessDtails:export
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("状态查询导出 操作失败!"); + } + + +} + + + + + + + + + + + + + + + + + diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzExecutionTaskController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/bulk/YzExecutionTaskController.java similarity index 97% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzExecutionTaskController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/bulk/YzExecutionTaskController.java index aecf609..7cf4c82 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzExecutionTaskController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/bulk/YzExecutionTaskController.java @@ -1,4 +1,4 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.bulk; import com.alibaba.fastjson.JSON; import com.yunze.common.core.domain.entity.SysUser; @@ -11,7 +11,7 @@ import com.yunze.common.utils.yunze.AesEncryptUtil; import com.yunze.common.utils.yunze.CsvToXlsxUtil; import com.yunze.common.utils.yunze.FileConverter; import com.yunze.framework.web.service.TokenService; -import com.yunze.system.service.yunze.IYzExecutionTaskService; +import com.yunze.system.service.yunze.bulk.IYzExecutionTaskService; import com.yunze.web.core.config.MyBaseController; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -163,6 +163,7 @@ public class YzExecutionTaskController extends MyBaseController logger.info("
" + " 公司 " + User.getDept().getDeptName() + " 用户名 " + User.getUserId() + " " + User.getUserName() + "
Pstr = " + Pstr + "
ip = " + ip + "
"); + CsvOrExcle(path,response); } } else { @@ -188,10 +189,16 @@ public class YzExecutionTaskController extends MyBaseController String filePath = file2.getCanonicalPath(); filePath = filePath.replaceAll("\\\\","/"); //xlsx file address - filePath += "/mnt/yunze/download/csv/"; //切割出下载的地址请求头 String Prefix = path.split("/")[1]; + if(Prefix.equals("getOriginal")){ + + }else{ + filePath += "/mnt/yunze/download/csv/"; + } + + path = path.substring(Prefix.length() + 2, path.length()); //拼接下载地址 path = filePath + path; diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzAgentAccountController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzAgentAccountController.java deleted file mode 100644 index c55e55f..0000000 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzAgentAccountController.java +++ /dev/null @@ -1,195 +0,0 @@ -package com.yunze.web.controller.yunze.card; - -import com.alibaba.fastjson.JSON; -import com.yunze.common.annotation.Log; -import com.yunze.common.core.domain.model.LoginUser; -import com.yunze.common.enums.BusinessType; -import com.yunze.common.utils.ServletUtils; -import com.yunze.common.utils.ip.IpUtils; -import com.yunze.common.utils.spring.SpringUtils; -import com.yunze.common.utils.yunze.AesEncryptUtil; -import com.yunze.framework.web.service.TokenService; -import com.yunze.system.service.yunze.card.IYzAgentAccountService; -import com.yunze.web.core.config.MyBaseController; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -/** - * API账号 管理 - */ -@RestController -@RequestMapping("/yunze/ApiAccount") -public class YzAgentAccountController extends MyBaseController { - - @Resource - private IYzAgentAccountService iYzAgentAccountService; - - /** - * 执行API账号查询 - */ - @PreAuthorize("@ss.hasPermi('yunze:apiAccount:list')") - @PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"}) - public String selList(@RequestBody String Pstr) { - HashMap Parammap = new HashMap(); - if (Pstr != null) { - Pstr = Pstr.replace("%2F", "/");//转义 / - } - try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); - Parammap.putAll(JSON.parseObject(Pstr)); - List agent_idArr = new ArrayList<>(); - LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); - String deptId = loginUser.getUser().getDeptId().toString(); - if(!deptId.equals("100")){ - if(Parammap.get("agent_id")!=null){ - List P_agent_id = (List) Parammap.get("agent_id"); - agent_idArr.addAll(P_agent_id); - }else{ - agent_idArr.add(Integer.parseInt(deptId)); - Parammap.put("agent_id",agent_idArr); - } - } - return MyRetunSuccess(iYzAgentAccountService.getList(Parammap), null); - } catch (Exception e) { - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
system:polling:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); - } - return Myerr("查询 API账号 操作失败!"); - } - - - - /** - * 新增 - */ - @Log(title = "API账号新增", businessType = BusinessType.INSERT) - @PreAuthorize("@ss.hasPermi('yunze:apiAccount:save')") - @PostMapping(value = "/save", produces = {"application/json;charset=UTF-8"}) - public String save(@RequestBody String Pstr) { - HashMap Parammap = new HashMap(); - if (Pstr != null) { - Pstr = Pstr.replace("%2F", "/");//转义 / - } - try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); - Parammap.putAll(JSON.parseObject(Pstr)); - return MyRetunSuccess(iYzAgentAccountService.save(Parammap), null); - } catch (Exception e) { - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
system:polling:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); - } - return Myerr("新增 API账号 操作失败!"); - } - - - - /** - * 修改 - */ - @Log(title = "API账号修改", businessType = BusinessType.UPDATE) - @PreAuthorize("@ss.hasPermi('yunze:apiAccount:upd')") - @PostMapping(value = "/upd", produces = {"application/json;charset=UTF-8"}) - public String upd(@RequestBody String Pstr) { - HashMap Parammap = new HashMap(); - if (Pstr != null) { - Pstr = Pstr.replace("%2F", "/");//转义 / - } - try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); - Parammap.putAll(JSON.parseObject(Pstr)); - LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); - String deptId = loginUser.getUser().getDeptId().toString(); - if(!deptId.equals("100")){ - String P_agent_id = Parammap.get("agent_id").toString(); - if(!P_agent_id.equals(deptId)){ - return Myerr("不允许修改非本企业数据信息!"); - } - } - return MyRetunSuccess(iYzAgentAccountService.upd(Parammap), null); - } catch (Exception e) { - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
system:polling:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); - } - return Myerr("修改 API账号 操作失败!"); - } - - - /** - * 获取 agent_id 下 appId - */ - @PreAuthorize("@ss.hasPermi('yunze:apiAccount:find')") - @PostMapping(value = "/IsExaAgentId", produces = {"application/json;charset=UTF-8"}) - public String IsExaAgentId(@RequestBody String Pstr) { - HashMap Parammap = new HashMap(); - if (Pstr != null) { - Pstr = Pstr.replace("%2F", "/");//转义 / - } - try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); - Parammap.putAll(JSON.parseObject(Pstr)); - return MyRetunSuccess(iYzAgentAccountService.is_exaAgentId(Parammap), null); - } catch (Exception e) { - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:apiAccount:find
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); - } - return Myerr("获取 agent_id 下 appId 操作失败!"); - } - - /** - * 删除 - */ - @Log(title = "API账号删除", businessType = BusinessType.DELETE) - @PreAuthorize("@ss.hasPermi('yunze:apiAccount:del')") - @PostMapping(value = "/del", produces = {"application/json;charset=UTF-8"}) - public String Del(@RequestBody String Pstr) { - HashMap Parammap = new HashMap(); - if (Pstr != null) { - Pstr = Pstr.replace("%2F", "/");//转义 / - } - try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); - Parammap.putAll(JSON.parseObject(Pstr)); - LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); - String deptId = loginUser.getUser().getDeptId().toString(); - if(!deptId.equals("100")){ - return Myerr("非总企业下用户不开放该功能!"); - } - boolean bool = iYzAgentAccountService.del(Parammap); - if(bool){ - return MyRetunSuccess("操作成功!", null); - }else{ - return Myerr("删除 操作失败!"); - } - } catch (Exception e) { - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:apiAccount:del
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); - } - return Myerr("删除 API账号 操作失败!"); - } - - - - - -} - - - - - - - - - - - - - diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzAgentPackageController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzAgentPackageController.java similarity index 69% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzAgentPackageController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzAgentPackageController.java index 32465ed..117e99d 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzAgentPackageController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzAgentPackageController.java @@ -1,9 +1,11 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.card; import com.alibaba.fastjson.JSON; +import com.yunze.common.annotation.Log; import com.yunze.common.core.controller.BaseController; import com.yunze.common.core.domain.entity.SysUser; import com.yunze.common.core.domain.model.LoginUser; +import com.yunze.common.enums.BusinessType; import com.yunze.common.utils.ServletUtils; import com.yunze.common.utils.ip.IpUtils; import com.yunze.common.utils.spring.SpringUtils; @@ -144,9 +146,57 @@ public class YzAgentPackageController extends MyBaseController */ + /** + * 导出 + * @return + */ + @Log(title = "客户资费导出", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('yunze:agentTariffGroup:export')") + @PostMapping(value = "/export", produces = { "application/json;charset=utf-8" }) + public String exportData(@RequestBody String Pstr) + { + HashMap Parammap = new HashMap(); + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + return MyRetunSuccess(agentPackageService.exportallorders(Parammap,currentUser),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:agentTariffGroup:export
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("客户资费导出 操作失败!"); + } + @Log(title = "企业资费计划导出", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('yunze:agentTariffGroup:export')") + @PostMapping(value = "/exportPacket", produces = { "application/json;charset=utf-8" }) + public String exportPacket(@RequestBody String Pstr) + { + HashMap Parammap = new HashMap(); + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + return MyRetunSuccess(agentPackageService.exportPacket(Parammap,currentUser),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
exportPacket
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("客户资费导出 操作失败!"); + } diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzAgentPacketController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzAgentPacketController.java similarity index 99% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzAgentPacketController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzAgentPacketController.java index a627faa..373b577 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzAgentPacketController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzAgentPacketController.java @@ -1,4 +1,4 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.card; import com.yunze.system.service.yunze.IYzAgentPacketService; import com.yunze.web.core.config.MyBaseController; diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzApplicationforRenewalController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzApplicationforRenewalController.java new file mode 100644 index 0000000..46d673c --- /dev/null +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzApplicationforRenewalController.java @@ -0,0 +1,247 @@ +package com.yunze.web.controller.yunze.card; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.annotation.Log; +import com.yunze.common.core.domain.entity.SysUser; +import com.yunze.common.core.domain.model.LoginUser; +import com.yunze.common.enums.BusinessType; +import com.yunze.common.mapper.yunze.YzUserMapper; +import com.yunze.common.utils.ServletUtils; +import com.yunze.common.utils.ip.IpUtils; +import com.yunze.common.utils.spring.SpringUtils; +import com.yunze.common.utils.yunze.AesEncryptUtil; +import com.yunze.framework.web.service.TokenService; +import com.yunze.system.service.yunze.card.IYzApplicationforRenewalService; +import com.yunze.web.core.config.MyBaseController; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 续费申请 管理 + */ +@RestController +@RequestMapping("/yunze/renewal") +public class YzApplicationforRenewalController extends MyBaseController { + + @Resource + private IYzApplicationforRenewalService iYzApplicationforRenewalService; + @Resource + private YzUserMapper yzUserMapper; + /** + * 续费申请 查询 + */ + @PreAuthorize("@ss.hasPermi('yunze:renewal:list')") + @PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"}) + public String selList(@RequestBody String Pstr) { + HashMap ParaMap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + ParaMap.putAll(JSON.parseObject(Pstr)); + List agent_idArr = new ArrayList<>(); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + String deptId = loginUser.getUser().getDeptId().toString(); + if(!deptId.equals("100")){ + if(ParaMap.get("agent_id")!=null){ + List P_agent_id = (List) ParaMap.get("agent_id"); + agent_idArr.addAll(P_agent_id); + }else{ + agent_idArr.add(Integer.parseInt(deptId)); + ParaMap.put("agent_id",agent_idArr); + } + } + return MyRetunSuccess(iYzApplicationforRenewalService.selMap(ParaMap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
system:renewal:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("查询 续费申请 操作失败!"); + } + + + /** + * 查询 企业账户账户金额信息 + */ + @PreAuthorize("@ss.hasPermi('yunze:renewal:list')") + @PostMapping(value = "/getDeptPrestore", produces = {"application/json;charset=UTF-8"}) + public String getDeptPrestore(@RequestBody String Pstr) { + HashMap ParaMap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + ParaMap.putAll(JSON.parseObject(Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + String deptId = loginUser.getUser().getDeptId().toString(); + ParaMap.put("dept_id",deptId); + Map rMap = yzUserMapper.findDeptAmount(ParaMap); + return MyRetunSuccess(rMap, null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
system:renewal:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("查询 企业账户账户金额信息 操作失败!"); + } + + + + + /** + * 新增 + */ + @Log(title = "新增续费申请", businessType = BusinessType.INSERT) + @PreAuthorize("@ss.hasPermi('yunze:renewal:add')") + @PostMapping(value = "/save", produces = {"application/json;charset=UTF-8"}) + public String save(@RequestBody String Pstr) { + HashMap ParaMap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + ParaMap.putAll(JSON.parseObject(Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser sysUser= loginUser.getUser(); + String deptId = sysUser.getDeptId().toString(); + ParaMap.put("dept_id",deptId); + ParaMap.put("login_dept_id",deptId); + return MyRetunSuccess(iYzApplicationforRenewalService.save(ParaMap,sysUser), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
system:polling:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("新增 续费申请 操作失败!"); + } + + + + /** + * 修改 + */ + @Log(title = "修改续费详情", businessType = BusinessType.UPDATE) + @PreAuthorize("@ss.hasPermi('yunze:renewal:upd')") + @PostMapping(value = "/upd", produces = {"application/json;charset=UTF-8"}) + public String upd(@RequestBody String Pstr) { + HashMap ParaMap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + ParaMap.putAll(JSON.parseObject(Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + String deptId = loginUser.getUser().getDeptId().toString(); + if(!deptId.equals("100")){ + String P_agent_id = ParaMap.get("agent_id").toString(); + if(!P_agent_id.equals(deptId)){ + return Myerr("不允许修改非本企业数据信息!"); + } + } + return MyRetunSuccess(iYzApplicationforRenewalService.upd(ParaMap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:renewal:upd
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("续费详情修改 操作失败!"); + } + + + + /** + * 查询单条 + */ + @PreAuthorize("@ss.hasPermi('yunze:renewal:find')") + @PostMapping(value = "/find", produces = {"application/json;charset=UTF-8"}) + public String find(@RequestBody String Pstr) { + HashMap ParaMap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + ParaMap.putAll(JSON.parseObject(Pstr)); + + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + List agent_id = new ArrayList<>(); + if (currentUser.getDeptId() != 100) { + if (ParaMap.get("agent_id") != null) { + List P_agent_id = (List) ParaMap.get("agent_id"); + agent_id.addAll(P_agent_id); + } else { + agent_id.add(Integer.parseInt(currentUser.getDeptId().toString())); + ParaMap.put("agent_id", agent_id); + } + } + return MyRetunSuccess(iYzApplicationforRenewalService.find(ParaMap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:renewal:find
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("查询续费详情 操作失败!"); + } + + + + /** + * 查询单条 续费资费计划下 iccid + */ + @PreAuthorize("@ss.hasPermi('yunze:renewal:find')") + @PostMapping(value = "/findIccid", produces = {"application/json;charset=UTF-8"}) + public String findIccid(@RequestBody String Pstr) { + HashMap ParaMap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + ParaMap.putAll(JSON.parseObject(Pstr)); + + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + List agent_id = new ArrayList<>(); + if (currentUser.getDeptId() != 100) { + if (ParaMap.get("agent_id") != null) { + List P_agent_id = (List) ParaMap.get("agent_id"); + agent_id.addAll(P_agent_id); + } else { + agent_id.add(Integer.parseInt(currentUser.getDeptId().toString())); + ParaMap.put("agent_id", agent_id); + } + } + return MyRetunSuccess(iYzApplicationforRenewalService.findIccid(ParaMap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
/findIccid
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("查询 续费资费计划下 iccid 操作失败!"); + } + + + +} + + + + + + + + + + + + + diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardApiOfferinginfoController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardApiOfferinginfoController.java new file mode 100644 index 0000000..1b8b9b0 --- /dev/null +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardApiOfferinginfoController.java @@ -0,0 +1,110 @@ +package com.yunze.web.controller.yunze.card; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.utils.ServletUtils; +import com.yunze.common.utils.ip.IpUtils; +import com.yunze.common.utils.yunze.AesEncryptUtil; +import com.yunze.system.service.yunze.IYzCardApiOfferinginfoService; +import com.yunze.web.core.config.MyBaseController; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; + +/** + * 上游套餐分类 + * 表名:yz_card_api_offeringinfo + * 2022-4-25 + */ +@Api("上游资费组管理") +@RestController +@RequestMapping("/yunze/info") +public class YzCardApiOfferinginfoController extends MyBaseController { + + @Autowired + private IYzCardApiOfferinginfoService IYzCardApiOfferinginfoService; + + /** + * 执行 上游资费组管理 + */ + @PreAuthorize("@ss.hasPermi('yunze:offeringinfolist:list')") + @PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"}) + public String SynFlow(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject(Pstr)); + return MyRetunSuccess(IYzCardApiOfferinginfoService.getList(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:offeringinfo:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr(" 上游资费组管理 操作失败!"); + } + + /** + * 删除ID + */ + @PreAuthorize("@ss.hasPermi('yunze:offeringinfo:delete')") + @PostMapping(value = "/delete", produces = {"application/json;charset=UTF-8"}) + public String Delete(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject(Pstr)); + boolean bool = IYzCardApiOfferinginfoService.deleteInfo(Parammap); + if(bool){ + return MyRetunSuccess("操作成功!",null); + }else{ + return Myerr("删除失败!"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:offeringinfo:delete
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr(" 删除ID 操作失败!"); + } + + + /** + * 修改 + */ + @PreAuthorize("@ss.hasPermi('yunze:offeringinfo:update')") + @PostMapping(value = "/update", produces = {"application/json;charset=UTF-8"}) + public String Update (@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject(Pstr)); + boolean bool = IYzCardApiOfferinginfoService.updateInfo(Parammap); + if(bool){ + return MyRetunSuccess("操作成功!",null); + }else{ + return Myerr("修改失败!"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:offeringinfo:update
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr(" 修改 操作失败!"); + } + + +} diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardApiOfferinginfolistController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardApiOfferinginfolistController.java new file mode 100644 index 0000000..1b0fd26 --- /dev/null +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardApiOfferinginfolistController.java @@ -0,0 +1,59 @@ +package com.yunze.web.controller.yunze.card; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.utils.ServletUtils; +import com.yunze.common.utils.ip.IpUtils; +import com.yunze.common.utils.yunze.AesEncryptUtil; +import com.yunze.system.service.yunze.IYzCardApiOfferinginfolistService; +import com.yunze.web.core.config.MyBaseController; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; + +/** + * 上游接口返回已订购资费信息 + * 表名:yz_card_api_offeringinfolist + * 2022-4-25 + */ +@Api("上游已订购套餐") +@RestController +@RequestMapping("/yunze/folist") +public class YzCardApiOfferinginfolistController extends MyBaseController { + + @Autowired + private IYzCardApiOfferinginfolistService IYzCardApiOfferinginfolistService; + + /** + * 执行 上游已订购套餐 + */ + @PreAuthorize("@ss.hasPermi('yunze:offeringinfolist:list')") + @PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"}) + public String SynFlow(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject(Pstr)); + return MyRetunSuccess(IYzCardApiOfferinginfolistService.Listfolist(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:offeringinfolist:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("上游已订购套餐 操作失败!"); + } + + + + + + +} diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardController.java similarity index 55% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardController.java index 94daf03..667783d 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardController.java @@ -1,4 +1,4 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.card; import com.alibaba.fastjson.JSON; import com.yunze.apiCommon.utils.InternalApiRequest; @@ -32,14 +32,14 @@ import java.util.Map; /** * 卡信息 - * 2021-06-05 + * 2021-06-05 + * * @author root */ @Api("卡信息") @RestController @RequestMapping("/yunze/card") -public class YzCardController extends MyBaseController -{ +public class YzCardController extends MyBaseController { @Resource private YzCardServiceImpl yzCardServiceImpl; @Autowired @@ -56,109 +56,95 @@ public class YzCardController extends MyBaseController * 卡板信息列表 */ @PreAuthorize("@ss.hasPermi('yunze:card:list')") - @PostMapping(value = "/list", produces = { "application/json;charset=UTF-8" }) - public String list(@RequestBody String Pstr) - { + @PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"}) + public String list(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject((String) Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser currentUser = loginUser.getUser(); List agent_id = new ArrayList<>(); - if(currentUser.getDeptId()!=100){ - if(Parammap.get("agent_id")!=null){ + if (currentUser.getDeptId() != 100) { + if (Parammap.get("agent_id") != null) { List P_agent_id = (List) Parammap.get("agent_id"); agent_id.addAll(P_agent_id); - }else{ + } else { agent_id.add(Integer.parseInt(currentUser.getDeptId().toString())); - Parammap.put("agent_id",agent_id); + Parammap.put("agent_id", agent_id); } } - return MyRetunSuccess(yzCardServiceImpl.selMap(Parammap),null); - }catch (Exception e){ + return MyRetunSuccess(yzCardServiceImpl.selMap(Parammap), null); + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:list
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("获取卡板信息列表 操作失败!"); } - - - /** * 获取 所属代理下 卡分组 */ @PreAuthorize("@ss.hasPermi('yunze:card:list')") - @PostMapping(value = "/getCardGrouping", produces = { "application/json;charset=UTF-8" }) - public String getCardGrouping(@RequestBody String Pstr) - { + @PostMapping(value = "/getCardGrouping", produces = {"application/json;charset=UTF-8"}) + public String getCardGrouping(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject((String) Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser currentUser = loginUser.getUser(); List agent_id = new ArrayList<>(); - String StrAgent_id = currentUser.getDeptId().toString()+","; - if(Parammap.get("agent_id")!=null){ + String StrAgent_id = currentUser.getDeptId().toString() + ","; + if (Parammap.get("agent_id") != null) { List P_agent_id = (List) Parammap.get("agent_id"); for (int i = 0; i < P_agent_id.size(); i++) { - StrAgent_id += ""+P_agent_id.get(i)+","; + StrAgent_id += "" + P_agent_id.get(i) + ","; } } - if(currentUser.getDeptId()==100){ - if(Parammap.get("agent_id")!=null){ - Parammap.put("agent_id",StrAgent_id); + if (currentUser.getDeptId() == 100) { + if (Parammap.get("agent_id") != null) { + Parammap.put("agent_id", StrAgent_id); } - }else{ - Parammap.put("agent_id",StrAgent_id); + } else { + Parammap.put("agent_id", StrAgent_id); } - return MyRetunSuccess(yzCardServiceImpl.getCardGrouping(Parammap),null); - }catch (Exception e){ + return MyRetunSuccess(yzCardServiceImpl.getCardGrouping(Parammap), null); + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
/yunze/card/getCardGrouping
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
/yunze/card/getCardGrouping
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("获取 所属代理下 卡分组 操作失败!"); } - - - - - - - - /** * 查询卡板详情 */ @PreAuthorize("@ss.hasPermi('yunze:card:find')") - @PostMapping(value = "/find", produces = { "application/json;charset=utf-8" })// - public String find(@RequestBody String Pstr) - { + @PostMapping(value = "/find", produces = {"application/json;charset=utf-8"})// + public String find(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject((String) Pstr)); - return MyRetunSuccess(yzCardServiceImpl.find(Parammap),null); - }catch (Exception e){ + return MyRetunSuccess(yzCardServiceImpl.find(Parammap), null); + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:find
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:find
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("查询卡板详情 操作失败!"); } @@ -166,35 +152,34 @@ public class YzCardController extends MyBaseController /** * 导入 + * * @param file * @param updateSupport * @return */ @Log(title = "卡列表", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('yunze:card:import')") - @PostMapping(value = "/importData", produces = { "application/json;charset=utf-8" }) - public AjaxResult importData(MultipartFile file, boolean updateSupport) - { + @PostMapping(value = "/importData", produces = {"application/json;charset=utf-8"}) + public AjaxResult importData(MultipartFile file, boolean updateSupport) { try { LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - return AjaxResult.success(yzCardServiceImpl.uploadCard(file,updateSupport,User)); - }catch (Exception e){ + return AjaxResult.success(yzCardServiceImpl.uploadCard(file, updateSupport, User)); + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:import
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:import
ip = " + ip + "
", e.getCause().toString()); } return AjaxResult.error("导入卡列表 操作失败!"); } - /** * 下载导入模板 + * * @return */ @GetMapping("/importTemplate") - public AjaxResult importTemplate() - { + public AjaxResult importTemplate() { ExcelUtil util = new ExcelUtil(YzCard.class); return util.importTemplateExcel("卡列表数据"); } @@ -202,41 +187,38 @@ public class YzCardController extends MyBaseController /** * 连接管理获取部门名称 + * * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:list')") - @PostMapping(value = "/getDeptName", produces = { "application/json;charset=utf-8" }) - public String getDeptName() - { + @PostMapping(value = "/getDeptName", produces = {"application/json;charset=utf-8"}) + public String getDeptName() { try { - return MyRetunSuccess(yzCardServiceImpl.getDeptName(),null); - }catch (Exception e){ + return MyRetunSuccess(yzCardServiceImpl.getDeptName(), null); + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:list " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:list " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("连接管理获取部门名称 操作失败!"); } - - - /** * 导出 + * * @return */ @Log(title = "卡列表", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('yunze:card:exportData')") - @PostMapping(value = "/exportData", produces = { "application/json;charset=utf-8" }) - public String exportData(@RequestBody String Pstr) - { + @PostMapping(value = "/exportData", produces = {"application/json;charset=utf-8"}) + public String exportData(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject((String) Pstr)); @@ -244,459 +226,456 @@ public class YzCardController extends MyBaseController SysUser currentUser = loginUser.getUser(); - return MyRetunSuccess(yzCardServiceImpl.exportData(Parammap,currentUser),null); - }catch (Exception e){ + return MyRetunSuccess(yzCardServiceImpl.exportData(Parammap, currentUser), null); + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:exportData
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:exportData
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("导出卡列表 操作失败!"); } - /** * 查询 企业下所属人员 + * * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:findDeptUser')") - @PostMapping(value = "/findDeptUser", produces = { "application/json;charset=utf-8" }) - public String findDeptUser(@RequestBody String Pstr) - { + @PostMapping(value = "/findDeptUser", produces = {"application/json;charset=utf-8"}) + public String findDeptUser(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); String dept_id = Parammap.get("dept_id").toString(); - if(dept_id!=null && dept_id!=""){ - return MyRetunSuccess(userService.findDeptUser(Parammap),null); - }else{ + if (dept_id != null && dept_id != "") { + return MyRetunSuccess(userService.findDeptUser(Parammap), null); + } else { return Myerr("参数不全请核对后重试!"); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:findDeptUser " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:findDeptUser " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("查询 企业下所属人员 操作失败!"); } - /** * 划分卡信息 + * * @return */ @Log(title = "划卡操作", businessType = BusinessType.UPDATE) @PreAuthorize("@ss.hasPermi('yunze:card:divide')") - @PostMapping(value = "/divide", produces = { "application/json;charset=utf-8" }) - public String divide(@RequestBody String Pstr) - { + @PostMapping(value = "/divide", produces = {"application/json;charset=utf-8"}) + public String divide(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); Object set_dept_id = Parammap.get("set_dept_id"); Object set_user_id = Parammap.get("set_user_id"); Object set_dept_name = Parammap.get("set_dept_name"); Object set_user_name = Parammap.get("set_user_name"); - if(set_dept_id!=null && set_dept_id.toString()!="" && set_user_id!=null && set_user_id.toString()!="" - && set_dept_name!=null && set_dept_name.toString()!=""&& set_user_name!=null && set_user_name.toString()!=""){ + if (set_dept_id != null && set_dept_id.toString() != "" && set_user_id != null && set_user_id.toString() != "" + && set_dept_name != null && set_dept_name.toString() != "" && set_user_name != null && set_user_name.toString() != "") { LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser currentUser = loginUser.getUser(); String agent_id = currentUser.getDeptId().toString(); // if(!set_dept_id.equals(agent_id)){ //权限 管理 操作必须传入当前操作人 id List agent_idArr = new ArrayList<>(); - if(currentUser.getDeptId()!=100){ - if(Parammap.get("agent_id")!=null){ + if (currentUser.getDeptId() != 100) { + if (Parammap.get("agent_id") != null) { List P_agent_id = (List) Parammap.get("agent_id"); agent_idArr.addAll(P_agent_id); - }else{ + } else { agent_idArr.add(Integer.parseInt(currentUser.getDeptId().toString())); - Parammap.put("agent_id",agent_idArr); + Parammap.put("agent_id", agent_idArr); } } - Parammap.put("TaskAgent_id",agent_id); - return MyRetunSuccess(yzCardServiceImpl.dividCard(Parammap),null); + Parammap.put("TaskAgent_id", agent_id); + return MyRetunSuccess(yzCardServiceImpl.dividCard(Parammap), null); /*}else{ return Myerr("不能操作!"); }*/ - }else{ + } else { return Myerr("参数不全请核对后重试!"); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:divide " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:divide " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("划分卡信息 操作失败!"); } - /** * 同步用量 + * * @param Pstr * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:SynFlow')") - @PostMapping(value = "/SynFlow", produces = { "application/json;charset=utf-8" }) - public String SynFlow(@RequestBody String Pstr) - { + @PostMapping(value = "/SynFlow", produces = {"application/json;charset=utf-8"}) + public String SynFlow(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject((String) Pstr)); - Map Route = yzCardServiceImpl.findRoute(Parammap); - if(Route!=null ){ + Map Route = yzCardServiceImpl.findRoute(Parammap); + if (Route != null) { String cd_status = Route.get("cd_status").toString(); - if(cd_status!=null && cd_status!="" && cd_status.equals("1")){ + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { - Map Rmap = internalApiRequest.queryFlow(Parammap,Route); - String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; - if(code.equals("200")){ + Map Rmap = internalApiRequest.queryFlow(Parammap, Route); + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { //获取 卡用量 开卡日期 更新 card info - if(Rmap.get("Use")!=null && Rmap.get("Use")!="" && Rmap.get("Use").toString().trim().length()>0){ + if (Rmap.get("Use") != null && Rmap.get("Use") != "" && Rmap.get("Use").toString().trim().length() > 0) { Double Use = Double.parseDouble(Rmap.get("Use").toString()); - if(Use>=0){ + if (Use >= 0) { try { - Map RMap = cardFlowSyn.CalculationFlow(Parammap.get("iccid").toString(),Use); - return MyRetunSuccess(RMap,"已成功同步用量!"); - }catch (Exception e){ - return Myerr("用量内部计算错误!"+e.getMessage().toString()); + Map RMap = cardFlowSyn.CalculationFlow(Parammap.get("iccid").toString(), Use); + return MyRetunSuccess(RMap, "已成功同步用量!"); + } catch (Exception e) { + return Myerr("用量内部计算错误!" + e.getMessage().toString()); } - }else{ + } else { return Myerr("接口超频返回暂无数据返回,请稍后重试!"); } } - }else{ - return Myerr("网络繁忙稍后重试!"+Rmap.get("Message").toString()); + } else { + return Myerr("网络繁忙稍后重试!" + Rmap.get("Message").toString()); } - }else{ - String statusVal = cd_status.equals("2")?"已停用":cd_status.equals("3")?"已删除":"状态未知"; - return Myerr("同步用量 操作失败!"+" 通道 ["+statusVal+"]"); + } else { + String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知"; + return Myerr("同步用量 操作失败!" + " 通道 [" + statusVal + "]"); } - }else{ - return Myerr(" iccid ["+Parammap.get("iccid")+"] 未划分 API通道 !请划分通道后重试!"); + } else { + return Myerr(" iccid [" + Parammap.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:SynFlow " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:SynFlow " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("同步用量 操作失败!"); } - /** * 同步卡状态 + * * @param Pstr * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:SynStatus')") - @PostMapping(value = "/SynStatus", produces = { "application/json;charset=utf-8" }) - public String SynStatus(@RequestBody String Pstr) - { + @PostMapping(value = "/SynStatus", produces = {"application/json;charset=utf-8"}) + public String SynStatus(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject((String) Pstr)); - Map Route = yzCardServiceImpl.findRoute(Parammap); - if(Route!=null ){ + Map Route = yzCardServiceImpl.findRoute(Parammap); + if (Route != null) { String cd_status = Route.get("cd_status").toString(); - if(cd_status!=null && cd_status!="" && cd_status.equals("1")){ - Map Rmap = internalApiRequest.queryCardStatus(Parammap,Route); + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { + Map Rmap = internalApiRequest.queryCardStatus(Parammap, Route); - String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; - if(code.equals("200")){ + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { //获取 卡状态 开卡日期 更新 card info - if(Rmap.get("statusCode")!=null && Rmap.get("statusCode")!="" && Rmap.get("statusCode").toString().trim().length()>0){ + if (Rmap.get("statusCode") != null && Rmap.get("statusCode") != "" && Rmap.get("statusCode").toString().trim().length() > 0) { String statusCode = Rmap.get("statusCode").toString().trim(); - if(!statusCode.equals("0")){ - Map Upd_Map = new HashMap<>(); - Upd_Map.put("status_id",statusCode); - Upd_Map.put("status_ShowId",getShowStatIdArr.GetShowStatId(statusCode)); - Upd_Map.put("iccid",Parammap.get("iccid").toString()); + if (!statusCode.equals("0")) { + Map Upd_Map = new HashMap<>(); + Upd_Map.put("status_id", statusCode); + Upd_Map.put("status_ShowId", getShowStatIdArr.GetShowStatId(statusCode)); + Upd_Map.put("iccid", Parammap.get("iccid").toString()); try { boolean bool = yzCardServiceImpl.updStatusId(Upd_Map);//变更卡状态 - if(bool){ - return MyRetunSuccess("","已成功同步卡状态!"); - }else{ + if (bool) { + return MyRetunSuccess("", "已成功同步卡状态!"); + } else { return Myerr("保存状态操作失败:False!"); } - }catch (Exception e){ - return Myerr("DB保存状态操作失败!"+e.getMessage().toString()); + } catch (Exception e) { + return Myerr("DB保存状态操作失败!" + e.getMessage().toString()); } - }else{ + } else { return Myerr("接口超频返回暂无数据返回,请稍后重试!"); } } - }else{ - return Myerr("网络繁忙稍后重试!"+Rmap.get("Message").toString()); + } else { + return Myerr("网络繁忙稍后重试!" + Rmap.get("Message").toString()); } - }else{ - String statusVal = cd_status.equals("2")?"已停用":cd_status.equals("3")?"已删除":"状态未知"; - return Myerr("同步卡状态 操作失败!"+" 通道 ["+statusVal+"]"); + } else { + String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知"; + return Myerr("同步卡状态 操作失败!" + " 通道 [" + statusVal + "]"); } - }else{ - return Myerr(" iccid ["+Parammap.get("iccid")+"] 未划分 API通道 !请划分通道后重试!"); + } else { + return Myerr(" iccid [" + Parammap.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:SynStatus " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:SynStatus " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("同步卡状态 操作失败!"); } - - /** * 同步 激活时间 + * * @param Pstr * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:SynActivateDate')") - @PostMapping(value = "/SynActivateDate", produces = { "application/json;charset=utf-8" }) - public String SynActivateDate(@RequestBody String Pstr) - { + @PostMapping(value = "/SynActivateDate", produces = {"application/json;charset=utf-8"}) + public String SynActivateDate(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject((String) Pstr)); - Map Route = yzCardServiceImpl.findRoute(Parammap); - if(Route!=null ){ + Map Route = yzCardServiceImpl.findRoute(Parammap); + String opType = Parammap.get("opType").toString();// 更新激活时间 还是 开卡时间 + if (Route != null) { String cd_status = Route.get("cd_status").toString(); - if(cd_status!=null && cd_status!="" && cd_status.equals("1")){ - Map Rmap = internalApiRequest.queryCardActiveTime(Parammap,Route); - String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; - if(code.equals("200")){ + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { + Map Rmap = internalApiRequest.queryCardActiveTime(Parammap, Route); + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { //获取 激活时间 - if(Rmap.get("activateDate")!=null && Rmap.get("activateDate")!="" && Rmap.get("activateDate").toString().trim().length()>0){ - String activateDate = Rmap.get("activateDate").toString().trim(); - activateDate = activateDate.length()>10?activateDate.substring(0,10):activateDate; - Map Upd_Map = new HashMap<>(); - Upd_Map.put("activate_date",activateDate); - Upd_Map.put("open_date",null); - Upd_Map.put("iccid",Parammap.get("iccid").toString()); - try { - boolean bool = yzCardServiceImpl.updActivate(Upd_Map);//变更卡状态 - if(bool){ - return MyRetunSuccess("","已成功同步激活时间!"); - }else{ - return Myerr("保存激活时间操作失败:False!"); - } - }catch (Exception e){ - return Myerr("DB保存状态操作失败!"+e.getMessage().toString()); + if (Rmap.get("activateDate") != null && Rmap.get("activateDate") != "" && Rmap.get("activateDate").toString().trim().length() > 0 || + Rmap.get("openDate") != null && Rmap.get("openDate") != "" && Rmap.get("openDate").toString().trim().length() > 0) { + Object activateDate_obj = Rmap.get("activateDate") != null && Rmap.get("activateDate") != "" && Rmap.get("activateDate").toString().trim().length() > 0 ? + Rmap.get("activateDate").toString().trim() : ""; + String activateDate = activateDate_obj.toString().trim(); + activateDate = activateDate.length() > 10 ? activateDate.substring(0, 10) : activateDate; + Object openDate = Rmap.get("openDate") != null && Rmap.get("openDate") != "" && Rmap.get("openDate").toString().trim().length() > 0 ? + Rmap.get("openDate").toString().trim() : null; + Map Upd_Map = new HashMap<>(); + if (activateDate != null && activateDate.length() > 0 && opType.equals("activate")) { + Upd_Map.put("activate_date", activateDate); + } + if (openDate != null) { + Upd_Map.put("open_date", openDate); + } + Upd_Map.put("iccid", Parammap.get("iccid").toString()); + try { + boolean bool = yzCardServiceImpl.updActivate(Upd_Map);//变更 激活时间 和 开卡日期 + if (bool) { + return MyRetunSuccess("", "已成功同步激活时间!"); + } else { + return Myerr("保存激活时间操作失败:False!"); } - }else{ + } catch (Exception e) { + return Myerr("DB保存状态操作失败!" + e.getMessage().toString()); + } + } else { System.out.println(Rmap); return Myerr("上游接口返回数据操作失败,稍后重试!"); } - }else{ - return Myerr("网络繁忙稍后重试!"+Rmap.get("Message").toString()); + } else { + return Myerr("网络繁忙稍后重试!" + Rmap.get("Message").toString()); } - }else{ - String statusVal = cd_status.equals("2")?"已停用":cd_status.equals("3")?"已删除":"状态未知"; - return Myerr("同步激活时间 操作失败!"+" 通道 ["+statusVal+"]"); + } else { + String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知"; + return Myerr("同步激活时间 操作失败!" + " 通道 [" + statusVal + "]"); } - }else{ - return Myerr(" iccid ["+Parammap.get("iccid")+"] 未划分 API通道 !请划分通道后重试!"); + } else { + return Myerr(" iccid [" + Parammap.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
SynActivateDate " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
SynActivateDate " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("同步激活时间 操作失败!"); } - - - /** * 查询在线信息 + * * @param Pstr * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:queryOnlineStatus')") - @PostMapping(value = "/queryOnlineStatus", produces = { "application/json;charset=utf-8" }) - public String queryOnlineStatus(@RequestBody String Pstr) - { + @PostMapping(value = "/queryOnlineStatus", produces = {"application/json;charset=utf-8"}) + public String queryOnlineStatus(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject((String) Pstr)); - Map Route = yzCardServiceImpl.findRoute(Parammap); - if(Route!=null ){ + Map Route = yzCardServiceImpl.findRoute(Parammap); + if (Route != null) { String cd_status = Route.get("cd_status").toString(); - if(cd_status!=null && cd_status!="" && cd_status.equals("1")){ - Map Rmap = internalApiRequest.queryOnlineStatus(Parammap,Route); - String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; - if(code.equals("200")){ - return MyRetunSuccess(Rmap,"查询在线信息成功!"); - }else{ + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { + Map Rmap = internalApiRequest.queryOnlineStatus(Parammap, Route); + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { + return MyRetunSuccess(Rmap, "查询在线信息成功!"); + } else { return Myerr("暂未查询到在线信息!"); } - }else{ - String statusVal = cd_status.equals("2")?"已停用":cd_status.equals("3")?"已删除":"状态未知"; - return Myerr("查询在线信息 操作失败!"+" 通道 ["+statusVal+"]"); + } else { + String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知"; + return Myerr("查询在线信息 操作失败!" + " 通道 [" + statusVal + "]"); } - }else{ - return Myerr(" iccid ["+Parammap.get("iccid")+"] 未划分 API通道 !请划分通道后重试!"); + } else { + return Myerr(" iccid [" + Parammap.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:queryOnlineStatus " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:queryOnlineStatus " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("查询在线信息 操作失败!"); } - /** * 机卡重绑 + * * @param Pstr * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:CardBinding')") - @PostMapping(value = "/CardBinding", produces = { "application/json;charset=utf-8" }) - public String CardBinding(@RequestBody String Pstr) - { + @PostMapping(value = "/CardBinding", produces = {"application/json;charset=utf-8"}) + public String CardBinding(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject((String) Pstr)); - Map Route = yzCardServiceImpl.findRoute(Parammap); - if(Route!=null ){ + Map Route = yzCardServiceImpl.findRoute(Parammap); + if (Route != null) { String cd_status = Route.get("cd_status").toString(); - if(cd_status!=null && cd_status!="" && cd_status.equals("1")){ - Map Rmap = internalApiRequest.unbundling(Parammap,Route); + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { + Map Rmap = internalApiRequest.unbundling(Parammap, Route); String code = Rmap.get("code").toString(); - if(code.equals("200")){ - return MyRetunSuccess(Rmap.get("Message"),"操作完成!"); - }else{ + if (code.equals("200")) { + return MyRetunSuccess(Rmap.get("Message"), "操作完成!"); + } else { return Myerr(Rmap.get("Message").toString()); } - }else{ - String statusVal = cd_status.equals("2")?"已停用":cd_status.equals("3")?"已删除":"状态未知"; - return Myerr("机卡重绑 操作失败!"+" 通道 ["+statusVal+"]"); + } else { + String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知"; + return Myerr("机卡重绑 操作失败!" + " 通道 [" + statusVal + "]"); } - }else{ - return Myerr(" iccid ["+Parammap.get("iccid")+"] 未划分 API通道 !请划分通道后重试!"); + } else { + return Myerr(" iccid [" + Parammap.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:CardBinding " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:CardBinding " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("机卡重绑 操作失败!"); } - /** * 连接管理设置 + * * @param file * @return */ @Log(title = "连接管理设置", businessType = BusinessType.UPDATE) @PreAuthorize("@ss.hasPermi('yunze:card:importSet')") - @PostMapping(value = "/importSet", produces = { "application/json;charset=utf-8" }) - public AjaxResult importSet(MultipartFile file, @RequestParam Map map) - { + @PostMapping(value = "/importSet", produces = {"application/json;charset=utf-8"}) + public AjaxResult importSet(MultipartFile file, @RequestParam Map map) { String Pstr = map.get("Pstr").toString(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } HashMap Parammap = new HashMap(); try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); - Parammap.put("agent_id",User.getDeptId()); - return AjaxResult.success(yzCardServiceImpl.importSet(file,Parammap)); - }catch (Exception e){ + Parammap.put("User", User); + Parammap.put("agent_id", User.getDeptId()); + return AjaxResult.success(yzCardServiceImpl.importSet(file, Parammap)); + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:import
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:import
ip = " + ip + "
", e.getCause().toString()); } return AjaxResult.error("连接管理设置 操作失败!"); } - /** * 特殊操作查询IMEI + * * @param file * @return */ @Log(title = "特殊操作查询IMEI", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('yunze:card:importSelImei')") - @PostMapping(value = "/importSelImei", produces = { "application/json;charset=utf-8" }) - public AjaxResult importSelImei(MultipartFile file) - { + @PostMapping(value = "/importSelImei", produces = {"application/json;charset=utf-8"}) + public AjaxResult importSelImei(MultipartFile file) { HashMap Parammap = new HashMap(); try { LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); - Parammap.put("agent_id",User.getDeptId()); - return AjaxResult.success(yzCardServiceImpl.importSelImei(file,Parammap)); - }catch (Exception e){ + Parammap.put("User", User); + Parammap.put("agent_id", User.getDeptId()); + return AjaxResult.success(yzCardServiceImpl.importSelImei(file, Parammap)); + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:importSelImei
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:importSelImei
ip = " + ip + "
", e.getCause().toString()); } return AjaxResult.error("特殊操作查询IMEI 操作失败!"); } - /** * 特殊操作 变更卡分组、备注 + * * @param file * @return */ @Log(title = "特殊操作变更卡分组、备注", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('yunze:card:importSetCardInfo')") - @PostMapping(value = "/importSetCardInfo", produces = { "application/json;charset=utf-8" }) - public AjaxResult importSetCardInfo(MultipartFile file) - { + @PostMapping(value = "/importSetCardInfo", produces = {"application/json;charset=utf-8"}) + public AjaxResult importSetCardInfo(MultipartFile file) { HashMap Parammap = new HashMap(); try { LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); - Parammap.put("agent_id",User.getDeptId()); - return AjaxResult.success(yzCardServiceImpl.importSetCardInfo(file,Parammap)); - }catch (Exception e){ + Parammap.put("User", User); + Parammap.put("agent_id", User.getDeptId()); + return AjaxResult.success(yzCardServiceImpl.importSetCardInfo(file, Parammap)); + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:importSetCardInfo
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:importSetCardInfo
ip = " + ip + "
", e.getCause().toString()); } return AjaxResult.error("特殊操作 变更卡分组、备注 操作失败!"); } @@ -704,84 +683,83 @@ public class YzCardController extends MyBaseController /** * 导入查询、卡号类别 + * * @param file * @return */ @Log(title = "卡号导入查询", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('yunze:card:ImportQuery')") - @PostMapping(value = "/cardNumber", produces = { "application/json;charset=utf-8" }) - public AjaxResult CardNumberImport(MultipartFile file, @RequestParam Map map) - { + @PostMapping(value = "/cardNumber", produces = {"application/json;charset=utf-8"}) + public AjaxResult CardNumberImport(MultipartFile file, @RequestParam Map map) { String Pstr = map.get("Pstr").toString(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } HashMap Parammap = new HashMap(); try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); + Parammap.put("User", User); List agent_id = new ArrayList<>(); - if(User.getDeptId()!=100){ - if(Parammap.get("agent_id")!=null){ + if (User.getDeptId() != 100) { + if (Parammap.get("agent_id") != null) { List P_agent_id = (List) Parammap.get("agent_id"); agent_id.addAll(P_agent_id); - }else{ + } else { agent_id.add(Integer.parseInt(User.getDeptId().toString())); - Parammap.put("agent_id",agent_id); + Parammap.put("agent_id", agent_id); } } try { - return AjaxResult.success(AesEncryptUtil.encrypt(JSON.toJSONString(yzCardServiceImpl.CardNumberImport(file,Parammap)))); - }catch (Exception e){ + return AjaxResult.success(AesEncryptUtil.encrypt(JSON.toJSONString(yzCardServiceImpl.CardNumberImport(file, Parammap)))); + } catch (Exception e) { return AjaxResult.error(AesEncryptUtil.encrypt(JSON.toJSONString("返回数据加密操作失败"))); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:ImportQuery
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:ImportQuery
ip = " + ip + "
", e.getCause().toString()); } return AjaxResult.error("卡号导入查询 操作失败!"); } - - /** * 批量停复机、断开网 + * * @param file * @return */ @Log(title = "批量停复机、断开网 ", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('yunze:card:ApiUpdBatch')") - @PostMapping(value = "/status", produces = { "application/json;charset=utf-8" }) - public AjaxResult importSelImei(MultipartFile file,@RequestParam Map map) - { + @PostMapping(value = "/status", produces = {"application/json;charset=utf-8"}) + public AjaxResult importSelImei(MultipartFile file, @RequestParam Map map) { String Pstr = map.get("Pstr").toString(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } HashMap Parammap = new HashMap(); try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); - Parammap.put("agent_id",User.getDeptId()); + Parammap.put("User", User); + Parammap.put("agent_id", User.getDeptId()); - return AjaxResult.success(yzCardServiceImpl.status(file,Parammap)); - }catch (Exception e){ + return AjaxResult.success(yzCardServiceImpl.status(file, Parammap)); + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:ApiUpdBatch
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:ApiUpdBatch
ip = " + ip + "
", e.getCause().toString()); } return AjaxResult.error("批量停复机、断开网 操作失败!"); } - /**修改 备注 分组*/ - + /** + * 修改 备注 分组 + */ @PreAuthorize("@ss.hasPermi('yunze:card:importSetCardInfo')") @PostMapping(value = "/updatefill", produces = {"application/json;charset=UTF-8"}) public String Update(@RequestBody String Pstr) { @@ -796,7 +774,7 @@ public class YzCardController extends MyBaseController return MyRetunSuccess(yzCardServiceImpl.UpdateFill(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:updatefill
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + logger.error("
yunze:card:importSetCardInfo
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("修改 备注 分组 操作失败!"); } @@ -804,7 +782,9 @@ public class YzCardController extends MyBaseController /** * 下面是 操作 * */ - /**停机*/ + /** + * 停机 + */ @PreAuthorize("@ss.hasPermi('yunze:card:Stopped')") @PostMapping(value = "/stopped", produces = {"application/json;charset=UTF-8"}) public String StoppedArr(@RequestBody String Pstr) { @@ -817,7 +797,7 @@ public class YzCardController extends MyBaseController Parammap.putAll(JSON.parseObject(Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); + Parammap.put("User", User); return MyRetunSuccess(yzCardServiceImpl.stoppedarr(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); @@ -826,7 +806,9 @@ public class YzCardController extends MyBaseController return Myerr("批量 【停机】 操作失败!"); } - /**复机*/ + /** + * 复机 + */ @PreAuthorize("@ss.hasPermi('yunze:card:MachineArr')") @PostMapping(value = "/machine", produces = {"application/json;charset=UTF-8"}) public String MachineArr(@RequestBody String Pstr) { @@ -839,7 +821,7 @@ public class YzCardController extends MyBaseController Parammap.putAll(JSON.parseObject(Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); + Parammap.put("User", User); return MyRetunSuccess(yzCardServiceImpl.machinearr(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); @@ -848,7 +830,9 @@ public class YzCardController extends MyBaseController return Myerr("批量 【复机】 操作失败!"); } - /**断网*/ + /** + * 断网 + */ @PreAuthorize("@ss.hasPermi('yunze:card:DisconnectNetworkArr')") @PostMapping(value = "/disconnectNetwork", produces = {"application/json;charset=UTF-8"}) public String DisconnectNetworkArr(@RequestBody String Pstr) { @@ -861,7 +845,7 @@ public class YzCardController extends MyBaseController Parammap.putAll(JSON.parseObject(Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); + Parammap.put("User", User); return MyRetunSuccess(yzCardServiceImpl.disconnectNetworkarr(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); @@ -870,7 +854,9 @@ public class YzCardController extends MyBaseController return Myerr("批量 【断网】 操作失败!"); } - /**开网*/ + /** + * 开网 + */ @PreAuthorize("@ss.hasPermi('yunze:card:OpenNetworkArr')") @PostMapping(value = "/openNetwork", produces = {"application/json;charset=UTF-8"}) public String OpenNetworkArr(@RequestBody String Pstr) { @@ -883,7 +869,7 @@ public class YzCardController extends MyBaseController Parammap.putAll(JSON.parseObject(Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); + Parammap.put("User", User); return MyRetunSuccess(yzCardServiceImpl.openNetworkarr(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); @@ -892,7 +878,9 @@ public class YzCardController extends MyBaseController return Myerr("批量 【开网】 操作失败!"); } - /**同步流量*/ + /** + * 同步流量 + */ @PreAuthorize("@ss.hasPermi('yunze:card:ConsumptionArr')") @PostMapping(value = "/consumption", produces = {"application/json;charset=UTF-8"}) public String ConsumptionArr(@RequestBody String Pstr) { @@ -905,7 +893,7 @@ public class YzCardController extends MyBaseController Parammap.putAll(JSON.parseObject(Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); + Parammap.put("User", User); return MyRetunSuccess(yzCardServiceImpl.consumptionarr(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); @@ -914,7 +902,9 @@ public class YzCardController extends MyBaseController return Myerr("批量 【同步流量】 操作失败!"); } - /**同步状态*/ + /** + * 同步状态 + */ @PreAuthorize("@ss.hasPermi('yunze:card:PublicMethodArr')") @PostMapping(value = "/publicmethod", produces = {"application/json;charset=UTF-8"}) public String PublicMethodArr(@RequestBody String Pstr) { @@ -927,7 +917,7 @@ public class YzCardController extends MyBaseController Parammap.putAll(JSON.parseObject(Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); + Parammap.put("User", User); return MyRetunSuccess(yzCardServiceImpl.publicmethodarr(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); @@ -936,7 +926,9 @@ public class YzCardController extends MyBaseController return Myerr("批量 【同步状态】 操作失败!"); } - /**同步状态和用量*/ + /** + * 同步状态和用量 + */ @PreAuthorize("@ss.hasPermi('yunze:card:ConsumptionAndStateArr')") @PostMapping(value = "/consumptionandstate", produces = {"application/json;charset=UTF-8"}) public String ConsumptionAndStateArr(@RequestBody String Pstr) { @@ -949,7 +941,7 @@ public class YzCardController extends MyBaseController Parammap.putAll(JSON.parseObject(Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); + Parammap.put("User", User); return MyRetunSuccess(yzCardServiceImpl.consumptionandstatearr(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); @@ -961,6 +953,7 @@ public class YzCardController extends MyBaseController /** * 获取iccid + * * @param Pstr * @return */ @@ -979,18 +972,18 @@ public class YzCardController extends MyBaseController LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser currentUser = loginUser.getUser(); List agent_id = new ArrayList<>(); - if(currentUser.getDeptId()!=100){ - if(Parammap.get("agent_id")!=null){ + if (currentUser.getDeptId() != 100) { + if (Parammap.get("agent_id") != null) { List P_agent_id = (List) Parammap.get("agent_id"); agent_id.addAll(P_agent_id); - }else{ + } else { agent_id.add(Integer.parseInt(currentUser.getDeptId().toString())); - Parammap.put("agent_id",agent_id); + Parammap.put("agent_id", agent_id); } } Map Rmap = yzCardServiceImpl.getIccid(Parammap); - if(Rmap!=null){ + if (Rmap != null) { return MyRetunSuccess(Rmap, null); } return Myerr("未匹配到相应的数据,请重新输入!"); @@ -1004,33 +997,32 @@ public class YzCardController extends MyBaseController /** * 批量取消实名 + * * @param file * @return */ @Log(title = "批量取消实名", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('yunze:card:cancelrealname')") - @PostMapping(value = "/cancelrealname", produces = { "application/json;charset=utf-8" }) - public AjaxResult AjaxName (MultipartFile file) - { + @PostMapping(value = "/cancelrealname", produces = {"application/json;charset=utf-8"}) + public AjaxResult AjaxName(MultipartFile file) { HashMap Parammap = new HashMap(); try { LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); - Parammap.put("agent_id",User.getDeptId()); - return AjaxResult.success(yzCardServiceImpl.cancelrealname(file,Parammap)); - }catch (Exception e){ + Parammap.put("User", User); + Parammap.put("agent_id", User.getDeptId()); + return AjaxResult.success(yzCardServiceImpl.cancelrealname(file, Parammap)); + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:cancelrealname
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:cancelrealname
ip = " + ip + "
", e.getCause().toString()); } return AjaxResult.error("批量取消实名 操作失败!"); } - - /** * 智能匹对 + * * @param Pstr * @return */ @@ -1048,18 +1040,18 @@ public class YzCardController extends MyBaseController LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser currentUser = loginUser.getUser(); List agent_id = new ArrayList<>(); - if(currentUser.getDeptId()!=100){ - if(Parammap.get("agent_id")!=null){ + if (currentUser.getDeptId() != 100) { + if (Parammap.get("agent_id") != null) { List P_agent_id = (List) Parammap.get("agent_id"); agent_id.addAll(P_agent_id); - }else{ + } else { agent_id.add(Integer.parseInt(currentUser.getDeptId().toString())); - Parammap.put("agent_id",agent_id); + Parammap.put("agent_id", agent_id); } } Map Rmap = yzCardServiceImpl.cardMatch(Parammap); - if(Rmap!=null){ + if (Rmap != null) { return MyRetunSuccess(Rmap, null); } return Myerr("未匹配到相应的数据,请重新输入!"); @@ -1071,263 +1063,247 @@ public class YzCardController extends MyBaseController } - - - - /** * 单卡停机原因查询 + * * @param Pstr * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:simStopReason')") - @PostMapping(value = "/simStopReason", produces = { "application/json;charset=utf-8" }) - public String simStopReason(@RequestBody String Pstr) - { + @PostMapping(value = "/simStopReason", produces = {"application/json;charset=utf-8"}) + public String simStopReason(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); - Map Route = yzCardServiceImpl.findRoute(Parammap); - if(Route!=null ){ + Map Route = yzCardServiceImpl.findRoute(Parammap); + if (Route != null) { String cd_status = Route.get("cd_status").toString(); - if(cd_status!=null && cd_status!="" && cd_status.equals("1")){ - Map Rmap = internalApiRequest.simStopReason(Parammap,Route); - String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; - if(code.equals("200")){ - return MyRetunSuccess(Rmap,"操作成功!"); - }else{ + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { + Map Rmap = internalApiRequest.simStopReason(Parammap, Route); + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { + return MyRetunSuccess(Rmap, "操作成功!"); + } else { return Myerr("暂未查询到单卡停机原因!"); } - }else{ - String statusVal = cd_status.equals("2")?"已停用":cd_status.equals("3")?"已删除":"状态未知"; - return Myerr("查询单卡停机原因 操作失败!"+" 通道 ["+statusVal+"]"); + } else { + String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知"; + return Myerr("查询单卡停机原因 操作失败!" + " 通道 [" + statusVal + "]"); } - }else{ - return Myerr(" iccid ["+Parammap.get("iccid")+"] 未划分 API通道 !请划分通道后重试!"); + } else { + return Myerr(" iccid [" + Parammap.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:simStopReason " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:simStopReason " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("单卡停机原因查询 操作失败!"); } - - - /** * 单卡开关机状态实时查询 + * * @param Pstr * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:onOffStatus')") - @PostMapping(value = "/onOffStatus", produces = { "application/json;charset=utf-8" }) - public String onOffStatus(@RequestBody String Pstr) - { + @PostMapping(value = "/onOffStatus", produces = {"application/json;charset=utf-8"}) + public String onOffStatus(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); - Map Route = yzCardServiceImpl.findRoute(Parammap); - if(Route!=null ){ + Map Route = yzCardServiceImpl.findRoute(Parammap); + if (Route != null) { String cd_status = Route.get("cd_status").toString(); - if(cd_status!=null && cd_status!="" && cd_status.equals("1")){ - Map Rmap = internalApiRequest.onOffStatus(Parammap,Route); - String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; - if(code.equals("200")){ - return MyRetunSuccess(Rmap,"操作成功!"); - }else{ + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { + Map Rmap = internalApiRequest.onOffStatus(Parammap, Route); + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { + return MyRetunSuccess(Rmap, "操作成功!"); + } else { System.out.println(Rmap); return Myerr("暂未查询到 单卡开关机状态!"); } - }else{ - String statusVal = cd_status.equals("2")?"已停用":cd_status.equals("3")?"已删除":"状态未知"; - return Myerr("单卡开关机状态实时查询 操作失败!"+" 通道 ["+statusVal+"]"); + } else { + String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知"; + return Myerr("单卡开关机状态实时查询 操作失败!" + " 通道 [" + statusVal + "]"); } - }else{ - return Myerr(" iccid ["+Parammap.get("iccid")+"] 未划分 API通道 !请划分通道后重试!"); + } else { + return Myerr(" iccid [" + Parammap.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:onOffStatus " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:onOffStatus " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("单卡开关机状态实时查询 操作失败!"); } - - - /** * 单卡已开通APN信息查询 + * * @param Pstr * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:apnInfo')") - @PostMapping(value = "/apnInfo", produces = { "application/json;charset=utf-8" }) - public String apnInfo(@RequestBody String Pstr) - { + @PostMapping(value = "/apnInfo", produces = {"application/json;charset=utf-8"}) + public String apnInfo(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); - Map Route = yzCardServiceImpl.findRoute(Parammap); - if(Route!=null ){ + Map Route = yzCardServiceImpl.findRoute(Parammap); + if (Route != null) { String cd_status = Route.get("cd_status").toString(); - if(cd_status!=null && cd_status!="" && cd_status.equals("1")){ - Map Rmap = internalApiRequest.apnInfo(Parammap,Route); - String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; - if(code.equals("200")){ - return MyRetunSuccess(Rmap,"操作成功!"); - }else{ + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { + Map Rmap = internalApiRequest.apnInfo(Parammap, Route); + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { + return MyRetunSuccess(Rmap, "操作成功!"); + } else { System.out.println(Rmap); return Myerr("暂未查询到 单卡已开通APN信息查询!"); } - }else{ - String statusVal = cd_status.equals("2")?"已停用":cd_status.equals("3")?"已删除":"状态未知"; - return Myerr("单卡已开通APN信息查询 操作失败!"+" 通道 ["+statusVal+"]"); + } else { + String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知"; + return Myerr("单卡已开通APN信息查询 操作失败!" + " 通道 [" + statusVal + "]"); } - }else{ - return Myerr(" iccid ["+Parammap.get("iccid")+"] 未划分 API通道 !请划分通道后重试!"); + } else { + return Myerr(" iccid [" + Parammap.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:apnInfo " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:apnInfo " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("单卡已开通APN信息查询 操作失败!"); } - /** * 物联卡机卡分离状态查询 + * * @param Pstr * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:cardBindStatus')") - @PostMapping(value = "/cardBindStatus", produces = { "application/json;charset=utf-8" }) - public String cardBindStatus(@RequestBody String Pstr) - { + @PostMapping(value = "/cardBindStatus", produces = {"application/json;charset=utf-8"}) + public String cardBindStatus(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); - Map Route = yzCardServiceImpl.findRoute(Parammap); - if(Route!=null ){ + Map Route = yzCardServiceImpl.findRoute(Parammap); + if (Route != null) { String cd_status = Route.get("cd_status").toString(); - if(cd_status!=null && cd_status!="" && cd_status.equals("1")){ - Map Rmap = internalApiRequest.cardBindStatus(Parammap,Route); - String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; - if(code.equals("200")){ - return MyRetunSuccess(Rmap,"操作成功!"); - }else{ + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { + Map Rmap = internalApiRequest.cardBindStatus(Parammap, Route); + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { + return MyRetunSuccess(Rmap, "操作成功!"); + } else { System.out.println(Rmap); - String msg = Rmap.get("Message")!=null && Rmap.get("Message").toString().length()>0?Rmap.get("Message").toString():"暂未查询到 物联卡机卡分离状态!"; + String msg = Rmap.get("Message") != null && Rmap.get("Message").toString().length() > 0 ? Rmap.get("Message").toString() : "暂未查询到 物联卡机卡分离状态!"; return Myerr(msg); } - }else{ - String statusVal = cd_status.equals("2")?"已停用":cd_status.equals("3")?"已删除":"状态未知"; - return Myerr("物联卡机卡分离状态查询 操作失败!"+" 通道 ["+statusVal+"]"); + } else { + String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知"; + return Myerr("物联卡机卡分离状态查询 操作失败!" + " 通道 [" + statusVal + "]"); } - }else{ - return Myerr(" iccid ["+Parammap.get("iccid")+"] 未划分 API通道 !请划分通道后重试!"); + } else { + return Myerr(" iccid [" + Parammap.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:cardBindStatus " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:cardBindStatus " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("物联卡机卡分离状态查询 操作失败!"); } - - /** * 单卡状态变更历史查询 + * * @param Pstr * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:simChangeHistory')") - @PostMapping(value = "/simChangeHistory", produces = { "application/json;charset=utf-8" }) - public String simChangeHistory(@RequestBody String Pstr) - { + @PostMapping(value = "/simChangeHistory", produces = {"application/json;charset=utf-8"}) + public String simChangeHistory(@RequestBody String Pstr) { HashMap Parammap = new HashMap(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); - Map Route = yzCardServiceImpl.findRoute(Parammap); - if(Route!=null ){ + Map Route = yzCardServiceImpl.findRoute(Parammap); + if (Route != null) { String cd_status = Route.get("cd_status").toString(); - if(cd_status!=null && cd_status!="" && cd_status.equals("1")){ - Map Rmap = internalApiRequest.simChangeHistory(Parammap,Route); - String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; - if(code.equals("200")){ - return MyRetunSuccess(Rmap,"操作成功!"); - }else{ + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { + Map Rmap = internalApiRequest.simChangeHistory(Parammap, Route); + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { + return MyRetunSuccess(Rmap, "操作成功!"); + } else { System.out.println(Rmap); return Myerr("暂未查询到 单卡状态变更历史!"); } - }else{ - String statusVal = cd_status.equals("2")?"已停用":cd_status.equals("3")?"已删除":"状态未知"; - return Myerr("单卡状态变更历史查询 操作失败!"+" 通道 ["+statusVal+"]"); + } else { + String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知"; + return Myerr("单卡状态变更历史查询 操作失败!" + " 通道 [" + statusVal + "]"); } - }else{ - return Myerr(" iccid ["+Parammap.get("iccid")+"] 未划分 API通道 !请划分通道后重试!"); + } else { + return Myerr(" iccid [" + Parammap.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); } - }catch (Exception e){ + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:simChangeHistory " + "
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:simChangeHistory " + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("单卡状态变更历史查询 操作失败!"); } - - - /** * 批量更新卡信息 + * * @param file * @return */ @Log(title = "批量更新卡信息", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('yunze:card:replace')") - @PostMapping(value = "/importCardReplace", produces = { "application/json;charset=utf-8" }) - public AjaxResult importCardReplace(MultipartFile file,@RequestParam Map map) - { + @PostMapping(value = "/importCardReplace", produces = {"application/json;charset=utf-8"}) + public AjaxResult importCardReplace(MultipartFile file, @RequestParam Map map) { String Pstr = map.get("Pstr").toString(); - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } HashMap Parammap = new HashMap(); try { - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser User = loginUser.getUser(); - Parammap.put("User",User); - Parammap.put("agent_id",User.getDeptId()); - return AjaxResult.success(yzCardServiceImpl.importCardReplace(file,Parammap)); - }catch (Exception e){ + Parammap.put("User", User); + Parammap.put("agent_id", User.getDeptId()); + return AjaxResult.success(yzCardServiceImpl.importCardReplace(file, Parammap)); + } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
yunze:card:importSelImei
ip = " + ip + "
",e.getCause().toString()); + logger.error("
yunze:card:importSelImei
ip = " + ip + "
", e.getCause().toString()); } return AjaxResult.error("批量更新卡信息 操作失败!"); } @@ -1335,6 +1311,7 @@ public class YzCardController extends MyBaseController /** * 灵活变更卡状态 + * * @return */ @PreAuthorize("@ss.hasPermi('yunze:card:fbestate')") @@ -1351,7 +1328,7 @@ public class YzCardController extends MyBaseController LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); SysUser currentUser = loginUser.getUser(); - return MyRetunSuccess(yzCardServiceImpl.ChangeF(Parammap,currentUser), null); + return MyRetunSuccess(yzCardServiceImpl.ChangeF(Parammap, currentUser), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); logger.error("
yunze:card:fbestate
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); @@ -1360,28 +1337,25 @@ public class YzCardController extends MyBaseController } - - - /** * 物联卡 公开查询简要信息 + * * @param Pstr * @return */ - @PostMapping(value = "/selCardOpen", produces = { "application/json;charset=utf-8" }) - public String selCardOpen(@RequestBody String Pstr) - { + @PostMapping(value = "/selCardOpen", produces = {"application/json;charset=utf-8"}) + public String selCardOpen(@RequestBody String Pstr) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); HashMap Parammap = new HashMap(); try { - if(Pstr!=null){ + if (Pstr != null) { Pstr = Pstr.replace("%2F", "/");//转义 / } - Pstr = AesEncryptUtil.desEncrypt(Pstr); + Pstr = AesEncryptUtil.desEncrypt(Pstr); Parammap.putAll(JSON.parseObject((String) Pstr)); - return MyRetunSuccessOpen(yzCardServiceImpl.selCardOpen(ip,Parammap),""); - }catch (Exception e){ - logger.error("
selCardOpen
ip = " + ip + "
",e.getCause().toString()); + return MyRetunSuccessOpen(yzCardServiceImpl.selCardOpen(ip, Parammap), ""); + } catch (Exception e) { + logger.error("
selCardOpen
ip = " + ip + "
", e.getCause().toString()); } return Myerr("物联卡 公开查询简要信息 操作失败!"); } @@ -1389,6 +1363,7 @@ public class YzCardController extends MyBaseController /** * 获取 上游单卡订购套餐列表 + * * @param Pstr * @return */ @@ -1413,6 +1388,7 @@ public class YzCardController extends MyBaseController /** * 获取 上游套餐记录列表 + * * @param Pstr * @return */ @@ -1435,35 +1411,235 @@ public class YzCardController extends MyBaseController return Myerr("上游套餐记录列表 操作失败!"); } + + /** + * 单卡同步用量和状态 + * + * @param Pstr + * @return + */ + @PreAuthorize("@ss.hasPermi('yunze:card:InfoFlow')") + @PostMapping(value = "/InfoFlow", produces = {"application/json;charset=UTF-8"}) + public String CardInfoFlow(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject(Pstr)); + return MyRetunSuccess(yzCardServiceImpl.CardInfoFlow(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:card:InfoFlow
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("单卡同步用量和状态 操作失败!"); + } + + + /** + * 卡详情界面 获取 订单信息 + */ + @PreAuthorize("@ss.hasPermi('yunze:card:find')") + @PostMapping(value = "/getOrderCard", produces = {"application/json;charset=utf-8"})// + public String getOrderCard(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject((String) Pstr)); + return MyRetunSuccess(yzCardServiceImpl.getOrderCard(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
getOrderCard
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("卡详情界面 获取 订单信息 操作失败!"); + } + + + /** + * 上游订购套餐查询 + * + * @param Pstr + * @return + */ + @PreAuthorize("@ss.hasPermi('yunze:card:queryOffering')") + @PostMapping(value = "/queryOffering", produces = {"application/json;charset=utf-8"}) + public String queryOffering(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject((String) Pstr)); + Map Route = yzCardServiceImpl.findRoute(Parammap); + if (Route != null) { + String cd_status = Route.get("cd_status").toString(); + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { + Map Rmap = internalApiRequest.queryOffering(Parammap, Route); + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { + return MyRetunSuccess(Rmap, "操作成功!"); + } else { + return Myerr("暂未查询到 上游订购套餐查询!"); + } + } else { + String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知"; + return Myerr("上游订购套餐查询 操作失败!" + " 通道 [" + statusVal + "]"); + } + } else { + return Myerr(" iccid [" + Parammap.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
queryOffering " + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("上游订购套餐查询 操作失败!"); + } + + + /** + * 单卡 修改 备注 分组 + */ + @PreAuthorize("@ss.hasPermi('yunze:card:singleUpd')") + @PostMapping(value = "/singleUpd", produces = {"application/json;charset=UTF-8"}) + public String singleCardInfo(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject(Pstr)); + return MyRetunSuccess(yzCardServiceImpl.UpdateSingle(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:card:singleUpd
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("单卡 修改 备注 分组 操作失败!"); + } + + /*单卡 灵活变更状态*/ + @PreAuthorize("@ss.hasPermi('yunze:card:singleState')") + @PostMapping(value = "/singleState", produces = {"application/json;charset=UTF-8"}) + public String singFlexibleState(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject(Pstr)); + return MyRetunSuccess(yzCardServiceImpl.singleState(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:card:singleState
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("单卡 灵活变更状态!"); + } + + + /** + * 查询用户手机号 + * + * @return + */ + @PostMapping(value = "/userPhone", produces = {"application/json;charset=UTF-8"}) + public String UserPhone(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + boolean bool = userService.userPhone(Parammap); + if(bool){ + return MyRetunSuccess("操作成功!",null); + }else{ + return Myerr("您的手机号不匹对"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
system:user:userPhone
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("查询用户手机号 操作失败!"); + } + + + + /** + * 验证所属卡号 是否在名下 + */ + @PreAuthorize("@ss.hasPermi('yunze:card:list')") + @PostMapping(value = "/verifyBelonging", produces = {"application/json;charset=UTF-8"}) + public String verifyBelonging(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + List agent_id = new ArrayList<>(); + if (currentUser.getDeptId() != 100) { + if (Parammap.get("agent_id") != null) { + List P_agent_id = (List) Parammap.get("agent_id"); + agent_id.addAll(P_agent_id); + } else { + agent_id.add(Integer.parseInt(currentUser.getDeptId().toString())); + Parammap.put("agent_id", agent_id); + } + } + return MyRetunSuccess(yzCardServiceImpl.outCardIccid(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
verifyBelonging
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("验证所属卡号 是否在名下 操作失败!"); + } + + + + + /** + * 批量短信下发 + * @param file + * @return + */ + @Log(title = "批量短信下发", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('yunze:card:smsCC')") + @PostMapping(value = "/SmsCC", produces = {"application/json;charset=utf-8"}) + public AjaxResult SmsCC(MultipartFile file,@RequestParam Map map) { + String Pstr = map.get("Pstr").toString(); + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + HashMap Parammap = new HashMap(); + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr.toString())); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser User = loginUser.getUser(); + Parammap.put("User", User); + Parammap.put("agent_id", User.getDeptId()); + return AjaxResult.success(yzCardServiceImpl.smsCC(file, Parammap)); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
SmsCC
ip = " + ip + "
", e.getCause().toString()); + } + return AjaxResult.error("批量短信下发 操作失败!"); + } + + + } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardFlowController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardFlowController.java similarity index 98% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardFlowController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardFlowController.java index 77ca1aa..dbf9801 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardFlowController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardFlowController.java @@ -1,4 +1,4 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.card; import com.alibaba.fastjson.JSON; import com.yunze.common.annotation.Log; @@ -42,7 +42,7 @@ public class YzCardFlowController extends MyBaseController /** * 查询套餐信息 */ - @PreAuthorize("@ss.hasPermi('yunze:card:diagnosis')") + @PreAuthorize("@ss.hasPermi('yunze:flow:list')") @PostMapping(value = "/queryflow", produces = { "application/json;charset=utf-8" }) public String queryflow(@RequestBody String Pstr) { @@ -93,7 +93,7 @@ public class YzCardFlowController extends MyBaseController /** - * 查询 简要 资费计划 名称 + * 查询 简要 资费计划 名称 */ @PreAuthorize("@ss.hasPermi('yunze:cardFlow:queryPackageSimple')") @PostMapping(value = "/queryPackageSimple", produces = { "application/json;charset=utf-8" }) diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardFlowHisController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardFlowHisController.java similarity index 94% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardFlowHisController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardFlowHisController.java index 48d684c..6e83f75 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardFlowHisController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardFlowHisController.java @@ -1,8 +1,7 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.card; import com.alibaba.fastjson.JSON; import com.yunze.common.annotation.Log; -import com.yunze.common.core.controller.BaseController; import com.yunze.common.core.domain.entity.SysUser; import com.yunze.common.core.domain.model.LoginUser; import com.yunze.common.enums.BusinessType; @@ -11,7 +10,7 @@ import com.yunze.common.utils.ip.IpUtils; import com.yunze.common.utils.spring.SpringUtils; import com.yunze.common.utils.yunze.AesEncryptUtil; import com.yunze.framework.web.service.TokenService; -import com.yunze.system.service.yunze.YzCardFlowHisService; +import com.yunze.system.service.yunze.IYzCardFlowHisService; import com.yunze.web.core.config.MyBaseController; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; @@ -21,10 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; -import java.util.Map; /** * 用量详情 @@ -35,7 +31,7 @@ import java.util.Map; @RequestMapping("/yunze/flowhis") public class YzCardFlowHisController extends MyBaseController { @Autowired - private YzCardFlowHisService yrootlowHisService; + private IYzCardFlowHisService yrootlowHisService; /** * 执行用量详情 diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardPackageController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardPackageController.java similarity index 86% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardPackageController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardPackageController.java index bcd78f6..21891af 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardPackageController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardPackageController.java @@ -1,4 +1,4 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.card; import com.alibaba.fastjson.JSON; import com.yunze.common.annotation.Log; @@ -347,5 +347,58 @@ public class YzCardPackageController extends MyBaseController return Myerr("选择资费组时加载出对应的通道 操作失败!"); } + /** + * 导出 + * @return + */ + @Log(title = "平台资费导出", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('yunze:tariffGroup:export')") + @PostMapping(value = "/export", produces = { "application/json;charset=utf-8" }) + public String exportData(@RequestBody String Pstr) + { + HashMap Parammap = new HashMap(); + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + return MyRetunSuccess(cardPackageService.exportallorders(Parammap,currentUser),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:tariffGroup:export
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("平台资费导出 操作失败!"); + } + + + + @Log(title = "资费计划导出", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('yunze:tariffGroup:export')") + @PostMapping(value = "/exportPacket", produces = { "application/json;charset=utf-8" }) + public String exportPacket(@RequestBody String Pstr) + { + HashMap Parammap = new HashMap(); + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + return MyRetunSuccess(cardPackageService.exportPacket(Parammap,currentUser),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:tariffGroup:export
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("平台资费导出 操作失败!"); + } + + } diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardPacketController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardPacketController.java similarity index 85% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardPacketController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardPacketController.java index 0691645..0f039dd 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardPacketController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardPacketController.java @@ -1,4 +1,4 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.card; import com.alibaba.fastjson.JSON; import com.yunze.common.annotation.Log; @@ -186,4 +186,32 @@ public class YzCardPacketController extends MyBaseController + + /** + * 续费查询 + */ + @PreAuthorize("@ss.hasPermi('yunze:renewal:list')") + @PostMapping(value = "/findToBR", produces = { "application/json;charset=UTF-8" }) + public String findToBR(@RequestBody String Pstr) + { + HashMap Parammap = new HashMap(); + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + Parammap.put("login_dept_id",currentUser.getDeptId()); + return MyRetunSuccess(cardPacketService.findToBR(Parammap),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:tariffPlan:findPacket
Pstr = " + Pstr + "
ip = " + ip + "
",e.toString()); + } + return Myerr("平台 划分资费计划 查询 异常!"); + } + + + } diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardUsageReminderController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardUsageReminderController.java new file mode 100644 index 0000000..200dce5 --- /dev/null +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzCardUsageReminderController.java @@ -0,0 +1,52 @@ +package com.yunze.web.controller.yunze.card; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.utils.ServletUtils; +import com.yunze.common.utils.ip.IpUtils; +import com.yunze.common.utils.yunze.AesEncryptUtil; +import com.yunze.system.service.yunze.IYzCardUsageReminderService; +import com.yunze.web.core.config.MyBaseController; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; + +/** + * 上游返回套餐记录信息 + * 2022-4-11 + */ +@Api("上游返回套餐记录信息") +@RestController +@RequestMapping("/yunze/usage") +public class YzCardUsageReminderController extends MyBaseController { + + @Autowired + private IYzCardUsageReminderService IYzCardUsageReminderService; + + /** + * 上游返回套餐记录信息 列表 + */ + @PreAuthorize("@ss.hasPermi('yunze:cardSetmeal:list')") + @PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"}) + public String SynFlow(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + return MyRetunSuccess(IYzCardUsageReminderService.list(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:cardSetmeal:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("上游返回套餐记录信息 操作失败!"); + } + +} diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzOrderController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzOrderController.java new file mode 100644 index 0000000..973c6d7 --- /dev/null +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzOrderController.java @@ -0,0 +1,407 @@ +package com.yunze.web.controller.yunze.card; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.annotation.Log; +import com.yunze.common.core.domain.AjaxResult; +import com.yunze.common.core.domain.entity.SysUser; +import com.yunze.common.core.domain.model.LoginUser; +import com.yunze.common.enums.BusinessType; +import com.yunze.common.utils.ServletUtils; +import com.yunze.common.utils.ip.IpUtils; +import com.yunze.common.utils.spring.SpringUtils; +import com.yunze.common.utils.yunze.AesEncryptUtil; +import com.yunze.framework.web.service.TokenService; +import com.yunze.system.service.yunze.IYzCardFlowService; +import com.yunze.system.service.yunze.IYzOrderService; +import com.yunze.web.core.config.MyBaseController; +import io.swagger.annotations.Api; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 通道 管理 + * 2021-06-19 + * @author root + */ +@Api("订单管理") +@RestController +@RequestMapping("/yunze/order") +public class YzOrderController extends MyBaseController +{ + + @Resource + private IYzOrderService iYzOrderService; + @Resource + private IYzCardFlowService iYzCardFlowService; + + + /** + * 订单 列表 + */ + @PreAuthorize("@ss.hasPermi('yunze:order:list')") + @PostMapping(value = "/list", produces = { "application/json;charset=UTF-8" }) + public String list(@RequestBody String Pstr) + { + HashMap Parammap = new HashMap(); + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + List agent_id = new ArrayList<>(); + if(currentUser.getDeptId()!=100){ + if(Parammap.get("agent_id")!=null){ + List P_agent_id = (List) Parammap.get("agent_id"); + agent_id.addAll(P_agent_id); + }else{ + agent_id.add(Integer.parseInt(currentUser.getDeptId().toString())); + Parammap.put("agent_id",agent_id); + } + } + return MyRetunSuccess(iYzOrderService.selMap(Parammap),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:order:list
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("获取订单 列表信息列表 操作失败!"); + } + + + + /** + * 查询 资费计划 信息 + */ + @PreAuthorize("@ss.hasPermi('yunze:order:list')") + @PostMapping(value = "/queryPacketSimple", produces = { "application/json;charset=UTF-8" }) + public String queryPacketSimple() + { + HashMap Parammap = new HashMap(); + try { + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + List agent_id = new ArrayList<>(); + if(currentUser.getDeptId()!=100){ + agent_id.add(currentUser.getDeptId().toString()); + }else{ + agent_id.add(currentUser.getDeptId().toString()); + } + + Parammap.put("agent_id",agent_id); + return MyRetunSuccess(iYzCardFlowService.queryPacket_simple(Parammap),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:order:list
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("获取 【订单】 查询 资费计划 操作失败!"); + } + + + /** + * 查询 订单详情 + */ + @PreAuthorize("@ss.hasPermi('yunze:order:findOrder')") + @PostMapping(value = "/findOrder", produces = { "application/json;charset=UTF-8" }) + public String findOrder(@RequestBody String Pstr) + { + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + HashMap Parammap = new HashMap(); + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject((String) Pstr)); + return MyRetunSuccess(iYzOrderService.findOrder(Parammap),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:order:findOrder
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("查询 【订单详情】 操作失败!"); + } + + + /** + * 平台导入充值 + * @param file + * @return + */ + @Log(title = "订单管理", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('yunze:order:importRecharge')") + @PostMapping(value = "/importRecharge", produces = { "application/json;charset=utf-8" }) + public AjaxResult importRecharge(MultipartFile file,@RequestParam Map map) + { + + String Pstr = map.get("Pstr").toString(); + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + HashMap Parammap = new HashMap(); + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser User = loginUser.getUser(); + Parammap.put("User",User); + Parammap.put("agent_id",User.getDeptId()); + return AjaxResult.success(iYzOrderService.importRecharge(file,Parammap)); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:order:importRecharge
ip = " + ip + "
",e.getCause().toString()); + } + return AjaxResult.error("平台导入充值 操作失败!"); + } + + /** + * 导出 + * @return + */ + @Log(title = "全部订单导出", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('yunze:order:outOrder')") + @PostMapping(value = "/outOrder", produces = { "application/json;charset=utf-8" }) + public String exportData(@RequestBody String Pstr) + { + HashMap Parammap = new HashMap(); + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + return MyRetunSuccess(iYzOrderService.exportallorders(Parammap,currentUser),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:order:outOrder
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("全部订单导出 操作失败!"); + } + + + /** + * 导入查询、卡号类别 + * + * @param file + * @return + */ + @Log(title = "资费订单导入查询", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('yunze:order:cardNumberAge')") + @PostMapping(value = "/cardNumberAge", produces = {"application/json;charset=utf-8"}) + public AjaxResult CardNumberImport(MultipartFile file, @RequestParam Map map) { + String Pstr = map.get("Pstr").toString(); + + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + HashMap Parammap = new HashMap(); + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser User = loginUser.getUser(); + Parammap.put("User", User); + List agent_id = new ArrayList<>(); + if (User.getDeptId() != 100) { + if (Parammap.get("agent_id") != null) { + List P_agent_id = (List) Parammap.get("agent_id"); + agent_id.addAll(P_agent_id); + } else { + agent_id.add(Integer.parseInt(User.getDeptId().toString())); + Parammap.put("agent_id", agent_id); + } + } + try { + return AjaxResult.success(AesEncryptUtil.encrypt(JSON.toJSONString(iYzOrderService.CardNumberImport(file, Parammap)))); + } catch (Exception e) { + return AjaxResult.error(AesEncryptUtil.encrypt(JSON.toJSONString("返回数据加密操作失败"))); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:order:cardNumberAge
ip = " + ip + "
", e.getCause().toString()); + } + return AjaxResult.error("资费订单导入查询 操作失败!"); + } + + + /** + * 退订 不操作 下面的内容 + */ + @PreAuthorize("@ss.hasPermi('yunze:order:nobscribe')") + @PostMapping(value = "/nobscribe", produces = { "application/json;charset=UTF-8" }) + public String NoTbscribe(@RequestBody String Pstr) + { + HashMap Parammap = new HashMap(); + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + List agent_id = new ArrayList<>(); + if(currentUser.getDeptId()!=100){ + if(Parammap.get("agent_id")!=null){ + List P_agent_id = (List) Parammap.get("agent_id"); + agent_id.addAll(P_agent_id); + }else{ + agent_id.add(Integer.parseInt(currentUser.getDeptId().toString())); + Parammap.put("agent_id",agent_id); + } + } + Parammap.put("TaskAgent_id", agent_id); + return MyRetunSuccess(iYzOrderService.NoTbscribe(Parammap,currentUser),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:order:nobscribe
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("获取退订 不操作 操作失败!"); + } + + + /** + * 勾选执行加包 + */ + @PreAuthorize("@ss.hasPermi('yunze:order:package')") + @PostMapping(value = "/package", produces = { "application/json;charset=UTF-8" }) + public String TimeOrder(@RequestBody String Pstr) + { + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + HashMap Parammap = new HashMap(); + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject((String) Pstr)); + return MyRetunSuccess(iYzOrderService.getPackage(Parammap),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:order:package
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("勾选执行加包 操作失败!"); + } + + + + /** + * 平台充值 [文本域]操作 + * @return + */ + @Log(title = "订单管理", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('yunze:order:TextRecharge')") + @PostMapping(value = "/TextRecharge", produces = { "application/json;charset=utf-8" }) + public String TextRecharge(@RequestBody String Pstr) + + { + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + HashMap Parammap = new HashMap(); + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser User = loginUser.getUser(); + Parammap.put("User",User); + Parammap.put("agent_id",User.getDeptId()); + return MyRetunSuccess(iYzOrderService.TextRecharge(Parammap),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:order:importRecharge
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("平台充值 [文本域] 操作失败!"); + } + + + + + /** + * 平台充值 [文本域]操作-企业 + * @return + */ + @Log(title = "企业订单", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('yunze:order:DeptTextRecharge')") + @PostMapping(value = "/DeptTextRecharge", produces = { "application/json;charset=utf-8" }) + public String DeptTextRecharge(@RequestBody String Pstr) + { + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + HashMap ParaMap = new HashMap(); + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + ParaMap.putAll(JSON.parseObject((String) Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser User = loginUser.getUser(); + ParaMap.put("User",User); + ParaMap.put("agent_id",User.getDeptId()); + ParaMap.put("dept_id",User.getDeptId()); + ParaMap.put("login_dept_id",User.getDeptId()); + return MyRetunSuccess(iYzOrderService.DeptTextRecharge(ParaMap,User),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:order:importRecharge
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("平台充值 [文本域] 操作失败!"); + } + + + + + + /** + * 查询已充值的卡号数据 + * @return + */ + @PreAuthorize("@ss.hasPermi('yunze:order:DeptTextRecharge')") + @PostMapping(value = "/findRecharged", produces = { "application/json;charset=utf-8" }) + public String findRecharged(@RequestBody String Pstr) + { + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + HashMap Parammap = new HashMap(); + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject((String) Pstr)); + return MyRetunSuccess(iYzOrderService.findRecharged(Parammap),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
findRecharged
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("查询已充值的卡号数据 操作失败!"); + } + + + + + + + +} + + + + + + + + + + + + + + + + diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzYzInfoChangeController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzYzInfoChangeController.java similarity index 98% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzYzInfoChangeController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzYzInfoChangeController.java index 8d876c4..f0c6d0d 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzYzInfoChangeController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/YzYzInfoChangeController.java @@ -1,4 +1,4 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.card; import com.alibaba.fastjson.JSON; diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/PollingController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/channel/PollingController.java similarity index 96% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/PollingController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/channel/PollingController.java index 10a8a19..c11ed18 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/PollingController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/channel/PollingController.java @@ -1,4 +1,4 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.card.channel; import com.alibaba.fastjson.JSON; import com.yunze.common.utils.ServletUtils; diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/channel/YzCardPollingErrorController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/channel/YzCardPollingErrorController.java new file mode 100644 index 0000000..98c04cc --- /dev/null +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/channel/YzCardPollingErrorController.java @@ -0,0 +1,159 @@ +package com.yunze.web.controller.yunze.card.channel; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.utils.ServletUtils; +import com.yunze.common.utils.ip.IpUtils; +import com.yunze.common.utils.yunze.AesEncryptUtil; +import com.yunze.system.service.yunze.IYzCardPollingErrorService; +import com.yunze.web.core.config.MyBaseController; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; + +/** + * 轮询错误详情 + * 2022-5-16 + * */ + +@Api("轮询错误详情") +@RestController +@RequestMapping("/yunze/error") +public class YzCardPollingErrorController extends MyBaseController { + + @Autowired + private IYzCardPollingErrorService IYzCardPollingErrorService; + + + @PreAuthorize("@ss.hasPermi('yunze:error:list')") + @PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"}) + public String listError(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject(Pstr)); + return MyRetunSuccess(IYzCardPollingErrorService.listError(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:error:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("轮询错误详情 操作失败!"); + } + + + /** + * 单个修改轮询错误详情 + * */ + @PreAuthorize("@ss.hasPermi('yunze:error:upd')") + @PostMapping(value = "/upd", produces = {"application/json;charset=UTF-8"}) + public String UpdateId(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + boolean bool = IYzCardPollingErrorService.upd(Parammap); + if(bool){ + return MyRetunSuccess("修改成功",null); + }else{ + return Myerr("修改失败"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:error:upd
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("单个修改轮询错误详情 操作失败!"); + } + + + /** + * 单个删除轮询错误详情 + * */ + @PreAuthorize("@ss.hasPermi('yunze:error:del')") + @PostMapping(value = "/del", produces = {"application/json;charset=UTF-8"}) + public String DeleteId(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + boolean bool = IYzCardPollingErrorService.del(Parammap); + if(bool){ + return MyRetunSuccess("删除成功",null); + }else{ + return Myerr("删除失败"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:error:del
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("单个删除轮询错误详情 操作失败!"); + } + + + /** + * 批量删除轮询错误详情 + * */ + @PreAuthorize("@ss.hasPermi('yunze:error:delArr')") + @PostMapping(value = "/delArr", produces = {"application/json;charset=UTF-8"}) + public String DeleteArr(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + boolean bool = IYzCardPollingErrorService.delArr(Parammap); + if(bool){ + return MyRetunSuccess("批量删除成功",null); + }else{ + return Myerr("批量删除失败"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:error:delArr
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("批量删除轮询错误详情 操作失败!"); + } + + /** + * 批量修改轮询错误详情 + * */ + @PreAuthorize("@ss.hasPermi('yunze:error:updArr')") + @PostMapping(value = "/updArr", produces = {"application/json;charset=UTF-8"}) + public String UpdateArr(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + boolean bool = IYzCardPollingErrorService.updArr(Parammap); + if(bool){ + return MyRetunSuccess("批量修改成功",null); + }else{ + return Myerr("批量修改失败"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:error:updArr
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("批量修改轮询错误详情 操作失败!"); + } + +} diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/channel/YzCardPollingErrorGroupController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/channel/YzCardPollingErrorGroupController.java new file mode 100644 index 0000000..d3ed12b --- /dev/null +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/channel/YzCardPollingErrorGroupController.java @@ -0,0 +1,160 @@ +package com.yunze.web.controller.yunze.card.channel; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.utils.ServletUtils; +import com.yunze.common.utils.ip.IpUtils; +import com.yunze.common.utils.yunze.AesEncryptUtil; +import com.yunze.system.service.yunze.IYzCardPollingErrorGroupService; +import com.yunze.web.core.config.MyBaseController; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; + +/** + * 轮询错误概要 + * 2022-5-16 + * */ + +@Api("轮询错误概要") +@RestController +@RequestMapping("/yunze/group") +public class YzCardPollingErrorGroupController extends MyBaseController { + + + @Autowired + private IYzCardPollingErrorGroupService IYzCardPollingErrorGroupService; + + + @PreAuthorize("@ss.hasPermi('yunze:group:list')") + @PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"}) + public String listGroup(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + // System.out.println(map); + Parammap.putAll(JSON.parseObject(Pstr)); + return MyRetunSuccess(IYzCardPollingErrorGroupService.listGroup(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:group:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("轮询错误概要 操作失败!"); + } + + /** + * 单个删除轮询错误概要 + * */ + @PreAuthorize("@ss.hasPermi('yunze:group:del')") + @PostMapping(value = "/del", produces = {"application/json;charset=UTF-8"}) + public String DeleteId(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + boolean bool = IYzCardPollingErrorGroupService.del(Parammap); + if(bool){ + return MyRetunSuccess("删除成功",null); + }else{ + return Myerr("删除失败"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:group:del
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("单个删除轮询错误概要 操作失败!"); + } + + + /** + * 单个修改轮询错误概要 + * */ + @PreAuthorize("@ss.hasPermi('yunze:group:upd')") + @PostMapping(value = "/upd", produces = {"application/json;charset=UTF-8"}) + public String UpdateId(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + boolean bool = IYzCardPollingErrorGroupService.upd(Parammap); + if(bool){ + return MyRetunSuccess("修改成功",null); + }else{ + return Myerr("修改失败"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:group:upd
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("单个修改轮询错误概要 操作失败!"); + } + + + /** + * 批量删除轮询错误概要 + * */ + @PreAuthorize("@ss.hasPermi('yunze:group:delArr')") + @PostMapping(value = "/delArr", produces = {"application/json;charset=UTF-8"}) + public String DeleteArr(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + boolean bool = IYzCardPollingErrorGroupService.delArr(Parammap); + if(bool){ + return MyRetunSuccess("批量删除成功",null); + }else{ + return Myerr("批量删除失败"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:group:delArr
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("批量删除轮询错误概要 操作失败!"); + } + + + /** + * 批量修改轮询错误概要 + * */ + @PreAuthorize("@ss.hasPermi('yunze:group:updArr')") + @PostMapping(value = "/updArr", produces = {"application/json;charset=UTF-8"}) + public String UpdateArr(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + boolean bool = IYzCardPollingErrorGroupService.updArr(Parammap); + if(bool){ + return MyRetunSuccess("批量修改成功",null); + }else{ + return Myerr("批量修改失败"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:group:updArr
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("批量修改轮询错误概要 操作失败!"); + } + +} diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardRouteController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/channel/YzCardRouteController.java similarity index 91% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardRouteController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/channel/YzCardRouteController.java index 4c5c7d0..b2c0e54 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCardRouteController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/channel/YzCardRouteController.java @@ -1,15 +1,11 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.card.channel; import com.alibaba.fastjson.JSON; import com.yunze.common.annotation.Log; -import com.yunze.common.core.controller.BaseController; -import com.yunze.common.core.domain.AjaxResult; -import com.yunze.common.core.domain.entity.SysDictData; import com.yunze.common.core.domain.entity.SysUser; import com.yunze.common.core.domain.model.LoginUser; import com.yunze.common.enums.BusinessType; import com.yunze.common.utils.ServletUtils; -import com.yunze.common.utils.StringUtils; import com.yunze.common.utils.ip.IpUtils; import com.yunze.common.utils.spring.SpringUtils; import com.yunze.common.utils.yunze.AesEncryptUtil; @@ -17,16 +13,11 @@ import com.yunze.framework.web.service.TokenService; import com.yunze.system.service.yunze.IYzCardRouteService; import com.yunze.web.core.config.MyBaseController; import io.swagger.annotations.Api; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; -import java.util.Map; /** * 通道 管理 @@ -268,6 +259,28 @@ public class YzCardRouteController extends MyBaseController } + /* + * 选择运营商时加载出对应的通道 + * */ + @PreAuthorize("@ss.hasPermi('yunze:cardRoute:operator')") + @PostMapping(value = "/operator", produces = { "application/json;charset=UTF-8" }) + public String operatorName(@RequestBody String Pstr) + { + HashMap Parammap = new HashMap(); + if(Pstr!=null){ + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + return MyRetunSuccess(iYzCardRouteService.operatorName(Parammap),null); + }catch (Exception e){ + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
yunze:cardRoute:operator
Pstr = " + Pstr + "
ip = " + ip + "
",e.getCause().toString()); + } + return Myerr("选择运营商时加载出对应的通道 操作失败!"); + } + } diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCategoryController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/wechart/YzCategoryController.java similarity index 87% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCategoryController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/wechart/YzCategoryController.java index e936f17..be1f964 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzCategoryController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/wechart/YzCategoryController.java @@ -1,9 +1,9 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.card.wechart; import com.alibaba.fastjson.JSON; import com.yunze.common.utils.ServletUtils; import com.yunze.common.utils.ip.IpUtils; import com.yunze.common.utils.yunze.AesEncryptUtil; -import com.yunze.system.service.yunze.YzCategoryService; +import com.yunze.system.service.yunze.IYzCategoryService; import com.yunze.web.core.config.MyBaseController; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; @@ -25,7 +25,7 @@ import java.util.HashMap; public class YzCategoryController extends MyBaseController { @Autowired - private YzCategoryService YzCategoryService; + private IYzCategoryService IYzCategoryService; /** * 执行商品分类 @@ -41,7 +41,7 @@ public class YzCategoryController extends MyBaseController { Pstr = AesEncryptUtil.desEncrypt(Pstr); // System.out.println(map); Parammap.putAll(JSON.parseObject(Pstr)); - return MyRetunSuccess(YzCategoryService.CategoryList(Parammap), null); + return MyRetunSuccess(IYzCategoryService.CategoryList(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); logger.error("
yunze:shop:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzWxByOrderController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/wechart/YzWxByOrderController.java similarity index 98% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzWxByOrderController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/wechart/YzWxByOrderController.java index f6f0c52..a5cba9f 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzWxByOrderController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/card/wechart/YzWxByOrderController.java @@ -1,4 +1,4 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.card.wechart; import com.alibaba.fastjson.JSON; diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/MySysDeptController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/MySysDeptController.java index 8f6fac5..8eb182a 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/MySysDeptController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/MySysDeptController.java @@ -2,6 +2,7 @@ package com.yunze.web.controller.yunze.sysgl; import com.alibaba.fastjson.JSON; import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; +import com.yunze.common.core.domain.entity.SysUser; import com.yunze.common.core.domain.model.LoginUser; import com.yunze.common.utils.ServletUtils; import com.yunze.common.utils.ip.IpUtils; @@ -145,6 +146,87 @@ public class MySysDeptController extends MyBaseController { + /** + * 企业预存 【平台操作】 + */ + @PreAuthorize("@ss.hasPermi('yunze:dept:sysPreSaved')") + @PostMapping(value = "/sysPreSaved", produces = {"application/json;charset=UTF-8"}) + public String sysPreSaved(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + Pstr = Pstr.replace(" ", "+");//转义 ' ' + } + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + String dept_id = currentUser.getDeptId().toString(); + if(dept_id.equals("100")){ + Parammap.put("ip",ip); + Map Rmap = iMySysDeptService.sysPreSaved(Parammap); + boolean bool = (boolean) Rmap.get("bool"); + String Msg = Rmap.get("Msg").toString(); + if(bool){ + return MyRetunSuccess(Rmap,Msg); + }else{ + return Myerr(Msg); + } + }else{ + logger.info(">>[越权操作] ip :{} ,用户信息 {}<<",ip,JSON.toJSONString(currentUser)); + return Myerr("禁止非总企业用户操作!"); + } + } catch (Exception e) { + + logger.error("
/yunze/MySysDept/sysPreSaved
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("企业预存 【平台操作】 操作失败!"); + } + + + + /** + * 预存抵扣 【平台操作】 + */ + @PreAuthorize("@ss.hasPermi('yunze:dept:sysDeduct')") + @PostMapping(value = "/sysDeduct", produces = {"application/json;charset=UTF-8"}) + public String sysDeduct(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + Pstr = Pstr.replace(" ", "+");//转义 ' ' + } + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser currentUser = loginUser.getUser(); + String dept_id = currentUser.getDeptId().toString(); + if(dept_id.equals("100")){ + Parammap.put("ip",ip); + Map Rmap = iMySysDeptService.sysDeduct(Parammap); + boolean bool = (boolean) Rmap.get("bool"); + String Msg = Rmap.get("Msg").toString(); + if(bool){ + return MyRetunSuccess(Rmap,Msg); + }else{ + return Myerr(Msg); + } + }else{ + logger.info(">>[越权操作] ip :{} ,用户信息 {}<<",ip,JSON.toJSONString(currentUser)); + return Myerr("禁止非总企业用户操作!"); + } + } catch (Exception e) { + + logger.error("
/yunze/MySysDept/sysPreSaved
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("企业预存 【平台操作】 操作失败!"); + } + + } diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/YzIndexpageController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/YzIndexpageController.java index 5c5f609..4b0fc23 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/YzIndexpageController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/YzIndexpageController.java @@ -52,10 +52,38 @@ public class YzIndexpageController extends MyBaseController { return MyRetunSuccess(iYzIndexpageService.findToDay(Parammap), null); } catch (Exception e) { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); - logger.error("
system:polling:list
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + logger.error("
index:findToDay
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); } return Myerr("首页数据加载 操作失败!"); } + + + /** + * 资产明细统计图加载 + */ + @PreAuthorize("@ss.hasPermi('yunze:index:assetDetails')") + @PostMapping(value = "/assetDetails", produces = {"application/json;charset=UTF-8"}) + public String AssetDetails(@RequestBody String Pstr) { + HashMap Parammap = new HashMap(); + if (Pstr != null) { + Pstr = Pstr.replace("%2F", "/");//转义 / + } + try { + Pstr = AesEncryptUtil.desEncrypt(Pstr); + Parammap.putAll(JSON.parseObject(Pstr)); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + SysUser User = loginUser.getUser(); + Parammap.put("dept_id",User.getDeptId()); + Parammap.put("user_id",User.getUserId()); + return MyRetunSuccess(iYzIndexpageService.assetDetails(Parammap), null); + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + logger.error("
index:assetDetails
Pstr = " + Pstr + "
ip = " + ip + "
", e.getCause().toString()); + } + return Myerr("资产明细统计图加载 操作失败!"); + } + + } diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzSysLogsController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/YzSysLogsController.java similarity index 98% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzSysLogsController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/YzSysLogsController.java index 4478062..4d24286 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzSysLogsController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/YzSysLogsController.java @@ -1,4 +1,4 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.sysgl; import com.alibaba.fastjson.JSON; import com.yunze.common.utils.ServletUtils; import com.yunze.common.utils.ip.IpUtils;; diff --git a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzUserController.java b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/YzUserController.java similarity index 99% rename from yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzUserController.java rename to yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/YzUserController.java index bd53145..2904c1c 100644 --- a/yunze-admin/src/main/java/com/yunze/web/controller/yunze/YzUserController.java +++ b/yunze-admin/src/main/java/com/yunze/web/controller/yunze/sysgl/YzUserController.java @@ -1,4 +1,4 @@ -package com.yunze.web.controller.yunze; +package com.yunze.web.controller.yunze.sysgl; import com.alibaba.fastjson.JSON; import com.yunze.common.annotation.Log; @@ -30,7 +30,7 @@ import java.util.HashMap; import java.util.List; /** - * 执行日志信息 + * 用户信息 * 2021-06-21 * @author root */ diff --git a/yunze-admin/src/main/java/com/yunze/web/core/config/MyBaseController.java b/yunze-admin/src/main/java/com/yunze/web/core/config/MyBaseController.java index 150bfde..2660c0b 100644 --- a/yunze-admin/src/main/java/com/yunze/web/core/config/MyBaseController.java +++ b/yunze-admin/src/main/java/com/yunze/web/core/config/MyBaseController.java @@ -32,7 +32,10 @@ public class MyBaseController extends BaseController protected String MyRetunSuccess(Object obj,String msg) { LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); - String deptId = loginUser.getUser().getDeptId().toString(); + String deptId = ""; + if(loginUser!=null){ + deptId = loginUser.getUser().getDeptId().toString(); + } msg = msg!=null?msg:"操作成功"; Map Rmap = new HashMap(); Rmap.put("code",HttpStatus.SUCCESS); @@ -51,8 +54,11 @@ public class MyBaseController extends BaseController protected String Myerr(String Msg) { - LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); - String deptId = loginUser.getUser().getDeptId().toString(); + LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); + String deptId = ""; + if(loginUser!=null){ + deptId = loginUser.getUser().getDeptId().toString(); + } //LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); //String deptId = loginUser.getUser().getDeptId().toString(); Map map = new HashMap<>(); diff --git a/yunze-admin/src/main/resources/application.yml b/yunze-admin/src/main/resources/application.yml index 1bef7ab..ba932cc 100644 --- a/yunze-admin/src/main/resources/application.yml +++ b/yunze-admin/src/main/resources/application.yml @@ -3,7 +3,7 @@ yunze: # 名称 name: IoTLink # 版本 - version: 0.8.0 + version: 1.0.0 # 版权年份 copyrightYear: 2022v # 实例演示开关 diff --git a/yunze-admin/yunze-admin.iml b/yunze-admin/yunze-admin.iml index e0674bc..9da7e82 100644 --- a/yunze-admin/yunze-admin.iml +++ b/yunze-admin/yunze-admin.iml @@ -1,14 +1,14 @@ - - - + + + @@ -75,7 +75,6 @@ - @@ -104,6 +103,12 @@ + + + + + + @@ -169,11 +174,10 @@ - - - + + diff --git a/yunze-apiCommon/pom.xml b/yunze-apiCommon/pom.xml new file mode 100644 index 0000000..4facc3d --- /dev/null +++ b/yunze-apiCommon/pom.xml @@ -0,0 +1,142 @@ + + + + yunze + com.yunze + 1.0.0 + + 4.0.0 + + yunze-apiCommon + + + + + com.cu + api + 2 + + + org.projectlombok + lombok + + + + + javax.mail + mail + 1.5.0-b01 + + + com.alibaba + fastjson + + + org.apache.httpcomponents + httpcore + + + org.apache.httpcomponents + httpclient + + + org.springframework + spring-context + + + net.sourceforge.javacsv + javacsv + 2.0 + compile + + + + org.apache.poi + poi-ooxml + + + + javax.mail + mail + 1.5.0-b01 + + + commons-collections + commons-collections + + + org.apache.poi + poi-ooxml + + + + + org.apache.commons + commons-collections4 + 4.4 + + + commons-collections + commons-collections + + + + + javax.servlet + javax.servlet-api + + + + org.dom4j + dom4j + 2.1.1 + + + org.springframework.data + spring-data-redis + + + org.json + json + 20210307 + compile + + + org.springframework.amqp + spring-rabbit + + + + + + + + yunze-apiCommon + + + src/main/resources + + **/*.properties + **/*.yml + **/*.xml + **/*.tld + + false + + + src/main/java + + **/*.properties + **/*.yml + **/*.xml + **/*.tld + + false + + + + + + \ No newline at end of file diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/config/RedisUtil.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/config/RedisUtil.java new file mode 100644 index 0000000..258b48f --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/config/RedisUtil.java @@ -0,0 +1,60 @@ +package com.yunze.apiCommon.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.util.concurrent.TimeUnit; + +@Component +public class RedisUtil { + + public static RedisTemplate redisTemplate; + + @Autowired + public void setRedisTemplate(RedisTemplate redisTemplate) { + RedisUtil.redisTemplate = redisTemplate; + } + + + public Long increment(String key,int i){ + return redisTemplate.opsForValue().increment(key, i); + } + + + public void set(String key,String val,int timeout,TimeUnit type){ + redisTemplate.opsForValue().set(key, val, timeout, type); + } + public void set(String key,String val){ + redisTemplate .opsForValue().set(key, val); + } + public Object get(String key){ + return redisTemplate.opsForValue().get(key); + } + + + public boolean expire(String key,int timeout,TimeUnit type){ + return redisTemplate.expire(key, timeout, type); + } + + + + public void setAccessToken(Object o){ + redisTemplate.opsForValue().set("accessToken",o,2,TimeUnit.HOURS); + } + + /** + * 描述: 删除指定的key + */ + public boolean delKey(String key){ + return redisTemplate.delete(key); + } + + + + public void set(String key,Object o){ + + redisTemplate.opsForValue().set(key,o,4,TimeUnit.HOURS); + } + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/mapper/YzCardRouteMapper.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/mapper/YzCardRouteMapper.java new file mode 100644 index 0000000..dda1ede --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/mapper/YzCardRouteMapper.java @@ -0,0 +1,258 @@ +package com.yunze.apiCommon.mapper; + + +import java.util.List; +import java.util.Map; + +public interface YzCardRouteMapper { + + /** + * 查询 + * + * @param map + * @return + * @throws Exception + */ + List> sel_Map(Map map); + + /** + * 查询 单卡所属通道信息 + * + * @param map + * @return + */ + public Map find_route(Map map); + + + /** + * 修改记录 + * + * @param map 表字段 map 对象 + */ + public int update(Map map); + + /** + * 修改 通道状态 + * + * @param map 表字段 map 对象 + */ + public int update_cd_status(Map map); + + + /** + * 查询总数 + * + * @param map + * @return + * @throws Exception + */ + public int sel_Map_Count(Map map); + + + /** + * 删除记录 + * + * @param map 表字段 map 对象 + */ + public int delete(Map map); + + + /** + * 新增 + * + * @param map 表字段 map 对象 + */ + public int add(Map map); + + + /** + * 查询 用户 创建 通道信息 + * + * @param map 表字段 map 对象 + */ + public List> find_route_list(Map map); + + + /** + * 查询 通道简要信息 + */ + public List> find_simple(Map map); + + + /** + * 查询 通道简要信息 + */ + public List> find_sp(); + + /** + * 查询 通道简要信息 状态为 正常 划分通道用 + */ + public List> find_cr(); + + /** + * 查询 通道信息 + * + * @return + */ + public Map find(Map map); + + + /** + * 导出通道信息 + * + * @param map + * @return + */ + public List> outChannel(Map map); + + + /** + * 查询卡信息 + * + * @param map + * @return + */ + public Map findCard(Map map); + + + //查询卡 iccid + public Map findIccid(Map map); + + + //查询资费计划 + public List> findFlow(Map map); + + + //接口 获取资费计划 + public List> findFlowArr(Map map); + + + /** + * 获取轮询通道信息 + * + * @return + */ + public List> findRouteID(Map map); + + /** + * 查询通道id + * + * @return + */ + public List findIDArr(); + + /** + * 查询 卡表里已经划分 的 通道信息 + * + * @return + */ + public List findCardChannelID(); + + + /** + * 查询 设置上停机阈值 的 通道信息 + * + * @return + */ + public List findRemindRatioChannelID(); + + /** + * 查询 设置未订购停机 的 通道信息 + * + * @return + */ + public List findIsDisconnectedChannelID(); + + + /** + * 查询 通道信息 + * + * @param map + * @return + */ + public Map getRoute(Map map); + + + /** + * 平台使用量 + * @param map + * @return + */ + public String find_Out_used(Map map); + + + /** + * 查询 企业是否可订购 资费计划 + * @param map + * @return + */ + public Integer findSubscribe(Map map); + + + /** + * 查询 代理 可用 资费计划 + * @param map + * @return + */ + public List> findTariffplan(Map map); + + + /** + * 查询代理所属卡号 + * @param map + * @return + */ + public Integer IsExistence(Map map); + + + /** + * 查询 通道简要信息 运营类型 通道id arr 类型 + */ + public List> find_simpleOperatorArr(Map map); + + + /** + * 通道 id 查询卡总数 + */ + public List> countId(Map map); + + /* + * 通道 id 修改 卡总数 + */ + public Integer upCount(Map map); + + /** + * 查询自费组树结构,进行赋值 + * @param map + */ + public List> ruepkeFz(Map map); + + /** + * 删除中间表通道ID + */ + public boolean deleteID(Map map); + + + /** + * 选择运营商时加载出对应的通道 + */ + public List> operatorName(Map map); + + /** + * 通道名查找通道名称和密码 + * @param map + * @return + */ + public Map findUsername(Map map); + + + /** + * 修改 key + * @param map + * @return + */ + public int updateKey(Map map); + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/mapper/YzIpWhitelistMapper.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/mapper/YzIpWhitelistMapper.java new file mode 100644 index 0000000..c809cac --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/mapper/YzIpWhitelistMapper.java @@ -0,0 +1,24 @@ +package com.yunze.apiCommon.mapper; + + +import java.util.List; +import java.util.Map; + +public interface YzIpWhitelistMapper { + + + + /** + * 查询 允许向内部发送token 的白名单 + * + * @param map + * @return + */ + public Map findWIp(Map map); + + + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP/DX_CMP_Api.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP/DX_CMP_Api.java new file mode 100644 index 0000000..3fd550f --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP/DX_CMP_Api.java @@ -0,0 +1,45 @@ +package com.yunze.apiCommon.upstreamAPI.DianXinCMP; + +import java.util.Map; + +/** + * 电信 CMP 系统 API 接口 + */ +public class DX_CMP_Api { + + + //构造赋值 + public DX_CMP_Api(Map init_map){ + + user_id = init_map.get("cd_username").toString(); + // 秘钥密码 + password = init_map.get("cd_pwd").toString(); + // key + key = init_map.get("cd_key").toString(); + + key1 = key.substring(0, 3); + key2 = key.substring(3, 6); + key3 = key.substring(6, 9); + } + + // 服务器请求地址 + protected String server_Ip = "http://api.ct10649.com:9001"; + // user_id + protected String user_id = null; + // 秘钥密码 + protected String password = null; + + // 配置调用的名称 + protected String Config_name = ""; + // + protected String key =null; + + protected String key1 = null; + protected String key2 = null; + protected String key3 = null; + + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP/DesUtils.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP/DesUtils.java new file mode 100644 index 0000000..b42faf0 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP/DesUtils.java @@ -0,0 +1,1089 @@ +package com.yunze.apiCommon.upstreamAPI.DianXinCMP; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * 加密、解密操作工具类(Java) + * @Title: DesUtils.java + * @author 陈杨 + * @date 2017年1月22日 下午14:09:35 + * @version V1.0 + * @Copyright 中国电信股份有限公司物联网分公司 + * @description API开发手册登录物联网自管理门户->在线文档查看 +*/ +public class DesUtils { + /** + * 构造函数 + * @ClassName: DesUtils + * @author 陈杨 + * @date 2017年1月22日 下午14:09:35 + * @version V1.0 + */ + public DesUtils() { + + } + /** + * DES加密函数 + * @Title strEnc + * @param data + * @param firstKey + * @param secondKey + * @param thirdKey + * @author 陈杨 + * @date 2017年1月22日 下午14:13:14 + * @version V1.0 + */ + public static String strEnc(String data,String firstKey,String secondKey,String thirdKey) { + int leng = data.length(); + String encData = ""; + List firstKeyBt = null, secondKeyBt = null, thirdKeyBt = null; + int firstLength = 0, secondLength = 0, thirdLength = 0; + if (firstKey != null && firstKey != "") { + firstKeyBt = getKeyBytes(firstKey); + firstLength = firstKeyBt.size(); + } + if (secondKey != null && secondKey != "") { + secondKeyBt = getKeyBytes(secondKey); + secondLength = secondKeyBt.size(); + } + if (thirdKey != null && thirdKey != "") { + thirdKeyBt = getKeyBytes(thirdKey); + thirdLength = thirdKeyBt.size(); + } + + if (leng > 0) { + if (leng < 4) { + int[] bt = strToBt(data); + int[] encByte = null; + if (firstKey != null && firstKey != "" && secondKey != null + && secondKey != "" && thirdKey != null + && thirdKey != "") { + int[] tempBt; + int x, y, z; + tempBt = bt; + for (x = 0; x < firstLength; x++) { + tempBt = enc(tempBt, (int[]) firstKeyBt.get(x)); + } + for (y = 0; y < secondLength; y++) { + tempBt = enc(tempBt, (int[]) secondKeyBt.get(y)); + } + for (z = 0; z < thirdLength; z++) { + tempBt = enc(tempBt, (int[]) thirdKeyBt.get(z)); + } + encByte = tempBt; + } else { + if (firstKey != null && firstKey != "" && secondKey != null + && secondKey != "") { + int[] tempBt; + int x, y; + tempBt = bt; + for (x = 0; x < firstLength; x++) { + tempBt = enc(tempBt, (int[]) firstKeyBt.get(x)); + } + for (y = 0; y < secondLength; y++) { + tempBt = enc(tempBt, (int[]) secondKeyBt.get(y)); + } + encByte = tempBt; + } else { + if (firstKey != null && firstKey != "") { + int[] tempBt; + int x = 0; + tempBt = bt; + for (x = 0; x < firstLength; x++) { + tempBt = enc(tempBt, (int[]) firstKeyBt.get(x)); + } + encByte = tempBt; + } + } + } + encData = bt64ToHex(encByte); + } else { + int iterator = (leng / 4); + int remainder = leng % 4; + int i = 0; + for (i = 0; i < iterator; i++) { + String tempData = data.substring(i * 4 + 0, i * 4 + 4); + int[] tempByte = strToBt(tempData); + int[] encByte = null; + if (firstKey != null && firstKey != "" && secondKey != null + && secondKey != "" && thirdKey != null + && thirdKey != "") { + int[] tempBt; + int x, y, z; + tempBt = tempByte; + for (x = 0; x < firstLength; x++) { + tempBt = enc(tempBt, (int[]) firstKeyBt.get(x)); + } + for (y = 0; y < secondLength; y++) { + tempBt = enc(tempBt, (int[]) secondKeyBt.get(y)); + } + for (z = 0; z < thirdLength; z++) { + tempBt = enc(tempBt, (int[]) thirdKeyBt.get(z)); + } + encByte = tempBt; + } else { + if (firstKey != null && firstKey != "" + && secondKey != null && secondKey != "") { + int[] tempBt; + int x, y; + tempBt = tempByte; + for (x = 0; x < firstLength; x++) { + tempBt = enc(tempBt, (int[]) firstKeyBt.get(x)); + } + for (y = 0; y < secondLength; y++) { + tempBt = enc(tempBt, (int[]) secondKeyBt.get(y)); + } + encByte = tempBt; + } else { + if (firstKey != null && firstKey != "") { + int[] tempBt; + int x; + tempBt = tempByte; + for (x = 0; x < firstLength; x++) { + tempBt = enc(tempBt, (int[]) firstKeyBt + .get(x)); + } + encByte = tempBt; + } + } + } + encData += bt64ToHex(encByte); + } + if (remainder > 0) { + String remainderData = data.substring(iterator * 4 + 0, + leng); + int[] tempByte = strToBt(remainderData); + int[] encByte = null; + if (firstKey != null && firstKey != "" && secondKey != null + && secondKey != "" && thirdKey != null + && thirdKey != "") { + int[] tempBt; + int x, y, z; + tempBt = tempByte; + for (x = 0; x < firstLength; x++) { + tempBt = enc(tempBt, (int[]) firstKeyBt.get(x)); + } + for (y = 0; y < secondLength; y++) { + tempBt = enc(tempBt, (int[]) secondKeyBt.get(y)); + } + for (z = 0; z < thirdLength; z++) { + tempBt = enc(tempBt, (int[]) thirdKeyBt.get(z)); + } + encByte = tempBt; + } else { + if (firstKey != null && firstKey != "" + && secondKey != null && secondKey != "") { + int[] tempBt; + int x, y; + tempBt = tempByte; + for (x = 0; x < firstLength; x++) { + tempBt = enc(tempBt, (int[]) firstKeyBt.get(x)); + } + for (y = 0; y < secondLength; y++) { + tempBt = enc(tempBt, (int[]) secondKeyBt.get(y)); + } + encByte = tempBt; + } else { + if (firstKey != null && firstKey != "") { + int[] tempBt; + int x; + tempBt = tempByte; + for (x = 0; x < firstLength; x++) { + tempBt = enc(tempBt, (int[]) firstKeyBt + .get(x)); + } + encByte = tempBt; + } + } + } + encData += bt64ToHex(encByte); + } + } + } + return encData; + } + + + /** + * DES解密函数 + * @Title strDec + * @param data + * @param firstKey + * @param secondKey + * @param thirdKey + * @author 陈杨 + * @date 2017年1月22日 下午14:32:19 + * @version V1.0 + */ + public static String strDec(String data,String firstKey,String secondKey,String thirdKey) { + int leng = data.length(); + String decStr = ""; + List firstKeyBt = null, secondKeyBt = null, thirdKeyBt = null; + int firstLength = 0, secondLength = 0, thirdLength = 0; + if (firstKey != null && firstKey != "") { + firstKeyBt = getKeyBytes(firstKey); + firstLength = firstKeyBt.size(); + } + if (secondKey != null && secondKey != "") { + secondKeyBt = getKeyBytes(secondKey); + secondLength = secondKeyBt.size(); + } + if (thirdKey != null && thirdKey != "") { + thirdKeyBt = getKeyBytes(thirdKey); + thirdLength = thirdKeyBt.size(); + } + int iterator = leng / 16; + int i = 0; + for (i = 0; i < iterator; i++) { + String tempData = data.substring(i * 16 + 0, i * 16 + 16); + String strByte = hexToBt64(tempData); + int[] intByte = new int[64]; + int j = 0; + for (j = 0; j < 64; j++) { + intByte[j] = Integer.parseInt(strByte.substring(j, j + 1)); + } + int[] decByte = null; + if (firstKey != null && firstKey != "" && secondKey != null + && secondKey != "" && thirdKey != null && thirdKey != "") { + int[] tempBt; + int x, y, z; + tempBt = intByte; + for (x = thirdLength - 1; x >= 0; x--) { + tempBt = dec(tempBt, (int[]) thirdKeyBt.get(x)); + } + for (y = secondLength - 1; y >= 0; y--) { + tempBt = dec(tempBt, (int[]) secondKeyBt.get(y)); + } + for (z = firstLength - 1; z >= 0; z--) { + tempBt = dec(tempBt, (int[]) firstKeyBt.get(z)); + } + decByte = tempBt; + } else { + if (firstKey != null && firstKey != "" && secondKey != null + && secondKey != "") { + int[] tempBt; + int x, y, z; + tempBt = intByte; + for (x = secondLength - 1; x >= 0; x--) { + tempBt = dec(tempBt, (int[]) secondKeyBt.get(x)); + } + for (y = firstLength - 1; y >= 0; y--) { + tempBt = dec(tempBt, (int[]) firstKeyBt.get(y)); + } + decByte = tempBt; + } else { + if (firstKey != null && firstKey != "") { + int[] tempBt; + int x, y, z; + tempBt = intByte; + for (x = firstLength - 1; x >= 0; x--) { + tempBt = dec(tempBt, (int[]) firstKeyBt.get(x)); + } + decByte = tempBt; + } + } + } + decStr += byteToString(decByte); + } + return decStr; + } + + /** + * 将字符串转换成字节列表 + * @Title getKeyBytes + * @param key + * @author 陈杨 + * @date 2017年1月22日 下午14:52:05 + * @version V1.0 + */ + public static List getKeyBytes(String key) { + List keyBytes = new ArrayList(); + int leng = key.length(); + int iterator = (leng / 4); + int remainder = leng % 4; + int i = 0; + for (i = 0; i < iterator; i++) { + keyBytes.add(i, strToBt(key.substring(i * 4 + 0, i * 4 + 4))); + } + if (remainder > 0) { + keyBytes.add(i, strToBt(key.substring(i * 4 + 0, leng))); + } + return keyBytes; + } + + /** + * 获取字节数组 + * @Title strToBt + * @param str + * @author 陈杨 + * @date 2017年1月22日 下午14:57:11 + * @version V1.0 + */ + public static int[] strToBt(String str) { + int leng = str.length(); + int[] bt = new int[64]; + if (leng < 4) { + int i = 0, j = 0, p = 0, q = 0; + for (i = 0; i < leng; i++) { + int k = str.charAt(i); + for (j = 0; j < 16; j++) { + int pow = 1, m = 0; + for (m = 15; m > j; m--) { + pow *= 2; + } + bt[16 * i + j] = (k / pow) % 2; + } + } + for (p = leng; p < 4; p++) { + int k = 0; + for (q = 0; q < 16; q++) { + int pow = 1, m = 0; + for (m = 15; m > q; m--) { + pow *= 2; + } + bt[16 * p + q] = (k / pow) % 2; + } + } + } else { + for (int i = 0; i < 4; i++) { + int k = str.charAt(i); + for (int j = 0; j < 16; j++) { + int pow = 1; + for (int m = 15; m > j; m--) { + pow *= 2; + } + bt[16 * i + j] = (k / pow) % 2; + } + } + } + return bt; + } + + /** + * 获取十六进制字节数组 + * @Title bt4ToHex + * @param binary + * @author 陈杨 + * @date 2017年1月22日 下午15:02:11 + * @version V1.0 + */ + public static String bt4ToHex(String binary) { + String hex = ""; + if (binary.equalsIgnoreCase("0000")) { + hex = "0"; + } else if (binary.equalsIgnoreCase("0001")) { + hex = "1"; + } else if (binary.equalsIgnoreCase("0010")) { + hex = "2"; + } else if (binary.equalsIgnoreCase("0011")) { + hex = "3"; + } else if (binary.equalsIgnoreCase("0100")) { + hex = "4"; + } else if (binary.equalsIgnoreCase("0101")) { + hex = "5"; + } else if (binary.equalsIgnoreCase("0110")) { + hex = "6"; + } else if (binary.equalsIgnoreCase("0111")) { + hex = "7"; + } else if (binary.equalsIgnoreCase("1000")) { + hex = "8"; + } else if (binary.equalsIgnoreCase("1001")) { + hex = "9"; + } else if (binary.equalsIgnoreCase("1010")) { + hex = "A"; + } else if (binary.equalsIgnoreCase("1011")) { + hex = "B"; + } else if (binary.equalsIgnoreCase("1100")) { + hex = "C"; + } else if (binary.equalsIgnoreCase("1101")) { + hex = "D"; + } else if (binary.equalsIgnoreCase("1110")) { + hex = "E"; + } else if (binary.equalsIgnoreCase("1111")) { + hex = "F"; + } + + return hex; + } + + /** + * 将十六进制数组转为二进制字节数组 + * @Title hexToBt4 + * @param hex + * @author 陈杨 + * @date 2017年1月22日 下午15:11:39 + * @version V1.0 + */ + public static String hexToBt4(String hex) { + String binary = ""; + if (hex.equalsIgnoreCase("0")) { + binary = "0000"; + } else if (hex.equalsIgnoreCase("1")) { + binary = "0001"; + } + if (hex.equalsIgnoreCase("2")) { + binary = "0010"; + } + if (hex.equalsIgnoreCase("3")) { + binary = "0011"; + } + if (hex.equalsIgnoreCase("4")) { + binary = "0100"; + } + if (hex.equalsIgnoreCase("5")) { + binary = "0101"; + } + if (hex.equalsIgnoreCase("6")) { + binary = "0110"; + } + if (hex.equalsIgnoreCase("7")) { + binary = "0111"; + } + if (hex.equalsIgnoreCase("8")) { + binary = "1000"; + } + if (hex.equalsIgnoreCase("9")) { + binary = "1001"; + } + if (hex.equalsIgnoreCase("A")) { + binary = "1010"; + } + if (hex.equalsIgnoreCase("B")) { + binary = "1011"; + } + if (hex.equalsIgnoreCase("C")) { + binary = "1100"; + } + if (hex.equalsIgnoreCase("D")) { + binary = "1101"; + } + if (hex.equalsIgnoreCase("E")) { + binary = "1110"; + } + if (hex.equalsIgnoreCase("F")) { + binary = "1111"; + } + return binary; + } + + /** + * 将二进制数组转为字符串 + * @Title byteToString + * @param byteData + * @author 陈杨 + * @date 2017年1月22日 下午15:14:10 + * @version V1.0 + */ + public static String byteToString(int[] byteData) { + String str = ""; + for (int i = 0; i < 4; i++) { + int count = 0; + for (int j = 0; j < 16; j++) { + int pow = 1; + for (int m = 15; m > j; m--) { + pow *= 2; + } + count += byteData[16 * i + j] * pow; + } + if (count != 0) { + str += "" + (char) (count); + } + } + return str; + } + /** + * 将二进制数组转为十六进制数 + * @Title bt64ToHex + * @param byteData + * @author 陈杨 + * @date 2017年1月22日 下午15:33:19 + * @version V1.0 + */ + public static String bt64ToHex(int[] byteData) { + String hex = ""; + for (int i = 0; i < 16; i++) { + String bt = ""; + for (int j = 0; j < 4; j++) { + bt += byteData[i * 4 + j]; + } + hex += bt4ToHex(bt); + } + return hex; + } + /** + * 将字符串转为十六进制数 + * @Title hexToBt64 + * @param hex + * @author 陈杨 + * @date 2017年1月22日 下午15:41:02 + * @version V1.0 + */ + public static String hexToBt64(String hex) { + String binary = ""; + for (int i = 0; i < 16; i++) { + binary += hexToBt4(hex.substring(i, i + 1)); + } + return binary; + } + /** + * 64位DES核心加密算法 + * @Title enc + * @param dataByte + * @param keyByte + * @author 陈杨 + * @date 2017年1月22日 下午16:01:28 + * @version V1.0 + */ + public static int[] enc(int[] dataByte, int[] keyByte) { + int[][] keys = generateKeys(keyByte); + int[] ipByte = initPermute(dataByte); + int[] ipLeft = new int[32]; + int[] ipRight = new int[32]; + int[] tempLeft = new int[32]; + int i = 0, j = 0, k = 0, m = 0, n = 0; + for (k = 0; k < 32; k++) { + ipLeft[k] = ipByte[k]; + ipRight[k] = ipByte[32 + k]; + } + for (i = 0; i < 16; i++) { + for (j = 0; j < 32; j++) { + tempLeft[j] = ipLeft[j]; + ipLeft[j] = ipRight[j]; + } + int[] key = new int[48]; + for (m = 0; m < 48; m++) { + key[m] = keys[i][m]; + } + int[] tempRight = xor(pPermute(sBoxPermute(xor( + expandPermute(ipRight), key))), tempLeft); + for (n = 0; n < 32; n++) { + ipRight[n] = tempRight[n]; + } + + } + + int[] finalData = new int[64]; + for (i = 0; i < 32; i++) { + finalData[i] = ipRight[i]; + finalData[32 + i] = ipLeft[i]; + } + return finallyPermute(finalData); + } + /** + * 64位DES核心解密算法 + * @Title dec + * @param dataByte + * @param keyByte + * @author 陈杨 + * @date 2017年1月22日 下午16:06:18 + * @version V1.0 + */ + public static int[] dec(int[] dataByte, int[] keyByte) { + int[][] keys = generateKeys(keyByte); + int[] ipByte = initPermute(dataByte); + int[] ipLeft = new int[32]; + int[] ipRight = new int[32]; + int[] tempLeft = new int[32]; + int i = 0, j = 0, k = 0, m = 0, n = 0; + for (k = 0; k < 32; k++) { + ipLeft[k] = ipByte[k]; + ipRight[k] = ipByte[32 + k]; + } + for (i = 15; i >= 0; i--) { + for (j = 0; j < 32; j++) { + tempLeft[j] = ipLeft[j]; + ipLeft[j] = ipRight[j]; + } + int[] key = new int[48]; + for (m = 0; m < 48; m++) { + key[m] = keys[i][m]; + } + + int[] tempRight = xor(pPermute(sBoxPermute(xor( + expandPermute(ipRight), key))), tempLeft); + for (n = 0; n < 32; n++) { + ipRight[n] = tempRight[n]; + } + } + int[] finalData = new int[64]; + for (i = 0; i < 32; i++) { + finalData[i] = ipRight[i]; + finalData[32 + i] = ipLeft[i]; + } + return finallyPermute(finalData); + } + + public static int[] initPermute(int[] originalData) { + int[] ipByte = new int[64]; + int i = 0, m = 1, n = 0, j, k; + for (i = 0, m = 1, n = 0; i < 4; i++, m += 2, n += 2) { + for (j = 7, k = 0; j >= 0; j--, k++) { + ipByte[i * 8 + k] = originalData[j * 8 + m]; + ipByte[i * 8 + k + 32] = originalData[j * 8 + n]; + } + } + return ipByte; + } + + public static int[] expandPermute(int[] rightData) { + int[] epByte = new int[48]; + int i, j; + for (i = 0; i < 8; i++) { + if (i == 0) { + epByte[i * 6 + 0] = rightData[31]; + } else { + epByte[i * 6 + 0] = rightData[i * 4 - 1]; + } + epByte[i * 6 + 1] = rightData[i * 4 + 0]; + epByte[i * 6 + 2] = rightData[i * 4 + 1]; + epByte[i * 6 + 3] = rightData[i * 4 + 2]; + epByte[i * 6 + 4] = rightData[i * 4 + 3]; + if (i == 7) { + epByte[i * 6 + 5] = rightData[0]; + } else { + epByte[i * 6 + 5] = rightData[i * 4 + 4]; + } + } + return epByte; + } + + public static int[] xor(int[] byteOne, int[] byteTwo) { + int[] xorByte = new int[byteOne.length]; + for (int i = 0; i < byteOne.length; i++) { + xorByte[i] = byteOne[i] ^ byteTwo[i]; + } + return xorByte; + } + + public static int[] sBoxPermute(int[] expandByte) { + int[] sBoxByte = new int[32]; + String binary = ""; + int[][] s1 = { + { 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7 }, + { 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8 }, + { 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0 }, + { 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13 } }; + int[][] s2 = { + { 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10 }, + { 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5 }, + { 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15 }, + { 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9 } }; + int[][] s3 = { + { 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8 }, + { 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1 }, + { 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7 }, + { 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12 } }; + int[][] s4 = { + { 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15 }, + { 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9 }, + { 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4 }, + { 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14 } }; + int[][] s5 = { + { 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9 }, + { 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6 }, + { 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14 }, + { 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3 } }; + int[][] s6 = { + { 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11 }, + { 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8 }, + { 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6 }, + { 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13 } }; + int[][] s7 = { + { 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 }, + { 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6 }, + { 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2 }, + { 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12 } }; + int[][] s8 = { + { 13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7 }, + { 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2 }, + { 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8 }, + { 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11 } }; + + for (int m = 0; m < 8; m++) { + int i = 0, j = 0; + i = expandByte[m * 6 + 0] * 2 + expandByte[m * 6 + 5]; + j = expandByte[m * 6 + 1] * 2 * 2 * 2 + expandByte[m * 6 + 2] * 2 + * 2 + expandByte[m * 6 + 3] * 2 + expandByte[m * 6 + 4]; + switch (m) { + case 0: + binary = getBoxBinary(s1[i][j]); + break; + case 1: + binary = getBoxBinary(s2[i][j]); + break; + case 2: + binary = getBoxBinary(s3[i][j]); + break; + case 3: + binary = getBoxBinary(s4[i][j]); + break; + case 4: + binary = getBoxBinary(s5[i][j]); + break; + case 5: + binary = getBoxBinary(s6[i][j]); + break; + case 6: + binary = getBoxBinary(s7[i][j]); + break; + case 7: + binary = getBoxBinary(s8[i][j]); + break; + } + sBoxByte[m * 4 + 0] = Integer.parseInt(binary.substring(0, 1)); + sBoxByte[m * 4 + 1] = Integer.parseInt(binary.substring(1, 2)); + sBoxByte[m * 4 + 2] = Integer.parseInt(binary.substring(2, 3)); + sBoxByte[m * 4 + 3] = Integer.parseInt(binary.substring(3, 4)); + } + return sBoxByte; + } + + public static int[] pPermute(int[] sBoxByte) { + int[] pBoxPermute = new int[32]; + pBoxPermute[0] = sBoxByte[15]; + pBoxPermute[1] = sBoxByte[6]; + pBoxPermute[2] = sBoxByte[19]; + pBoxPermute[3] = sBoxByte[20]; + pBoxPermute[4] = sBoxByte[28]; + pBoxPermute[5] = sBoxByte[11]; + pBoxPermute[6] = sBoxByte[27]; + pBoxPermute[7] = sBoxByte[16]; + pBoxPermute[8] = sBoxByte[0]; + pBoxPermute[9] = sBoxByte[14]; + pBoxPermute[10] = sBoxByte[22]; + pBoxPermute[11] = sBoxByte[25]; + pBoxPermute[12] = sBoxByte[4]; + pBoxPermute[13] = sBoxByte[17]; + pBoxPermute[14] = sBoxByte[30]; + pBoxPermute[15] = sBoxByte[9]; + pBoxPermute[16] = sBoxByte[1]; + pBoxPermute[17] = sBoxByte[7]; + pBoxPermute[18] = sBoxByte[23]; + pBoxPermute[19] = sBoxByte[13]; + pBoxPermute[20] = sBoxByte[31]; + pBoxPermute[21] = sBoxByte[26]; + pBoxPermute[22] = sBoxByte[2]; + pBoxPermute[23] = sBoxByte[8]; + pBoxPermute[24] = sBoxByte[18]; + pBoxPermute[25] = sBoxByte[12]; + pBoxPermute[26] = sBoxByte[29]; + pBoxPermute[27] = sBoxByte[5]; + pBoxPermute[28] = sBoxByte[21]; + pBoxPermute[29] = sBoxByte[10]; + pBoxPermute[30] = sBoxByte[3]; + pBoxPermute[31] = sBoxByte[24]; + return pBoxPermute; + } + + public static int[] finallyPermute(int[] endByte) { + int[] fpByte = new int[64]; + fpByte[0] = endByte[39]; + fpByte[1] = endByte[7]; + fpByte[2] = endByte[47]; + fpByte[3] = endByte[15]; + fpByte[4] = endByte[55]; + fpByte[5] = endByte[23]; + fpByte[6] = endByte[63]; + fpByte[7] = endByte[31]; + fpByte[8] = endByte[38]; + fpByte[9] = endByte[6]; + fpByte[10] = endByte[46]; + fpByte[11] = endByte[14]; + fpByte[12] = endByte[54]; + fpByte[13] = endByte[22]; + fpByte[14] = endByte[62]; + fpByte[15] = endByte[30]; + fpByte[16] = endByte[37]; + fpByte[17] = endByte[5]; + fpByte[18] = endByte[45]; + fpByte[19] = endByte[13]; + fpByte[20] = endByte[53]; + fpByte[21] = endByte[21]; + fpByte[22] = endByte[61]; + fpByte[23] = endByte[29]; + fpByte[24] = endByte[36]; + fpByte[25] = endByte[4]; + fpByte[26] = endByte[44]; + fpByte[27] = endByte[12]; + fpByte[28] = endByte[52]; + fpByte[29] = endByte[20]; + fpByte[30] = endByte[60]; + fpByte[31] = endByte[28]; + fpByte[32] = endByte[35]; + fpByte[33] = endByte[3]; + fpByte[34] = endByte[43]; + fpByte[35] = endByte[11]; + fpByte[36] = endByte[51]; + fpByte[37] = endByte[19]; + fpByte[38] = endByte[59]; + fpByte[39] = endByte[27]; + fpByte[40] = endByte[34]; + fpByte[41] = endByte[2]; + fpByte[42] = endByte[42]; + fpByte[43] = endByte[10]; + fpByte[44] = endByte[50]; + fpByte[45] = endByte[18]; + fpByte[46] = endByte[58]; + fpByte[47] = endByte[26]; + fpByte[48] = endByte[33]; + fpByte[49] = endByte[1]; + fpByte[50] = endByte[41]; + fpByte[51] = endByte[9]; + fpByte[52] = endByte[49]; + fpByte[53] = endByte[17]; + fpByte[54] = endByte[57]; + fpByte[55] = endByte[25]; + fpByte[56] = endByte[32]; + fpByte[57] = endByte[0]; + fpByte[58] = endByte[40]; + fpByte[59] = endByte[8]; + fpByte[60] = endByte[48]; + fpByte[61] = endByte[16]; + fpByte[62] = endByte[56]; + fpByte[63] = endByte[24]; + return fpByte; + } + + public static String getBoxBinary(int i) { + String binary = ""; + switch (i) { + case 0: + binary = "0000"; + break; + case 1: + binary = "0001"; + break; + case 2: + binary = "0010"; + break; + case 3: + binary = "0011"; + break; + case 4: + binary = "0100"; + break; + case 5: + binary = "0101"; + break; + case 6: + binary = "0110"; + break; + case 7: + binary = "0111"; + break; + case 8: + binary = "1000"; + break; + case 9: + binary = "1001"; + break; + case 10: + binary = "1010"; + break; + case 11: + binary = "1011"; + break; + case 12: + binary = "1100"; + break; + case 13: + binary = "1101"; + break; + case 14: + binary = "1110"; + break; + case 15: + binary = "1111"; + break; + } + return binary; + } + + /** + * 异或字符串生成算法 + * @Title generateKeys + * @param keyByte + * @author 陈杨 + * @date 2017年1月22日 下午16:32:19 + * @version V1.0 + */ + public static int[][] generateKeys(int[] keyByte) { + int[] key = new int[56]; + int[][] keys = new int[16][48]; + int[] loop = new int[] { 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 }; + for (int i = 0; i < 7; i++) { + for (int j = 0, k = 7; j < 8; j++, k--) { + key[i * 8 + j] = keyByte[8 * k + i]; + } + } + int i = 0; + for (i = 0; i < 16; i++) { + int tempLeft = 0; + int tempRight = 0; + for (int j = 0; j < loop[i]; j++) { + tempLeft = key[0]; + tempRight = key[28]; + for (int k = 0; k < 27; k++) { + key[k] = key[k + 1]; + key[28 + k] = key[29 + k]; + } + key[27] = tempLeft; + key[55] = tempRight; + } + int[] tempKey = new int[48]; + tempKey[0] = key[13]; + tempKey[1] = key[16]; + tempKey[2] = key[10]; + tempKey[3] = key[23]; + tempKey[4] = key[0]; + tempKey[5] = key[4]; + tempKey[6] = key[2]; + tempKey[7] = key[27]; + tempKey[8] = key[14]; + tempKey[9] = key[5]; + tempKey[10] = key[20]; + tempKey[11] = key[9]; + tempKey[12] = key[22]; + tempKey[13] = key[18]; + tempKey[14] = key[11]; + tempKey[15] = key[3]; + tempKey[16] = key[25]; + tempKey[17] = key[7]; + tempKey[18] = key[15]; + tempKey[19] = key[6]; + tempKey[20] = key[26]; + tempKey[21] = key[19]; + tempKey[22] = key[12]; + tempKey[23] = key[1]; + tempKey[24] = key[40]; + tempKey[25] = key[51]; + tempKey[26] = key[30]; + tempKey[27] = key[36]; + tempKey[28] = key[46]; + tempKey[29] = key[54]; + tempKey[30] = key[29]; + tempKey[31] = key[39]; + tempKey[32] = key[50]; + tempKey[33] = key[44]; + tempKey[34] = key[32]; + tempKey[35] = key[47]; + tempKey[36] = key[43]; + tempKey[37] = key[48]; + tempKey[38] = key[38]; + tempKey[39] = key[55]; + tempKey[40] = key[33]; + tempKey[41] = key[52]; + tempKey[42] = key[45]; + tempKey[43] = key[41]; + tempKey[44] = key[49]; + tempKey[45] = key[35]; + tempKey[46] = key[28]; + tempKey[47] = key[31]; + int m; + switch (i) { + case 0: + for (m = 0; m < 48; m++) { + keys[0][m] = tempKey[m]; + } + break; + case 1: + for (m = 0; m < 48; m++) { + keys[1][m] = tempKey[m]; + } + break; + case 2: + for (m = 0; m < 48; m++) { + keys[2][m] = tempKey[m]; + } + break; + case 3: + for (m = 0; m < 48; m++) { + keys[3][m] = tempKey[m]; + } + break; + case 4: + for (m = 0; m < 48; m++) { + keys[4][m] = tempKey[m]; + } + break; + case 5: + for (m = 0; m < 48; m++) { + keys[5][m] = tempKey[m]; + } + break; + case 6: + for (m = 0; m < 48; m++) { + keys[6][m] = tempKey[m]; + } + break; + case 7: + for (m = 0; m < 48; m++) { + keys[7][m] = tempKey[m]; + } + break; + case 8: + for (m = 0; m < 48; m++) { + keys[8][m] = tempKey[m]; + } + break; + case 9: + for (m = 0; m < 48; m++) { + keys[9][m] = tempKey[m]; + } + break; + case 10: + for (m = 0; m < 48; m++) { + keys[10][m] = tempKey[m]; + } + break; + case 11: + for (m = 0; m < 48; m++) { + keys[11][m] = tempKey[m]; + } + break; + case 12: + for (m = 0; m < 48; m++) { + keys[12][m] = tempKey[m]; + } + break; + case 13: + for (m = 0; m < 48; m++) { + keys[13][m] = tempKey[m]; + } + break; + case 14: + for (m = 0; m < 48; m++) { + keys[14][m] = tempKey[m]; + } + break; + case 15: + for (m = 0; m < 48; m++) { + keys[15][m] = tempKey[m]; + } + break; + } + } + return keys; + } + + /** + * 将数组各个元素的自然排序后拼接成一个用逗号分隔的字符串 + * @Title naturalOrdering + * @param arr + * @author 陈杨 + * @date 2017年1月22日 下午17:02:14 + * @version V1.0 + */ + public static String naturalOrdering(String[] strArray){ + String resultStr = ""; + if(strArray != null && strArray.length > 0){ + Arrays.sort(strArray); + for(int i=0;i init_map) { + super(init_map); + } + + public static void main(String[] args) { + Map map = new HashMap(); + map.put("cd_username", "");// + map.put("cd_pwd", "");// + map.put("cd_key", "");// + + Query_DX Qy = new Query_DX(map); + serviceAccept_DX OPtion = new serviceAccept_DX(map); + List list = new ArrayList<>(); + + list.add("141");// + + for (int i = 0; i <1 ; i++) { + System.out.println(Qy.queryOwe(list.get(i),"0")); + System.out.println(Qy.queryOwe(list.get(i),"1")); + } + } + + + /** + * 流量查询(当月)接口 + * @param access_number SIM ID + */ + public Map query(String access_number) { + Map rMap = null; + + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "queryTraffic"; + //请求参数 Json + Map params = null; + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_number); + params.put("needDtl", "0"); + + String[] arr = {access_number,user_id,password,method }; //加密数组,数组所需 + + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + // System.out.println(param_url); + String res = HttpUtil.get(param_url); + //System.out.println(res); + try { + rMap = XmlUtil.xmlToMap(res); + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.out.println(Config_name+" 电信[流量查询(当月)接口] 返回数据错误!"+res); + } + return rMap; + } + + + /** + * 套餐使用量批量查询接口 + * @param access_numbers SIM ID + */ + public Map querys(String access_numbers) { + Map rMap = null; + + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "queryPakagePlus"; + //请求参数 Json + Map params = null; + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_numbers); + params.put("monthDate", "20201001"); + + String[] arr = {user_id,password,method }; //加密数组,数组所需 + + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + //System.out.println(res); + try { + rMap = XmlUtil.xmlToMap(res); + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.err.print(Config_name+" 电信 [套餐使用量批量查询接口] 返回数据错误!"); + } + return rMap; + } + + + /** + * 流量查询(时间段)接口 + * @param access_numbers 149 短号 + * @param startDate 开始时间 + * @param endDate 结束时间 + * @param needDtl 是否需要明细 0:只返回总使用量,1:返回明细。建议使用0 + * @return + */ + public Map queryTrafficByDate(String access_numbers,String startDate,String endDate,String needDtl) { + Map rMap = null; + + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "queryTrafficByDate"; + //请求参数 Json + Map params = null; + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_numbers); + params.put("startDate", startDate); + params.put("endDate", endDate); + params.put("needDtl", needDtl); + + String[] arr = {access_numbers,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据iccid查询时加密数组里面传入iccid + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + + String param_url = UrlUtil.getUrl(api_url, params); + // System.out.println(param_url); + String res = HttpUtil.get(param_url); + // System.out.println(res); + try { + rMap = XmlUtil.xmlToMap(res); + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.err.print(Config_name+" 电信 [套餐使用量批量查询接口] 返回数据错误!"); + } + return rMap; + } + + + + /** + * 卡主状态查询接口 + * @param access_number 149 短号 + * @return + */ + public String queryCardMainStatus(String access_number) { + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "queryCardMainStatus"; + //请求参数 Json + Map params = null; + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_number); + String[] arr = {access_number,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档 + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + + return res; + } + + /** + * 机卡断开网状态查询 + * author: + * date:2021.05.21 + * @param access_number 149 短号 + * @return + */ + public String queryMainOnlineStatus(String access_number) { + // 拼接接口地址 + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "getOnlineStatus"; + //请求参数 Json + Map params = null; + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_number); + // params.put("queryDropCard", true);//若该字段存在且传值为true,则查询拆机状态,否则不查询拆机 + String[] arr = {access_number,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档 + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + //System.out.println(res); + return res; + } + + /** + * 机卡绑定状态查询 + * author: + * date:2021.05.24 + * @param imei 号 + * @return + */ + public String queryMainCardBIndStatus(String imei) { + // 拼接接口地址 + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "queryIMSI"; + //请求参数 Json + Map params = null; + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("imei", imei); + // params.put("queryDropCard", true);//若该字段存在且传值为true,则查询拆机状态,否则不查询拆机 + String[] arr = {imei,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档 + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + + return res; + } + + + + + + + + /** + * 实名状态查询接口 + * @param access_number 149 短号 + * @return + */ + public Map realNameQueryIot(String access_number) { + Map rMap = null; + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "realNameQueryIot"; + //请求参数 Json + Map params = null; + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_number); + // params.put("queryDropCard", true);//若该字段存在且传值为true,则查询拆机状态,否则不查询拆机 + String[] arr = {access_number,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据iccid查询时加密数组里面传入iccid + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + try { + rMap = XmlUtil.xmlToMap(res); + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.err.print(Config_name+" 电信 [实名状态查询接口] 返回数据错误!"); + } + return rMap; + } + + + /** + * 在线状态和会话信息查询接口 + * @param access_number + * @return + */ + public Map getOnlineStatus(String access_number) { + Map rMap = null; + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "getOnlineStatus"; + //请求参数 Json + Map params = null; + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_number); + // params.put("queryDropCard", true);//若该字段存在且传值为true,则查询拆机状态,否则不查询拆机 + String[] arr = {access_number,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据iccid查询时加密数组里面传入iccid + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + System.out.println(res); + return rMap; + } + + + + /** + * 基站粗定位接口 + * @param access_number + * @return + */ + public String getLocationByPhone(String access_number) { + Map rMap = null; + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "getLocationByPhone"; + //请求参数 Json + Map params = null; + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_number); + String[] arr = {access_number,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据iccid查询时加密数组里面传入iccid + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + System.out.println(res); + //解析响应密文 + String position= des.strDec(res,key1,key2,key3); //定位数据解密,调用DES解密函数 + return position; + } + + + + /** + * SIM卡列表查询接口 + * @param access_number + * @return + */ + public String getSIMList(String access_number) { + Map rMap = null; + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "getSIMList"; + //请求参数 Json + Map params = null; + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_number); + params.put("pageIndex", "1"); + + String[] arr = {user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档 + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + System.out.println(res); + //解析响应密文 + String position= des.strDec(res,key1,key2,key3); //定位数据解密,调用DES解密函数 + + return position; + } + + + + /** + * 前向流量池内各成员查询接口 + * @param access_number + * @return + */ + public String forwardFlowPoolMember(String access_number) { + Map rMap = null; + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "forwardFlowPoolMember"; + //请求参数 Json + Map params = null; + String pageIndex = "1"; + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_number); + params.put("pageIndex", pageIndex); + + String[] arr = {user_id,password,method, pageIndex,access_number }; //加密数组,数组所需参数根据对应的接口文档 + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + System.out.println(res); + //解析响应密文 + String position= des.strDec(res,key1,key2,key3); //定位数据解密,调用DES解密函数 + + return position; + } + + + + /** + * 接入号码查询接口 + * @param iccid + * @return + */ + public String getTelephone(String iccid) { + Map rMap = null; + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "getTelephone"; + //请求参数 Json + Map params = null; + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("iccid", iccid); + + String[] arr = {iccid,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据imsi查询时加密数组传入imsi + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + // System.out.println(res); + //解析响应密文 + String position= des.strDec(res,key1,key2,key3); //定位数据解密,调用DES解密函数 + + return position; + } + + + + + + + + + + + /** + * 套餐使用量查询接口 + * @param iccid + * @return + */ + public String queryPakage(String iccid) { + String api_url = server_Ip + "/m2m_ec/query.do"; + String method = "queryPakage"; + //请求参数 Json + Map params = null; + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("iccid", iccid); + + String[] arr = {iccid,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据imsi查询时加密数组传入imsi + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + //解析响应密文 + String position = res; //定位数据解密,调用DES解密函数 + try { + position = JSON.toJSONString(XmlUtil.xmlToMap(res)); + } catch (Exception e) { + System.err.println(Config_name+" 电信CMP [套餐使用量查询接口 接口] 返回结果异常 "+res+" e "+e.getMessage()); + } + return position; + } + + + + + + /** + * 余额查询接口 + * @param iccid + * @return + */ + public String queryBalance(String iccid) { + String api_url = server_Ip + "/m2m_ec/query.do"; + String method = "queryBalance"; + //请求参数 Json + Map params = null; + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("iccid", iccid); + + String[] arr = {iccid,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据imsi查询时加密数组传入imsi + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + //解析响应密文 + String position = res; //定位数据解密,调用DES解密函数 + try { + position = JSON.toJSONString(XmlUtil.xmlToMap(res)); + } catch (Exception e) { + System.err.println(Config_name+" 电信CMP [余额查询接口 接口] 返回结果异常 "+res+" e "+e.getMessage()); + } + return position; + } + + + + + + + + + /** + * 流量池列表查询接口 + * @return + */ + public String getPoolList() { + String api_url = server_Ip + "/m2m_ec/query.do"; + String method = "getPoolList"; + //请求参数 Json + Map params = null; + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + + String[] arr = {user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据imsi查询时加密数组传入imsi + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + //解析响应密文 + String position = res; //定位数据解密,调用DES解密函数 + try { + position = JSON.toJSONString(XmlUtil.xmlToMap(res)); + } catch (Exception e) { + System.err.println(Config_name+" 电信CMP [流量池列表查询接口 接口] 返回结果异常 "+res+" e "+e.getMessage()); + } + return position; + } + + + + + + /** + * 产品资料查询接口 + * @return + */ + public String prodInstQuery(String iccid) { + String api_url = server_Ip + "/m2m_ec/query.do"; + String method = "prodInstQuery"; + //请求参数 Json + Map params = null; + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", iccid); + + String[] arr = {iccid,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据imsi查询时加密数组传入imsi + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + //解析响应密文 + String position = res; //定位数据解密,调用DES解密函数 + try { + position = JSON.toJSONString(XmlUtil.xmlToMap(res)); + } catch (Exception e) { + System.err.println(Config_name+" 电信CMP [产品资料查询接口 接口] 返回结果异常 "+res+" e "+e.getMessage()); + } + return position; + } + + + + + + + + /** + * 欠费查询接口 + * @return + */ + public String queryOwe(String iccid,String Query_Flag) { + String api_url = server_Ip + "/m2m_ec/query.do"; + String method = "queryOwe"; + //请求参数 Json + Map params = null; + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", iccid); + params.put("Query_Flag", Query_Flag); + + String[] arr = {iccid,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档 + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + //解析响应密文 + String position = res; //定位数据解密,调用DES解密函数 + try { + position = JSON.toJSONString(XmlUtil.xmlToMap(res)); + } catch (Exception e) { + System.err.println(Config_name+" 电信CMP [欠费查询接口 接口] 返回结果异常 "+res+" e "+e.getMessage()); + } + return position; + } + + + + + + + + + + + + + + + + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP/change/serviceAccept_DX.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP/change/serviceAccept_DX.java new file mode 100644 index 0000000..6d4f238 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP/change/serviceAccept_DX.java @@ -0,0 +1,375 @@ +package com.yunze.apiCommon.upstreamAPI.DianXinCMP.change; + + + +import com.yunze.apiCommon.upstreamAPI.DianXinCMP.DX_CMP_Api; +import com.yunze.apiCommon.upstreamAPI.DianXinCMP.DesUtils; +import com.yunze.apiCommon.utils.CommonlyUsed; +import com.yunze.apiCommon.utils.HttpUtil; +import com.yunze.apiCommon.utils.UrlUtil; +import com.yunze.apiCommon.utils.XmlUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class serviceAccept_DX extends DX_CMP_Api { + + + public serviceAccept_DX(Map init_map) { + super(init_map); + } + + + + + /** + * 判断 在限速 标准 中 + * @param speedValue + * @return bool = true 在标准中 + */ + public Map speedValue_set(String speedValue){ + boolean bool = false; + Map map = new HashMap(); + List rule = new ArrayList(); + rule.add("10");rule.add("11");rule.add("12");rule.add("13");rule.add("14"); + rule.add("15");rule.add("16");rule.add("17");rule.add("18");rule.add("19"); + rule.add("20");rule.add("21");rule.add("23");rule.add("24");rule.add("25"); + rule.add("26");rule.add("27");rule.add("28");rule.add("29");rule.add("30"); + rule.add("31");rule.add("32");rule.add("33"); + if(speedValue.equals("0")){ + speedValue = "31";//不限制 + }else if(speedValue.equals("1")){ + speedValue = "12";//1Mbps + } + bool = CommonlyUsed.Val_Is_Arr(rule,speedValue);//判断 传入 类型是否在 已有 标准中 + map.put("speedValue",speedValue); + map.put("bool",bool); + return map; + } + + + + + /** + * 自主限速接口 + * @param access_number + * @param speedValue + * 限速带宽速率: + * 10 1Kbps + * 11 512Kbps + * 12 1Mbps + * 13 3Mbps + * 14 5Mbps + * 15 7Mbps + * 16 10Mbps + * 17 20Mbps + * 18 30Mbps + * 19 40Mbps + * 20 50Mbps + * 21 60Mbps + * 22 70Mbps + * 23 80Mbps + * 24 90Mbps + * 25 100Mbps + * 26 110Mbps + * 27 120Mbps + * 28 130Mbps + * 29 140Mbps + * 30 150Mbps + * 31 不限制 + * 32 64Kbps + * 33 256Kbps + * @param action action=ADD,表示设置上网速率;action=DEL,表示退订自主限速(此场景speedValue传固定值10) + * @return + */ + public String speedLimitAction(String access_number,String speedValue,String action) { + ////System.out.println("action "+action); + + // 拼接接口地址 /m2m_ec/app/serviceAccept.do + String api_url = server_Ip + "/m2m_ec/app/serviceAccept.do"; + // speedLimitAction + String method = "speedLimitAction"; + //请求参数 Json + Map params = null; + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("access_number", access_number); + params.put("speedValue", speedValue);// 速率 + params.put("action", action); + params.put("user_id", user_id); + // + String[] arr = {access_number,user_id,password,method,speedValue,action }; //加密数组,数组所需 + + //key1,key2,key2为电信提供的9位长接口密钥平均分为三段所形成 + + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("passWord", passWord); + params.put("sign", sign); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + return res; + } + + + + /** + * 达量断网 接口 + * @param access_number 物联网接入号(149或10649号段 + * @param quota 断网阈值设置为1024M + * @param action 新增达量断网功能时action为1,如果已经添加了达量断网功能,需要修改断网阈值,则action设置为2,取消达量断网功能,action设置为3 + * @return + */ + public Map offNetAction(String access_number,String quota,String action) { + Map rMap = null; + + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "offNetAction"; + //请求参数 Json + Map params = null; + + String type = "1"; //设置为1表示用户总使用量,设置为2表示超出套餐外 + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_number); + params.put("action", action); + params.put("type", type); + params.put("quota", quota); + + String[] arr = {access_number,user_id,password,action,quota,type,method}; //加密数组,数组所需参数根据对应的接口文档 + + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + + ////System.out.println(params.toString()); + ////System.out.println(UrlUtil.getUrl(api_url, params)); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + ////System.out.println(res); + try { + rMap = XmlUtil.xmlToMap(res); + } catch (Exception e) { + System.err.println(Config_name+" 电信 [达量断网 接口] 返回结果异常"); + } + return rMap; + } + + /** + * 单独添加/恢复断网接口 + * @param access_number + * @param action + * @return + */ + public Map singleCutNet(String access_number,String action) { + Map rMap = null; + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "singleCutNet"; + //请求参数 Json + Map params = null; + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_number); + params.put("action", action); //单独添加断网时action为ADD,单独恢复上网时为DEL + + + String[] arr = {access_number,user_id,password,action,method}; //加密数组,数组所需 + + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + ////System.out.println(res); + if(res.indexOf("流水号")==-1 && res.length()>50) { + try { + rMap = XmlUtil.xmlToMap(res); + } catch (Exception e) { + System.err.println(Config_name+" 电信 [单独添加/恢复断网接口] 返回结果异常"); + } + }else { + rMap = new HashMap<>(); + rMap.put("rspcode", res.substring(0,2)); + rMap.put("rspdesc", res.substring(2,res.length())); + } + + return rMap; + } + + + /** + * 停机保号/复机/测试期去激活 + * + * @param access_number SIM ID + */ + public Map disabledNumber(String access_number,String orderTypeId) { + Map rMap = null; + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "disabledNumber"; + //请求参数 Json + Map params = null; + String acctCd = "";//固定字段,保持为空 + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", user_id); + params.put("access_number", access_number); + params.put("acctCd", acctCd); + params.put("orderTypeId", orderTypeId); //19表示停机保号,20表示停机保号后复机,21表示测试期去激活,22表示测试期去激活后回到测试激活 + + String[] arr = {access_number,user_id,password,method, acctCd, orderTypeId }; //加密数组,数组所需参数根据对应的接口文档 + + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + //System.out.println(param_url); + String res = HttpUtil.get(param_url); + System.out.println(res); + + if(res.indexOf("流水号")==-1 && res.length()>50) { + try { + rMap = XmlUtil.xmlToMap(res); + } catch (Exception e) { + System.err.println(Config_name+" 电信 [单独添加/恢复断网接口] 返回结果异常"); + } + }else { + rMap = new HashMap<>(); + rMap.put("rspcode", res.substring(0,2)); + rMap.put("rspdesc", res.substring(2,res.length())); + } + + return rMap; + } + + + public static void main(String[] args) { + Map init_map=new HashMap<>(); + serviceAccept_DX serviceAccept_dx=new serviceAccept_DX(init_map); + //serviceAccept_dx. + + } + + public Map xxx(String access_number) { + Map rMap = null; + // 拼接接口地址 /m2m_ec/query.do + String api_url = "http://api.ct10649.com:9001/m2m_ec/query.do"; + // + String method = "queryBindDetection"; + //请求参数 Json + Map params = null; + String acctCd = "";//固定字段,保持为空 + + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// speedLimitAction (固定值) 方法名 + params.put("user_id", "hzsjdxxkjyxgs");//user_id + params.put("access_number", access_number); + params.put("acctCd", acctCd); + //params.put("orderTypeId", orderTypeId); //19表示停机保号,20表示停机保号后复机,21表示测试期去激活,22表示测试期去激活后回到测试激活 + + String[] arr = {access_number,"//user_id","TmW7063M3dV0S39b",method, acctCd }; //加密数组,数组所需参数根据对应的接口文档 + + DesUtils des = new DesUtils(); //DES加密工具类实例化 + //Ft337yA59 + String passWord = des.strEnc("TmW7063M3dV0S39b","Ft3","37y","A59"); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),"Ft3","37y","A59"); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + //System.out.println(res); + if(res.indexOf("流水号")==-1 && res.length()>50) { + try { + rMap = XmlUtil.xmlToMap(res); + } catch (Exception e) { + System.err.println(" 电信 [单独添加/恢复断网接口] 返回结果异常"); + } + }else { + rMap = new HashMap<>(); + rMap.put("rspcode", res.substring(0,2)); + rMap.put("rspdesc", res.substring(2,res.length())); + } + + return rMap; + } + + + /** + * 机卡重绑 + * @param access_number + * @param bind_type + * @param imei + * @return + * {"Response":{"RspType":"1","RspCode":"-5","RspDesc":"业务校验失败(单卡本月调用次数已超过限定次数!)"},"GROUP_TRANSACTIONID":"1000000168"} + * {"Response":{"RspType":"0","RspCode":"0000","RspDesc":"成功接收消息"},"GROUP_TRANSACTIONID":"1000000168"} + */ + public String IMEIReRecord(String access_number,String bind_type,String imei) { + Map rMap = null; + + // 拼接接口地址 /m2m_ec/query.do + String api_url = server_Ip + "/m2m_ec/query.do"; + // + String method = "IMEIReRecord"; + //请求参数 Json + Map params = null; + + String action = "ADD"; //固定值 + // 拼接请求参数 + params = new HashMap(); + params.put("method", method);// + params.put("user_id", user_id); + params.put("access_number", access_number); + params.put("action", action); + params.put("bind_type", bind_type);//不填,表示普通机卡重绑 填写2,表示固定机卡重绑 + if(bind_type.equals("2")){ + params.put("imei", imei);//只有在bind_typ=2时才需传入,表示固定绑定到该设备号 + } + + String[] arr = {access_number ,user_id,password,method,action}; //加密数组,数组所需参数根据对应的接口文档 + + DesUtils des = new DesUtils(); //DES加密工具类实例化 + String passWord = des.strEnc(password,key1,key2,key3); //密码加密 + String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值 + + params.put("sign", sign); + params.put("passWord", passWord); + + String param_url = UrlUtil.getUrl(api_url, params); + String res = HttpUtil.get(param_url); + //System.out.println(res); + return res; + } + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP5G/DianXin_DCP5G_Api.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP5G/DianXin_DCP5G_Api.java new file mode 100644 index 0000000..44fe76e --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP5G/DianXin_DCP5G_Api.java @@ -0,0 +1,69 @@ +package com.yunze.apiCommon.upstreamAPI.DianXinCMP5G; + + +import java.util.*; + +/** + * 电信CMP5G API 接口 + */ +public class DianXin_DCP5G_Api { + + + + //构造赋值 + public DianXin_DCP5G_Api(Map init_map){ + + appKey = init_map.get("cd_username").toString(); + secretKey = init_map.get("cd_pwd").toString(); + timestamp = SignUtil.getCurTimestamp(); + + //请求头部参数 + headers = new HashMap(); + headers.put("Content-Type", "application/json"); + headers.put("AppKey", appKey); + headers.put("Timestamp", timestamp); + + + } + // 服务器请求地址 https://cmp-api.ctwing.cn:20164 + protected static String server_Ip = "https://cmp-api.ctwing.cn:20164"; + // 用户登录名称 + public static String appKey = null; + + public static String secretKey = null; + + public static Map headers = null; + + public static String timestamp = null; + // 配置调用的名称 + protected static String Config_name = ""; + + + + public static String getSign(Map map) { + List list=new ArrayList<>(map.keySet()); + Collections.sort(list); + StringBuffer sb=new StringBuffer(); + for(int i=0;i init_map) { + super(init_map); + } + + public static void main(String[] args) { + Map map = new HashMap(); + map.put("cd_username", "");// + map.put("cd_pwd", "");// + + Query_DX5G Qy = new Query_DX5G(map); + + ServiceAccept_DX5G Sr = new ServiceAccept_DX5G(map); + + List list = new ArrayList<>(); + + list.add("1410");// + for (int i = 0; i <1 ; i++) { + System.out.println(Qy.getOnlineStatus(list.get(i))); + } + } + + + /** + * 流量查询(当月)接口 + */ + public Map queryTraffic(String access_number,String needDtl) { + Map rMap = null; + String res = null; + // 拼接接口地址 + String Config_name = "/api/v1/openbill/queryTraffic"; + String api_url = server_Ip +Config_name; + Map params = new HashMap(); + params.put("access_number", access_number);// + params.put("needDtl", needDtl); + getSign(params); //生成sign加密值 + String param_url = UrlUtil.getUrl(api_url, params,true); + try { + res = HttpUtil.get(param_url,headers); + rMap = XmlUtil.xmlToMap(res); + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.out.println(Config_name+" 返回数据错误!"+res); + } + return rMap; + } + + + + /** + * 在线状态和会话信息查询 + */ + public Map getOnlineStatus(String access_number) { + Map rMap = null; + String res = null; + // 拼接接口地址 + String Config_name = "/openapi/v1/prodinst/getOnlineStatus"; + String api_url = server_Ip +Config_name; + Map params = new HashMap(); + params.put("access_number", access_number);// + getSign(params); //生成sign加密值 + String param_url = UrlUtil.getUrl(api_url, params,true); + try { + res = HttpUtil.get(param_url,headers); + rMap = JSON.parseObject(res); + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.out.println(Config_name+" 返回数据错误!"+res); + } + return rMap; + } + + + + + + + + + + /** + * 产品资料查询 + */ + public Map prodInstQuery(String access_number) { + Map rMap = null; + String res = null; + // 拼接接口地址 + String Config_name = "/openapi/v1/prodinst/prodInstQuery"; + String api_url = server_Ip +Config_name; + Map params = new HashMap(); + params.put("access_number", access_number);// + getSign(params); //生成sign加密值 + String param_url = UrlUtil.getUrl(api_url, params,true); + try { + res = HttpUtil.get(param_url,headers); + rMap = XmlUtil.xmlToMap(res);; + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.out.println(Config_name+" 返回数据错误!"+res); + } + return rMap; + } + + + + + /** + * 已订购产品查询 + */ + public Map qryProdInstInfo(String access_number) { + Map rMap = null; + String res = null; + // 拼接接口地址 + String Config_name = "/api/v1/prod/qryProdInstInfo/"+access_number; + String api_url = server_Ip +Config_name; + Map params = new HashMap(); + params.put("access_number", access_number);// + getSign(params); //生成sign加密值 + String param_url = UrlUtil.getUrl(api_url, params,true); + try { + res = HttpUtil.get(param_url,headers); + rMap = JSON.parseObject(res); + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.out.println(Config_name+" 返回数据错误!"+res); + } + return rMap; + } + + + + + + + /** + * 查询 SIM 卡主状态及从状态 + */ + public Map queryCardMainStatus(String access_number,String queryDropCard) { + Map rMap = null; + String res = null; + queryDropCard = queryDropCard!=null?queryDropCard:"false"; + // 拼接接口地址 + String Config_name = "/openapi/v1/prodinst/queryCardMainStatus"; + String api_url = server_Ip +Config_name; + Map params = new HashMap(); + params.put("access_number", access_number);// + params.put("queryDropCard", queryDropCard);//是否需要查询拆机状态,若该字段存在且传值为 true,则查询拆机状态,否则不查询 拆机 + + getSign(params); //生成sign加密值 + String param_url = UrlUtil.getUrl(api_url, params,true); + try { + res = HttpUtil.get(param_url,headers); + rMap = JSON.parseObject(res); + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.out.println(Config_name+" 返回数据错误!"+res); + } + return rMap; + } + + + + /** + * 2.3.4. CTIOT_5GCMP_LC005-卡变更状态记录查询 + */ + public Map cradStatus(String access_number,String page,String size) { + Map rMap = null; + String res = null; + page = page!=null?page:"1"; + size = size!=null?size:"6"; + // 拼接接口地址 + String Config_name = "/openapi/v1/prodinst/cradStatus"; + String api_url = server_Ip +Config_name; + Map params = new HashMap(); + params.put("access_number", access_number);// + params.put("page", page);// + params.put("size", size);// + + getSign(params); //生成sign加密值 + String param_url = UrlUtil.getUrl(api_url, params,true); + try { + res = HttpUtil.get(param_url,headers); + rMap = JSON.parseObject(res); + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.out.println(Config_name+" 返回数据错误!"+res); + } + return rMap; + } + + + + + /** + * 2.1.8. CTIOT_5GCMP_BQ008-实名状态查询 + */ + public Map realNameQueryIot(String access_number) { + Map rMap = null; + String res = null; + // 拼接接口地址 + String Config_name = "/openapi/v1/prodinst/realNameQueryIot"; + String api_url = server_Ip +Config_name; + Map params = new HashMap(); + params.put("access_number", access_number);// + getSign(params); //生成sign加密值 + String param_url = UrlUtil.getUrl(api_url, params,true); + try { + res = HttpUtil.get(param_url,headers); + rMap = XmlUtil.xmlToMap(res);; + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.out.println(Config_name+" 返回数据错误!"+res); + } + return rMap; + } + + + + + /** + * 2.2.11. CTIOT_5GCMP_PM011-前向流量池成员查询 + */ + public Map forwardFlowPoolMember(String access_number,String pageIndex) { + Map rMap = null; + String res = null; + pageIndex = pageIndex!=null?pageIndex:"1"; + // 拼接接口地址 + String Config_name = "/openapi/v1/flowpool/forwardFlowPoolMember"; + String api_url = server_Ip +Config_name; + Map params = new HashMap(); + params.put("access_number", access_number);// + params.put("pageIndex", pageIndex);// + + getSign(params); //生成sign加密值 + String param_url = UrlUtil.getUrl(api_url, params,true); + try { + res = HttpUtil.get(param_url,headers); + rMap = JSON.parseObject(res); + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.out.println(Config_name+" 返回数据错误!"+res); + } + return rMap; + } + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP5G/SignUtil.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP5G/SignUtil.java new file mode 100644 index 0000000..c7fb7ac --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP5G/SignUtil.java @@ -0,0 +1,83 @@ +package com.yunze.apiCommon.upstreamAPI.DianXinCMP5G; + +import java.security.MessageDigest; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @Auther: zhang feng + * @Date: 2022/05/25/10:02 + * @Description: + */ +public class SignUtil { + public static final String ENCODE = "UTF-8"; + private static final String MD5_ALGORITHM = "MD5"; + public static final String DATE_FORMAT_PATTERN ="yyyyMMddHHmmss"; + public static String getCurTimestamp() { + long timestamp = System.currentTimeMillis(); + Date date = new Date(timestamp); + SimpleDateFormat dateFormat = new + SimpleDateFormat(DATE_FORMAT_PATTERN, Locale.US); + dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); + return dateFormat.format(date); + } + public static String signMD5(String reqStr) throws Exception { + char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; + byte[] btInput = reqStr.getBytes(); + MessageDigest mdInst = MessageDigest.getInstance(MD5_ALGORITHM); + mdInst.update(btInput); + byte[] md = mdInst.digest(); + int j = md.length; + char[] str = new char[j * 2]; + int k = 0; + + for (byte byte0 : md) { + str[k++] = hexDigits[byte0 >>> 4 & 0xf]; + str[k++] = hexDigits[byte0 & 0xf]; + } + return bytesToHexString(new + String(str).getBytes(ENCODE)).toUpperCase(Locale.US); + } + public static String bytesToHexString(byte[] b) { + StringBuilder sb = new StringBuilder(); + for (byte value : b) { + String hex = Integer.toHexString(value & 0xFF); + if (hex.length() == 1) { + hex = '0' + hex; + } + sb.append(hex); + } + return sb.toString(); + } + public static String order(String params) throws Exception { + Map map = new HashMap<>(); + try { + String[] kvs = params.split("&"); + for (String kv :kvs) { + String[] kav = kv.split("="); + map.put(kav[0], kav[1]); + } + } catch (Exception e) { + throw new Exception("URL 参数不规范"); + } + List tmp = new ArrayList<>(); + List> infoIds = new ArrayList<>(map.entrySet()); + infoIds.sort(Map.Entry.comparingByKey()); + for (Map.Entry item :infoIds) { + tmp.add(item.getKey() + "=" + item.getValue()); + } + return String.join("&", tmp); + } + public static void main(String[] args) throws Exception { + String paramStr = "a=1&c=3&b=2"; + String bodyStr = "{\"name\":\"xf\",\"age\":\"dd\"}"; + paramStr = order(paramStr); + long timestamp = System.currentTimeMillis(); + String reqStr = paramStr + bodyStr ; + String secretKey = "d1209cfefe895364e03"; + String Sign = signMD5(reqStr + secretKey + timestamp); + System.out.println(Sign); + } + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP5G/change/ServiceAccept_DX5G.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP5G/change/ServiceAccept_DX5G.java new file mode 100644 index 0000000..5b9d8f6 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinCMP5G/change/ServiceAccept_DX5G.java @@ -0,0 +1,99 @@ +package com.yunze.apiCommon.upstreamAPI.DianXinCMP5G.change; + + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.upstreamAPI.DianXinCMP5G.DianXin_DCP5G_Api; +import com.yunze.apiCommon.utils.HttpUtil; +import com.yunze.apiCommon.utils.UrlUtil; +import com.yunze.apiCommon.utils.XmlUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.logging.Logger; + +/** + * 查询类接口 + */ +public class ServiceAccept_DX5G extends DianXin_DCP5G_Api { + + + public ServiceAccept_DX5G(Map init_map) { + super(init_map); + } + + /** + * 2.3.2. CTIOT_5GCMP_LC002- 停机保号相关 + * @param access_number + * @param orderTypeId 停机保号类型: + * 19表示停机保号 + * 20表示停机保号复机 + * 21表示去激活停机 + * 22 表示去激活复机 + * @return + */ + public Map disabledNumberService(String access_number, String orderTypeId) { + Map rMap = null; + String res = null; + // 拼接接口地址 + String Config_name = "/5gcmp/openapi/v1/common/disabledNumberService"; + String api_url = server_Ip +Config_name; + Map params = new HashMap(); + params.put("access_number", access_number);// + params.put("acctCd", "");//文档中没有 ,请求示例中有 不传入会报错! + params.put("orderTypeId", orderTypeId); + getSign(params); //生成sign加密值 + String param_url = UrlUtil.getUrl(api_url, params,true); + try { + res = HttpUtil.get(param_url,headers); + System.out.println(res); + rMap = XmlUtil.xmlToMap(res); + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.out.println(Config_name+" 返回数据错误!"+res); + } + return rMap; + } + + + + + /** + * 2.7.2. CTIOT_5GCMP_MAPN002- APN 上网功能启用、停止操作 + * @param access_number + * @param action : + * 执行动作 + * action=ADD,表示此 APN 可以上网; + * action=DEL,表示此APN 不可以上网; + * @return + */ + public Map apnNetStatusAction(String access_number, String action) { + Map rMap = null; + String res = null; + // 拼接接口地址 + String Config_name = "/openapi/v1/subscribers/apnNetStatusAction"; + String api_url = server_Ip +Config_name; + Map params = new HashMap(); + params.put("access_number", access_number);// + params.put("action", action); + getSign(params); //生成sign加密值 + String param_url = UrlUtil.getUrl(api_url, params,true); + try { + res = HttpUtil.get(param_url,headers); + System.out.println(res); + rMap = JSON.parseObject(res); + } catch (Exception e) { + rMap = new HashMap<>(); + rMap.put("error",res); + System.out.println(Config_name+" 返回数据错误!"+res); + } + return rMap; + } + + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/DCPLoginUtil.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/DCPLoginUtil.java new file mode 100644 index 0000000..d323485 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/DCPLoginUtil.java @@ -0,0 +1,148 @@ +package com.yunze.apiCommon.upstreamAPI.DianXinDCP; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import org.apache.http.HttpEntity; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.json.XML; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import javax.net.ssl.HttpsURLConnection; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStreamWriter; +import java.net.*; +import java.util.concurrent.TimeUnit; + +@Component +public class DCPLoginUtil { + + private static String urls = "https://si.global.ct10649.com/api/dcpsiapi/login"; + + @Resource + private RedisTemplate redisTemplate; + + public String getToken(String username,String password){ + CloseableHttpClient closeableHttpClient=null; + CloseableHttpResponse closeableHttpResponse=null; + + try { + closeableHttpClient= HttpClientBuilder.create().build(); + HttpPost httpPost=new HttpPost(); + httpPost.setURI(new URI(urls)); + httpPost.setHeader("Content-Type","application/json;charset=utf-8"); + + JSONObject jsonObject=new JSONObject(); + jsonObject.put("username", username); + jsonObject.put("password",password); + + StringEntity param=new StringEntity(jsonObject.toJSONString(),"utf-8"); + httpPost.setEntity(param); + + closeableHttpResponse=closeableHttpClient.execute(httpPost); + HttpEntity httpEntity=closeableHttpResponse.getEntity(); + String enstr= EntityUtils.toString(httpEntity,"utf-8"); + JSONObject data= JSON.parseObject(enstr); + System.out.println(data); + String token=data.getJSONObject("data").getString("token"); + + //保存到redis + redisTemplate.opsForValue().set("dcp_token",token,10, TimeUnit.MINUTES); + return token; + } catch (URISyntaxException e) { + e.printStackTrace(); + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + }finally { + try { + if(null!=closeableHttpClient){ + closeableHttpClient.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + try { + if(null!=closeableHttpResponse){ + closeableHttpResponse.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return null; + } + + public HttpURLConnection createConnection(URI uri) throws IOException { + URL url = uri.toURL(); + URLConnection connection = url.openConnection(); + HttpsURLConnection httpsURLConnection = (HttpsURLConnection) connection; + // httpsURLConnection.setSSLSocketFactory(new TLSSocketConnec()); + return httpsURLConnection; + } + + public static org.json.JSONObject httpSoap(String soap_url , String xml) { + DCPLoginUtil httpsUrlConnectionMessageSender = new DCPLoginUtil(); + HttpURLConnection connection; + try { + connection = httpsUrlConnectionMessageSender.createConnection(new URI(soap_url )); + connection.setDoOutput(true); + connection.setDoInput(true); + connection.setRequestMethod("POST"); + connection.setUseCaches(false); + connection.setInstanceFollowRedirects(true); + connection.setRequestProperty("Content-Type", "text/xml;charset=UTF-8"); + + connection.connect(); + //POST请求 + OutputStreamWriter os = null; + String json=""; + os = new OutputStreamWriter(connection.getOutputStream()); + os.write(xml); + os.flush(); + json=getResponse(connection); + + org.json.JSONObject jsons=XML.toJSONObject(json); + + if (connection != null) { + connection.disconnect(); + return jsons; + } + } catch (IOException e) { + e.printStackTrace(); + } catch (URISyntaxException e) { + e.printStackTrace(); + } + return null; + } + + public static String getResponse(HttpURLConnection Conn) throws IOException { + InputStream is; + if (Conn.getResponseCode() >= 400) { + is = Conn.getErrorStream(); + } else { + is = Conn.getInputStream(); + } + + + String response = ""; + byte buff[] = new byte[512]; + int b = 0; + while ((b = is.read(buff, 0, buff.length)) != -1) { + response += new String(buff, 0, b); + + } + is.close(); + return response; + } + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/DcpDxService.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/DcpDxService.java new file mode 100644 index 0000000..2f36526 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/DcpDxService.java @@ -0,0 +1,736 @@ +package com.yunze.apiCommon.upstreamAPI.DianXinDCP; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import javax.net.ssl.HttpsURLConnection; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; +import java.nio.charset.Charset; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 查询类接口 + */ +@Component +public class DcpDxService { + + //接口 + private static String soap_url = "https://global.ct10649.com/dcpapi/SubscriptionManagement?WSDL="; + + @Resource + private DCPLoginUtil dcpLoginUtil; + @Resource + private RedisTemplate redisTemplate; + + public static void main(String[] args) { + + Map map = new HashMap(); + map.put("cd_username", ""); + map.put("cd_pwd",""); + map.put("cd_key", ""); + + DcpDxService ds = new DcpDxService(); + + System.out.println(ds.changeCardStatus("8986","3",map)); + + + } + + + + /** + * auther: + * return: + * 描述: 更新限速 + * 上行速率:1 1kbps + * 2 64kbps + * 3 128kbps + * 4 512kbps + * 5 1Mbps + * 6 3Mbps + * 7 5Mbps + * 8 7Mbps + * 9 10Mbps + * 10 20Mbps + * 11 30Mbps + * 12 40Mbps + * 13 50Mbps + * 14 60Mbps + * 15 70Mbps + * 下行速率: + * 16 80Mbps + * 17 90Mbps + * 18 100Mbps + * 19 110Mbps + * 20 120Mbps + * 21 130Mbps + * 22 140Mbps + * 23 150Mbps + */ + public Map changeLimit(String tel, + String upValue,String dwValue,Map infoMap){ + JSONObject jsonMap = new JSONObject(); + JSONObject json = new JSONObject(); + jsonMap.put("state", "false"); + jsonMap.put("info", "api调用失败"); + jsonMap.put("data","0"); + try { + //获取流量地址 + String url = "https://si.global.ct10649.com/api/dcpsiapi/ue/ambr/update"; + json.put("msisdn", tel); + json.put("UE_AMBR_UL", upValue); + json.put("UE_AMBR_DL", dwValue); + String js = getDocking(url,json,infoMap); + + JSONObject jsonObject= JSONObject.parseObject(js); + Object data = jsonObject.get("msg"); + if(data.toString().equals("success")){ + jsonMap.put("state", "true"); + jsonMap.put("info", "成功"); + jsonMap.put("data",data); + } + + } catch (Exception e) { + e.printStackTrace(); + } + //System.out.println(jsonMap); + return jsonMap; + } + + /** + * return: + * 描述: 查询是否限速 + */ + public Map queryLimit(String tel,Map infoMap){ + JSONObject jsonMap = new JSONObject(); + JSONObject json = new JSONObject(); + jsonMap.put("state", "false"); + jsonMap.put("info", "api调用失败"); + jsonMap.put("data","0"); + try { + //获取流量地址 + String url = "https://si.global.ct10649.com/api/dcpsiapi/ue/" + + "ambr/query?msisdn="+tel; + String js = doGet(url,infoMap); + + JSONObject jsonObject= JSONObject.parseObject(js); + Object code = jsonObject.get("status"); + Object data = jsonObject.get("data"); + if(code.toString().equals("200")){ + jsonMap.put("state", "true"); + jsonMap.put("info", "成功"); + jsonMap.put("data",data); + } + } catch (Exception e) { + e.printStackTrace(); + } + //System.out.println(jsonMap); + return jsonMap; + } + + /** + * return: + * 描述: 查询实名 + */ + public Map queryAuth(String iccid,String tel,Map infoMap){ + JSONObject jsonMap = new JSONObject(); + jsonMap.put("state", "false"); + jsonMap.put("info", "api调用失败"); + jsonMap.put("data","0"); + try { + //获取流量地址 + String url = "https://si.global.ct10649.com/api/dcpsiapi/ct" + + "/subscriptionQuery?iccid="+iccid+"&msisdn="+tel+"&isAuth=1"; + jsonMap.put("iccid",iccid); + jsonMap.put("msisdn",tel); + jsonMap.put("isAuth","1"); + String js = doGet(url, infoMap); + + JSONObject jsonObject= JSONObject.parseObject(js); + Object code = jsonObject.get("status"); + Object data = jsonObject.get("data"); + if(code.toString().equals("200")){ + jsonMap.put("state", "true"); + jsonMap.put("info", "成功"); + jsonMap.put("data",data); + } + } catch (Exception e) { + e.printStackTrace(); + } + //System.out.println(jsonMap); + return jsonMap; + } + + + + + + + /** + * return: + * 描述: 流量查询 + */ + public Map queryFlow(String tel,Map infoMap){ + JSONObject jsonMap = new JSONObject(); + JSONObject jsonMaps = new JSONObject(); + jsonMap.put("state", "false"); + jsonMap.put("info", "api调用失败"); + jsonMap.put("data","0"); + + String sjyyyy = getMonthLastDayyyyy(0); //获取本年 + String sjmm = getMonthLastDaymm(0); //获取本月 + String sjdd = getMonthLastDaydd(); //获取本日 + + try { + //获取流量地址 + String url = "https://si.global.ct10649.com/api/dcpsiapi/iccid/"+tel+"/trafficUsageHistory"; + String month = sjyyyy+"-"+sjmm; + JSONArray jsonArray = new JSONArray(); + jsonArray.add("ALL"); + //j String[] strs = new String[]{"GPRS"}; + jsonMaps.put("type",jsonArray); + // jsonMaps.put("type",strs); + jsonMaps.put("month", month); //年月份 + jsonMaps.put("from_date", "01"); //开始日 + jsonMaps.put("to_date", sjdd); //结束日 + //System.out.println(jsonMaps); + String js = getDocking(url,jsonMaps,infoMap); + + JSONObject j0= JSONObject.parseObject(js); + Object data = j0.get("data"); + Object state=j0.get("status"); + if(state.toString().equals("200")){ + jsonMap.put("state","true"); + JSONObject j1= JSONObject.parseObject(data.toString()); + Object totalVolumnGPRS = j1.get("totalVolumnGPRS"); + //MB + Double toGPRS = Double.valueOf(totalVolumnGPRS.toString())/1024/1024; + DecimalFormat df=new DecimalFormat("#0.00"); + toGPRS=Double.parseDouble(df.format(toGPRS)); + jsonMap.put("data", data); + jsonMap.put("info", "成功"); + } + + return jsonMap; +// //System.out.println(jsonMap.toString()); + } catch (Exception e) { + e.printStackTrace(); + } + //System.out.println(jsonMap); + return jsonMap; + } + + /** + * TODO 停开机 + * + * •Activate(激活)---------1 + * •Pause(停机)------------2 + * •Deactivate(使失效) -----3 + * •Reactivate(重新激活)----4 + * @return + */ + public Map changeCardStatus(String tel,String setup,Map infoMap){ + JSONObject jsonMap = new JSONObject(); + jsonMap.put("state", "false"); + jsonMap.put("info", "api调用失败"); + jsonMap.put("data","0"); + String env = "\"http://schemas.xmlsoap.org/soap/envelope/\""; + String sub = "\"http://api.dcp.ericsson.net/SubscriptionManagement\""; + String wsse = "\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\""; + + String state = null; + switch (setup) { + case "2": + state = "Activate"; + break; + case "3": + state = "Pause"; + break; + default: + break; + } + StringBuffer sb = new StringBuffer(); + String name=(String)infoMap.get("cd_username"); + String password= (String)infoMap.get("cd_pwd"); + String[] names=name.replace(",",",").split(","); + String[] passwords=password.replace(",",",").split(","); + + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""+names[0]+""); //用户名 + sb.append(""+passwords[0]+""); //密码 + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""+tel+""); + sb.append("icc"); + sb.append(""); + sb.append(""+state+""); + sb.append("1"); + sb.append(""); + sb.append(""); + sb.append(""); + String xml = sb.toString(); + System.out.println(soap_url); + System.out.println(xml); + try { + org.json.JSONObject json = dcpLoginUtil.httpSoap(soap_url,xml); + JSONObject j0= JSONObject.parseObject(json.toString()); + Object Envelope =j0.get("env:Envelope"); + + JSONObject j1= JSONObject.parseObject(Envelope.toString()); + Object envBody = j1.get("env:Body"); + if((envBody.toString()).contains("env:Fault")){ + jsonMap.put("info", "操作失败"); + return jsonMap; + } + JSONObject j2= JSONObject.parseObject(envBody.toString()); + Object RequestSubscriptionStatusChangeResponse = j2.get("ns2:RequestSubscriptionStatusChangeResponse"); + + JSONObject j3= JSONObject.parseObject(RequestSubscriptionStatusChangeResponse.toString()); + Object serviceRequestId = j3.get("serviceRequestId").toString(); + //提示变更结果 + StringBuffer sbs = new StringBuffer(); + sbs.append(""); + sbs.append(""); + sbs.append(""); + sbs.append(""); + sbs.append(""); + sbs.append(""+names[0]+""); //用户名 + sbs.append(""+passwords[0]+""); //密码 + sbs.append(""); + sbs.append(""); + sbs.append(""); + sbs.append(""); + sbs.append(""); + sbs.append(""+serviceRequestId+""); + sbs.append(""); + sbs.append(""); + sbs.append(""); + String xmls = sbs.toString(); + json = dcpLoginUtil.httpSoap(soap_url,xmls); + JSONObject jss= JSONObject.parseObject(json.toString()); + Object envEnvelope =jss.get("env:Envelope"); + + JSONObject jss1= JSONObject.parseObject(envEnvelope.toString()); + Object envBodys =jss1.get("env:Body"); + + JSONObject jss2= JSONObject.parseObject(envBodys.toString()); + Object ns2QuerySubscriptionStatusChangeResponse =jss2.get("ns2:QuerySubscriptionStatusChangeResponse"); + + JSONObject jss3= JSONObject.parseObject(ns2QuerySubscriptionStatusChangeResponse.toString()); + Object statusRequestResponse =jss3.get("statusRequestResponse"); + String zt = "查询失败"; + String state_id = "-1"; + switch (statusRequestResponse.toString()) { + case "Completed": + zt = "修改成功"; + state_id = "0000"; + break; + case "In Progress": + zt = "修改中"; + break; + case "Pending": + zt = "待处理"; + break; + case "Canceled": + zt = "已 取 消"; + break; + case "Rejected": + zt = "已拒绝"; + break; + default: + zt = "修改失败!"; + break; + } + jsonMap.put("state", "true"); + jsonMap.put("data", jss); + jsonMap.put("info", "成功"); + } catch (Exception e) { + e.printStackTrace(); + } + return jsonMap; + } + + + + /** + * TODO 卡状态查询 + * @return + */ + public Map querySimStatus(String tel,Map infoMap){ + Map retMap = new HashMap<>(); + retMap.put("state", "false"); + retMap.put("info", "api调用失败"); + retMap.put("data", "0"); + String env = "\"http://schemas.xmlsoap.org/soap/envelope/\""; + String sub = "\"http://api.dcp.ericsson.net/SubscriptionManagement\""; + String wsse = "\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\""; + + StringBuffer sb = new StringBuffer(); + String name=(String)infoMap.get("cd_username"); + String password= (String)infoMap.get("cd_pwd"); + String[] names=name.replace(",",",").split(","); + String[] passwords=password.replace(",",",").split(","); + + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""+names[0]+""); //用户名 + sb.append(""+passwords[0]+""); //密码 + + + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""+tel+""); //查询号码 + sb.append("icc"); + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""); + String xml = sb.toString(); + try { + org.json.JSONObject json = DCPLoginUtil.httpSoap(soap_url,xml); + JSONObject j0= JSONObject.parseObject(json.toString()); + Object Envelope =j0.get("env:Envelope"); + + JSONObject j1= JSONObject.parseObject(Envelope.toString()); + Object Body = j1.get("env:Body"); + + JSONObject j2= JSONObject.parseObject(Body.toString()); + Object qsr = j2.get("ns2:QuerySimResourceResponse"); + + JSONObject j3= JSONObject.parseObject(qsr.toString()); + Object SimResource = j3.get("SimResource"); + + JSONObject j4= JSONObject.parseObject(SimResource.toString()); + Object simSubscriptionStatus = j4.get("simSubscriptionStatus"); + +// //System.out.println(simSubscriptionStatus); + + String zt = "查询失败"; + String state_id = "-1"; + switch (simSubscriptionStatus.toString()) { + case "Active": + retMap.put("state", "true"); + retMap.put("info", "成功"); + break; + case "Pause": + retMap.put("state", "true"); + retMap.put("info", "成功"); + break; + case "Deactivated": + retMap.put("state", "true"); + retMap.put("info", "成功"); + break; + case "Terminated": + retMap.put("state", "true"); + retMap.put("info", "成功"); + break; + default: + retMap.put("state", "true"); + retMap.put("info", "成功"); + break; + } + retMap.put("data", j0); + retMap.put("state", "true"); + retMap.put("info", "成功"); + } catch (Exception e) { + e.printStackTrace(); + } + //System.out.println(retMap); + return retMap; + } + + + + + + /** + * 发送GET请求 + * @return + * @throws IOException + */ + public String doGet(String httpUrl,Map infoMap) { + + HttpURLConnection connection = null; + InputStream is = null; + OutputStream os = null; + BufferedReader br = null; + String result = null; + try { + String name=(String)infoMap.get("cd_username"); + String password= (String)infoMap.get("cd_pwd"); + String[] names=name.replace(",",",").split(","); + String[] passwords=password.replace(",",",").split(","); + + //Object tokenO=redisTemplate.opsForValue().get("dcp_token"); + String huoqutoken=null; + /*if(null!=tokenO){ + huoqutoken=tokenO.toString(); + }else{*/ + huoqutoken = dcpLoginUtil.getToken(names[1], + passwords[1]); + // } + URL url = new URL(httpUrl); + // 通过远程url连接对象打开连接 + connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("GET"); + connection.setConnectTimeout(30000); + connection.setReadTimeout(60000); + connection.setDoOutput(true); + connection.setDoInput(true); + connection.setRequestProperty("Content-Type", "application/json"); + connection.setRequestProperty("Connection", "Kepp-Alive"); + connection.setRequestProperty("X-Access-Token", huoqutoken); + connection.connect(); + // 通过连接对象获取一个输入流,向远程读取 + if (connection.getResponseCode() == 200) { + is = connection.getInputStream(); + br = new BufferedReader(new InputStreamReader(is, "UTF-8")); + StringBuffer sbf = new StringBuffer(); + String temp = null; + // 循环遍历一行一行读取数据 + while ((temp = br.readLine()) != null) { + sbf.append(temp); + sbf.append("\r"); + } + result = sbf.toString(); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + // 关闭资源 + if (null != br) { + try { + br.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (null != os) { + try { + os.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (null != is) { + try { + is.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + // 断开与远程地址url的连接 + connection.disconnect(); + } + return result; + } + + /** + * TODO + * 发送POST请求 + + * @return + */ + public String getDocking (String urls, JSONObject map, Map infoMap){ + OutputStreamWriter out=null; + InputStream is=null; + BufferedReader br=null; + try { + String name=(String)infoMap.get("cd_username"); + String password= (String)infoMap.get("cd_pwd"); + String[] names=name.replace(",",",").split(","); + String[] passwords=password.replace(",",",").split(","); + + String huoqutoken=null; + huoqutoken = dcpLoginUtil.getToken(names[1],passwords[1]); + URL url = new URL(urls); + URLConnection connection = url.openConnection(); + HttpsURLConnection conn = (HttpsURLConnection) connection; + //请求方式 + conn.setRequestMethod("POST"); + //设置通用的请求属性 + conn.setDoOutput(true); + conn.setDoInput(true); + conn.setDefaultUseCaches(false); + conn.setConnectTimeout(30000); + conn.setRequestProperty("Content-Type", "application/json"); + conn.setRequestProperty("Connection", "Kepp-Alive"); + conn.setRequestProperty("X-Access-Token", huoqutoken); + //断开连接 + conn.connect(); + //获取URLconnection对象对应的输出流 + out = new OutputStreamWriter(conn.getOutputStream(),"utf-8"); + //发送请求参数 + out.write(map.toString()); + //缓冲数据 + out.flush(); + //获取对应的输入流 + is = conn.getInputStream(); + //字符流缓存 + br = new BufferedReader(new InputStreamReader(is)); + String str = null; + String huoqu = null; + while ((str=br.readLine())!=null) { + huoqu = str + "\t"; + } + //System.out.println(huoqu); + return huoqu; + } catch (Exception e) { +// //System.out.println("请求数据失败"); + e.printStackTrace(); + } finally{ + try { + br.close(); + is.close(); + out.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return null; + } + + /** + * 使用SOAP1.1发送消息 + * + * @param url + * @param xml + * @return + */ + public static String doPostSoap1_1(String url, String xml){ + String retStr = null; + // 创建HttpClientBuilder + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + // HttpClient + CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); + HttpPost httpPost = new HttpPost(url); + try { + httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8"); + StringEntity data = new StringEntity(xml, Charset.forName("UTF-8")); + System.setProperty("https.protocols", "TLSv1.2,TLSv1.1,SSLv3"); + httpPost.setEntity(data); +// //System.out.println("httpPost:"+httpPost); + CloseableHttpResponse response = closeableHttpClient.execute(httpPost); + HttpEntity httpEntity = response.getEntity(); + if (httpEntity != null) { + // 打印响应内容 + retStr = EntityUtils.toString(httpEntity, "UTF-8"); + } + // 释放资源 + closeableHttpClient.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return retStr; + } + /** + * 获取上月月份 + */ + public static String getYearMonthss(){ + SimpleDateFormat dateFormat = new SimpleDateFormat("MM"); + Date date = new Date(); + + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); // 设置为当前时间 + calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月 + date = calendar.getTime(); + + return dateFormat.format(date); + } + + /** + * 获取指定月份的最后一天 + * @param year + * @param month + * @return + */ + public static String getLastDayOfMonth(int year,int month){ + Calendar cal = Calendar.getInstance(); + //设置年份 + cal.set(Calendar.YEAR,year); + //设置月份 + cal.set(Calendar.MONTH, month-1); + //获取某月最大天数 + int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); + //设置日历中月份的最大天数 + cal.set(Calendar.DAY_OF_MONTH, lastDay); + //格式化日期 + SimpleDateFormat sdf = new SimpleDateFormat("dd"); + String lastDayOfMonth = sdf.format(cal.getTime()); + return lastDayOfMonth; + } + + /** + * 获取本年 + * @return + */ + public static String getMonthLastDayyyyy(int sj) { + Date date = new Date(); + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.MONTH, sj); + int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH); + cal.set(Calendar.DAY_OF_MONTH, day); + SimpleDateFormat sim = new SimpleDateFormat("yyyy"); + date = cal.getTime(); + return sim.format(date); + } + /** + * 获取本月 + * @return + */ + public static String getMonthLastDaymm(int sj) { + Date date = new Date(); + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.MONTH, sj); + int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH); + cal.set(Calendar.DAY_OF_MONTH, day); + SimpleDateFormat sim = new SimpleDateFormat("MM"); + date = cal.getTime(); + return sim.format(date); + } + /** + * 获取本日 + * @return + */ + public static String getMonthLastDaydd() { + Date now = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("dd");//可以方便地修改日期格式 + String hehe = dateFormat.format( now ); + return hehe; + } + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/DianXin_DCP_Api.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/DianXin_DCP_Api.java new file mode 100644 index 0000000..961ba12 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/DianXin_DCP_Api.java @@ -0,0 +1,82 @@ +package com.yunze.apiCommon.upstreamAPI.DianXinDCP; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yunze.apiCommon.utils.HttpUtil; + +import java.util.HashMap; +import java.util.Map; + +/** + * 电信CMP API 接口 + */ +public class DianXin_DCP_Api { + + + + + //构造赋值 + public DianXin_DCP_Api(Map init_map){ + + String cd_username[] = init_map.get("cd_username").toString().split(","); + String cd_pwd[] = init_map.get("cd_pwd").toString().split(","); + + appid = cd_username[1] ; + secretKey = cd_pwd[1]; + customerNo = init_map.get("cd_key").toString(); + + } + + // 服务器请求地址 + protected static String server_Ip = "https://si.global.ct10649.com"; + // 用户登录名称 + public static String appid = null; + + public static String secretKey = null; + + public static String customerNo = null; + + + + + // 配置调用的名称 + protected static String Config_name = ""; + + + + /** + * 登录获取token + * @return + */ + public static String loginToken() { + String token = ""; + //请求参数头部 + Map headers = null; + //请求参数 Json + JSONObject params = null; + //返回信息 map + Map rMap = null; + + // 拼接请求参数 + params = new JSONObject(); + params.put("username", appid); + params.put("password", secretKey); + + //请求头部参数 + headers = new HashMap(); + headers.put("Content-Type", "application/json"); + headers.put("X-Access-Token", token); + + String res = HttpUtil.post(server_Ip+"/api/dcpsiapi/login", params.toJSONString(), headers); + //System.out.println(res); + Map obj = JSON.parseObject(res); + if ((obj.get("status").toString()).equals("200")) { + Map data = (Map)obj.get("data"); + token = data.get("token"); + System.out.println(token); + } + return token; + } + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/Inquire/Query_DianXinDCP.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/Inquire/Query_DianXinDCP.java new file mode 100644 index 0000000..c96a9d1 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/Inquire/Query_DianXinDCP.java @@ -0,0 +1,134 @@ +package com.yunze.apiCommon.upstreamAPI.DianXinDCP.Inquire; + + + +import com.alibaba.fastjson.JSONObject; +import com.yunze.apiCommon.upstreamAPI.DianXinDCP.DcpDxService; +import com.yunze.apiCommon.upstreamAPI.DianXinDCP.DianXin_DCP_Api; +import com.yunze.apiCommon.utils.HttpUtil; +import com.yunze.apiCommon.utils.UrlUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 查询类接口 + */ +public class Query_DianXinDCP extends DianXin_DCP_Api { + public static void main(String[] args) { + Map map = new HashMap(); + map.put("cd_username", ""); + map.put("cd_pwd",""); + map.put("cd_key", ""); + + + Query_DianXinDCP Qy = new Query_DianXinDCP(map); + List groups = new ArrayList<>(); + groups.add("epsLocationState"); + groups.add("epsIndividualUserType"); + DcpDxService dcpDxService = new DcpDxService(); + System.out.println(dcpDxService.queryFlow("8986",map)); + + + + + } + + + public Query_DianXinDCP(Map init_map) { + super(init_map); + } + + + /** + * 查询 SIM 卡信息接口 【没调试好!2021-10-29】 + * @param iccids : ["123123789123123"], + * @param groups : ["enterpriseInfo"] + * 选择要查询的信息,枚举可选如下一项或多项: + * -enterpriseInfo(返回 companyName) + * -packageInfo(返回订购包名称和描述) + * -dates(返回 firstActivationDate 和 pbrExitDate) + * -label(返回 customerLabel) + * -simSpecification(返回 SIM 卡规格 ID) + * -lockStateInfo(返回锁状态和被锁原因) + * -individualApn(返回在用 Apn。如果列表为空,则 + * 订购包中所有 APN 均在用) + * @return + */ + public static String QuerySimResource(List iccids,List groups) { + // 拼接接口地址 https://global.ct10649.com/dcpapi/rest/subscriptionManagement/v1/subscriptions/details + String api_url = "https://global.ct10649.com/dcpapi/rest/subscriptionManagement/v1/subscriptions/details"; + //请求参数头部 + Map headers = null; + //请求参数 Json + JSONObject params = null; + // 拼接请求参数 + params = new JSONObject(); + params.put("type", "iccid"); + params.put("values", iccids); + params.put("groups", groups); + //请求头部参数 + headers = new HashMap(); + headers.put("Content-Type", "application/json"); + headers.put("X-Access-Token", loginToken()); + System.out.println(params.toJSONString()); + String res = HttpUtil.post(api_url, params.toJSONString(), headers); + return res; + } + + + public static String EPSMultiSC(String msisdn,List moAttributes) { + // 拼接接口地址 https://si.global.ct10649.com/api/dcpsiapi/eps/multisc + String api_url = "https://si.global.ct10649.com/api/dcpsiapi/eps/multisc"; + //请求参数头部 + Map headers = null; + //请求参数 Json + JSONObject params = null; + // 拼接请求参数 + params = new JSONObject(); + params.put("msisdn", msisdn); + params.put("moAttributes", moAttributes); + //请求头部参数 + headers = new HashMap(); + headers.put("Content-Type", "application/json"); + headers.put("X-Access-Token", loginToken()); + System.out.println(params.toJSONString()); + String res = HttpUtil.post(api_url, params.toJSONString(), headers); + return res; + } + + + /** + * SIM 卡信息接口(按号码) + * @param iccid + * @return + */ + public static String subscriptions(String iccid) { + // 拼接接口地址 https://global.ct10649.com/iot/api/sica/subscriptions/sims/{id}?iden tifier_type={identifier_type}&range={range} + String api_url = "https://global.ct10649.com/iot/api/sica/subscriptions/sims/"+iccid; + //请求参数头部 + Map headers = null; + //请求参数 Json + JSONObject params = null; + // 拼接请求参数 + params = new JSONObject(); + params.put("identifier_type", "icc"); + params.put("range", "1"); + //请求头部参数 + headers = new HashMap(); + headers.put("Content-Type", "application/json"); + headers.put("X-Access-Token", loginToken()); + String param_url = UrlUtil.getUrl(api_url, params); + System.out.println(param_url); + String res = HttpUtil.get(param_url, headers); + return res; + } + + + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/change/serviceAccept_DianXinDCP.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/change/serviceAccept_DianXinDCP.java new file mode 100644 index 0000000..43cbdf5 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/DianXinDCP/change/serviceAccept_DianXinDCP.java @@ -0,0 +1,201 @@ +package com.yunze.apiCommon.upstreamAPI.DianXinDCP.change; + +import com.alibaba.fastjson.JSONObject; +import com.yunze.apiCommon.upstreamAPI.DianXinDCP.DianXin_DCP_Api; +import com.yunze.apiCommon.utils.HttpUtil; +import com.yunze.apiCommon.utils.UrlUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 变更 接口 + */ +public class serviceAccept_DianXinDCP extends DianXin_DCP_Api { + + public static void main(String[] args) { + Map map = new HashMap(); + map.put("cd_username", ""); + map.put("cd_pwd",""); + map.put("cd_key", ""); + + + + List arr = new ArrayList<>(); + arr.add("898611"); + + + serviceAccept_DianXinDCP Qy = new serviceAccept_DianXinDCP(map); + for (int i = 0; i init_map) { + super(init_map); + } + + + /** + * 机卡分离解绑 + * @param iccid + * @param contactName + * @param contactPhone + * @return + */ + public static String unlockSimbind(String iccid,String contactName,String contactPhone) { + // 拼接接口地址 https://si.global.ct10649.com/api/dcpsiapi /unlock/simbind + String api_url = server_Ip + "/api/dcpsiapi/unlock/simbind"; + //请求参数头部 + Map headers = null; + //请求参数 Json + JSONObject params = null; + // 拼接请求参数 + params = new JSONObject(); + customerNo = customerNo!=null?customerNo:"31000069";//默认 + params.put("customerNo", customerNo); + params.put("iccid", iccid); + params.put("contactName", contactName); + params.put("contactPhone", contactPhone); + //请求头部参数 + headers = new HashMap(); + headers.put("Content-Type", "application/json"); + headers.put("X-Access-Token", loginToken()); + String res = HttpUtil.post(api_url, params.toJSONString(), headers); + return res; + } + + + + /** + * UE 号码级速率限制更新接口 + * @param cardno SIM ID + * @param UE_AMBR_DL 下行速率 + */ + public static String ueAmbrUpdate(String cardno,String UE_AMBR_DL,String type) { + + // 拼接接口地址 + String api_url = server_Ip + "/api/dcpsiapi/ue/ambr/update"; + //请求参数头部 + Map headers = null; + //请求参数 Json + JSONObject params = null; + // 拼接请求参数 + params = new JSONObject(); + if(type!=null) { + params.put("msisdn", cardno); + }else { + params.put("imsi", cardno); + } + //params.put("UE_AMBR_UL", cardType);//上行速率 + params.put("UE_AMBR_DL", UE_AMBR_DL);//下行速率 + //请求头部参数 + headers = new HashMap(); + headers.put("Content-Type", "application/json"); + headers.put("X-Access-Token", loginToken()); + String res = HttpUtil.post(api_url, params.toJSONString(), headers); + return res; + } + + + /** + * UE 取消实名 + * @param cardno SIM ID + */ + public static String realNameRemove(String cardno,String type) { + // 拼接接口地址 + String api_url = server_Ip + "/api/dcpsiapi/realName/remove"; + //请求参数头部 + Map headers = null; + //请求参数 Json + JSONObject params = null; + // 拼接请求参数 + params = new JSONObject(); + if(type!=null) { + if(type.equals("iccid")){ + params.put("iccid", cardno); + }else if(type.equals("msisdn")){ + params.put("msisdn", cardno); + } + }else { + params.put("imsi", cardno); + } + //请求头部参数 + headers = new HashMap(); + headers.put("Content-Type", "application/json"); + headers.put("X-Access-Token", loginToken()); + String param_url = UrlUtil.getUrl(api_url, params); + //System.out.println(param_url); + String res = HttpUtil.get(param_url,headers); + return res; + } + + /** + * + * @param cardno + * @param type + * @param opState -ACTIVE(已激活) -PAUSE(停机保号) -DEACTIVATED(去激活) -ACTIVE_NO_BILLING(激活无计费) -DEACTIVATED_NO_BILLING(去激活无计费) + * @return + */ + public static String stateChanges(String cardno,String type,String opState) { + + //请求参数 Json + JSONObject params = null; + // 拼接请求参数 + params = new JSONObject(); + JSONObject change = new JSONObject(); + JSONObject subscriptions = new JSONObject(); + JSONObject on_behalf_of = new JSONObject(); + String state = null; + switch (opState) { + case "2": + state = "ACTIVE"; + break; + case "3": + state = "PAUSE"; + break; + default: + break; + } + change.put("state",state); + // 拼接接口地址 + String api_url = "https://global.ct10649.com/iot/api/sica/subscriptions/requests/state-changes"; + //请求参数头部 + Map headers = null; + on_behalf_of.put("company_id",customerNo); + + + + + + + List identifiers = new ArrayList<>(); + identifiers.add(cardno); + subscriptions.put("identifier_type",type); + subscriptions.put("identifiers",identifiers); + + + + params.put("subscriptions", subscriptions); + params.put("change", change); + params.put("on_behalf_of", on_behalf_of); + + + //请求头部参数 + headers = new HashMap(); + headers.put("Content-Type", "application/json"); + headers.put("X-Access-Token", loginToken()); + String param_url = UrlUtil.getUrl(api_url, params); + System.out.println(param_url); + String res = HttpUtil.post(api_url, params.toJSONString(), headers); + + return res; + } + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/IoTLink/Inquire/Query_IoTLink.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/IoTLink/Inquire/Query_IoTLink.java new file mode 100644 index 0000000..a8c51ba --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/IoTLink/Inquire/Query_IoTLink.java @@ -0,0 +1,84 @@ +package com.yunze.apiCommon.upstreamAPI.IoTLink.Inquire; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.upstreamAPI.IoTLink.IoTLink_Api; +import com.yunze.apiCommon.utils.HttpUtil; + +import java.util.*; + +/** + * 查询类接口 + */ +public class Query_IoTLink extends IoTLink_Api { + + public static void main(String[] args) { + Map map = new HashMap(); + map.put("cd_username", ""); + map.put("cd_pwd", ""); + map.put("cd_key", "http://"); + + + Query_IoTLink Qy = new Query_IoTLink(map); + System.out.println(Qy.cardInfo("89860")); + + } + + + public Query_IoTLink(Map init_map) { + super(init_map); + } + + + /** + * 卡账期用量查询 + * @param iccid + */ + public String simDataUsage(String iccid) { + String api_url = server_Ip + "/simDataUsage"; + Map Parmap = new HashMap(); + Parmap.put("iccid", iccid); + String data = JSON.toJSONString(getPmap(Parmap)); + return HttpUtil.post(api_url, data); + } + + /** + * 卡生命周期查询 + * @param iccid + */ + public String simStatus(String iccid) { + String api_url = server_Ip + "/simStatus"; + Map Parmap = new HashMap(); + Parmap.put("iccid", iccid); + String data = JSON.toJSONString(getPmap(Parmap)); + return HttpUtil.post(api_url, data); + } + + /** + * 在网状态查询 + * @param iccid + */ + public String simSession(String iccid) { + String api_url = server_Ip + "/simSession"; + Map Parmap = new HashMap(); + Parmap.put("iccid", iccid); + String data = JSON.toJSONString(getPmap(Parmap)); + return HttpUtil.post(api_url, data); + } + + + + /** + * 卡信息详情 + * @param iccid + */ + public String cardInfo(String iccid) { + String api_url = server_Ip + "/cardInfo"; + Map Parmap = new HashMap(); + Parmap.put("cardno", iccid); + Parmap.put("type", "iccid"); + String data = JSON.toJSONString(getPmap(Parmap)); + return HttpUtil.post(api_url, data); + } + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/IoTLink/IoTLink_Api.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/IoTLink/IoTLink_Api.java new file mode 100644 index 0000000..b30639c --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/IoTLink/IoTLink_Api.java @@ -0,0 +1,107 @@ +package com.yunze.apiCommon.upstreamAPI.IoTLink; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.utils.HttpUtil; +import com.yunze.apiCommon.utils.MD5Util; + +import java.util.*; + +/** + * IoTLink 系统 API 接口 + */ +public class IoTLink_Api { + + + + + //构造赋值 + public IoTLink_Api(Map init_map){ + + String cd_pwd[] = init_map.get("cd_pwd").toString().split(","); + + appId = init_map.get("cd_username").toString(); + password = cd_pwd[0]; + access_key = cd_pwd[1]; + server_Ip = init_map.get("cd_key").toString()+"/route/open"; + } + + // 服务器请求地址 + protected static String server_Ip = ""; + // appId + public static String appId = null; + //秘钥密码 + public static String password= null; + //秘钥密码 + public static String access_key = null; + + /** + * Sign 加密类 + * @param map + * @param key + * @return + */ + public static String getSign(Map map,String key){ + List list=new ArrayList<>(map.keySet()); + Collections.sort(list); + StringBuffer sb=new StringBuffer(); + for(int i=0;i getPmap(Map Parmap){ + Map map = new HashMap(); + Map verify = new HashMap(); + String timeStamp = ""+System.currentTimeMillis() ; + verify.put("password", password); + verify.put("appId", appId); + verify.put("timeStamp", timeStamp); + verify.put("sign", getSign(verify, access_key)); + map.put("verify", verify); + map.put("Param", Parmap); + return map; + } + + + public static void main(String[] args) { + + Map map = new HashMap(); + Map Parmap = new HashMap(); + Map verify = new HashMap(); + + String appId = ""; + String password = ""; + String access_key = "http://"; + String timeStamp = ""+System.currentTimeMillis() ; + + verify.put("password", password); + verify.put("appId", appId); + verify.put("timeStamp", timeStamp); + verify.put("sign", getSign(verify, access_key)); + + Parmap.put("type", "iccid"); + Parmap.put("cardno", "898604"); + + + map.put("verify", verify); + map.put("Param", Parmap); + + server_Ip +="/queryFlow"; + String result = null; + + String data = JSON.toJSONString(map); + System.out.println(data); + + result = HttpUtil.post(server_Ip, data);// 返回结果字符串 + System.out.println(result); + } + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/IoTLink/change/serviceAccept_IoTLink.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/IoTLink/change/serviceAccept_IoTLink.java new file mode 100644 index 0000000..d1a8bc3 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/IoTLink/change/serviceAccept_IoTLink.java @@ -0,0 +1,37 @@ +package com.yunze.apiCommon.upstreamAPI.IoTLink.change; + + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.upstreamAPI.IoTLink.IoTLink_Api; +import com.yunze.apiCommon.utils.HttpUtil; + +import java.util.HashMap; +import java.util.Map; + + +public class serviceAccept_IoTLink extends IoTLink_Api { + + + public serviceAccept_IoTLink(Map init_map) { + super(init_map); + } + + + /** + * 卡状态变更 + * @param iccid + * @param Status + * @return + */ + public String changeSimStatus(String iccid,String Status) { + String api_url = server_Ip + "/changeSimStatus"; + Map Parmap = new HashMap(); + Parmap.put("iccid", iccid); + Parmap.put("Status", Status); + String data = JSON.toJSONString(getPmap(Parmap)); + return HttpUtil.post(api_url, data); + } + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/LianTongCMP/Inquire/Query_LT.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/LianTongCMP/Inquire/Query_LT.java new file mode 100644 index 0000000..e8a98c1 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/LianTongCMP/Inquire/Query_LT.java @@ -0,0 +1,430 @@ +package com.yunze.apiCommon.upstreamAPI.LianTongCMP.Inquire; + +import com.cu.api.request.CommonJsonRequest; +import com.cu.api.response.CommonJsonResponse; +import com.yunze.apiCommon.upstreamAPI.LianTongCMP.LT_CMP_Api; +import com.yunze.apiCommon.utils.MD5Util; + +import java.io.IOException; +import java.util.*; + +/** + * 查询类接口 + */ +public class Query_LT extends LT_CMP_Api { + + public static void main(String[] args) { + Map map = new HashMap(); + map.put("cd_username", ""); + map.put("cd_pwd", ""); + map.put("cd_key", ""); + + + + Query_LT Qy = new Query_LT(map); + System.out.println(Qy.queryAPNInfo("8986")); + + } + + + public Query_LT(Map init_map) { + super(init_map); + } + + + /** + * 获取单个卡的流量 + * @param iccid + * @param + * @return + */ + public static Map queryFlow(String iccid) { + + Map rmap = new HashMap(); + try { + CommonJsonRequest request = new CommonJsonRequest(); + //完整的url: https://gwapi.10646.cn/api/wsGetTerminalDetails/V1/1Main/vV1.1 + request.setApiName("wsGetTerminalDetails/V1/1Main"); + request.setApiVer("V1.1"); + /** + * 业务参数,需要发给能力提供者 + */ + Map params = new HashMap(); + List iccids = new ArrayList(); + iccids.add(iccid); + params.put("iccids", iccids); + params.put("messageId", gettrans_id()); + params.put("openId", openId); + params.put("version", version); + request.setParams(params); + CommonJsonResponse response = client.execute(request); + rmap = response.getData(); + // //System.out.println(rmap); + // //System.out.println("rmap ====== "+rmap); + if(null==rmap){ + System.out.println(iccids+"--查询流量返回报文-- "+response.getMessage()); + } + } catch (Exception e) { + e.printStackTrace(); + } + return rmap; + } + + /** + * 项目描述 当月流量查询接口 + * 不再封装!!!!!!!! + * 注:上月27号 -本月26号晚 一个月。 + * + * @throws IOException + */ + @SuppressWarnings("unchecked") + public static Map queryBatchFlow(List iccids) { + Map result = new HashMap(); + if (iccids.size() > 50 || iccids.size() == 0) { + result.put("Message", "批量查询仅支持50位号码"); + ////System.out.println(result); + return result; + } + try { + CommonJsonRequest request = new CommonJsonRequest(); + //完整的url: https://gwapi.10646.cn/api/wsGetTerminalDetails/V1/1Main/vV1.1 + request.setApiName("wsGetTerminalDetails/V1/1Main"); + request.setApiVer("V1.1"); + /** + * 业务参数,需要发给能力提供者 + */ + Map params = new HashMap<>(); + params.put("iccids", iccids); + params.put("messageId", gettrans_id()); + params.put("openId", openId); + params.put("version", version); + request.setParams(params); + CommonJsonResponse response = client.execute(request); + result = response.getData(); + //System.out.println(result); + + } catch (Exception e) { + e.printStackTrace(); + } + ////System.out.println(result); + return result; + } + + /** + * @Author: + * @Return: 历史流量查询 + * @Description: + * @Date: 2021/11/14 0014 14:07 + */ + public static Map queryFlowHis(String iccid, String time) { + Map result = new HashMap(); + try { + CommonJsonRequest request = new CommonJsonRequest(); + //完整的url: https://gwapi.10646.cn/api/wsGetTerminalDetails/V1/1Main/vV1.1 + request.setApiName("wsGetTerminalUsage/V1/1Main"); + request.setApiVer("V1.1"); + /** + * 业务参数,需要发给能力提供者 + */ + Map params = new HashMap(); + List iccids = new ArrayList(); + iccids.add(iccid); + params.put("iccid", iccid); + params.put("messageId", gettrans_id()); + params.put("openId", openId); + params.put("version", version); + params.put("billingCycle", time); + request.setParams(params); + CommonJsonResponse response = client.execute(request); + result = response.getData(); + // //System.out.println(result); + + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + + /** + * 项目描述 + * SIM卡状态: + * "0": 可测试, + * "1": 可激活, + * "2": 已激活, + * "3": 已停用, + * "4": 已失效, + * "5"": 已清除, + * "6": 已更换, + * "7": 库存, + * "8": 开始 + * + * @throws IOException + */ + @SuppressWarnings("unchecked") + public static Map queryCardStatus(String iccid) { + Map result = new HashMap(); + try { + CommonJsonRequest request = new CommonJsonRequest(); + //完整的url: https://gwapi.10646.cn/api/wsGetTerminalDetails/V1/1Main/vV1.1 + request.setApiName("wsGetTerminalDetails/V1/1Main"); + request.setApiVer("V1.1"); + /** + * 业务参数,需要发给能力提供者 + */ + Map params = new HashMap(); + List iccids = new ArrayList(); + iccids.add(iccid); + params.put("iccids", iccids); + params.put("messageId", gettrans_id()); + params.put("openId", openId); + params.put("version", version); + request.setParams(params); + CommonJsonResponse response = client.execute(request); + //System.out.println(response); + result = response.getData(); + + } catch (Exception e) { + e.printStackTrace(); + } + ////System.out.println(result); + return result; + } + + + /** + * 项目描述 查询通讯计划-限速 单卡接口 + * 0- 恢复正常 + * 1- 上下行限速1Mbps + * 2- 上下行限速2Mbps + * 4- 上下行限速4Mbps + * 8- 上下行限速8Mbps + * -1- 上下行限速0.5Mbps + * -2- 上下行限速256Kbps + * + * @throws IOException + */ + @SuppressWarnings("unchecked") + public static Map queryNetWork(String iccid) { + Map result = new HashMap(); + int type = 0; + try { + CommonJsonRequest request = new CommonJsonRequest(); + //完整的url:https://gwapi.10646.cn/api/wsGetNetworkAccessconfig/V1/1Main/vV1.1 + request.setApiName("wsGetNetworkAccessconfig/V1/1Main"); + request.setApiVer("V1.1"); + /** + * 业务参数,需要发给能力提供者 + */ + Map params = new HashMap(); + List iccids = new ArrayList<>(); + iccids.add(iccid); + params.put("iccids", iccids); + params.put("messageId", gettrans_id()); + params.put("openId", openId); + params.put("version", version); + request.setParams(params); + CommonJsonResponse response = client.execute(request); + result = response.getData(); + + } catch (Exception e) { + e.printStackTrace(); + } + //System.out.println(result); + return result; + } + + + /** + * 项目描述 查询通讯计划-限速 批量接口 + * 0- 恢复正常 + * 1- 上下行限速1Mbps + * 2- 上下行限速2Mbps + * 4- 上下行限速4Mbps + * 8- 上下行限速8Mbps + * -1- 上下行限速0.5Mbps + * -2- 上下行限速256Kbps + * + * @throws IOException + */ + @SuppressWarnings("unchecked") + public static Map queryNetWorkBatch(List iccids) { + List> list = new ArrayList>(); + Map result = new HashMap(); + int type = 0; + try { + CommonJsonRequest request = new CommonJsonRequest(); + //完整的url:https://gwapi.10646.cn/api/wsGetNetworkAccessconfig/V1/1Main/vV1.1 + request.setApiName("wsGetNetworkAccessconfig/V1/1Main"); + request.setApiVer("V1.1"); + /** + * 业务参数,需要发给能力提供者 + */ + Map params = new HashMap(); + params.put("iccids", iccids); + params.put("messageId", gettrans_id()); + params.put("openId", openId); + params.put("version", version); + request.setParams(params); + CommonJsonResponse response = client.execute(request); + result = response.getData(); + + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + /** + * 项目描述 查询APN设置信息 + * @throws IOException + */ + @SuppressWarnings("unchecked") + public static Map queryAPNMessage(String iccid) { + Map result = new HashMap(); + try { + CommonJsonRequest request = new CommonJsonRequest(); + //完整的url:https://gwapi.10646.cn/api/wsGetNetworkAccessconfig/V1/1Main/vV1.1 + request.setApiName("wsGetNetworkAccessconfig/V1/1Main"); + request.setApiVer("V1.1"); + /** + * 业务参数,需要发给能力提供者 + */ + Map params = new HashMap(); + List iccids = new ArrayList(); + iccids.add(iccid); + params.put("iccids", iccids); + params.put("messageId", gettrans_id()); + params.put("openId", openId); + params.put("version", version); + request.setParams(params); + CommonJsonResponse response = client.execute(request); + result = response.getData(); + + } catch (Exception e) { + e.printStackTrace(); + } + //System.out.println(result); + return result; + } + + + /** + * 项目描述 查询是否需要实名认证 + * 返回 true :已实名 不需要再实名 + * fasle :未实名 需要实名认证 + * @throws IOException + */ + public static Map queryRealNameStatus(String iccid) { + Map result = new HashMap(); + + try{ + CommonJsonRequest request = new CommonJsonRequest(); + //完整的url: https://gwapi.10646.cn/api/wsGetTerminalDetails/V1/1Main/vV1.1 + request.setApiName("wsGetTerminalDetails/V1/1Main"); + request.setApiVer("V1.1"); + /** + * 业务参数,需要发给能力提供者 + */ + Map params = new HashMap(); + List iccids = new ArrayList(); + iccids.add(iccid); + params.put("iccids", iccids); + params.put("messageId", gettrans_id()); + params.put("openId", openId); + params.put("version", version); + request.setParams(params); + CommonJsonResponse response = client.execute(request); + params= response.getData(); + if (response.isSuccess()) { + result.put("state", params.get("resultCode")); + result.put("info", "成功"); + List> terminals = (List>) params.get("terminals"); + params = terminals.get(0); + String realNameStatus = (String) params.get("realNameStatus"); + switch (realNameStatus) { + case "1": + result.put("rspcode","0002"); + break; + case "2": + result.put("rspcode","0001"); + break; + default: + break; + } + }else{ + result.put("rspcode","0002"); + } + // realNameStatus + }catch(Exception e){ + e.printStackTrace(); + } + + return result; + } + + + + + + + + + public static String getSign(Map map,String key){ + List list=new ArrayList<>(map.keySet()); + + /* for (int i = 0; i < list.size(); i++) { + //System.out.println(list.get(i)); + }*/ + Collections.sort(list); + ////System.out.println("后----"); + /* for (int i = 0; i < list.size(); i++) { + //System.out.println(list.get(i)); + }*/ + + + StringBuffer sb=new StringBuffer(); + for(int i=0;i queryAPNInfo(String iccid) { + Map result = new HashMap(); + try { + CommonJsonRequest request = new CommonJsonRequest(); + //完整的url:https://gwapi.10646.cn/api/wsGetNetworkAccessconfig/V1/1Main/vV1.1 + request.setApiName("wsGetNetworkAccessconfig/V1/1Main"); + request.setApiVer("V1.1"); + /** + * 业务参数,需要发给能力提供者 + */ + Map params = new HashMap(); + List iccids = new ArrayList(); + iccids.add(iccid); + params.put("iccids", iccids); + params.put("messageId", gettrans_id()); + params.put("openId", openId); + params.put("version", version); + request.setParams(params); + CommonJsonResponse response = client.execute(request); + result = response.getData(); + } catch (Exception e) { + e.printStackTrace(); + } + //System.out.println(result); + return result; + } + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/LianTongCMP/LT_CMP_Api.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/LianTongCMP/LT_CMP_Api.java new file mode 100644 index 0000000..63d4f1e --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/LianTongCMP/LT_CMP_Api.java @@ -0,0 +1,60 @@ +package com.yunze.apiCommon.upstreamAPI.LianTongCMP; + +import com.cu.api.IIoTGatewayClient; +import com.cu.api.IoTGatewayClient; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Map; +import java.util.Random; + +/** + * 联通 CMP 系统 API 接口 + */ +public class LT_CMP_Api { + + + //构造赋值 + public LT_CMP_Api(Map init_map){ + + appId = init_map.get("cd_username").toString(); + appSecret = init_map.get("cd_pwd").toString(); + openId = init_map.get("cd_key").toString(); + + this.client = new IoTGatewayClient(server_Ip, appId,appSecret); + } + + // 服务器请求地址 + protected static String server_Ip = "https://gwapi.10646.cn/api/";; + // user_id + protected static String appId = null; + // 秘钥密码 + protected static String appSecret = null; + //版本 + protected static String version = "1.0"; + // 配置调用的名称 + protected static String Config_name = ""; + // 登录用户 + protected static String openId =null; + + + protected static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); + protected static SimpleDateFormat sdf_lip = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + protected static Random random = new Random(); + //接口操作类 + protected static IIoTGatewayClient client = null; + + protected static String timestamp = ""; + protected static String trans_id = ""; + + /** + * 项目描述 获取序列号 + * @throws IOException + */ + public static String gettrans_id(){ + trans_id = timestamp.replace("-", "").replace(" ", "").replace(":", ""); + return trans_id + new Random().nextInt(999999); + } + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/LianTongCMP/change/serviceAccept_LT.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/LianTongCMP/change/serviceAccept_LT.java new file mode 100644 index 0000000..fe729eb --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/LianTongCMP/change/serviceAccept_LT.java @@ -0,0 +1,138 @@ +package com.yunze.apiCommon.upstreamAPI.LianTongCMP.change; + + +import com.cu.api.request.CommonJsonRequest; +import com.cu.api.response.CommonJsonResponse; +import com.yunze.apiCommon.upstreamAPI.LianTongCMP.LT_CMP_Api; +import com.yunze.apiCommon.utils.CommonlyUsed; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 联通 变更 接口 + */ +public class serviceAccept_LT extends LT_CMP_Api { + + + public serviceAccept_LT(Map init_map) { + super(init_map); + } + + /** + * 项目描述 + * SIM卡状态: + "0": 可测试, + "1": 可激活, + "2": 已激活, + "3": 已停用, + "4": 已失效, + "5": 已清除, + "6": 已更换, + "7": 库存, + "8": 开始 + + * @throws IOException + */ + public static Map changeCardStatus(String iccid,String type){ + Map result = new HashMap(); + try{ + CommonJsonRequest request = new CommonJsonRequest(); + //完整的url:https://gwapi.10646.cn/api/wsEditTerminal/V1/1Main/vV1.1 + request.setApiName("wsEditTerminal/V1/1Main"); + request.setApiVer("V1.1"); + /** + * 业务参数,需要发给能力提供者 + */ + + Map params = new HashMap(); + params.put("asynchronous", "0"); + params.put("iccid", iccid); + params.put("targetValue", type); + params.put("changeType", "3"); + params.put("messageId", gettrans_id()); + params.put("openId", openId); + params.put("version", version); + request.setParams(params); + CommonJsonResponse response = client.execute(request); + result = response.getData(); + + }catch(Exception e){ + //System.out.println(e); + e.printStackTrace(); + } + ////System.out.println(result); + return result; + } + + + /** + * 项目描述 修改通讯计划-限速 + * 0- 恢复正常 21997854 (4M左右) + * 1- 上下行限速1Mbps 21997289 + * 2- 上下行限速2Mbps 21997290 + * 4- 上下行限速4Mbps 21997291 + * @throws IOException + */ + public static Map upNetWork(String iccid,String nacId){ + Map result = new HashMap(); + try{ + CommonJsonRequest request = new CommonJsonRequest(); + //完整的url:https://gwapi.10646.cn/api/wsEditNetworkAccessConfig/V1/1Main/vV1.1 + request.setApiName("wsEditNetworkAccessConfig/V1/1Main"); + request.setApiVer("V1.1"); + + Map params = new HashMap(); + params.put("iccid", iccid); + params.put("nacId", nacId); + params.put("asynchronous", "0"); + params.put("messageId", gettrans_id()); + params.put("openId", openId); + params.put("version", version); + request.setParams(params); + CommonJsonResponse response = client.execute(request); + result = response.getData(); + + }catch(Exception e){ + e.printStackTrace(); + } + ////System.out.println(result); + return result; + } + + /** + * 判断 在限速 标准 中 + * @param speedValue + * @return bool = true 在标准中 + */ + public Map speedValue_set(String speedValue){ + boolean bool = false; + Map map = new HashMap(); + List rule = new ArrayList(); + rule.add("21997854");rule.add("21997289");rule.add("21997290");rule.add("21997291"); + if(speedValue.length()>2){ + if(speedValue.equals("0")){ + speedValue = "21997854";//不限制 + }else if(speedValue.equals("1")){ + speedValue = "21997289";//1Mbps + }else if(speedValue.equals("2")){ + speedValue = "21997290";//2Mbps + }else if(speedValue.equals("4")){ + speedValue = "21997291";//4Mbps + } + }else{//适配多联通账户匹配 + bool = true; + } + bool = CommonlyUsed.Val_Is_Arr(rule,speedValue);//判断 传入 类型是否在 已有 标准中 + map.put("speedValue",speedValue); + map.put("bool",bool); + return map; + } + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/PublicApiService.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/PublicApiService.java new file mode 100644 index 0000000..39f2f69 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/PublicApiService.java @@ -0,0 +1,748 @@ +package com.yunze.apiCommon.upstreamAPI; + + + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.upstreamAPI.DianXinCMP.Inquire.Query_DX; +import com.yunze.apiCommon.upstreamAPI.DianXinCMP.change.serviceAccept_DX; +import com.yunze.apiCommon.upstreamAPI.DianXinCMP5G.Inquire.Query_DX5G; +import com.yunze.apiCommon.upstreamAPI.DianXinCMP5G.change.ServiceAccept_DX5G; +import com.yunze.apiCommon.upstreamAPI.DianXinDCP.DcpDxService; +import com.yunze.apiCommon.upstreamAPI.DianXinDCP.change.serviceAccept_DianXinDCP; +import com.yunze.apiCommon.upstreamAPI.IoTLink.Inquire.Query_IoTLink; +import com.yunze.apiCommon.upstreamAPI.IoTLink.change.serviceAccept_IoTLink; +import com.yunze.apiCommon.upstreamAPI.LianTongCMP.Inquire.Query_LT; +import com.yunze.apiCommon.upstreamAPI.LianTongCMP.change.serviceAccept_LT; +import com.yunze.apiCommon.upstreamAPI.SDYiDong.Inquire.Query_Sdiot; +import com.yunze.apiCommon.upstreamAPI.YiDongEC.Inquire.Query_YD; +import com.yunze.apiCommon.upstreamAPI.YiDongEC.YD_EC_Api; +import com.yunze.apiCommon.upstreamAPI.YiDongEC.change.serviceAccept_YD; +import com.yunze.apiCommon.upstreamAPI.YiDongEcV2.Inquire.Query_EcV2; +import com.yunze.apiCommon.utils.VeDate; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Component +public class PublicApiService { + + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private DcpDxService dcpDxService; + @Resource + private RabbitTemplate rabbitTemplate; + + /** + * 内部API 调用 + * @param Param + * @param function_name + * @return + */ + public Map insideApi(Map Param, String function_name, Map find_card_route_map) { + Map Rmap = new HashMap<>(); + String code = "200"; + String msg = "操作成功!"; + Object data = null; + try { + data = CPU(Param,function_name, find_card_route_map); + } catch (Exception e) { + System.out.println("= insideApi ["+function_name+"]=="); + System.out.println(e.getMessage()); + System.out.println(JSON.toJSONString(Param)); + System.out.println(JSON.toJSONString(find_card_route_map)); + code = "500"; + msg = "上游接口异常!"; + } + Rmap.put("code",code); + Rmap.put("msg",msg); + Rmap.put("data",data); + return Rmap; + } + + + public Map queryFlow(Map map) { + return CPU(map, "queryFlow",null); + } + + public Map queryFlowHis(Map map) { + return CPU(map, "queryFlowHis",null); + } + + public Map queryCardStatus(Map map) { + return CPU(map, "queryCardStatus",null); + } + public Map queryOnlineStatus(Map map) { + return CPU(map, "queryOnlineStatus",null); + } + public Map queryCardBindStatus(Map map) { + return CPU(map, "queryCardBIndStatus",null); + } + + public Map changeCardStatus(Map map) { + return CPU(map, "changeCardStatus",null); + } + + public Map queryRealNameStatus(Map map) { + return CPU(map, "queryRealNameStatus",null); + } + + public Map queryAPNInfo(Map map) { + return CPU(map, "queryAPNInfo",null); + } + + public Map todayUse(Map map) { + return CPU(map, "todayUse",null); + } + + public Map FunctionApnStatus(Map map) { + return CPU(map, "FunctionApnStatus",null); + } + + public Map SpeedLimit(Map map) { + return CPU(map, "SpeedLimit",null); + } + + public Map MachineCardBinding(Map map) {return CPU(map, "MachineCardBinding", null);} + + + public Map EcV2(Map map) { + return CPU(map, "EcV2",null); + } + + public Map queryCardActiveTime(Map map) { + return CPU(map, "queryCardActiveTime",null); + } + + + public Map queryCardImei(Map map) { + return CPU(map, "queryCardImei",null); + } + + + + + public Map queryFlow(Map map,Map find_card_route_map) { + return CPU(map, "queryFlow",find_card_route_map); + } + + public Map queryFlowHis(Map map,Map find_card_route_map) { + return CPU(map, "queryFlowHis",find_card_route_map); + } + + public Map queryCardStatus(Map map,Map find_card_route_map) { + return CPU(map, "queryCardStatus",find_card_route_map); + } + public Map queryOnlineStatus(Map map,Map find_card_route_map) { + return CPU(map, "queryOnlineStatus",find_card_route_map); + } + public Map queryCardBindStatus(Map map,Map find_card_route_map) { + return CPU(map, "queryCardBIndStatus",find_card_route_map); + } + + public Map changeCardStatus(Map map,Map find_card_route_map) { + return CPU(map, "changeCardStatus",find_card_route_map); + } + + public Map queryRealNameStatus(Map map,Map find_card_route_map) { + return CPU(map, "queryRealNameStatus",find_card_route_map); + } + + public Map queryAPNInfo(Map map,Map find_card_route_map) { + return CPU(map, "queryAPNInfo",find_card_route_map); + } + + public Map todayUse(Map map,Map find_card_route_map) { + return CPU(map, "todayUse",find_card_route_map); + } + + public Map FunctionApnStatus(Map map,Map find_card_route_map) { + return CPU(map, "FunctionApnStatus",find_card_route_map); + } + + public Map SpeedLimit(Map map,Map find_card_route_map) { + return CPU(map, "SpeedLimit",find_card_route_map); + } + + public Map MachineCardBinding(Map map,Map find_card_route_map) {return CPU(map, "MachineCardBinding", find_card_route_map);} + + + public Map EcV2(Map map,Map find_card_route_map) { + return CPU(map, "EcV2",find_card_route_map); + } + + + public Map simStopReason(Map map,Map find_card_route_map) { + return CPU(map, "simStopReason",find_card_route_map); + } + + public Map onOffStatus(Map map,Map find_card_route_map) { + return CPU(map, "onOffStatus",find_card_route_map); + } + + public Map apnInfo(Map map,Map find_card_route_map) { + return CPU(map, "apnInfo",find_card_route_map); + } + public Map cardBindStatus(Map map,Map find_card_route_map) { + return CPU(map, "cardBindStatus",find_card_route_map); + } + public Map simChangeHistory(Map map,Map find_card_route_map) { + return CPU(map, "simChangeHistory",find_card_route_map); + } + public Map simDataMargin(Map map,Map find_card_route_map) { + return CPU(map, "simDataMargin",find_card_route_map); + } + public Map queryOffering(Map map,Map find_card_route_map) { + return CPU(map, "queryOffering",find_card_route_map); + } + + + + public Map cardInfo(Map map) { + Map Rmap = yzCardRouteMapper.findCard(map); + Object iccid = Rmap.get("iccid")!=null?Rmap.get("iccid"):""; + map.put("iccid",iccid); + Rmap.put("packetArr",yzCardRouteMapper.findFlow(map)); + try { + if(Rmap!=null){ + Object activateDate = Rmap.get("activateDate"); + String statusId = Rmap.get("statusId")!=null?Rmap.get("statusId").toString():"0"; + + if(activateDate!=null && activateDate.toString().length()>0){ + + + }else { + //库存 正常 可测试 不需要获取激活时间 + if(statusId.equals("1") || statusId.equals("2") || statusId.equals("3")){ + System.out.println(" iccid = "+iccid+" 不需要获取激活时间 statusId = "+statusId); + }else{ + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_getSynActivateDate_queue"; + String polling_routingKey = "admin.getSynActivateDate.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + Map start_type = new HashMap<>(); + start_type.put("iccid",iccid); + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("发送获取激活时间指令失败 " + e.getMessage()); + } + } + } + } + }catch (Exception e){ + System.out.println("发送获取激活时间指令 异常 "+e.getMessage()); + } + return Rmap; + } + + public Map cardPackageInfo(Map map) { + Map Rmap = new HashMap<>(); + Map Pmap = new HashMap<>(); + Map Cardmap = yzCardRouteMapper.findIccid(map); + + if(Cardmap!=null && Cardmap.get("iccid")!=null){ + String iccid = Cardmap.get("iccid").toString(); + Pmap.put("iccid",iccid); + Pmap.put("all",map.get("all")); + Rmap.put("packetArr",yzCardRouteMapper.findFlowArr(Pmap)); + }else{ + Rmap.put("packetArr",null); + } + return Rmap; + } + + public Map queryCardActiveTime(Map map,Map find_card_route_map) { + return CPU(map, "queryCardActiveTime",find_card_route_map); + } + + public Map realNameRemove(Map map,Map find_card_route_map) { + return CPU(map, "realNameRemove",find_card_route_map); + } + + + + public Map queryCardImei(Map map,Map find_card_route_map) { + return CPU(map, "queryCardImei",find_card_route_map); + } + + public Map getToken(Map map) { + Map Rmap = null; + String tokenType = map.get("tokenType").toString(); + Object refreshToken = map.get("refreshToken");//刷新token + + String cd_code = ""; + Map find_card_route_map = null; + if(tokenType.equals("001")){ + map.put("cd_id","1"); + find_card_route_map = yzCardRouteMapper.getRoute(map); + cd_code = find_card_route_map.get("cd_code").toString(); + if(refreshToken!=null){ + find_card_route_map.put("refreshToken",refreshToken); + } + YD_EC_Api Qy = new YD_EC_Api(find_card_route_map,cd_code); + Rmap = new HashMap<>(); + Rmap.put("token",Qy.token); + } + + return Rmap; + } + + + + /** + * 通道处理器 + * + * @param map + * @param function_name + * @param find_card_route_map + * @return + */ + private Map CPU(Map map, String function_name, Map find_card_route_map) { + //System.out.println("CPU===="); + Map rmap = new HashMap(); + //判断卡 通道 类型 类型 + //System.out.println(map); + find_card_route_map = find_card_route_map==null?yzCardRouteMapper.find_route(map):find_card_route_map; + //System.out.println(find_card_route_map); + String cd_code = find_card_route_map.get("cd_code").toString();//通道类型 + try { + String network_type = find_card_route_map.get("network_type")!=null?find_card_route_map.get("network_type").toString():"";//通道类型 + if(network_type!=null && network_type.length()>0 && network_type.equals("1")){ + if(cd_code.equals("YiDong_ECv2")){ + cd_code = "YiDong_ECv2_Combo"; + }else if(cd_code.equals("YiDong_EC")){ + cd_code = "YiDong_EC_Combo"; + } + } + }catch (Exception e){ + System.out.println("CPU = network_type 异常 "+e.getMessage()+" "+JSON.toJSONString(find_card_route_map)); + } + + String cd_status = find_card_route_map.get("cd_status").toString();//通道状态 + String card_no = find_card_route_map.get("card_no")!=null?find_card_route_map.get("card_no").toString():"";// 真实号码 + String imei = null; + String iccid = map.get("iccid").toString();//iccid + + String dateTime = null; + String Is_Stop = null; + String Is_Break = null; + String speedValue = null; + String Is_Spee = null; + String bind_type = null; + String AutomaticRecovery = null; + String contactName = null; + String contactPhone = null; + String testType = null; + String operType = null; + if (function_name.equals("queryFlowHis")){ + dateTime = map.get("dateTime") != null ? map.get("dateTime").toString() : null;// 【查询历史流量月】 + }else if (function_name.equals("changeCardStatus")){ + Is_Stop = map.get("Is_Stop") != null ? map.get("Is_Stop").toString() : null;// 【是否停复机】 on 开机 off 停机 + }else if (function_name.equals("FunctionApnStatus")){ + Is_Break = map.get("Is_Break") != null ? map.get("Is_Break").toString() : null;// 【断网复机】 是否 0 开机 1 停机 + }else if (function_name.equals("SpeedLimit")){ + speedValue = map.get("speedValue") != null ? map.get("speedValue").toString() : null;// 【限速】 标准 值 + Is_Spee = map.get("Is_Spee") != null ? map.get("Is_Spee").toString() : null;// 【限速】 是否 0 增加 1 删除 + AutomaticRecovery = map.get("AutomaticRecovery") != null ? map.get("AutomaticRecovery").toString() : null;// 是否 【限速】月初是否恢复 0 自动恢复 1 不自动恢复 + }else if (function_name.equals("MachineCardBinding")){ + bind_type = map.get("bind_type") != null ? map.get("bind_type").toString() : null;// 【机卡绑定】 【电信CMP】 不填,表示普通机卡重绑 填写2,表示固定机卡重绑 + imei = map.get("imei") != null ? map.get("imei").toString() : null;// 【机卡绑定】 【电信CMP】 只有在bind_typ=2时才需传入,表示固定绑定到该设备号 + contactName = map.get("contactName") != null ? map.get("contactName").toString() : null;// 电信DCP 解绑用 + contactPhone = map.get("contactPhone") != null ? map.get("contactPhone").toString() : null;// 电信DCP 解绑用 + }else if(function_name.equals("cardBindStatus")){ + testType = map.get("cardBindStatus") != null ? map.get("cardBindStatus").toString() : "1";// 【物联卡机卡分离状态查询 】 ECv5 + }else if (function_name.equals("changeCardStatusFlexible")){ + /** + * 0:已激活转已停机 + * 1:已停机转已激活 + * 2:库存转已激活 + * 3:可测试转库存 + * 4:可测试转待激活 + * 5:可测试转已激活 + * 6:待激活转已激活 + */ + operType = map.get("operType") != null ? map.get("operType").toString() : null;// 【状态灵活变更】 + } + + + rmap.put("iccid",iccid); + //find_card_route_map != null && + if ( cd_code != null && cd_code.equals("") == false && cd_status.equals("1")) { + + if (cd_code.equals("IoTLink")) { + if (function_name.equals("queryFlow")) { + Query_IoTLink Qy = new Query_IoTLink(find_card_route_map); + rmap.put("Data",Qy.simDataUsage(iccid)); + }else if (function_name.equals("queryCardStatus")) { + Query_IoTLink Qy = new Query_IoTLink(find_card_route_map); + rmap.put("Data",Qy.simStatus(iccid)); + }else if(function_name.equals("queryOnlineStatus")){ + Query_IoTLink Qy = new Query_IoTLink(find_card_route_map); + rmap.put("Data",Qy.simSession(iccid)); + }else if(function_name.equals("changeCardStatus")){ + serviceAccept_IoTLink Ser = new serviceAccept_IoTLink(find_card_route_map); + String stop = null; + if (Is_Stop.equals("on")) { + stop = "0";//正常 + } else if (Is_Stop.equals("off")){ + stop = "1";//停机 + } + rmap.put("Data", Ser.changeSimStatus(iccid,stop)); + }else if (function_name.equals("queryCardActiveTime")) { + Query_IoTLink Qy = new Query_IoTLink(find_card_route_map); + rmap.put("Data", Qy.cardInfo(card_no)); + } + rmap.put("Message", "操作成功"); + rmap.put("cd_code", cd_code); + }else if (cd_code.equals("DianXin_CMP")) { + + if (function_name.equals("queryFlow")) { + //实例化 电信 CMP 查询 类 + Query_DX Qy = new Query_DX(find_card_route_map); + rmap.put("Data", Qy.query(card_no)); + } else if (function_name.equals("queryFlowHis")) { + //实例化 电信 CMP 查询 类 + Query_DX Qy = new Query_DX(find_card_route_map); + rmap.put("Data", Qy.queryTrafficByDate(card_no, dateTime + "01", VeDate.getEndDateOfMonth(dateTime), "0")); + } else if (function_name.equals("queryCardStatus")) { + //实例化 电信 CMP 查询 类 + Query_DX Qy = new Query_DX(find_card_route_map); + rmap.put("Data", Qy.queryCardMainStatus(card_no)); + }else if(function_name.equals("queryOnlineStatus")){ + Query_DX Qy = new Query_DX(find_card_route_map); + rmap.put("Data",Qy.queryMainOnlineStatus(card_no)); + } else if(function_name.equals("queryCardBIndStatus")){ + Query_DX Qy = new Query_DX(find_card_route_map); + rmap.put("Data",Qy.queryMainCardBIndStatus(imei)); + } else if (function_name.equals("changeCardStatus")) { + //实例化 电信 CMP 业务变更 类 + serviceAccept_DX Ser = new serviceAccept_DX(find_card_route_map); + String stop = null; + if (Is_Stop.equals("on")) { + stop = "20";//正常 + } else if (Is_Stop.equals("off")){ + stop = "19";//停机 + } + rmap.put("Data", Ser.disabledNumber(card_no,stop)); + }else if (function_name.equals("queryRealNameStatus")) { + //实例化 电信 CMP 查询 类 + Query_DX Qy = new Query_DX(find_card_route_map); + rmap.put("Data", Qy.realNameQueryIot(card_no)); + } + else if (function_name.equals("queryAPNInfo")) { + rmap.put("Data", "未开放接口!"); + }else if (function_name.equals("todayUse")) { + //实例化 电信 CMP 查询 类 + Query_DX Qy = new Query_DX(find_card_route_map); + String now = VeDate.getNowDateShortNuber();//获取今天时间 yyyyMMdd + //System.out.println("now = "+now); + rmap.put("Data", Qy.queryTrafficByDate(card_no, now, now, "0")); + }else if (function_name.equals("FunctionApnStatus")) { + //实例化 电信 CMP 业务变更 类 + serviceAccept_DX Ser = new serviceAccept_DX(find_card_route_map); + String option = Is_Break.equals("0")?"DEL":"ADD"; + rmap.put("Data", Ser.singleCutNet(card_no,option)); + }else if (function_name.equals("SpeedLimit")) { + //实例化 电信 CMP 业务变更 类 + serviceAccept_DX Ser = new serviceAccept_DX(find_card_route_map); + String option = Is_Spee.equals("1")?"DEL":"ADD"; + + Map Smap = Ser.speedValue_set(speedValue); + boolean bool = (boolean) Smap.get("bool"); + speedValue = Smap.get("speedValue").toString(); + if(bool){ + rmap.put("Data", Ser.speedLimitAction(card_no,speedValue,option)); + }else{ + rmap.put("Data", "限速标准不存在,请检查后重试!"); + } + }else if (function_name.equals("MachineCardBinding")) { + //实例化 电信 CMP 业务变更 类 + serviceAccept_DX Ser = new serviceAccept_DX(find_card_route_map); + rmap.put("Data", Ser.IMEIReRecord(card_no,bind_type,imei)); + }else if (function_name.equals("queryCardActiveTime")) { + //实例化 电信 CMP 查询 类 + Query_DX Qy = new Query_DX(find_card_route_map); + rmap.put("Data", Qy.queryCardMainStatus(card_no)); + } + + rmap.put("Message", "操作成功"); + rmap.put("cd_code", cd_code); + } else if (cd_code.equals("LianTong_CMP")) { + if (function_name.equals("queryFlow")) { + //实例化 联通 CMP 查询 类 + Query_LT Qy = new Query_LT(find_card_route_map); + rmap.put("Data", Qy.queryFlow(iccid)); + } else if (function_name.equals("queryFlowHis")) { + //实例化 联通 CMP 查询 类 + Query_LT Qy = new Query_LT(find_card_route_map); + rmap.put("Data", Qy.queryFlowHis(iccid, dateTime)); + } else if (function_name.equals("queryCardStatus")) { + //实例化 联通 CMP 查询 类 + Query_LT Qy = new Query_LT(find_card_route_map); + rmap.put("Data", Qy.queryCardStatus(iccid)); + } else if (function_name.equals("changeCardStatus")) { + //实例化 联通 CMP 业务变更 类 + serviceAccept_LT Ser = new serviceAccept_LT(find_card_route_map); + String stop = null; + if (Is_Stop.equals("on")) { + stop = "2";//正常 + } else if (Is_Stop.equals("off")){ + stop = "3";//停机 + } + rmap.put("Data", Ser.changeCardStatus(iccid,stop)); + }else if (function_name.equals("queryRealNameStatus")) { + //实例化 联通 CMP 查询 类 + Query_LT Qy = new Query_LT(find_card_route_map); + //iccid = iccid.length()>19?iccid.substring(0,19):iccid; + rmap.put("Data", Qy.queryRealNameStatus(iccid)); + }else if (function_name.equals("queryAPNInfo")) { + //实例化 联通 CMP 查询 类 + Query_LT Qy = new Query_LT(find_card_route_map); + rmap.put("Data", Qy.queryAPNInfo(iccid)); + }else if (function_name.equals("FunctionApnStatus")) { + rmap.put("Data", "未开放接口!"); + }else if (function_name.equals("SpeedLimit")) { + //实例化 联通 CMP 业务变更 类 + serviceAccept_LT Ser = new serviceAccept_LT(find_card_route_map); + + Map Smap = Ser.speedValue_set(speedValue); + boolean bool = (boolean) Smap.get("bool"); + speedValue = Smap.get("speedValue").toString(); + if(bool){ + rmap.put("Data", Ser.upNetWork(iccid,speedValue)); + }else{ + rmap.put("Data", "限速标准不存在,请检查后重试!"); + } + }else if (function_name.equals("MachineCardBinding")) { + rmap.put("Data", "未开放接口!"); + } + rmap.put("Message", "操作成功"); + rmap.put("cd_code", cd_code); + } else if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + if (function_name.equals("queryFlow")) { + //实例化 移动 EC 查询 类 + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + if(cd_code.equals("YiDong_EC_Combo")){ + rmap.put("Data", Qy.queryGprsMarginBySim(card_no)); + }else{ + rmap.put("Data", Qy.selectFlow(card_no)); + } + } else if (function_name.equals("queryFlowHis")) { + //实例化 移动 EC 查询 类 + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.designatedMonth(card_no, dateTime)); + } else if (function_name.equals("queryCardStatus")) { + //实例化 移动 EC 查询 类 + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.queryCardStatus(card_no)); + }else if (function_name.equals("changeCardStatus")) { + //实例化 移动 EC 业务变更 类 + serviceAccept_YD Ser = new serviceAccept_YD(find_card_route_map,cd_code); + String stop = null; + if (Is_Stop.equals("on")) { + stop = "1";//正常 + } else if (Is_Stop.equals("off")){ + stop = "0";//停机 + } + rmap.put("Data", Ser.changeCardStatus(card_no,stop)); + }else if (function_name.equals("queryRealNameStatus")) { + rmap.put("Data", "未开放接口!"); + }else if (function_name.equals("queryAPNInfo")) { + //实例化 移动 EC 查询 类 + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.queryApnStatus(card_no)); + }else if (function_name.equals("FunctionApnStatus")) { + //实例化 移动 EC 业务变更 类 + serviceAccept_YD Ser = new serviceAccept_YD(find_card_route_map,cd_code); + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Ser.FunctionApnStatus(card_no,Is_Break, Qy.queryApnStatus(card_no))); + }else if (function_name.equals("SpeedLimit")) { + //实例化 移动 EC 业务变更 类 + serviceAccept_YD Ser = new serviceAccept_YD(find_card_route_map,cd_code); + + Map Smap = Ser.speedValue_set(speedValue,AutomaticRecovery); + boolean bool = (boolean) Smap.get("bool"); + speedValue = Smap.get("speedValue").toString(); + if(bool){ + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + Map Jobj = Qy.queryApnStatus(card_no); + String apnName =null; + if(Jobj.get("status").toString().equals("0")){ + Map result = ((List>)Jobj.get("result")).get(0); + Map data =((List>) result.get("serviceTypeList")).get(0); + apnName = data.get("apnName").toString(); + } + rmap.put("Data", Ser.speed(card_no,apnName,speedValue)); + }else{ + rmap.put("Data", "限速标准不存在,请检查后重试!"); + } + }else if (function_name.equals("MachineCardBinding")) { + rmap.put("Data", "未开放接口!"); + }else if(function_name.equals("queryOnlineStatus")){ + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.sim_session(card_no)); + }else if(function_name.equals("queryCardActiveTime")){ + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.queryCardActiveTime(card_no)); + }else if(function_name.equals("queryCardImei")){ + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.queryCardImei(card_no)); + }else if(function_name.equals("simStopReason")){ + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.simStopReason(card_no)); + }else if(function_name.equals("onOffStatus")){ + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.onOffStatus(card_no)); + }else if(function_name.equals("apnInfo")){ + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.apnInfo(card_no)); + }else if(function_name.equals("cardBindStatus")){ + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.cardBindStatus(card_no,testType)); + }else if(function_name.equals("simChangeHistory")){ + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.simChangeHistory(card_no)); + }else if (function_name.equals("changeCardStatusFlexible")) { + //实例化 移动 EC 业务变更 类 + serviceAccept_YD Ser = new serviceAccept_YD(find_card_route_map,cd_code); + rmap.put("Data", Ser.changeCardStatus(card_no,operType)); + }else if(function_name.equals("simDataMargin")){ + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.simDataMargin(card_no)); + }else if(function_name.equals("queryOffering")){ + Query_YD Qy = new Query_YD(find_card_route_map,cd_code); + rmap.put("Data", Qy.queryOffering(card_no)); + } + + rmap.put("Message", "操作成功"); + rmap.put("cd_code", cd_code); + }else if(cd_code.equals("DianXin_DCP")){ + if (function_name.equals("queryFlow")) { + rmap=dcpDxService.queryFlow(iccid,find_card_route_map); + } else if (function_name.equals("queryFlowHis")) { + rmap.put("data","未开放接口"); + } else if (function_name.equals("queryCardStatus")) { + rmap=dcpDxService.querySimStatus(iccid,find_card_route_map); + } else if (function_name.equals("changeCardStatus")) { + String stop = null; + if (Is_Stop.equals("on")) { + stop = "2";//正常 + } else if (Is_Stop.equals("off")){ + stop = "3";//停机 + } + rmap=dcpDxService.changeCardStatus(iccid,stop,find_card_route_map); + }else if (function_name.equals("queryRealNameStatus")) { + rmap=dcpDxService.queryAuth(iccid,card_no,find_card_route_map); + } + else if (function_name.equals("queryAPNInfo")) { + rmap=dcpDxService.queryLimit(iccid,find_card_route_map); + }else if (function_name.equals("todayUse")) { + rmap.put("data","未开放接口"); + }else if (function_name.equals("FunctionApnStatus")) { + rmap.put("data","未开放接口"); + }else if (function_name.equals("SpeedLimit")) { + serviceAccept_DX Ser = new serviceAccept_DX(find_card_route_map); + Map Smap = Ser.speedValue_set(speedValue); + boolean bool = (boolean) Smap.get("bool"); + speedValue = Smap.get("speedValue").toString(); + if(bool){ + rmap=dcpDxService.changeLimit(iccid, + "13",speedValue,find_card_route_map); + }else{ + rmap.put("data", "限速标准不存在,请检查后重试!"); + } + }else if (function_name.equals("MachineCardBinding")) { + serviceAccept_DianXinDCP Ser = new serviceAccept_DianXinDCP(find_card_route_map); + //bind_type = 联系人姓名 imei = 联系人手机号码 + rmap.put("data",Ser.unlockSimbind(iccid,contactName,contactPhone)); + }else if (function_name.equals("realNameRemove")) { + serviceAccept_DianXinDCP Ser = new serviceAccept_DianXinDCP(find_card_route_map); + //bind_type = 联系人姓名 imei = 联系人手机号码 + rmap.put("data",Ser.realNameRemove(iccid,"iccid")); + } + + rmap.put("Message", "操作成功"); + rmap.put("cd_code", cd_code); + }else if (cd_code.equals("YiDong_ECv2") || cd_code.equals("YiDong_ECv2_Combo")) { + if (function_name.equals("queryFlow")) { + //实例化 查询 类 + Query_EcV2 Qy = new Query_EcV2(find_card_route_map); + if(cd_code.equals("YiDong_ECv2_Combo")){ + rmap.put("Data", Qy.gprsrealtimeinfo(iccid)); + }else { + rmap.put("Data", Qy.queryCardFlow(iccid)); + } + + } else if (function_name.equals("queryCardStatus")) { + //实例化 查询 类 + Query_EcV2 Qy = new Query_EcV2(find_card_route_map); + rmap.put("Data", Qy.queryCardStatus(iccid)); + } else if (function_name.equals("queryOnlineStatus")) { + //实例化 查询 类 + Query_EcV2 Qy = new Query_EcV2(find_card_route_map); + rmap.put("Data", Qy.sim_session(iccid)); + } else if (function_name.equals("queryOffering")) { + //实例化 查询 类 + Query_EcV2 Qy = new Query_EcV2(find_card_route_map); + rmap.put("Data", Qy.querycardprodinfod(iccid)); + } + + rmap.put("Message", "操作成功"); + rmap.put("cd_code", cd_code); + }else if (cd_code.equals("DianXin_CMP_5G")) {//电信CMP5G + if (function_name.equals("queryFlow")) { + //实例化 查询 类 + Query_DX5G Qy = new Query_DX5G(find_card_route_map); + rmap.put("Data", Qy.queryTraffic(card_no,"0")); + } + else if (function_name.equals("queryCardStatus")) { + //实例化 查询 类 + Query_DX5G Qy = new Query_DX5G(find_card_route_map); + rmap.put("Data", Qy.queryCardMainStatus(card_no,null)); + } else if (function_name.equals("changeCardStatus")) { + //实例化 + ServiceAccept_DX5G Sr = new ServiceAccept_DX5G(find_card_route_map); + String stop = null; + if (Is_Stop.equals("on")) { + stop = "20";//正常 + } else if (Is_Stop.equals("off")) { + stop = "19";//停机 + } + rmap.put("Data", Sr.disabledNumberService(card_no,stop)); + } else if (function_name.equals("FunctionApnStatus")) { + //实例化 查询 类 + ServiceAccept_DX5G Sr = new ServiceAccept_DX5G(find_card_route_map); + String option = Is_Break.equals("0")?"ADD":"DEL"; + rmap.put("Data", Sr.apnNetStatusAction(card_no,option)); + } + + rmap.put("Message", "操作成功"); + rmap.put("cd_code", cd_code); + } else { + rmap.put("cd_code", 500); + rmap.put("Message", "划分的通道 通道编号配置错误请检查通道编号!"); + } + + } else if (cd_status == "2" || cd_status == "3") { + rmap.put("cd_code", 500); + rmap.put("Message", "划分通道 已停用或已删除!"); + } else { + rmap.put("cd_code", 500); + rmap.put("Message", "未找到 划分通道!"); + } + return rmap; + + } +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/SDYiDong/Inquire/Query_Sdiot.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/SDYiDong/Inquire/Query_Sdiot.java new file mode 100644 index 0000000..fcda6d4 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/SDYiDong/Inquire/Query_Sdiot.java @@ -0,0 +1,117 @@ +package com.yunze.apiCommon.upstreamAPI.SDYiDong.Inquire; + + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.upstreamAPI.SDYiDong.Sdiot_Api; +import com.yunze.apiCommon.utils.HttpUtil; + +import java.util.HashMap; +import java.util.Map; + +/** + * 查询类接口 + */ +public class Query_Sdiot extends Sdiot_Api { + + public static void main(String[] args) { + Map map = new HashMap(); + + map.put("cd_username", ""); + map.put("cd_pwd", ""); + map.put("cd_key", ""); + Query_Sdiot Qy = new Query_Sdiot(map); + + for (int i = 0; i < 1; i++) { + System.out.println(Qy.queryCardStatus("10")); + } + } + + + public Query_Sdiot(Map init_map) { + super(init_map); + } + + + /** + * 获取单卡的流量 + * @param queryNum 接入号 + * @param + * @return + */ + public static String queryFlow(String queryNum) { + String Rstr = null; + try { + Map params = new HashMap<>(); + params.put("appkey",appkey); + params.put("token",token); + params.put("numType","1"); + params.put("queryNum",queryNum); + params.put("provinceid",provinceid); + String url = server_Ip + "/cmiotopen/qryGPRSRealTimeInfo"; + Rstr = HttpUtil.sendPostJson(url, JSON.toJSONString(params)); + } catch (Exception e) { + e.printStackTrace(); + } + return Rstr; + } + + /** + * 获取单卡的状态 + *  00-正常; + *  01-单向停机; + *  02-停机; + *  03-预销号; + *  04-销号; + *  05-过户; + *  06-休眠; + *  07-待激; + *  99-号码不存在 + * @param msisdn 接入号 + * @param + * @return + */ + public static String queryCardStatus(String msisdn) { + String Rstr = null; + try { + Map params = new HashMap<>(); + params.put("appkey",appkey); + params.put("token",token); + params.put("msisdn",msisdn); + params.put("provinceid",provinceid); + String url = server_Ip + "/cmiotopen/qryUserStatusRealSingle"; + Rstr = HttpUtil.sendPostJson(url, JSON.toJSONString(params)); + } catch (Exception e) { + e.printStackTrace(); + } + return Rstr; + } + + + /** + * 在线信息查询 + * @param msisdn + * @return + */ + public static String qryGPRSInfo(String msisdn) { + String Rstr = null; + try { + Map params = new HashMap<>(); + params.put("appkey",appkey); + params.put("token",token); + params.put("msisdn",msisdn); + params.put("provinceid",provinceid); + String url = server_Ip + "/cmiotopen/qryGPRSInfo"; + Rstr = HttpUtil.sendPostJson(url, JSON.toJSONString(params)); + } catch (Exception e) { + e.printStackTrace(); + } + return Rstr; + } + + + + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/SDYiDong/Sdiot_Api.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/SDYiDong/Sdiot_Api.java new file mode 100644 index 0000000..68f9cca --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/SDYiDong/Sdiot_Api.java @@ -0,0 +1,75 @@ +package com.yunze.apiCommon.upstreamAPI.SDYiDong; + + +import com.yunze.apiCommon.utils.MD5Util; +import com.yunze.apiCommon.utils.SHA256Util; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * 山东 移动老系统 接口 + */ +public class Sdiot_Api { + + + + + //构造赋值 + public Sdiot_Api(Map init_map){ + + appkey = init_map.get("cd_username").toString(); + appsecret = init_map.get("cd_pwd").toString(); + provinceid = init_map.get("cd_key").toString(); + token = getToken(); + } + + // 服务器请求地址 http://223.99.141.141:10110/sdiot + protected static String server_Ip = "http://223.99.141.141:10110/sdiot"; + // 秘钥key + public static String appkey = null; + //秘钥密码 + public static String appsecret = null; + //省份编码,山东省为:“531” + public static String provinceid = null; + + public static String token = null; + // 配置调用的名称 + protected static String Config_name = ""; + + + + public static String getSign(Map map,String key){ + List list=new ArrayList<>(map.keySet()); + /* for (int i = 0; i < list.size(); i++) { + //System.out.println(list.get(i)); + }*/ + Collections.sort(list); + ////System.out.println("后----"); + /* for (int i = 0; i < list.size(); i++) { + //System.out.println(list.get(i)); + }*/ + StringBuffer sb=new StringBuffer(); + for(int i=0;i init_map,String cd_code) { + super(init_map,cd_code); + } + + + + + + + /** + * 单卡本月套餐内流量使用量实时查询 + * @param card_no + * @return + */ + public String queryGprsMarginBySim(String card_no) { + String functionNm = "/query/sim-data-margin"; + JSONObject retult = new JSONObject(); + JSONObject json = new JSONObject(); + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + String url = server_Ip + functionNm; + String Str = send(url,json); + return repeat(Str,json,url); + } + + + + /** + * 单卡接口查询卡状态 + * @param card_no + * @return + */ + public String queryCardStatus(String card_no) { + String functionNm = "/query/sim-status"; + + JSONObject json = new JSONObject(); + String cardStatus = null; + String lastChangeDate = null; + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + json.put("msisdn", card_no); + String Str = send(url,json); + return repeat(Str,json,url); + } + + /** + * 月流量查询接口 + * @param card_no + * @return + */ + public String selectFlow(String card_no) { + String functionNm = "/query/sim-data-usage"; + JSONObject retult = new JSONObject(); + JSONObject json = new JSONObject(); + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + String url = server_Ip + functionNm; + String Str = send(url,json); + //System.out.println(Str); + return repeat(Str,json,url); + } + + /** + * 查询指定月份的已用流量。6个月内的 + * + * @param card_no + * @param queryDate + * @return + */ + public String designatedMonth(String card_no, String queryDate) { + String functionNm = "/query/sim-data-usage-monthly/batch"; + JSONObject retult = new JSONObject(); + JSONObject json = new JSONObject(); + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdns", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + + json.put("queryDate", queryDate); + String url = server_Ip + functionNm; + String Str = send(url,json); + return repeat(Str,json,url); + } + + + /** + * 单卡卡状态操作 + * @param card_no + * @param flag + * @return + */ + /*public String changeCardStatus(String card_no, String flag) { + String functionNm = "/change/sim-status"; + JSONObject retult = new JSONObject(); + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + json.put("operType", flag); + String Str = send(url,json); + return repeat(Str,json,url); + }*/ + + /** + * 查询单卡的机卡分离状态 + * @param card_no + * @return + */ + public String queryCardBindStatus(String card_no) { + String functionNm = "/query/card-bind-status"; + JSONObject retult = new JSONObject(); + JSONObject json = new JSONObject(); + String cardStatus = null; + String sepTime = null; + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + + json.put("testType", 0); + String Str = send(url,json); + return repeat(Str,json,url); + } + + /** + * 解除单卡的机卡分离 + * @param card_no + * @return + */ + /* public String upCardBindStatus(String card_no) { + String functionNm = "/operate/card-bind-by-bill"; + JSONObject retult = new JSONObject(); + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + + json.put("operType", 2); + String Str = send(url,json); + return repeat(Str,json,url); + }*/ + + /** + * 单卡查询激活以及开卡时间 + * @param card_no + * @return + */ + public String queryCardActiveTime(String card_no) { + String functionNm = "/query/sim-basic-info"; + JSONObject retult = new JSONObject(); + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + + String Str = send(url,json); + return repeat(Str,json,url); + } + + /** + * @param @param card_no + * @param @return 参数 + * @return JSONObject 返回类型 + * @throws + * @Description:单卡查询apn状态 + * @author + * @date 2020年5月25日 + */ + public Map queryApnStatus(String card_no) { + String functionNm = "/query/sim-communication-function-status"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + + //String Str = HttpUtil.post(url, json.toJSONString()); + String Str = send(url,json); + return JSONObject.parseObject(repeat(Str,json,url)); + } + + /** + * 流量池信息查询 + * @return + */ + public static String queryFlowPool(){ + String functionNm = "/query/group-data-margin"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + } + json.put("groupId", appId); + String Str = HttpUtil.post(url, json.toJSONString()); + + return Str; + + } + + + /** + * 单卡在线信息实时查询 + * @param card_no + * @return + */ + public String sim_session(String card_no) { + String functionNm = "/query/sim-session"; + JSONObject json = new JSONObject(); + String cardStatus = null; + String lastChangeDate = null; + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + + String Str = send(url,json); + return repeat(Str,json,url); + } + + + /** + * 单卡实时使用终端 IMEI 查询 + * @param card_no + * @return + */ + public String queryCardImei(String card_no) { + String functionNm = "/query/sim-imei"; + JSONObject json = new JSONObject(); + String cardStatus = null; + String lastChangeDate = null; + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + String Str = send(url,json); + return repeat(Str,json,url); + } + + + + /** + * 单卡停机原因查询 + * @param card_no + * @return + */ + public String simStopReason(String card_no) { + String functionNm = "/query/sim-stop-reason"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + String Str = send(url,json); + return repeat(Str,json,url); + } + + + + + /** + * 单卡开关机状态实时查询 + * @param card_no + * @return + */ + public String onOffStatus(String card_no) { + String functionNm = "/query/on-off-status"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + String Str = send(url,json); + return repeat(Str,json,url); + } + + /** + * 单卡已开通APN信息查询 + * @param card_no + * @return + */ + public String apnInfo(String card_no) { + String functionNm = "/query/apn-info"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + String Str = send(url,json); + return repeat(Str,json,url); + } + + + /** + * 物联卡机卡分离状态查询 + * @param card_no + * @param testType 分离检测方式: + * 0:话单侧检测 + * 1:网络侧检测 + * @return + */ + public String cardBindStatus(String card_no,String testType) { + String functionNm = "/query/card-bind-status"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + json.put("testType", testType); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + json.put("testType", testType); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + String Str = send(url,json); + return repeat(Str,json,url); + } + + + + /** + * 单卡状态变更历史查询 + * @param card_no + * @return + */ + public String simChangeHistory(String card_no) { + String functionNm = "/query/sim-change-history"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + String Str = send(url,json); + return repeat(Str,json,url); + } + + + + + + + + + /** + * 单卡本月套餐内流量使用量实时查 + * @param card_no + * @return + */ + public String simDataMargin(String card_no) { + String functionNm = "/query/sim-data-margin"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + String Str = send(url,json); + return repeat(Str,json,url); + } + + + + /** + * 资费订购实时查询 + * @param card_no + * @return + */ + public String queryOffering(String card_no) { + String functionNm = "/query/ordered-offerings"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + json.put("queryType", "3"); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + json.put("queryType", "3"); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + String Str = send(url,json); + return repeat(Str,json,url); + } + + + + + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEC/ResJson.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEC/ResJson.java new file mode 100644 index 0000000..0e0ed4a --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEC/ResJson.java @@ -0,0 +1,53 @@ +package com.yunze.apiCommon.upstreamAPI.YiDongEC; + +import com.alibaba.fastjson.JSONObject; + + +/** + * EC 官方返回数据格式 + */ +public class ResJson extends JSONObject { + + private String status; + private String message; + private Object result; + + public ResJson(String status, String message, Object result) { + this.status = status; + this.message = message; + this.result = result; + /* try { + this.result = AesEncryptUtil.desEncrypt(result.toString(),"Api@iotyunze00","2020_12_10163622"); + }catch (Exception e){ + this.result = "返回数据加密失败"; + //System.out.println(e); + }*/ + + } + + public ResJson() { + + } + + public ResJson success(Object result){ + this.put("status","0"); + this.put("message","正确"); + /* try { + result = AesEncryptUtil.desEncrypt(result.toString(),"Api@iotyunze00","2020_12_10163622"); + }catch (Exception e){ + result = "返回数据加密失败"; + //System.out.println(e); + }*/ + this.put("result",result); + //System.out.println(this); + return this; + } + + public ResJson error(String status, String message, Object result){ + this.put("status",status); + this.put("message",message); + this.put("result",result); + //System.out.println(this); + return this; + } +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEC/YD_EC_Api.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEC/YD_EC_Api.java new file mode 100644 index 0000000..0bfbd78 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEC/YD_EC_Api.java @@ -0,0 +1,151 @@ +package com.yunze.apiCommon.upstreamAPI.YiDongEC; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yunze.apiCommon.config.RedisUtil; +import com.yunze.apiCommon.utils.HttpUtil; +import com.yunze.apiCommon.utils.UrlUtil; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * 移动 EC 系统 API 接口 + */ +public class YD_EC_Api { + + private RedisUtil redisUtil; + + + + //构造赋值 + public YD_EC_Api(Map init_map,String cd_code){ + redisUtil = new RedisUtil(); + appId = init_map.get("cd_username").toString(); + password = init_map.get("cd_pwd").toString(); + if(cd_code.equals("YiDong_EC_TengYu")){ + server_Ip = init_map.get("cd_key").toString(); + }else{ + server_Ip = "https://api.iot.10086.cn/v5/ec"; + } + this.cd_code = cd_code; + String R_token = null; + try { + R_token = (String) redisUtil.redisTemplate.opsForValue().get(password+":"+ appId); + }catch (Exception e){ + //System.out.println("移动获取 token 异常"); + //System.out.println(e); + } + // 去 Redis 查询 当前 的 token + //System.out.println("R_token = "+R_token); + if(R_token!=null && R_token!=""){ + token = R_token; + }else{ + if(cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo")){ + //获取token + SetToken(appId,password); + } + } + + } + + // 服务器请求地址 + protected static String server_Ip = "https://api.iot.10086.cn/v5/ec"; + // user_id + protected static String appId = null; + // 秘钥密码 + protected static String password = null; + // 配置调用的名称 + protected static String Config_name = ""; + // 企业 编号 + protected static String transid =null; + //token 获取请求参数 + protected static Map TokenMap = null; + //通道编码 + protected static String cd_code = null; + + // token + public static String token = null; + + + /** + * 获取 token + * @param appid + * @param pwd + */ + public void SetToken(String appid, String pwd) { + String method = server_Ip + "/get/token"; + Map params = new HashMap(); + params.put("appid", appid); + params.put("password", pwd); + params.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + + String reqUrl = UrlUtil.getUrl(method, params); + //System.err.println(reqUrl); + String res = HttpUtil.get(reqUrl); + //System.out.println("res = " + res); + JSONObject json = JSON.parseObject(res); + Object status = json.get("status"); + if (status != null && status.toString().equals("0")) { + Map map = ((List>) json.get("result")).get(0); + token = map.get("token"); + //System.out.println("token = " + token); + redisUtil.redisTemplate.opsForValue().set(password + ":" + appId, token, 10, TimeUnit.MINUTES); + //redisUtil.redisTemplate.expire(appId+"_"+password, 60*50, TimeUnit.SECONDS); + } + + } + + + + + + /** + * 检查返回数据为 token 失效 时 重新 获取 token + * @param Str + * @param json + * @param url + * @return + */ + public String repeat (String Str, JSONObject json, String url){ + if (Str != null) { + JSONObject rmap = JSONObject.parseObject(Str); + //{"status":"12021","message":"TOKEN不存在或已过期,请重新获取","result":[]} + if (rmap.get("status").toString().equals("12021")) { + // 重置 token , 再次执行 + if(cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo")){ + SetToken(appId, password); + } + json.put("token", token); + Str = HttpUtil.post(url, json.toJSONString()); + + } + } + return Str; + } + + /** + * 数据发送 + * @param url + * @param json + * @return + */ + public String send(String url, JSON json){ + String Str = null; + if(!cd_code.equals("YiDong_EC_TengYu")){ + Str = HttpUtil.post(url, json.toJSONString()); + }else { + try { + Str = HttpUtil.sendPostJson(url, json.toJSONString()); + }catch (Exception e){ + System.out.println(url+" <<<< >>>> "+json.toJSONString()+" HttpUtil.sendPostJson 异常 "+e.getMessage()); + } + } + return Str; + } + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEC/change/serviceAccept_YD.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEC/change/serviceAccept_YD.java new file mode 100644 index 0000000..fb989ad --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEC/change/serviceAccept_YD.java @@ -0,0 +1,229 @@ +package com.yunze.apiCommon.upstreamAPI.YiDongEC.change; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yunze.apiCommon.upstreamAPI.YiDongEC.YD_EC_Api; +import com.yunze.apiCommon.utils.CommonlyUsed; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 移动 变更 接口 + */ +public class serviceAccept_YD extends YD_EC_Api { + + + public serviceAccept_YD(Map init_map,String cd_code) { + super(init_map,cd_code); + } + + + /** + * 项目描述 单卡卡状态操作 + * 0:申请停机(已激活转已停机) + 1:申请复机(已停机转已激活) + 2:库存转已激活 + 3:可测试转库存 + 4:可测试转待激活 + 5:可测试转已激活 + 6:待激活转已激活 + * @param card_no + * @param flag + * @return + * @throws IOException + */ + public String changeCardStatus(String card_no, String flag){ + String functionNm = "/change/sim-status"; + JSONObject retult = new JSONObject(); + JSONObject json = new JSONObject(); + String url = server_Ip+functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + json.put("requestParams", requestParams); + } + json.put("operType", flag); + String Str = send(url,json); + return repeat(Str,json,url); + } + + + /** + * + * @Title: FunctionApnStatus + * @Description:单卡apn 开停 + * @param @param card_no + * @param @param operType 0:开 1:停 + * @param @param 单卡apn信息 + * @param @return 参数 + * @return JSONObject 返回类型 + * @throws + * @author + * @date 2020年5月25日 + */ + public String FunctionApnStatus(String card_no,String operType,Map Jobj){ + JSONObject retult = new JSONObject(); + JSONObject json = new JSONObject(); + String url = server_Ip+"/operate/sim-apn-function"; + String Str = null; + + Map Data = ((List>) Jobj.get("result")).get(0); + Map serviceTypeList = ((List>) Data.get("serviceTypeList")).get(0); + String apnName=serviceTypeList.get("apnName").toString(); + String serviceStatus =""; // 当前apn状态 + //获取 查询 apn 数据 + + if(Jobj.get("status").toString().equals("0")){ + serviceStatus = serviceTypeList.get("serviceStatus").toString(); // 0:暂停 1:恢复 + } + if("1".equals(serviceStatus) &&"0".equals(operType)){ + retult.put("status", "0"); + retult.put("message", "操作成功"); + Str = JSON.toJSONString(retult); + }else if("0".equals(serviceStatus)&&"1".equals(operType)){ + retult.put("status", "0"); + retult.put("message", "操作成功"); + Str = JSON.toJSONString(retult); + }else{ + json.put("transid", transid); + json.put("token", token); + json.put("msisdn", card_no); + json.put("apnName", apnName); + json.put("operType", operType); + Str = send(url,json); + } + return repeat(Str,json,url); + } + + /** + * @param card_no + * @param apnName + * @param serviceUsageState + * 1:速率恢复 + * 91:APN-AMBR=2Mbps(月初不自动恢复) + * 92:APN-AMBR=1Mbps(月初不自动恢复 + * 93:APN-AMBR=512Kbps(月初不自动恢复) + * 94:APN-AMBR=128Kbps(月初不自动恢复) + * 95:APN-AMBR=2Mbps(月初自动恢复) + * 96:APN-AMBR=1Mbps(月初自动恢复) + * 97:APN-AMBR=512Kbps(月初自动恢复) + * 98:APN-AMBR=128Kbps(月初自动恢复) + * @return + */ + public String speed(String card_no, String apnName,String serviceUsageState){ + String functionNm = "/operate/network-speed"; + JSONObject retult = new JSONObject(); + JSONObject json = new JSONObject(); + String url = server_Ip+functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + json.put("apnName", apnName); + json.put("serviceUsageState", serviceUsageState); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + requestParams.put("apnName", apnName); + requestParams.put("serviceUsageState", serviceUsageState); + json.put("requestParams", requestParams); + } + + String Str = send(url,json); + return repeat(Str,json,url); + } + + /** + * 判断 在限速 标准 中 + * @param speedValue + * @param AutomaticRecovery 月初 是否 自动恢复 0 自动 恢复 1 不自动恢复 + * @return bool = true 在标准中 + */ + public Map speedValue_set(String speedValue,String AutomaticRecovery){ + boolean bool = false; + Map map = new HashMap(); + List rule = new ArrayList(); + rule.add("1");rule.add("91");rule.add("92");rule.add("93"); + rule.add("94");rule.add("95");rule.add("96");rule.add("97");rule.add("98"); + //自动恢复 + if(AutomaticRecovery!=null && AutomaticRecovery!="" && AutomaticRecovery=="0"){ + if(speedValue.equals("1")){ + speedValue = "96";//1Mbps + }else if(speedValue.equals("2")){ + speedValue = "95";//2Mbps + }else if(speedValue.equals("11")){ + speedValue = "97";//512Kbps + }else if(speedValue.equals("5")){ + speedValue = "98";//128Kbps + } + }else{ + if(speedValue.equals("1")){ + speedValue = "92";//1Mbps + }else if(speedValue.equals("2")){ + speedValue = "91";//2Mbps + }else if(speedValue.equals("11")){ + speedValue = "93";//512Kbps + }else if(speedValue.equals("5")){ + speedValue = "94";//128Kbps + } + } + if(speedValue.equals("0")){ + speedValue = "1";//不限制 + } + bool = CommonlyUsed.Val_Is_Arr(rule,speedValue);//判断 传入 类型是否在 已有 标准中 + map.put("speedValue",speedValue); + map.put("bool",bool); + return map; + } + + + /** + * V5.9.4 2021-11-26 ⚫ 下架“机卡绑定类”商品包及其包内所含接口 + * 单卡机卡绑定/变更/解绑(网络侧) + * @param card_no + * @param operType 机卡操作: + * 1:机卡绑定 + * 2:机卡解绑 + * 3:绑定变更 + * @param imei + * @return + */ + public String cardBind(String card_no, String operType,String imei){ + String functionNm = "/operate/card-bind-by-web"; + JSONObject json = new JSONObject(); + String url = server_Ip+functionNm; + if(!cd_code.equals("YiDong_EC_TengYu")){ + json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date())); + json.put("token", token); + json.put("msisdn", card_no); + json.put("operType", operType); + json.put("imei", imei); + }else{ + json.put("interface", functionNm); + json.put("appid", appId); + Map requestParams = new HashMap<>(); + requestParams.put("msisdn",card_no); + requestParams.put("operType", operType); + requestParams.put("imei", imei); + json.put("requestParams", requestParams); + } + + String Str = send(url,json); + return repeat(Str,json,url); + } + + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEcV2/Inquire/Query_EcV2.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEcV2/Inquire/Query_EcV2.java new file mode 100644 index 0000000..8ec9f97 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEcV2/Inquire/Query_EcV2.java @@ -0,0 +1,136 @@ +package com.yunze.apiCommon.upstreamAPI.YiDongEcV2.Inquire; + +import com.alibaba.fastjson.JSONObject; +import com.yunze.apiCommon.upstreamAPI.YiDongEcV2.YD_EcV2_Api; +import lombok.extern.slf4j.Slf4j; + +import java.util.HashMap; +import java.util.Map; + +/** + * 查询类接口 + */ +@Slf4j +public class Query_EcV2 extends YD_EcV2_Api { + + + public Query_EcV2(Map init_map) { + super(init_map); + } + + public static void main(String[] args) { + + Map map = new HashMap(); + map.put("cd_username", ""); + map.put("cd_pwd", ","); + map.put("cd_key", ""); + Query_EcV2 Qy = new Query_EcV2(map); + + for (int i = 0; i < 1; i++) { + System.out.println(Qy.gprsrealtimeinfo("8986041")); + } + + } + + + + /** + * 套餐内GPRS流量使用情况实时查询 + * @param iccid + * @return + */ + public String gprsrealtimeinfo(String iccid) { + String functionNm = "/gprsrealtimeinfo"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + json.put("transid", transid); + json.put("token", token); + json.put("appid", appId); + json.put("ebid", "0001000000083"); + json.put("iccid", iccid); + String Str = send(url,json); + log.info(">> {} gprsrealtimeinfo :{} <<", iccid, Str); + return Str; + } + + + /** + * 单卡接口查询卡状态 + * @param iccid + * @return + */ + public String queryCardStatus(String iccid) { + String functionNm = "/userstatusrealsingle"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + json.put("transid", transid); + json.put("token", token); + json.put("appid", appId); + json.put("ebid", "0001000000009"); + json.put("iccid", iccid); + String Str = send(url,json); + log.info(">> {} queryCardStatus :{} <<", iccid, Str); + return Str; + } + + /** + * 月流量查询接口 + * @param iccid + * @return + */ + public String queryCardFlow(String iccid) { + String functionNm = "/gprsusedinfosingle"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + json.put("transid", transid); + json.put("token", token); + json.put("appid", appId); + json.put("ebid", "0001000000012"); + json.put("iccid", iccid); + String Str = send(url,json); + log.info(">> {} queryCardFlow :{} <<", iccid, Str); + return Str; + } + + + + + + /** + * 单卡在线信息实时查询 + * @param iccid + * @return + */ + public String sim_session(String iccid) { + String functionNm = "/gprsrealsingle"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + json.put("transid", transid); + json.put("token", token); + json.put("appid", appId); + json.put("ebid", "0001000000008"); + json.put("iccid", iccid); + String Str = send(url,json); + return Str; + } + + /** + * 物联卡资费套餐查询 + * @param iccid + * @return + */ + public String querycardprodinfod(String iccid) { + String functionNm = "/querycardprodinfo"; + JSONObject json = new JSONObject(); + String url = server_Ip + functionNm; + json.put("transid", transid); + json.put("token", token); + json.put("appid", appId); + json.put("ebid", "0001000000264"); + json.put("iccid", iccid); + String Str = send(url,json); + return Str; + } + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEcV2/YD_EcV2_Api.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEcV2/YD_EcV2_Api.java new file mode 100644 index 0000000..06ddd44 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/upstreamAPI/YiDongEcV2/YD_EcV2_Api.java @@ -0,0 +1,73 @@ +package com.yunze.apiCommon.upstreamAPI.YiDongEcV2; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.utils.HttpUtil; +import com.yunze.apiCommon.utils.SHA256Util; +import com.yunze.apiCommon.utils.UrlUtil; +import com.yunze.apiCommon.utils.VeDate; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Map; + +/** + * 移动 ECv2 系统 API 接口 + */ +public class YD_EcV2_Api { + + + //构造赋值 + public YD_EcV2_Api(Map init_map){ + appId = init_map.get("cd_username").toString(); + password = init_map.get("cd_pwd").toString(); + ecID = init_map.get("cd_key").toString(); + token = getToken(); + } + + // 服务器请求地址 + protected static String server_Ip = "https://api.iot.10086.cn/v2"; + // user_id + protected static String appId = null; + // 秘钥密码 + protected static String password = null; + // 配置调用的名称 + protected static String Config_name = ""; + // 企业 编号 + protected static String ecID =null; + // 请求 编号 + protected static String transid =null; + //token 获取请求参数 + protected static Map TokenMap = null; + // token + protected static String token = null; + + + /** + * 获取 token + */ + public String getToken() { + transid = VeDate.getTransid(appId,8); + return SHA256Util.getSHA256StrJava(appId+password+transid).toLowerCase(); + } + + /** + * 数据发送 + * @param url + * @param map + * @return + */ + public String send(String url, Map map){ + String Str = null; + try { + Str = HttpUtil.doPost(url, map); + }catch (Exception e){ + System.out.println("url : "+url+" map : "+map+" 返回结果异常 "+e.getMessage()); + } + /*System.out.println(url); + System.out.println(map); + System.out.println(Str);*/ + return Str; + } + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/AesEncryptUtil.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/AesEncryptUtil.java new file mode 100644 index 0000000..1089725 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/AesEncryptUtil.java @@ -0,0 +1,134 @@ +package com.yunze.apiCommon.utils; +/** + * AES 128bit 加密解密工具类 + * + */ + +import org.apache.commons.codec.binary.Base64; + +import javax.crypto.Cipher; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; + + +public class AesEncryptUtil { + + //使用AES-128-CBC加密模式,key需要为16位,key和iv可以相同! + private static String KEY = "YunZeIot@5iot.cn"; + + private static String IV = "www_5iot_cn@2022"; + + + /** + * 加密方法 + * @param data 要加密的数据 + * @param key 加密key + * @param iv 加密iv + * @return 加密的结果 + * @throws Exception + */ + public static String encrypt(String data, String key, String iv) throws Exception { + try { + + Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");//"算法/模式/补码方式" + int blockSize = cipher.getBlockSize(); + + byte[] dataBytes = data.getBytes("utf-8"); + int plaintextLength = dataBytes.length; + if (plaintextLength % blockSize != 0) { + plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize)); + } + + byte[] plaintext = new byte[plaintextLength]; + System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length); + + SecretKeySpec keyspec = new SecretKeySpec(key.getBytes("utf-8"), "AES"); + IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes("utf-8")); + + cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec); + byte[] encrypted = cipher.doFinal(plaintext); + ////System.out.println("加密后:"+byteToHexString(encrypted)); + return new Base64().encodeToString(encrypted); + + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 解密方法 + * @param data 要解密的数据 + * @param key 解密key + * @param iv 解密iv + * @return 解密的结果 + * @throws Exception + */ + public static String desEncrypt(String data, String key, String iv) throws Exception { + try { + byte[] encrypted1 = new Base64().decode(data); + Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); + SecretKeySpec keyspec = new SecretKeySpec(key.getBytes("utf-8"), "AES"); + IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes("utf-8")); + cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec); + byte[] original = cipher.doFinal(encrypted1); + String originalString = new String(original,"utf-8"); + return originalString.trim(); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 使用默认的key和iv加密 + * @param data + * @return + * @throws Exception + */ + public static String encrypt(String data) throws Exception { + return encrypt(data, KEY, IV); + } + + /** + * 使用默认的key和iv加密 + * @param data + * @return + * @throws Exception + */ + public static String EscapeEncrypt(String data) throws Exception { + data = data.replace("%2F", "/");//转义 / + data = data.replace(" ", "+");//转义 [ ] 》 + + return encrypt(data, KEY, IV); + } + + + + /** + * 使用默认的key和iv解密 + * @param data + * @return + * @throws Exception + */ + public static String desEncrypt(String data) throws Exception { + return desEncrypt(data, KEY, IV); + } + + public static String byteToHexString(byte[] bytes) { + StringBuffer sb = new StringBuffer(bytes.length); + String sTemp; + for (int i = 0; i < bytes.length; i++) { + sTemp = Integer.toHexString(0xFF & bytes[i]); + if (sTemp.length() < 2) + sb.append(0); + sb.append(sTemp.toUpperCase()); + } + return sb.toString(); + } + + /** + * 测试 V型知识库 + */ + + +} \ No newline at end of file diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/ApiUtil_NoStatic.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/ApiUtil_NoStatic.java new file mode 100644 index 0000000..b09d122 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/ApiUtil_NoStatic.java @@ -0,0 +1,2164 @@ +package com.yunze.apiCommon.utils; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.upstreamAPI.PublicApiService; +import com.yunze.apiCommon.utils.Arith; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; + +@Component +public class ApiUtil_NoStatic{ + + + @Resource + private PublicApiService publicApiService; + @Resource + private CardStatusReplacementUtil cardStatusReplacementUtil; + @Resource + private RabbitTemplate rabbitTemplate; + + public Map queryFlow(Map map) { + return queryFlow(map,null); + } + + public Map queryFlowHis(Map map) { + return queryFlowHis(map,null); + } + + public Map queryCardStatus(Map map) { + return queryCardStatus(map,null); + } + + public Map changeCardStatus(Map map) { + return changeCardStatus(map,null); + } + + public Map queryRealNameStatus(Map map) { + return queryRealNameStatus(map,null); + } + + public Map queryOnlineStatus(Map map) { + return queryOnlineStatus(map,null); + } + + public Map queryCardActiveTime(Map map) { + return queryCardActiveTime(map,null); + } + + public Map unbundling(Map map) { + return unbundling(map,null); + } + + public Map FunctionApnStatus(Map map) { + return FunctionApnStatus(map,null); + } + + public Map queryAPNInfo(Map map) { + return queryAPNInfo(map,null); + } + + public Map queryCardImei(Map map) { + return queryCardImei(map,null); + } + + public Map SpeedLimit(Map map) { + return SpeedLimit(map,null); + } + + public Map simStopReason(Map map) { + return simStopReason(map,null); + } + + public Map onOffStatus(Map map) { + return onOffStatus(map,null); + } + + public Map apnInfo(Map map) { + return apnInfo(map,null); + } + + public Map cardBindStatus(Map map) { + return cardBindStatus(map,null); + } + + public Map simChangeHistory(Map map) { + return simChangeHistory(map,null); + } + + public Map changeCardStatusFlexible(Map map) { + return changeCardStatusFlexible(map,null); + } + + public Map queryOffering(Map map) { + return queryOffering(map,null); + } + + + + /** + * 获取当前卡的流量使用 月查询接口 + * @param map + * @return + */ + public Map queryFlow(Map map, Map find_card_route_map) { + Map Param = (Map) map.get("Param"); + String Rstr = null; + JSONObject Outdata = new JSONObject(); + List> setResult = new ArrayList<>(); + + boolean synErrorBool = false;//是否需要同步错误记录到数据库 + Map errorMap = new HashMap<>(); + String iccid = map.get("iccid")!=null?map.get("iccid").toString():""; + String cd_code = ""; + String codeOn = "500"; + String rtMessage = ""; + + Map Rdata = null; + try { + //返回数据解析 + Rdata = publicApiService.insideApi(map, "queryFlow",find_card_route_map); + + Map data = (Map) Rdata.get("data"); + Double Use = -1d;//使用量 MB + + cd_code = data.get("cd_code").toString(); + try { + if(cd_code.equals("IoTLink")){ + //IoTLink 解析 + Map JsonData = JSON.parseObject(data.get("Data").toString()); + try { + codeOn = JsonData.get("status").toString(); + rtMessage = JsonData.get("message").toString(); + }catch (Exception e){} + Map Data = (Map) JsonData.get("result"); + double use = Double.parseDouble(Data.get("useAmount").toString()); + String useUnit = Data.get("useUnit").toString(); + if(useUnit.equalsIgnoreCase("MB")){ + Use = use;//MB + }else if(useUnit.equalsIgnoreCase("KB")){ + Use = Arith.formatToTwo(Arith.div(use,1024));//KB 转 MB + } + }else if(cd_code.equals("DianXin_DCP")){ + //电信DCP 解析 + Map Data = (Map) data.get("data"); + try { + codeOn = Data.get("status").toString(); + rtMessage = Data.get("msg").toString(); + }catch (Exception e){} + Double usestr=Double.parseDouble(""+Data.get("totalVolumnGPRS"));//MB + Double toGPRS = Arith.div(Arith.div(usestr,1024),1024); + //DecimalFormat df=new DecimalFormat("#0.00"); + //Use=Double.parseDouble(df.format(toGPRS)); + Use = toGPRS; + }else if (cd_code.equals("DianXin_CMP")) { + //电信 CMP 解析 + Map Data = (Map) data.get("Data"); + try { + rtMessage = Data.get("error")!=null?Data.get("error").toString():Data.get("message").toString(); + //返回的是个 map + if(rtMessage.indexOf("{")!=-1){ + Map rMapData = JSON.parseObject(rtMessage); + rtMessage = rMapData.get("message").toString(); + codeOn = rMapData.get("code").toString(); + }else if(rtMessage.indexOf(":")!=-1){//-1:无权限(请检查做业务的卡/流量池是否属于本账号,或是否有权限调用此接口) + String messageArr[] = rtMessage.split(":"); + rtMessage = messageArr[1]; + codeOn = messageArr[0]; + }else{ + codeOn = Data.get("code").toString(); + } + }catch (Exception e){} + String total_bytes_cnt = Data.get("total_bytes_cnt").toString(); + int len = total_bytes_cnt.length(); + //System.out.println(total_bytes_cnt); + total_bytes_cnt = total_bytes_cnt.substring(0, len - 2); + //System.out.println(total_bytes_cnt); + Use = Double.parseDouble(total_bytes_cnt); + } else if (cd_code.equals("LianTong_CMP")) { + //联通 CMP 解析 + Map JsonData = (Map) data.get("Data"); + try { + codeOn = JsonData.get("resultCode").toString(); + rtMessage = JsonData.get("resultDesc").toString(); + }catch (Exception e){} + Map Data = ((List>) JsonData.get("terminals")).get(0); + Use = Double.parseDouble(Data.get("monthToDateUsage").toString()); + //根据联通接口26账单日数据封装自然月 + //Use = Use - queryHisFlowSys(iccid); + } else if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + //移动 EC 解析 + Map JsonData = JSON.parseObject(data.get("Data").toString()); + try { + rtMessage = JsonData.get("message").toString(); + codeOn = JsonData.get("status").toString(); + }catch (Exception e){} + Map Data = ((List>) JsonData.get("result")).get(0); + double kb = 0.0; + if(cd_code.equals("YiDong_EC_Combo")){//套餐结算形式 + setResult = ((List>) Data.get("accmMarginList")); + Map accmMargin = setResult.get(0); + System.out.println(setResult); + kb = Double.parseDouble(accmMargin.get("useAmount").toString()); + Use = Arith.formatToTwo(Arith.div(kb,1024));//KB 转 MB + }else{ + kb = Double.parseDouble(Data.get("dataAmount").toString()); + Use = Arith.formatToTwo(Arith.div(kb,1024));//KB 转 MB + } + + }else if (cd_code.equals("SDIOT")) { + //山东移动老系统 解析 + Map JsonData = JSON.parseObject(data.get("Data").toString()); + //System.out.println(JsonData); + try { + codeOn = JsonData.get("status").toString(); + rtMessage = JsonData.get("message").toString(); + }catch (Exception e){} + Map Data = ((List>) (((Map)((List>)JsonData.get("result")).get(0)).get("gprs"))).get(0); + + double kb = Double.parseDouble(Data.get("used").toString()); + Use = Arith.formatToTwo(Arith.div(kb,1024));//KB 转 MB + }else if (cd_code.equals("YiDong_ECv2") || cd_code.equals("YiDong_ECv2_Combo")) { + // 移动 EC V2 解析 + Map Data = JSON.parseObject(data.get("Data").toString()); + try { + codeOn = Data.get("status").toString(); + rtMessage = Data.get("message").toString(); + }catch (Exception e){} + Map Obj = ((List>)Data.get("result")).get(0); + double kb = 0.00; + if(cd_code.equals("YiDong_ECv2_Combo")){ + setResult = ((List>)Obj.get("gprs")); + Map gprs = setResult.get(0); + System.out.println(setResult); + kb = Double.parseDouble(gprs.get("used").toString()); + if(kb>-1){ + Use = Arith.formatToTwo(Arith.div(kb,1024));//KB 转 MB + } + }else { + kb = Double.parseDouble(Obj.get("total_gprs").toString()); + if(kb>-1){ + Use = Arith.formatToTwo(Arith.div(kb,1024));//KB 转 MB + } + } + }else if (cd_code.equals("DianXin_CMP_5G")) { + // DianXin_CMP_5G 解析 + //System.out.println(data); + Map Data = (Map)data.get("Data"); + try { + codeOn = Data.get("iresult").toString(); + rtMessage = ""; + }catch (Exception e){} + + if(Data.get("total_bytes_cnt")!=null && Data.get("total_bytes_cnt").toString().length()>2){// total_bytes_cnt=0.07MB + String total_bytes_cnt = Data.get("total_bytes_cnt").toString(); + String useSuffix = total_bytes_cnt.substring(total_bytes_cnt.length()-2,total_bytes_cnt.length()); + total_bytes_cnt = total_bytes_cnt.substring(0,total_bytes_cnt.length()-2); + if(useSuffix.indexOf("MB")!=-1){ + Use = Double.parseDouble(total_bytes_cnt); + }else if(useSuffix.indexOf("KB")!=-1){ + Use = Arith.formatToTwo(Arith.div(Double.parseDouble(total_bytes_cnt),1024));//KB 转 MB + }else if(useSuffix.indexOf("GB")!=-1){ + Use = Arith.formatToTwo(Arith.mul(Double.parseDouble(total_bytes_cnt),1024));//GB 转 MB + } + } + } + + try { + if(setResult!=null && setResult.size()>0 && cd_code.equals("YiDong_EC_Combo") || cd_code.equals("YiDong_ECv2_Combo")){ + Map sendMap = new HashMap<>(); + sendMap.put("cd_code",cd_code); + sendMap.put("setResult",setResult); + sendMap.put("iccid",find_card_route_map.get("iccid")); + sendSynUsageReminder(sendMap); + } + }catch (Exception e){ + System.out.println(" sendSynUsageReminder "+e); + } + + Outdata.put("code", "200"); + Outdata.put("Message", data.get("Message")); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", "内部接收消息,解析数据异常!"); + Outdata.put("Use", -1); + System.out.println(e); + } + + Outdata.put("Use", Use); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Use", -1); + System.out.println(e); + } + String rtCode = Outdata.get("code").toString(); + synErrorBool = rtCode.equals("200")?false:true; + try { + if(synErrorBool){ + boolean isSave = true; + //过滤 一些 不需要存储的一些错误 比方说 接口超频 + if(cd_code.equals("DianXin_CMP")){ + if(codeOn.equals("101004")){//接口超过单企业调用限制,请稍后再试 + isSave = false; + } + }else if(cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") || cd_code.equals("YiDong_ECv2") || cd_code.equals("YiDong_ECv2_Combo")){ + if(codeOn.equals("12021")){//TOKEN不存在或已过期,请重新获取 + isSave = false; + } + } + errorMap.put("iccid",iccid); + errorMap.put("codeOn",codeOn); + errorMap.put("message",rtMessage); + errorMap.put("cd_code",cd_code); + errorMap.put("rt_map",JSON.toJSONString(Rdata)); + if(isSave){ + sendQuerFlowError(errorMap); + }else { + System.out.println("sendQuerFlowError 不存储错误 "+JSON.toJSONString(errorMap)); + } + } + }catch (Exception e){ + System.out.println(" sendQuerFlowError "+e); + } + return Outdata; + } + + + + + /** + * 单卡历史流量查询 + * + * @param map + * @return + */ + public Map queryFlowHis(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "queryFlowHis",find_card_route_map); + Map data = (Map) Rdata.get("data"); + Double Use = -1d;//使用量 MB + + String cd_code = data.get("cd_code").toString(); + try { + if (cd_code.equals("DianXin_CMP")) { + //电信 CMP 解析 + Map Data = (Map) data.get("Data"); + String total_bytes_cnt = Data.get("total_bytes_cnt").toString(); + int len = total_bytes_cnt.length(); + total_bytes_cnt = total_bytes_cnt.substring(0, len - 2); + Use = Double.parseDouble(total_bytes_cnt); + } else if (cd_code.equals("LianTong_CMP")) { + //联通 CMP 解析 + Map Data = (Map) data.get("Data"); + Use = Double.parseDouble(Data.get("totalDataVolume").toString()); + } else if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + //移动 EC 解析 + Map JsonData = JSON.parseObject(data.get("Data").toString()); + System.out.println(JsonData); + Map dataAmountList = ((List>) JsonData.get("result")).get(0); + System.out.println(dataAmountList); + //((List>)((Map) JsonData.get("result")).get("dataAmountList")).get(0); + Map Obj = ((List>) dataAmountList.get("dataAmountList")).get(0); + System.out.println(Obj); + + double kb = Double.parseDouble(Obj.get("dataAmount").toString()); + Use = double_format(kb / 1024, 2);//KB 转 MB + }else if (cd_code.equals("ZS_CMP")) { + //中翼联通 CMP 解析 + Map JsonData = JSON.parseObject(data.get("Data").toString()); + Map Data = JSON.parseObject(data.get("usedInfo").toString()); + Use = Double.parseDouble(Data.get("totalDataVolume").toString()); + } + + + Outdata.put("Message", data.get("Message")); + } catch (Exception e) { + Outdata.put("Message", "内部接收消息,解析数据异常!"); + Outdata.put("Use", -1); + System.out.println(e); + } + Outdata.put("code", Rdata.get("code")); + Outdata.put("Use", Use); + } catch (Exception e) { + Outdata.put("Use", -1); + System.out.println(e); + } + return Outdata; + } + + /** + * 单卡生命周期查询 + * + * @param map + * @return + */ + public Map queryCardStatus(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "queryCardStatus",find_card_route_map); + Map data = (Map) Rdata.get("data"); + int statusCode = 0; + String statusMessage = null; + String activateDate =null; + String cd_code = data.get("cd_code").toString(); + try { + + if(cd_code.equals("IoTLink")){ + //IoTLink 解析 + Map JsonData = JSON.parseObject(data.get("Data").toString()); + Map Obj = (Map) JsonData.get("result"); + int StatusCd = Integer.parseInt(Obj.get("statusCode").toString()); + Map IoTLinkCardStatus = cardStatusReplacementUtil.getIoTLinkCardStatus(StatusCd); + statusCode = Integer.parseInt(IoTLinkCardStatus.get("statusCode").toString()); + statusMessage = IoTLinkCardStatus.get("statusMessage")!=null?IoTLinkCardStatus.get("statusMessage").toString():""; + }else if(cd_code.equals("DianXin_DCP")){ + //电信 DCP + Map JsonData = JSON.parseObject(data.get("data").toString()); + JSONObject j0=JSONObject.parseObject(JsonData.toString()); + Object Envelope =j0.get("env:Envelope"); + JSONObject j1=JSONObject.parseObject(Envelope.toString()); + Object Body = j1.get("env:Body"); + JSONObject j2=JSONObject.parseObject(Body.toString()); + Object qsr = j2.get("ns2:QuerySimResourceResponse"); + JSONObject j3=JSONObject.parseObject(qsr.toString()); + Object SimResource = j3.get("SimResource"); + JSONObject j4=JSONObject.parseObject(SimResource.toString()); + Object simSubscriptionStatus = j4.get("simSubscriptionStatus"); + + Map DianXin_DCP_CardStatusMap = cardStatusReplacementUtil.getDianXin_DCP_CardStatus(simSubscriptionStatus.toString()); + statusCode = Integer.parseInt(DianXin_DCP_CardStatusMap.get("statusCode").toString()); + statusMessage = DianXin_DCP_CardStatusMap.get("statusMessage").toString(); + + }else if (cd_code.equals("DianXin_CMP")) { + //电信 CMP 解析 + Map JsonData = JSON.parseObject(data.get("Data").toString()); + Map productInfo = ((List>) JsonData.get("productInfo")).get(0); + int StatusCd = Integer.parseInt(productInfo.get("productMainStatusCd").toString()); + + Map DianXin_CMP_CardStatusMap = cardStatusReplacementUtil.getDianXin_CMP_CardStatus(StatusCd); + statusCode = Integer.parseInt(DianXin_CMP_CardStatusMap.get("statusCode").toString()); + statusMessage = DianXin_CMP_CardStatusMap.get("statusMessage").toString(); + + } else if (cd_code.equals("LianTong_CMP")) { + //联通 CMP 解析 + Map Data = (Map) data.get("Data"); + Map Obj = ((List>) Data.get("terminals")).get(0); + //System.out.println(Obj); + int StatusCd = Integer.parseInt(Obj.get("simStatus").toString()); + + + Map LianTong_CMP_CardStatusMap = cardStatusReplacementUtil.getLianTong_CMP_CardStatus(StatusCd); + statusCode = Integer.parseInt(LianTong_CMP_CardStatusMap.get("statusCode").toString()); + statusMessage = LianTong_CMP_CardStatusMap.get("statusMessage").toString(); + + } else if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + //移动 EC 解析 + Map JsonData = JSON.parseObject(data.get("Data").toString()); + // System.out.println(JsonData); + Map Obj = ((List>) JsonData.get("result")).get(0); + // System.out.println(Obj); + int StatusCd = Integer.parseInt(Obj.get("cardStatus").toString()); + + Map EcV5CardStatusMap = cardStatusReplacementUtil.getEcV5CardStatus(StatusCd); + statusCode = Integer.parseInt(EcV5CardStatusMap.get("statusCode").toString()); + statusMessage = EcV5CardStatusMap.get("statusMessage").toString(); + }else if (cd_code.equals("SDIOT") || cd_code.equals("YiDong_ECv2") || cd_code.equals("YiDong_ECv2_Combo")) { + //山东移动老系统 解析 + Map Data = JSON.parseObject(data.get("Data").toString()); + Map Obj = ((List>)Data.get("result")).get(0); + String StatusCd = Obj.get("STATUS").toString(); + + Map DongXin_ECV2_CardStatusMap = cardStatusReplacementUtil.getDongXin_ECV2_CardStatus(StatusCd); + statusCode = Integer.parseInt(DongXin_ECV2_CardStatusMap.get("statusCode").toString()); + statusMessage = DongXin_ECV2_CardStatusMap.get("statusMessage").toString(); + + } + + Outdata.put("Message", data.get("Message")); + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + Outdata.put("code", "200"); + Outdata.put("statusCode", statusCode); + Outdata.put("statusMessage", statusMessage); + } catch (Exception e) { + Outdata.put("statusMessage", "内部接收消息,解析数据异常!"); + System.out.println(e); + } + return Outdata; + } + + + + + /** + * 单卡生命周期 变更 + * + * @param map + * @return + */ + public Map changeCardStatus(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "changeCardStatus",find_card_route_map); + + Map data = (Map) Rdata.get("data"); + int statusCode = 9999; + String statusMessage = null; + + String cd_code = data.get("cd_code").toString(); + try { + if(cd_code.equals("IoTLink")){ + //IoTLink 解析 + Map Data = JSON.parseObject(data.get("Data").toString()); + statusCode = Integer.parseInt(Data.get("status").toString()); + if (statusCode == 0) { + statusCode = 200; + statusMessage = "操作成功!"; + } else { + statusMessage = Data.get("message").toString(); + } + }else if(cd_code.equals("DianXin_DCP")){ + //电信 DCP + Map Data = (Map) data.get("data"); + JSONObject jss=JSONObject.parseObject(Data.toString()); + Object envEnvelope =jss.get("env:Envelope"); + JSONObject jss1=JSONObject.parseObject(envEnvelope.toString()); + Object envBodys =jss1.get("env:Body"); + JSONObject jss2=JSONObject.parseObject(envBodys.toString()); + Object ns2QuerySubscriptionStatusChangeResponse =jss2.get("ns2:QuerySubscriptionStatusChangeResponse"); + JSONObject jss3=JSONObject.parseObject(ns2QuerySubscriptionStatusChangeResponse.toString()); + Object statusRequestResponse =jss3.get("statusRequestResponse"); + switch (statusRequestResponse.toString()) { + case "Completed": + statusCode = 200; + statusMessage = "操作成功!"; + break; + case "In Progress": + statusCode = 200; + statusMessage = "执行中!"; + break; + case "Pending": + statusCode = 200; + statusMessage = "待处理!"; + break; + case "Canceled": + statusCode = 204; + statusMessage = "已取消!"; + break; + case "Rejected": + statusCode = 205; + statusMessage = "已拒绝!"; + break; + default: + statusMessage = "操作失败!"; + break; + } + } + else if (cd_code.equals("DianXin_CMP")) { + //电信 CMP 解析 + Map Data = (Map) data.get("Data"); + if (Data.get("result") != null) { + statusCode = Integer.parseInt(Data.get("result").toString()); + } else { + String rspcode = Data.get("rspcode").toString(); + //System.out.println(rspcode); + if(rspcode.indexOf(":")!=-1){ + rspcode = rspcode.substring(0,rspcode.indexOf(":")); + } + statusCode = Integer.parseInt(rspcode); + //statusCode = Integer.parseInt(Data.get("rspcode").toString()); + } + if (statusCode == 0 ) { + statusCode = 200; + statusMessage = "操作成功!"; + }else if(statusCode == 5){ + statusCode = 200; + statusMessage = "已是操作生命周期无需操作!"; + } else { + String rspdesc = Data.get("rspdesc").toString(); + if(rspdesc.indexOf(" 无停机信息,无法复机")!=-1){ + statusCode = 200; + statusMessage = "无停机信息,无法复机!"; + }else{ + statusMessage = Data.get("rspdesc").toString(); + } + } + + } else if (cd_code.equals("LianTong_CMP")) { + //联通 CMP 解析 + Map Data = (Map) data.get("Data"); + String Rcode = Data.get("resultCode").toString(); + if (Rcode.equals("0000") || Rcode.equals("1193") ) { + statusCode = 200; + statusMessage = "操作成功!"; + } else { + statusMessage = Data.get("resultDesc").toString(); + } + } else if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + //移动 EC 解析 + Map Data = JSON.parseObject(data.get("Data").toString()); + statusCode = Integer.parseInt(Data.get("status").toString()); + if (statusCode == 0) { + statusCode = 200; + statusMessage = "操作成功!"; + } else { + statusMessage = Data.get("message").toString(); + } + }else if (cd_code.equals("DianXin_CMP_5G")) { + // DianXin_CMP_5G 解析 + System.out.println(data); + Map Data = (Map)data.get("Data"); + String result = Data.get("result").toString(); + if(result.equals("0")){ + statusCode = 200; + statusMessage = "操作成功!"; + }else{ + data.put("Message",Data.get("resultMsg")); + } + }else if (cd_code.equals("MwFengZuShou")) { + //梦网-蜂助手 解析 + Map JsonData = JSON.parseObject(data.get("Data").toString()); + String cardretcode = JsonData.get("cardretcode").toString(); + if(cardretcode.equals("0")){ + statusCode = 200; + statusMessage = "操作成功!"; + }else{ + data.put("Message",JsonData.get("cardmsg")); + } + } + + Outdata.put("Message",statusMessage); + } catch (Exception e) { + Outdata.put("code","500"); + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + return Outdata; + } + Outdata.put("code",statusCode); + Outdata.put("status", statusCode); + Outdata.put("Message", statusMessage); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", e.getMessage().toString()); + System.out.println(e); + } + return Outdata; + } + + + + /** + * 查询是否实名 + * @param map + * @return + */ + public Map queryRealNameStatus(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "changeCardStatus",find_card_route_map); + + Map data = (Map) Rdata.get("data"); + int statusCode = 9999; + String statusMessage = null; + + String Is_status = "0" ;// 实名状态 0未实名-1已实名 + String Is_statusName = "未实名";//实名状态 说明 + + + String cd_code = data.get("cd_code").toString(); + try { + if (cd_code.equals("DianXin_CMP")) { + //电信 CMP 解析 + Map Data = (Map) data.get("Data"); + if (Data.get("result") != null) { + statusCode = Integer.parseInt(Data.get("resultcode").toString()); + } + if (statusCode == 0) { + statusCode = 200; + statusMessage = "操作成功!"; + Is_status = "1" ;// 实名状态 0未实名-1已实名 + Is_statusName = "已实名";//实名状态 说明 + } else { + statusMessage = Data.get("resultmsg").toString(); + } + } else if (cd_code.equals("LianTong_CMP")) { + //联通 CMP 解析 + Map Data = (Map) data.get("Data"); + String Rcode = Data.get("rspcode").toString(); + if (Rcode.equals("0001")) { + statusCode = 200; + statusMessage = "操作成功!"; + Is_status = "1" ;// 实名状态 0未实名-1已实名 + Is_statusName = "已实名";//实名状态 说明 + } else { + statusMessage = Data.get("resultDesc").toString(); + } + }else if (cd_code.equals("ZS_CMP")) { + //中翼联通 CMP 解析 + Map obj = JSON.parseObject(data.get("Data").toString()); + + Map Data = JSON.parseObject(obj.get("data").toString()); + boolean Rcode = (boolean) Data.get("status"); + if (Rcode) { + statusCode = 200; + statusMessage = "操作成功!"; + Is_status = "1" ;// 实名状态 0未实名-1已实名 + Is_statusName = "已实名";//实名状态 说明 + } else { + statusMessage = Data.get("resultDesc").toString(); + } + } + + Outdata.put("Message", data.get("Message")); + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + + Outdata.put("code", Rdata.get("code")); + Outdata.put("status", statusCode); + Outdata.put("Message", statusMessage); + Outdata.put("Is_status", Is_status); + Outdata.put("Is_statusName", Is_statusName); + } catch (Exception e) { + System.out.println(e); + } + //return MyRetunSuccess(Outdata,null); + return Outdata; + } + + + + + /** + * 查询APN设置信息 + * @param map + * @return + */ + public Map queryAPNInfo(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "queryAPNInfo",find_card_route_map); + + Map data = (Map) Rdata.get("data"); + int statusCode = 9999; + String statusMessage = null; + + String APN = "" ;// + + String cd_code = data.get("cd_code").toString(); + try { + if (cd_code.equals("LianTong_CMP")) { + //联通 CMP 解析 + Map Data = (Map) data.get("Data"); + String Rcode = Data.get("resultCode").toString(); + if (Rcode.equals("0000")) { + String nacId = String.valueOf(((Map) ((List) Data.get("nacs")).get(0)).get("nacId")); + switch (nacId) { + case "20996586": + APN = "LTD-3"; + break; + case "20996585": + APN = "LTD-1"; + break; + case "20996415": + APN = "SCUIOT"; + break; + case "21997854": + APN = "SCUIOT1"; + break; + case "21997291": + APN = "SCUIOT1"; + break; + default: + break; + } + statusCode = 200; + statusMessage = "操作成功!"; + } else { + statusMessage = Data.get("resultDesc").toString(); + } + }else if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + //移动 EC 解析 + Map Data = JSON.parseObject(data.get("Data").toString()); + statusCode = Integer.parseInt(Data.get("status").toString()); + + if (statusCode == 0) { + statusCode = 200; + statusMessage = "操作成功!"; + Map result = ((List>)Data.get("result")).get(0); + Map serviceTypeList =((List>) result.get("serviceTypeList")).get(0); + APN = serviceTypeList.get("apnName").toString(); + } else { + statusMessage = Data.get("message").toString(); + } + + } + + Outdata.put("Message", data.get("Message")); + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + Outdata.put("code", Rdata.get("code")); + Outdata.put("status", statusCode); + Outdata.put("Message", statusMessage); + Outdata.put("APN", APN); + } catch (Exception e) { + System.out.println(e); + } + //return MyRetunSuccess(Outdata,null); + return Outdata; + } + + /** + * 单端断网 + * @param map + * @return + */ + public Map FunctionApnStatus(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "FunctionApnStatus",find_card_route_map); + Map data = (Map) Rdata.get("data"); + int statusCode = 9999; + String statusMessage = null; + int rspcode = 99; + String cd_code = data.get("cd_code").toString(); + try { + if (cd_code.equals("DianXin_CMP")) { + //电信 CMP 解析 + Map Data = (Map) data.get("Data"); + if (Data.get("result") != null) { + statusCode = Integer.parseInt(Data.get("resultcode").toString()); + }else { + rspcode = Integer.parseInt(Data.get("rspcode").toString()); + } + if (statusCode == 0 || Data.get("rspcode").toString().equals("0000")){ + statusCode = 200; + statusMessage = "操作成功!"; + } else { + statusMessage = Data.get("rspdesc").toString(); + } + if(rspcode==-5){ + statusCode = 200; + statusMessage = "已是该网络状态无需操作!"; + } + } else if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + //移动 EC 解析 + Map Data = JSON.parseObject(data.get("Data").toString()); + statusCode = Integer.parseInt(Data.get("status").toString()); + if (statusCode == 0) { + statusCode = 200; + statusMessage = "操作成功!"; + } else { + statusMessage = Data.get("message").toString(); + } + + }else if (cd_code.equals("DianXin_CMP_5G")) { + // DianXin_CMP_5G 解析 + System.out.println(data); + Map Data = (Map)data.get("Data"); + String resultCode = Data.get("resultCode").toString(); + if(resultCode.equals("0000")){ + statusCode = 200; + statusMessage = "操作成功!"; + }else{ + data.put("Message",Data.get("resultMsg")); + } + } + + + Outdata.put("Message", data.get("Message")); + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + Outdata.put("code", statusCode); + Outdata.put("Message", statusMessage); + } catch (Exception e) { + System.out.println(e); + } + return Outdata; + } + + + /** + * 限速 + * @param map + * @return + */ + public Map SpeedLimit(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "SpeedLimit",find_card_route_map); + Map data = (Map) Rdata.get("data"); + int statusCode = 9999; + String statusMessage = null; + + String cd_code = data.get("cd_code").toString(); + try {//.equals() + System.out.println(data.get("Data") instanceof String); + + // data.get("Data") + JSONObject Jobj = null; + if(data.get("Data") instanceof String){ + Jobj = JSONObject.parseObject(data.get("Data").toString()); + //System.out.println(Jobj.get("resultCode")); + } + + if(data.get("Data") instanceof String && Jobj!=null && Jobj.get("resultCode")==null){ + Outdata.put("code", Rdata.get("code")); + Outdata.put("status", statusCode); + Outdata.put("Message", data.get("Data")); + //return MyRetunSuccess(Outdata,null); + return null; + } + JSONObject Data = JSONObject.parseObject(data.get("Data").toString()); + if(!Data.containsKey("resultCode")){ + Outdata.put("code", Rdata.get("code")); + Outdata.put("status", statusCode); + Outdata.put("Message", data.get("Data")); + //return MyRetunSuccess(Outdata,null); + return null; + } + if (cd_code.equals("DianXin_CMP")) { + //电信 CMP 解析 + String resultcode = Data.get("resultCode").toString(); + if (resultcode.equals("0000") || resultcode.equals("-5")) { + statusCode = 200; + statusMessage = "操作成功!"; + } else { + statusMessage = Data.get("resultmsg").toString(); + } + } else if (cd_code.equals("LianTong_CMP")) { + //联通 CMP 解析 + //Map Data = (Map) data.get("Data"); + String Rcode = Data.get("resultCode").toString(); + if (Rcode.equals("0000")|| Rcode.equals("6079")) { + statusCode = 200; + statusMessage = "操作成功!"; + } else { + statusMessage = Data.get("resultDesc").toString(); + } + }else if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + //移动 EC 解析 + //Map Data = JSON.parseObject(data.get("Data").toString()); + statusCode = Integer.parseInt(Data.get("status").toString()); + if (statusCode == 0) { + statusCode = 200; + statusMessage = "操作成功!"; + } else { + statusMessage = Data.get("message").toString(); + } + } + + Outdata.put("Message", data.get("Message")); + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + Outdata.put("code", Rdata.get("code")); + Outdata.put("status", statusCode); + Outdata.put("Message", statusMessage); + } catch (Exception e) { + System.out.println(e); + } + //return MyRetunSuccess(Outdata,null); + return Outdata; + } + + + + /** + * 查询卡是否在网状态 + * date:2021.05.24 + * @param map + * @return + */ + public Map queryOnlineStatus(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "queryOnlineStatus",find_card_route_map); + Map data = (Map) Rdata.get("data"); + int network_status = 99; + String statusMessage = null; + String codd = null; + String imei = null; + String cd_code = data.get("cd_code").toString(); + try { + if(cd_code.equals("IoTLink")){ + //IoTLink 解析 + try { + Map JsonData = JSON.parseObject(data.get("Data").toString()); + Map Data = (Map) JsonData.get("result"); + String IoTLink_cd_code = Data.get("cd_code").toString(); + cd_code = IoTLink_cd_code; + if(IoTLink_cd_code.equals("DianXin_CMP")){ + Map productInfo = (Map) JsonData.get("description"); + Outdata.put("Data",productInfo); + codd = "200"; + }else if(IoTLink_cd_code.equals("YiDong_EC") || IoTLink_cd_code.equals("YiDong_EC_TOKE_ShuoLang") || IoTLink_cd_code.equals("YiDong_EC_TengYu") || IoTLink_cd_code.equals("YiDong_EC_Combo")){ + Map IoTLink_JsonData = JSON.parseObject(data.get("Data").toString()); + Map IoTLink_Data = null; + IoTLink_Data = (Map) IoTLink_JsonData.get("result"); + Map simSessionList = (Map) IoTLink_Data.get("Data"); + Outdata.put("Data",simSessionList); + codd = "200"; + }else if(IoTLink_cd_code.equals("YiDong_ECv2") || cd_code.equals("YiDong_ECv2_Combo") || IoTLink_cd_code.equals("SDIOT")){ + Map IoTLink_JsonData = JSON.parseObject(data.get("Data").toString()); + Map IoTLink_Data = (Map) IoTLink_JsonData.get("result"); + Outdata.put("Data",IoTLink_Data); + codd = "200"; + } + + }catch (Exception e){ + System.out.println(e); + data.put("Message", data.get("Data")); + //return Myerr(data.get("Data").toString()); + } + }else if (cd_code.equals("DianXin_CMP")) { + //电信 CMP 解析 + Map JsonData = JSON.parseObject(data.get("Data").toString()); + + try{ + //Map productInfo = ((List>) JsonData.get("description")).get(0); + Map productInfo = (Map) JsonData.get("description"); + int StatusCd = Integer.parseInt(productInfo.get("result").toString()); + imei = productInfo.get("imei").toString(); + String acctStatusType = productInfo.get("acctStatusType").toString(); + String netModel = productInfo.get("netModel").toString(); + // 卡停机状态:netModel":"2","acctStatusType":"stop", + if ("start".equals(acctStatusType)) { + network_status = 1; + statusMessage = "开网状态"; + } else if ("stop".equals(acctStatusType)) { + network_status = 0; + statusMessage = "断网状态"; + } + Outdata.put("Data",productInfo); + codd = "200"; + }catch (Exception e){ + statusMessage = JsonData.get("resultMsg").toString(); + e.printStackTrace(); + } + + }else if(cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ){ + try { + Map JsonData = JSON.parseObject(data.get("Data").toString()); + System.out.println(JsonData); + Map Data = ((List>) JsonData.get("result")).get(0); + Map simSessionList = ((List>) Data.get("simSessionList")).get(0); + Outdata.put("Data",simSessionList); + codd = "200"; + }catch (Exception e){ + System.out.println(e); + data.put("Message", data.get("Data")); + //return Myerr(data.get("Data").toString()); + } + }else if(cd_code.equals("YiDong_ECv2") || cd_code.equals("YiDong_ECv2_Combo") || cd_code.equals("SDIOT")){ + try { + Map JsonData = JSON.parseObject(data.get("Data").toString()); + System.out.println(JsonData); + Map Data = ((List>) JsonData.get("result")).get(0); + Outdata.put("Data",Data); + codd = "200"; + }catch (Exception e){ + System.out.println(e); + data.put("Message", data.get("message")); + //return Myerr(data.get("Data").toString()); + } + } + Outdata.put("Message", data.get("Message")); + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + //System.out.println(e); + } + Outdata.put("cd_code", cd_code); + Outdata.put("code", codd); + Outdata.put("imei",imei); + Outdata.put("statusCode", network_status); + Outdata.put("statusMessage", statusMessage); + } catch (Exception e) { + Outdata.put("statusMessage", "内部接收消息,解析数据异常!"); + } + return Outdata; + } + + + + + /** + * 单卡查询 激活日期 + * + * @param map + * @return + */ + public Map queryCardActiveTime(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "queryCardActiveTime",find_card_route_map); + Map data = (Map) Rdata.get("data"); + int statusCode = 500; + String openDate = null,statusMessage = null; + String activateDate =null; + String cd_code = data.get("cd_code").toString(); + try { + if(cd_code.equals("IoTLink")){ + //IoTLink 解析 + Map JsonData = JSON.parseObject(data.get("Data").toString()); + Map Data = (Map) JsonData.get("result"); + if(Data.get("activateDate")!=null){ + activateDate = Data.get("activateDate").toString(); + } + }else if (cd_code.equals("DianXin_CMP")) { + //电信 CMP 解析 + Map JsonData = JSON.parseObject(data.get("Data").toString()); + Map productInfo = ((List>) JsonData.get("productInfo")).get(0); + int StatusCd = Integer.parseInt(productInfo.get("productMainStatusCd").toString()); + // 1:可激活 2:测试激活 3:测试去激活 4:在用 5:停机 6:运营商管理状态 7:拆机 + if (StatusCd == 4 || StatusCd == 5 || StatusCd == 6) { + Object servCreateDate = JsonData.get("servCreateDate"); + if(servCreateDate!=null && servCreateDate!="" && servCreateDate.toString().length()>0){ + activateDate = servCreateDate.toString().substring(0,4)+"-"+servCreateDate.toString().substring(4,6) + +"-"+servCreateDate.toString().substring(6,servCreateDate.toString().length()); + } + } + statusCode = 200; + } else if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + //移动 EC 解析 + Map Data = JSON.parseObject(data.get("Data").toString()); + statusCode = Integer.parseInt(Data.get("status").toString()); + if (statusCode == 0) { + statusCode = 200; + statusMessage = "操作成功!"; + Map result = ((List>)Data.get("result")).get(0); + activateDate = result.get("activeDate").toString(); + openDate = result.get("openDate").toString(); + } else { + statusMessage = Data.get("message").toString(); + } + } + + Outdata.put("Message", data.get("Message")); + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + activateDate = activateDate!=null && activateDate.length()>9?activateDate.substring(0,10):activateDate; + Outdata.put("code", statusCode); + Outdata.put("activateDate", activateDate); + Outdata.put("openDate", openDate); + Outdata.put("statusMessage", statusMessage); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("statusMessage", "内部接收消息,解析数据异常!"); + System.out.println(e); + } + return Outdata; + } + + + /** + * 机卡解绑 + * @param map + * @param find_card_route_map + * @return + */ + public Map unbundling(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + String statusCode = "500"; + String Q_cd_code = find_card_route_map.get("cd_code").toString(); + if(Q_cd_code.equals("DianXin_CMP") || Q_cd_code.equals("DianXin_DCP") || Q_cd_code.equals("YKWL")){ + + if(Q_cd_code.equals("DianXin_CMP")) { + map.put("bind_type", null);//解绑时 电信CMP 赋值为空 + } + Map Rdata = publicApiService.insideApi(map, "MachineCardBinding",find_card_route_map); + + + Map data = (Map) Rdata.get("data"); + int network_status = 99; + String statusMessage = null; + String codd = null; + String imei = null; + String cd_code = data.get("cd_code").toString(); + try { + if (cd_code.equals("DianXin_CMP")) { + //电信 CMP 解析 + JSONObject Data_json = JSONObject.parseObject(data.get("Data").toString()); + Map Data = Data_json; + JSONObject responseJson = JSONObject.parseObject(Data.get("Response").toString()); + Map response = responseJson; + String rspcode = response.get("RspCode").toString(); + if (rspcode.equals("0000")) { + statusCode = "200"; + statusMessage = "下发指令成功!"; + } else { + statusMessage = response.get("RspDesc").toString(); + } + }else if (cd_code.equals("DianXin_DCP")) { + //电信 DCP 解析 + JSONObject Data_json = JSONObject.parseObject(data.get("data").toString()); + Map Data = Data_json; + String status = Data.get("status").toString(); + if (status.equals("200")) { + statusCode = "200"; + statusMessage = "下发指令成功!"; + } else { + statusMessage = Data.get("msg").toString(); + } + } + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + + Outdata.put("code", statusCode); + Outdata.put("Message", statusMessage); + }else{ + Outdata.put("code", "400"); + Outdata.put("Message", "暂不支持该 资源 API 机卡绑定操作!"); + } + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", "内部接收消息,解析数据异常!"); + System.out.println(e); + } + return Outdata; + } + + + + + /** + * 查询imei码 + * @param map + * @param find_card_route_map + * @return + */ + public Map queryCardImei(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + String imei = ""; + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "queryCardImei",find_card_route_map); + Map data = (Map) Rdata.get("data"); + String statusMessage = null; + Integer statusCode = 500; + String cd_code = data.get("cd_code").toString(); + try { + if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + JSONObject Data_json = JSONObject.parseObject(data.get("Data").toString()); + if(Data_json.get("result")!=null){ + statusCode = Integer.parseInt(Data_json.get("status").toString()); + if (statusCode == 0) { + if(((List)Data_json.get("result")).size()>0) { + Map Data_1 = ((List>) Data_json.get("result")).get(0); + if (Data_1 != null) { + if (Data_1.get("imei") != null) { + imei = Data_1.get("imei").toString(); + } + } + }else{ + statusMessage = Data_json.get("message")!=null?Data_json.get("message").toString():"返回数据为空!"; + } + } else { + statusMessage = Data_json.get("message").toString(); + } + } + } + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + Outdata.put("code", "200"); + Outdata.put("Message", statusMessage); + Outdata.put("imei", imei); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", "内部接收消息,解析数据异常!"); + System.out.println(e); + } + return Outdata; + } + + + + + + + + + + + + + + + + /** + * 移除实名 + * @param map + * @param find_card_route_map + * @return + */ + public Map realNameRemove(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "realNameRemove",find_card_route_map); + Map data = (Map) Rdata.get("data"); + String statusMessage = null; + String cd_code = data.get("cd_code").toString(); + String statusCode = "500"; + try { + if (cd_code.equals("DianXin_DCP")) { + //电信 DCP 解析 + JSONObject Data_json = JSONObject.parseObject(data.get("data").toString()); + Map Data = Data_json; + String status = Data.get("status").toString(); + if (status.equals("200")) { + statusCode = "200"; + statusMessage = "下发指令成功!"; + } else { + statusMessage = Data.get("msg").toString(); + } + } + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + Outdata.put("code", statusCode); + Outdata.put("Message", statusMessage); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", "内部接收消息,解析数据异常!"); + System.out.println(e.getMessage()); + } + return Outdata; + } + + + + + + + + /** + * 单卡停机原因查询 + * @param map + * @param find_card_route_map + * @return + */ + public Map simStopReason(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + String stopReason = ""; + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "simStopReason",find_card_route_map); + Map data = (Map) Rdata.get("data"); + String statusMessage = null; + Integer statusCode = 500; + String cd_code = data.get("cd_code").toString(); + try { + if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + JSONObject Data_json = JSONObject.parseObject(data.get("Data").toString()); + if(Data_json.get("result")!=null){ + statusCode = Integer.parseInt(Data_json.get("status").toString()); + if (statusCode == 0) { + + Map Data_1 = ((List>) Data_json.get("result")).get(0); + if (Data_1 != null) { + if (Data_1.get("stopReason") != null) { + statusCode = 200; + String stopCode = Data_1.get("stopReason").toString(); + if(stopCode.equals("000000000000")){ + stopReason = "该卡当前不处于“已停机”或系统暂无停机原因"; + }else{ + stopReason = getStopInfo(stopCode); + } + stopReason = " [ "+stopReason+" ] "; + } + } + } else { + statusMessage = Data_json.get("message").toString(); + } + } + } + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + Outdata.put("code",statusCode); + Outdata.put("Message", statusMessage); + Outdata.put("stopReason", stopReason); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", "内部接收消息,解析数据异常!"); + Outdata.put("stopReason", stopReason); + System.out.println(e); + } + return Outdata; + } + + + /** + * 移动获取停机原因 + * @param stopCode + * @return + */ + public String getStopInfo(String stopCode){ + String stopReason = ""; + if(stopCode.substring(0,1).equals("2")){ + stopReason += " + 窄带网商品到期失效停机"; + } + if(stopCode.substring(1,2).equals("2")){ + stopReason += " + 机卡分离停机"; + } + if(stopCode.substring(3,4).equals("2")){ + stopReason += " + M2M 管理停机"; + } + if(stopCode.substring(4,5).equals("2")){ + stopReason += " + 信控双向停机"; + } + if(stopCode.substring(8,9).equals("2")){ + stopReason += " + 主动(申请)双向停机"; + } + if(stopCode.substring(9,10).equals("2")){ + stopReason += " + 区域限制(位置固定)管理型停机"; + } + if(stopCode.substring(10,11).equals("2")){ + stopReason += " + 强制双向停机"; + } + stopReason = stopReason.substring(0,3).equals(" + ")?stopReason.substring(3,stopReason.length()):stopReason; + return stopReason; + } + + + + + /** + * 单卡开关机状态实时查询 + * @param map + * @param find_card_route_map + * @return + */ + public Map onOffStatus(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + String Openstatus = ""; + String status = ""; + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "onOffStatus",find_card_route_map); + Map data = (Map) Rdata.get("data"); + String statusMessage = null; + Integer statusCode = 500; + String cd_code = data.get("cd_code").toString(); + try { + if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + JSONObject Data_json = JSONObject.parseObject(data.get("Data").toString()); + if(Data_json.get("result")!=null){ + statusCode = Integer.parseInt(Data_json.get("status").toString()); + if (statusCode == 0) { + statusCode = 200; + Map Data_1 = ((List>) Data_json.get("result")).get(0); + if (Data_1 != null) { + if (Data_1.get("status") != null) { + status = Data_1.get("status").toString(); + if(status.equals("1")){ + Openstatus = "开机"; + }else if(status.equals("0")){ + Openstatus = "关机"; + }else { + Openstatus = "未知"; + } + } + } + } else { + statusMessage = Data_json.get("message").toString(); + } + } + } + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + Outdata.put("code", statusCode); + Outdata.put("Message", statusMessage); + Outdata.put("Openstatus", Openstatus); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", "内部接收消息,解析数据异常!"); + Outdata.put("Openstatus", Openstatus); + System.out.println(e); + } + return Outdata; + } + + + + /** + * 单卡已开通APN信息查询 + * @param map + * @param find_card_route_map + * @return + */ + public Map apnInfo(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + List> RapnList = new ArrayList<>(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "apnInfo",find_card_route_map); + Map data = (Map) Rdata.get("data"); + String statusMessage = null; + Integer statusCode = 500; + String cd_code = data.get("cd_code").toString(); + try { + if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + JSONObject Data_json = JSONObject.parseObject(data.get("Data").toString()); + if(Data_json.get("result")!=null){ + statusCode = Integer.parseInt(Data_json.get("status").toString()); + if (statusCode == 0) { + Map Data_1 = ((List>) Data_json.get("result")).get(0); + if (Data_1 != null) { + List> apnList = (List>) Data_1.get("apnList"); + statusCode = 200; + if (apnList != null) { + for (int i = 0; i < apnList.size(); i++) { + Map obj = apnList.get(i); + String status = obj.get("status").toString().equals("1")?"恢复(或正常)":"暂停"; + obj.put("statusNeme",status); + RapnList.add(obj); + } + } + } + } else { + statusMessage = Data_json.get("message").toString(); + } + } + } + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + Outdata.put("code", statusCode); + Outdata.put("Message", statusMessage); + Outdata.put("RapnList", RapnList); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", "内部接收消息,解析数据异常!"); + Outdata.put("RapnList", RapnList); + System.out.println(e); + } + return Outdata; + } + + + + + + + + /** + * 物联卡机卡分离状态查询 + * @param map + * @param find_card_route_map + * @return + */ + public Map cardBindStatus(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + String Bindstatus = ""; + String sepTime = ""; + String status = ""; + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "cardBindStatus",find_card_route_map); + Map data = (Map) Rdata.get("data"); + String statusMessage = null; + Integer statusCode = 500; + String cd_code = data.get("cd_code").toString(); + try { + if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + JSONObject Data_json = JSONObject.parseObject(data.get("Data").toString()); + if(Data_json.get("result")!=null){ + statusCode = Integer.parseInt(Data_json.get("status").toString()); + if (statusCode == 0) { + statusCode = 200; + Map Data_1 = ((List>) Data_json.get("result")).get(0); + if (Data_1 != null) { + if (Data_1.get("result") != null) { + status = Data_1.get("result").toString(); + Bindstatus = getBindstatus(status); + } + sepTime = Data_1.get("sepTime") != null && Data_1.get("sepTime").toString().length()>0?Data_1.get("sepTime").toString():sepTime;//最近一次的分离时间 + } + } else { + statusMessage = Data_json.get("message").toString(); + } + }else { + statusMessage = Data_json.get("message").toString(); + } + } + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + Outdata.put("code", statusCode); + Outdata.put("Message", statusMessage); + Outdata.put("Bindstatus", Bindstatus); + Outdata.put("sepTime", sepTime); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", "内部接收消息,解析数据异常!"); + Outdata.put("Bindstatus", Bindstatus); + Outdata.put("sepTime", sepTime); + System.out.println(e); + } + return Outdata; + } + + + /** + * 移动获取分离状态 + * @param status + * @return + */ + public String getBindstatus(String status){ + String Bindstatus = ""; + if(status.equals("0")){ + Bindstatus = "已分离"; + }else if(status.equals("1")){ + Bindstatus = "未分离"; + }else if(status.equals("2")){ + Bindstatus = "查询失败"; + }else { + Bindstatus = "未知"; + } + return Bindstatus; + } + + + /** + * 单卡状态变更历史查询 + * @param map + * @param find_card_route_map + * @return + */ + public Map simChangeHistory(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + List> changeHistoryList = new ArrayList<>(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "simChangeHistory",find_card_route_map); + Map data = (Map) Rdata.get("data"); + String statusMessage = null; + Integer statusCode = 500; + String cd_code = data.get("cd_code").toString(); + try { + if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + JSONObject Data_json = JSONObject.parseObject(data.get("Data").toString()); + if(Data_json.get("result")!=null){ + statusCode = Integer.parseInt(Data_json.get("status").toString()); + if (statusCode == 0) { + Map Data_1 = ((List>) Data_json.get("result")).get(0); + if (Data_1 != null) { + List> changeList = (List>) Data_1.get("changeHistoryList"); + statusCode = 200; + if (changeList != null) { + for (int i = 0; i < changeList.size(); i++) { + Map obj = changeList.get(i); + Integer descStatus = Integer.parseInt(obj.get("descStatus").toString()); + Integer targetStatus = Integer.parseInt(obj.get("targetStatus").toString()); + Map descStatusMap = cardStatusReplacementUtil.getEcV5CardStatus(descStatus); + Map targetStatusMap = cardStatusReplacementUtil.getEcV5CardStatus(targetStatus); + obj.put("descStatusValue",descStatusMap.get("statusMessage")); + obj.put("targetStatusValue",targetStatusMap.get("statusMessage")); + changeHistoryList.add(obj); + } + } + } + } else { + statusMessage = Data_json.get("message").toString(); + } + }else { + statusMessage = Data_json.get("message").toString(); + } + } + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + Outdata.put("code", statusCode); + Outdata.put("Message", statusMessage); + Outdata.put("changeHistoryList", changeHistoryList); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", "内部接收消息,解析数据异常!"); + Outdata.put("changeHistoryList", changeHistoryList); + System.out.println(e); + } + return Outdata; + } + + + + + + + /** + * 生命周期 灵活变更 + * @param map + * @return + */ + public Map changeCardStatusFlexible(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "changeCardStatusFlexible",find_card_route_map); + + Map data = (Map) Rdata.get("data"); + int statusCode = 9999; + String statusMessage = null; + + String cd_code = data.get("cd_code").toString(); + try { + if(cd_code.equals("DianXin_DCP")){ + //电信 DCP + Map Data = (Map) data.get("data"); + JSONObject jss=JSONObject.parseObject(Data.toString()); + Object envEnvelope =jss.get("env:Envelope"); + JSONObject jss1=JSONObject.parseObject(envEnvelope.toString()); + Object envBodys =jss1.get("env:Body"); + JSONObject jss2=JSONObject.parseObject(envBodys.toString()); + Object ns2QuerySubscriptionStatusChangeResponse =jss2.get("ns2:QuerySubscriptionStatusChangeResponse"); + JSONObject jss3=JSONObject.parseObject(ns2QuerySubscriptionStatusChangeResponse.toString()); + Object statusRequestResponse =jss3.get("statusRequestResponse"); + switch (statusRequestResponse.toString()) { + case "Completed": + statusCode = 200; + statusMessage = "操作成功!"; + break; + case "In Progress": + statusCode = 200; + statusMessage = "执行中!"; + break; + case "Pending": + statusCode = 200; + statusMessage = "待处理!"; + break; + case "Canceled": + statusCode = 204; + statusMessage = "已取消!"; + break; + case "Rejected": + statusCode = 205; + statusMessage = "已拒绝!"; + break; + default: + statusMessage = "操作失败!"; + break; + } + } + else if (cd_code.equals("DianXin_CMP")) { + //电信 CMP 解析 + Map Data = (Map) data.get("Data"); + if (Data.get("result") != null) { + statusCode = Integer.parseInt(Data.get("result").toString()); + } else { + String rspcode = Data.get("rspcode").toString(); + //System.out.println(rspcode); + if(rspcode.indexOf(":")!=-1){ + rspcode = rspcode.substring(0,rspcode.indexOf(":")); + } + statusCode = Integer.parseInt(rspcode); + //statusCode = Integer.parseInt(Data.get("rspcode").toString()); + } + if (statusCode == 0 ) { + statusCode = 200; + statusMessage = "操作成功!"; + }else if(statusCode == 5){ + statusCode = 200; + statusMessage = "已是操作生命周期无需操作!"; + } else { + String rspdesc = Data.get("rspdesc").toString(); + if(rspdesc.indexOf(" 无停机信息,无法复机")!=-1){ + statusCode = 200; + statusMessage = "无停机信息,无法复机!"; + }else{ + statusMessage = Data.get("rspdesc").toString(); + } + } + + } else if (cd_code.equals("LianTong_CMP")) { + //联通 CMP 解析 + Map Data = (Map) data.get("Data"); + String Rcode = Data.get("resultCode").toString(); + if (Rcode.equals("0000") || Rcode.equals("1193") ) { + statusCode = 200; + statusMessage = "操作成功!"; + } else { + statusMessage = Data.get("resultDesc").toString(); + } + } else if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + //移动 EC 解析 + Map Data = JSON.parseObject(data.get("Data").toString()); + statusCode = Integer.parseInt(Data.get("status").toString()); + if (statusCode == 0) { + statusCode = 200; + statusMessage = "操作成功!"; + } else { + statusMessage = Data.get("message").toString(); + } + } + Outdata.put("Message",statusMessage); + } catch (Exception e) { + Outdata.put("code","500"); + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + return Outdata; + } + Outdata.put("code",statusCode); + Outdata.put("status", statusCode); + Outdata.put("Message", statusMessage); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", e.getMessage().toString()); + System.out.println(e); + } + return Outdata; + } + + + + + + /** + * 单卡本月套餐内流量使用量实时查 [未完成 2022-03-25] + * @param map + * @return + */ + public Map simDataMargin(Map map, Map find_card_route_map) { + String Rstr = null; + JSONObject Outdata = new JSONObject(); + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "simDataMargin",find_card_route_map); + + Map data = (Map) Rdata.get("data"); + int statusCode = 9999; + String statusMessage = null; + + String cd_code = data.get("cd_code").toString(); + try { + if(cd_code.equals("DianXin_DCP")){ + + } + else if (cd_code.equals("DianXin_CMP")) { + + + } else if (cd_code.equals("LianTong_CMP")) { + //联通 CMP 解析 + + } else if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + //移动 EC 解析 + Map Data = JSON.parseObject(data.get("Data").toString()); + statusCode = Integer.parseInt(Data.get("status").toString()); + + if (statusCode == 0) { + statusCode = 200; + statusMessage = "操作成功!"; + Map result = ((List>)Data.get("result")).get(0); + List> accmMarginList = (List>) result.get("accmMarginList"); + + + + + Outdata.put("Data", accmMarginList); + } else { + statusMessage = Data.get("message").toString(); + } + } + Outdata.put("Message",statusMessage); + } catch (Exception e) { + Outdata.put("code","500"); + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + return Outdata; + } + Outdata.put("code",statusCode); + Outdata.put("Message", statusMessage); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", e.getMessage().toString()); + System.out.println(e); + } + return Outdata; + } + + + + + /** + * 上游订购套餐查询 + * @param map + * @param find_card_route_map + * @return + */ + public Map queryOffering(Map map, Map find_card_route_map) { + JSONObject Outdata = new JSONObject(); + List> setResult = new ArrayList<>(); + + try { + //返回数据解析 + Map Rdata = publicApiService.insideApi(map, "queryOffering",find_card_route_map); + Map data = (Map) Rdata.get("data"); + String statusMessage = null; + Integer statusCode = 500; + + String cd_code = data.get("cd_code").toString(); + try { + if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + JSONObject Data_json = JSONObject.parseObject(data.get("Data").toString()); + if(Data_json.get("result")!=null){ + statusCode = Integer.parseInt(Data_json.get("status").toString()); + if (statusCode == 0) { + Map Data_1 = ((List>) Data_json.get("result")).get(0); + if (Data_1 != null) { + setResult = (List>) Data_1.get("offeringInfoList"); + if (setResult != null) { + statusCode = 200; + } + } + } else { + statusMessage = Data_json.get("message").toString(); + } + }else { + statusMessage = Data_json.get("message").toString(); + } + }else if (cd_code.equals("YiDong_ECv2") || cd_code.equals("YiDong_ECv2_Combo")) { + // 移动 EC V2 解析 + Map Data = JSON.parseObject(data.get("Data").toString()); + Map Obj = ((List>)Data.get("result")).get(0); + setResult = ((List>)Obj.get("prodinfos")); + System.out.println(setResult); + if (setResult != null) { + statusCode = 200; + } + } + try { + if(setResult!=null && setResult.size()>0 ){ + Map sendMap = new HashMap<>(); + sendMap.put("cd_code",cd_code); + sendMap.put("setResult",setResult); + sendMap.put("iccid",find_card_route_map.get("iccid")); + sendSynApiOfferinginfolist(sendMap); + } + }catch (Exception e){ + System.out.println(" sendSynApiOfferinginfolist "+e); + } + + } catch (Exception e) { + statusMessage = "内部接收消息,解析数据异常!"; + System.out.println(e); + } + Outdata.put("code", statusCode); + Outdata.put("cd_code", cd_code); + Outdata.put("Message", statusMessage); + Outdata.put("offeringInfoList", setResult); + } catch (Exception e) { + Outdata.put("code", "500"); + Outdata.put("Message", "内部接收消息,解析数据异常!"); + Outdata.put("offeringInfoList", setResult); + System.out.println(e); + } + + + + return Outdata; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + public static void main(String[] args) { + + ApiUtil_NoStatic api = new ApiUtil_NoStatic(); + + Map map = new HashMap(); + Map Yzmap = new HashMap(); + Map Parmap = new HashMap(); + + + map.put("verify", Yzmap); + + String result = null; + + // result =queryRealNameStatus(map);//查询是否实名 + Parmap.put("iccid", "898603"); + map.put("Param", Parmap); + Map Rmap = api.queryFlow(map,null); + System.out.println("result = " + Rmap); + + } + + + public static String getSign(Map map, String key) {//入参为:appid,password,version,iccid,timestamp,sign + Iterator iterator = map.keySet().iterator(); + while (iterator.hasNext()) {// 循环取键值进行判断 + String m = iterator.next();// 键 + if (m.startsWith("sign")) { + iterator.remove();// 移除map中以sign字符开头的键对应的键值对 + } + if (m.startsWith("iccids")) { + iterator.remove(); + } + } + List list = new ArrayList<>(map.keySet()); + Collections.sort(list); + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < list.size(); i++) { + String k = list.get(i); + String v = (String) map.get(k); + sb.append(k).append("=").append(v).append("&"); + } + String signstr = sb.append("key=").append(key).toString(); + //System.out.println(signstr); + String sign = MD5Util.MD5Encode(signstr).toUpperCase(); + //System.out.println(sign); + return sign; + } + + + public double double_format(double value, int retain) { + + BigDecimal bd = new BigDecimal(value); + bd = bd.setScale(retain, RoundingMode.HALF_UP); + return Double.parseDouble(bd.toString()); + } + + + public void sendSynUsageReminder(Map senMap){ + //同步 上游返回套餐记录信息 路由队列 + String polling_queueName = "admin_sendSynUsageReminder_queue"; + String polling_routingKey = "admin.sendSynUsageReminder.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(senMap), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("发送 同步API套餐 指令失败 "+senMap+" " + e.getMessage()); + } + } + + public void sendSynApiOfferinginfolist(Map senMap){ + //同步 上游返回套餐记录信息 路由队列 + String polling_queueName = "admin_sendSynApiOfferinginfolist_queue"; + String polling_routingKey = "admin.sendSynApiOfferinginfolist.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(senMap), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("发送 同步套餐 指令失败 "+senMap+" " + e.getMessage()); + } + } + + + + public void sendQuerFlowError(Map senMap){ + //查询用量接口 失败时 新增到 数据库 比那与后续分析接口错误信息 + String polling_queueName = "admin_sendQuerFlowError_queue"; + String polling_routingKey = "admin.sendQuerFlowError.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(senMap), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("发送 用量同步失败存储 指令失败 "+senMap+" " + e.getMessage()); + } + } + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/Arith.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/Arith.java new file mode 100644 index 0000000..31213f5 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/Arith.java @@ -0,0 +1,138 @@ +package com.yunze.apiCommon.utils; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.DecimalFormat; + +/** + * 精确的浮点数运算 + * + * @author yunze + */ +public class Arith +{ + + /** 默认除法运算精度 */ + private static final int DEF_DIV_SCALE = 10; + + /** 这个类不能实例化 */ + private Arith() + { + } + + /** + * 提供精确的加法运算。 + * @param v1 被加数 + * @param v2 加数 + * @return 两个参数的和 + */ + public static double add(double v1, double v2) + { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.add(b2).doubleValue(); + } + + /** + * 提供精确的减法运算。 + * @param v1 被减数 + * @param v2 减数 + * @return 两个参数的差 + */ + public static double sub(double v1, double v2) + { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.subtract(b2).doubleValue(); + } + + /** + * 提供精确的乘法运算。 + * @param v1 被乘数 + * @param v2 乘数 + * @return 两个参数的积 + */ + public static double mul(double v1, double v2) + { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.multiply(b2).doubleValue(); + } + + /** + * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 + * 小数点以后10位,以后的数字四舍五入。 + * @param v1 被除数 + * @param v2 除数 + * @return 两个参数的商 + */ + public static double div(double v1, double v2) + { + return div(v1, v2, DEF_DIV_SCALE); + } + + /** + * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 + * 定精度,以后的数字四舍五入。 + * @param v1 被除数 + * @param v2 除数 + * @param scale 表示表示需要精确到小数点以后几位。 + * @return 两个参数的商 + */ + public static double div(double v1, double v2, int scale) + { + if (scale < 0) + { + throw new IllegalArgumentException( + "The scale must be a positive integer or zero"); + } + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + if (b1.compareTo(BigDecimal.ZERO) == 0) + { + return BigDecimal.ZERO.doubleValue(); + } + return b1.divide(b2, scale, RoundingMode.HALF_UP).doubleValue(); + } + + /** + * 提供精确的小数位四舍五入处理。 + * @param v 需要四舍五入的数字 + * @param scale 小数点后保留几位 + * @return 四舍五入后的结果 + */ + public static double round(double v, int scale) + { + if (scale < 0) + { + throw new IllegalArgumentException( + "The scale must be a positive integer or zero"); + } + BigDecimal b = new BigDecimal(Double.toString(v)); + BigDecimal one = BigDecimal.ONE; + return b.divide(one, scale, RoundingMode.HALF_UP).doubleValue(); + } + + + /** + * 将double类型的科学计数法转换成指定格式的正常字符串 + * start 转换double类型的格式为:两位小数 + * @param d + * @return String + */ + public static double formatToTwo(double d) { + DecimalFormat a = new DecimalFormat("#,##0.00"); + String frmStr = a.format(d); + if(frmStr.indexOf(",")==-1){//判断转换之后是不是带有 逗号 + return Double.parseDouble(frmStr); + }else { + return d; + } + } + + + public static void main(String[] args) { + System.out.println(Arith.formatToTwo(9.765625e-4)); + } + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/CardStatusReplacementUtil.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/CardStatusReplacementUtil.java new file mode 100644 index 0000000..4e37cea --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/CardStatusReplacementUtil.java @@ -0,0 +1,671 @@ +package com.yunze.apiCommon.utils; + +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +/** + * 卡状态 转换类 + * @Auther: zhang feng + * @Date: 2022/03/03/18:23 + * @Description: + */ +@Component +public class CardStatusReplacementUtil { + + + + /** + * 接口返回状态装换成系统状态 + * 获取 IoTLink 卡状态 + * @param StatusCd + * @return + */ + public Map getIoTLinkCardStatus(Integer StatusCd){ + Map Rmap = new HashMap<>(); + Integer statusCode = 0; + String statusMessage = ""; + //库存 1 + //可测试 2 + //待激活 3 + //已激活 4 + //已停机 5 + //预销户 6 + //已销户 7 + //未知 8 + if (StatusCd == 1 ) { + statusCode = 19; + statusMessage = "库存"; + + }else if (StatusCd == 2) { + statusCode = 17; + statusMessage = "可测试"; + }else if (StatusCd == 3) { + statusCode = 7; + statusMessage = "待激活"; + } else if (StatusCd == 4) { + statusCode = 1; + statusMessage = "正常"; + } else if (StatusCd == 5 ) { + statusCode = 2; + statusMessage = "停机"; + }else if (StatusCd == 6) { + statusCode = 4; + statusMessage = "预销号"; + }else if (StatusCd == 7) { + statusCode = 18; + statusMessage = "销号"; + }else if (StatusCd == 8) { + statusCode = 8; + statusMessage = "未知"; + } + Rmap.put("statusCode",statusCode); + Rmap.put("statusMessage",statusMessage); + return Rmap; + } + + + + + /** + * 获取卡状态 + * @param StatusCd + * @return + */ + public Map getStates(String StatusCd){ + Map map = new HashMap<>(); + int statusCode = 0; + String statusMessage =""; + // 正常• 单项停机• 停机• 预销号• 销号• 过户• 休眠• 待激活• 未知 + switch (StatusCd){ + case "正常": + statusCode = 1; + statusMessage = "正常"; + break; + case "单向停机": + statusCode = 3; + statusMessage = "单向停机"; + break; + case "停机": + statusCode = 2; + statusMessage = "停机"; + break; + case "预销号": + statusCode = 4; + statusMessage = "预销号"; + break; + case "预注销": + statusCode = 4; + statusMessage = "预销号"; + break; + case "销号": + statusCode = 18; + statusMessage = "销号"; + break; + case "过户": + statusCode = 5; + statusMessage = "过户"; + break; + case "休眠": + statusCode = 6; + statusMessage = "休眠"; + break; + case "待激活": + statusCode = 7; + statusMessage = "待激活"; + break; + case "号码不存在": + + break; + case "已激活": + statusCode = 1; + statusMessage = "正常"; + break; + case "激活": + statusCode = 1; + statusMessage = "正常"; + break; + case "已停用": + statusCode = 2; + statusMessage = "停机"; + break; + case "已失效": + statusCode = 18; + statusMessage = "销号"; + break; + case "可测试": + statusCode = 17; + statusMessage = "可测试"; + break; + case "库存": + statusCode = 19; + statusMessage = "库存"; + break; + case "可激活": + statusCode = 7; + statusMessage = "待激活"; + break; + case "去激活": + statusCode = 7; + statusMessage = "待激活"; + break; + case "测试期正常": + statusCode = 9; + statusMessage = "测试期正常"; + break; + case "测试去激活": + statusCode = 9; + statusMessage = "测试期正常"; + break; + case "在用": + statusCode = 1; + statusMessage = "正常"; + break; + case "运营商管理状态": + statusCode = 14; + statusMessage = "运营商管理状态"; + break; + case "拆机": + statusCode = 16; + statusMessage = "拆机"; + break; + case "销号/拆机": + statusCode = 16; + statusMessage = "拆机"; + break; + case "违章停机": + statusCode = 20; + statusMessage = "违章停机"; + break; + case "测试激活": + statusCode = 9; + statusMessage = "测试期正常"; + break; + case "断网": + statusCode = 21; + statusMessage = "断网"; + break; + case "已断网": + statusCode = 21; + statusMessage = "断网"; + break; + case "运营商注销": + statusCode = 18; + statusMessage = "销号"; + break; + case "欠停": + statusCode = 27; + statusMessage = "欠停"; + break; + case "挂失": + statusCode = 28; + statusMessage = "挂失"; + break; + case "故障卡": + statusCode = 29; + statusMessage = "故障卡"; + break; + case "未实名停机": + statusCode = 30; + statusMessage = "未实名停机"; + break; + case "超量停机": + statusCode = 31; + statusMessage = "超量停机"; + break; + case "停机保号": + statusCode = 32; + statusMessage = "停机保号"; + break; + case "已锁定": + statusCode = 33; + statusMessage = "已锁定"; + break; + } + map.put("statusCode",statusCode); + map.put("statusMessage",statusMessage); + return map; + } + + + + + /** + * 接口返回状态装换成系统状态 + * 获取移动Ec 卡状态 + * @param StatusCd + * @return + */ + public Map getEcV5CardStatus(Integer StatusCd){ + Map Rmap = new HashMap<>(); + Integer statusCode = 0; + String statusMessage = ""; + // 1:待激活2:已激活4:停机6:可测试7:库存 8:预销户 + if (StatusCd == 1 ) { + statusCode = 7; + statusMessage = "待激活"; + }else if (StatusCd == 6) { + statusCode = 17; + statusMessage = "可测试"; + }else if (StatusCd == 7) { + statusCode = 19; + statusMessage = "库存"; + } else if (StatusCd == 2) { + statusCode = 1; + statusMessage = "正常"; + } else if (StatusCd == 4 ) { + statusCode = 2; + statusMessage = "停机"; + }else if (StatusCd == 8) { + statusCode = 4; + statusMessage = "预销号"; + } + Rmap.put("statusCode",statusCode); + Rmap.put("statusMessage",statusMessage); + return Rmap; + } + + + + + /** + * 接口返回状态装换成系统状态 + * DongXin_ECV2 卡状态 + * @param StatusCd + * @return + */ + public Map getDongXin_ECV2_CardStatus(String StatusCd){ + Map Rmap = new HashMap<>(); + Integer statusCode = 0; + String statusMessage = ""; + // ⚫ 00 -正常;⚫ 01-单向停机;⚫ 02-停机;⚫ 03-预销号; 04-销号;⚫ 05-过户;⚫ 06-休眠;⚫ 07-待激活;⚫ 99-号码不存在 + if (StatusCd.equals("07")) { + statusCode = 7; + statusMessage = "待激活"; + } else if (StatusCd.equals("00")) { + statusCode = 1; + statusMessage = "正常"; + } else if (StatusCd.equals("01")) { + statusCode = 3; + statusMessage = "单向停机"; + } else if (StatusCd.equals("03")) { + statusCode = 4; + statusMessage = "预销号"; + } else if (StatusCd.equals("04")) { + statusCode = 18; + statusMessage = "销号"; + } else if (StatusCd.equals("05")) { + statusCode = 5; + statusMessage = "过户"; + } else if (StatusCd.equals("06")) { + statusCode = 6; + statusMessage = "休眠"; + }else if ( StatusCd.equals("02")) { + statusCode = 2; + statusMessage = "停机"; + } + Rmap.put("statusCode",statusCode); + Rmap.put("statusMessage",statusMessage); + return Rmap; + } + + + + + + + + + + + + + + + + /** + * 接口返回状态装换成系统状态 + * 获取 联通_CMP 卡状态 + * @param StatusCd + * @return + */ + public Map getLianTong_CMP_CardStatus(Integer StatusCd){ + Map Rmap = new HashMap<>(); + Integer statusCode = 0; + String statusMessage = ""; + // "0": 可测试,"1": 可激活, "2": 已激活, "3": 已停用, "4": 已失效, "5"": 已清除, "6": 已更换, "7": 库存, "8": 开始 + if (StatusCd == 0 ) { + statusCode = 7; + statusMessage = "待激活"; + } else if (StatusCd == 1) { + statusCode = 9; + statusMessage = "可激活"; + } else if (StatusCd == 7) { + statusCode = 19; + statusMessage = "库存"; + } else if (StatusCd == 8) { + statusCode = 22; + statusMessage = "开始"; + }else if (StatusCd == 2) { + statusCode = 1; + statusMessage = "正常"; + } else if (StatusCd == 3 ) { + statusCode = 2; + statusMessage = "停机"; + }else if (StatusCd == 4) { + statusCode = 23; + statusMessage = "已失效"; + }else if (StatusCd == 5) { + statusCode = 24; + statusMessage = "已清除"; + }else if (StatusCd == 6) { + statusCode = 25; + statusMessage = "已更换"; + } + Rmap.put("statusCode",statusCode); + Rmap.put("statusMessage",statusMessage); + return Rmap; + } + + + /** + * 接口返回状态装换成系统状态 + * 获取 电信 CMP 卡状态 + * @param StatusCd + * @return + */ + public Map getDianXin_CMP_CardStatus(Integer StatusCd){ + Map Rmap = new HashMap<>(); + Integer statusCode = 0; + String statusMessage = ""; + // 1:可激活 2:测试激活 3:测试去激活 4:在用 5:停机 6:运营商管理状态 7:拆机 + switch (StatusCd){ + case 1: + statusCode = 7; + statusMessage = "待激活"; + break; + case 2: + statusCode = 9; + statusMessage = "测试期正常"; + break; + case 3: + statusCode = 15; + statusMessage = "测试去激活"; + break; + case 4: + statusCode = 1; + statusMessage = "正常"; + break; + case 5: + statusCode = 2; + statusMessage = "停机"; + break; + case 6: + statusCode = 14; + statusMessage = "运营商管理状态"; + break; + case 7: + statusCode = 16; + statusMessage = "拆机"; + break; + default : + statusCode = 8; + statusMessage = "未知"; + break; + } + Rmap.put("statusCode",statusCode); + Rmap.put("statusMessage",statusMessage); + return Rmap; + } + + + + + /** + * 接口返回状态装换成系统状态 + * 获取 电信 DCP 卡状态 + * @param StatusCd + * @return + */ + public Map getDianXin_DCP_CardStatus(String StatusCd){ + Map Rmap = new HashMap<>(); + Integer statusCode = 0; + String statusMessage = ""; + // Active ( 已 激 活 )Deactivated (去激活) Paused ( 停 机 保 号 )Terminated (拆机) + switch (StatusCd) { + case "Active": + statusCode = 1; + statusMessage = "正常"; + break; + case "Pause": + statusCode = 2; + statusMessage = "停机"; + break; + case "Deactivated": + statusCode = 7; + statusMessage = "待激活"; + break; + case "Terminated": + statusCode = 16; + statusMessage = "拆机"; + break; + default: + break; + } + Rmap.put("statusCode",statusCode); + Rmap.put("statusMessage",statusMessage); + return Rmap; + } + + + + /** + * 接口返回状态装换成系统状态 + * 获取 TenngYu 卡状态 + * @param StatusCd + * @return + */ + public Map getTenngYu_CardStatus(String StatusCd){ + Map Rmap = new HashMap<>(); + Integer statusCode = 0; + String statusMessage = ""; + switch (StatusCd){ + case "1": + statusCode = 17; + statusMessage = "可测试"; + break; + case "2": + statusCode = 7; + statusMessage = "待激活"; + break; + case "3": + statusCode = 1; + statusMessage = "正常"; + break; + case "4": + statusCode = 2; + statusMessage = "停机"; + break; + case "5": + statusCode = 23; + statusMessage = "已失效"; + break; + case "6": + statusCode = 24; + statusMessage = "已清除"; + break; + case "7": + statusCode = 25; + statusMessage = "已清除"; + break; + case "8": + statusCode = 19; + statusMessage = "库存"; + break; + case "9": + statusCode = 22; + statusMessage = "开始"; + break; + } + Rmap.put("statusCode",statusCode); + Rmap.put("statusMessage",statusMessage); + return Rmap; + } + + + + + + + + /** + * 接口返回状态装换成系统状态 + * 获取 ChenZe 卡状态 + * @param StatusCd + * @return + */ + public Map getChenZe_CardStatus(String StatusCd){ + Map Rmap = new HashMap<>(); + //卡生命周期状态(1:待激活;2:已激活;3:---;4:停机;5:停机保号;8:预销户;9:已销户) + Integer statusCode = 0; + String statusMessage = ""; + switch (StatusCd){ + case "1": + statusCode = 7; + statusMessage = "待激活"; + break; + case "2": + statusCode = 1; + statusMessage = "正常"; + break; + case "3": + statusCode = 8; + statusMessage = "未知"; + break; + case "4": + statusCode = 2; + statusMessage = "停机"; + break; + case "5": + statusCode = 2; + statusMessage = "停机"; + break; + case "8": + statusCode = 4; + statusMessage = "预销号"; + break; + case "9": + statusCode = 18; + statusMessage = "销号"; + break; + } + Rmap.put("statusCode",statusCode); + Rmap.put("statusMessage",statusMessage); + return Rmap; + } + + + /** + * 接口返回状态装换成系统状态 + * 获取 DianXin_CMP_5G 卡状态 + * @param StatusCd + * @return + */ + public Map getDianXin_CMP_5G_CardStatus(String StatusCd){ + Map Rmap = new HashMap<>(); + //卡生命周期状态(1:可激活 2:测试激活 3:测试去激活 4:在用 5:停机6:运营商管理状态) + Integer statusCode = 0; + String statusMessage = ""; + switch (StatusCd){ + case "1": + statusCode = 7; + statusMessage = "待激活"; + break; + case "2": + statusCode = 1; + statusMessage = "正常"; + break; + case "3": + statusCode = 7; + statusMessage = "待激活"; + break; + case "4": + statusCode = 7; + statusMessage = "待激活"; + break; + case "5": + statusCode = 2; + statusMessage = "停机"; + break; + case "6": + statusCode = 14; + statusMessage = "运营商管理状态"; + break; + + } + Rmap.put("statusCode",statusCode); + Rmap.put("statusMessage",statusMessage); + return Rmap; + } + + + + /** + * 接口返回状态装换成系统状态 + * 获取 MwFengZuShou 卡状态 + * @param StatusCd + * @return + */ + public Map getMwFengZuShou_CardStatus(String StatusCd){ + Map Rmap = new HashMap<>(); + //卡生命周期状态(0 测试 1 沉默 2 使用 3 当月停用 4 预约销户 5 人工停用 6 到期停用 7 渠道停用 8 运营商停用) + Integer statusCode = 0; + String statusMessage = ""; + switch (StatusCd){ + case "0": + statusCode = 17; + statusMessage = "可测试"; + break; + case "1": + statusCode = 7; + statusMessage = "待激活"; + break; + case "2": + statusCode = 1; + statusMessage = "正常"; + break; + case "3": + statusCode = 2; + statusMessage = "停机"; + break; + case "4": + statusCode = 4; + statusMessage = "预销号"; + break; + case "5": + statusCode = 3; + statusMessage = "单项停机"; + break; + case "6": + statusCode = 31; + statusMessage = "超量停机"; + case "7": + statusCode = 3; + statusMessage = "单项停机"; + break; + case "8": + statusCode = 20; + statusMessage = "违章停机"; + break; + + } + Rmap.put("statusCode",statusCode); + Rmap.put("statusMessage",statusMessage); + return Rmap; + } + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/CommonlyUsed.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/CommonlyUsed.java new file mode 100644 index 0000000..9bbae6c --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/CommonlyUsed.java @@ -0,0 +1,28 @@ +package com.yunze.apiCommon.utils; + +import java.util.List; + +/** + * 常用工具类 + * 20201218 ~ 至今 + */ +public class CommonlyUsed { + + /** + * 判断 val 是否在 StrArr + * @param StrArr + * @param val + * @return + */ + public static boolean Val_Is_Arr (List StrArr,String val){ + boolean bool = false; + for (int i = 0; i < StrArr.size(); i++) { + if (val.equals(StrArr.get(i))){ + bool = true; + break; + } + } + return bool; + } + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/DateUtil.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/DateUtil.java new file mode 100644 index 0000000..5dc97e9 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/DateUtil.java @@ -0,0 +1,1518 @@ +package com.yunze.apiCommon.utils; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + *

+ * Title: 系统时间公共类 + *

+ *
  • 提供取得系统时间的所有共用方法
  • + * + * @author apple + */ +public class DateUtil { + + private static Date date; + private static long orderNum = 0l; + private static String sDate; + private static final Calendar CALENDAR = Calendar.getInstance(); + private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(); + /** 定义常量 **/ + public static final String DATE_JFP_STR = "yyyyMM"; + public static final String DATE_FULL_STR = "yyyy-MM-dd HH:mm:ss"; + public static final String DATE_SMALL_STR = "yyyy-MM-dd"; + public static final String DATE_KEY_STR = "yyMMddHHmmss"; + private static String ymdhms = "yyyy-MM-dd HH:mm:ss"; + private static String ymd = "yyyy-MM-dd"; + public static SimpleDateFormat ymdSDF = new SimpleDateFormat(ymd); + private static String year = "yyyy"; + private static String month = "MM"; + private static String day = "dd"; + public static SimpleDateFormat yyyyMMddHHmmss = new SimpleDateFormat(ymdhms); + public static SimpleDateFormat yearSDF = new SimpleDateFormat(year); + public static SimpleDateFormat monthSDF = new SimpleDateFormat(month); + public static SimpleDateFormat daySDF = new SimpleDateFormat(day); + + public static SimpleDateFormat yyyyMMddHHmm = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + + public static SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyy-MM-dd"); + + public static SimpleDateFormat yyyyMMddHH_NOT_ = new SimpleDateFormat("yyyyMMdd"); + + public static long DATEMM = 86400L; + + /** + * 获得当前时间 格式:2014-12-02 10:38:53 + * + * @return String + */ + public static String getCurrentTime() { + return yyyyMMddHHmmss.format(new Date()); + } + + public static boolean checkExpiredTime(Date expiredTime) { + if (expiredTime != null) { + Date nowDate = new Date(); + if (expiredTime.before(nowDate)) { + return true; + } else { + return false; + } + } + return false; + } + + /** + * 可以获取昨天的日期 格式:2014-12-01 + * + * @return String + */ + public static String getYesterdayYYYYMMDD() { + Date date = new Date(System.currentTimeMillis() - DATEMM * 1000L); + String str = yyyyMMdd.format(date); + try { + date = yyyyMMddHHmmss.parse(str + " 00:00:00"); + return yyyyMMdd.format(date); + } catch (ParseException e) { + e.printStackTrace(); + } + return ""; + } + + /** + * 可以获取后退N天的日期 格式:传入2 得到2014-11-30 + * + * @param backDay + * @return String + */ + public String getStrDate(String backDay) { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DATE, Integer.parseInt("-" + backDay)); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String back = sdf.format(calendar.getTime()); + return back; + } + + /** + * 获取当前的年、月、日 + * + * @return String + */ + public static String getCurrentYear() { + return yearSDF.format(new Date()); + } + + public static String getCurrentMonth() { + return monthSDF.format(new Date()); + } + + public static String getCurrentDay() { + return daySDF.format(new Date()); + } + + /** + * 获取年月日 也就是当前时间 格式:2014-12-02 + * + * @return String + */ + public static String getCurrentymd() { + return ymdSDF.format(new Date()); + } + + /** + * 获取今天0点开始的秒数 + * + * @return long + */ + public static long getTimeNumberToday() { + Date date = new Date(); + String str = yyyyMMdd.format(date); + try { + date = yyyyMMdd.parse(str); + return date.getTime() / 1000L; + } catch (ParseException e) { + e.printStackTrace(); + } + return 0L; + } + + /** + * 获取今天的日期 格式:20141202 + * + * @return String + */ + public static String getTodateString() { + String str = yyyyMMddHH_NOT_.format(new Date()); + return str; + } + + /** + * 判断两个日期是否是同一天 + * + * @param date1 + * date1 + * @param date2 + * date2 + * @return + */ + public static boolean isSameDate(Date date1, Date date2) { + Calendar cal1 = Calendar.getInstance(); + cal1.setTime(date1); + + Calendar cal2 = Calendar.getInstance(); + cal2.setTime(date2); + + boolean isSameYear = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR); + boolean isSameMonth = isSameYear && cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH); + boolean isSameDate = isSameMonth && cal1.get(Calendar.DAY_OF_MONTH) == cal2.get(Calendar.DAY_OF_MONTH); + + return isSameDate; + } + + /** + * 获取昨天的日期 格式:20141201 + * + * @return String + */ + public static String getYesterdayString() { + Date date = new Date(System.currentTimeMillis() - DATEMM * 1000L); + String str = yyyyMMddHH_NOT_.format(date); + return str; + } + + /** + * 获得昨天零点 + * + * @return Date + */ + public static Date getYesterDayZeroHour() { + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.DATE, -1); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.HOUR, 0); + return cal.getTime(); + } + + /** + * 把long型日期转String ;---OK + * + * @param date + * long型日期; + * @param format + * 日期格式; + * @return + */ + public static String longToString(long date, String format) { + SimpleDateFormat sdf = new SimpleDateFormat(format); + // 前面的lSysTime是秒数,先乘1000得到毫秒数,再转为java.util.Date类型 + Date dt2 = new Date(date * 1000L); + String sDateTime = sdf.format(dt2); // 得到精确到秒的表示:08/31/2006 21:08:00 + return sDateTime; + } + + /** + * 获得今天零点 + * + * @return Date + */ + public static Date getTodayZeroHour() { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.HOUR, 0); + return cal.getTime(); + } + + /** + * 获得昨天23时59分59秒 + * + * @return + */ + public static Date getYesterDay24Hour() { + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.DATE, -1); + cal.set(Calendar.SECOND, 59); + cal.set(Calendar.MINUTE, 59); + cal.set(Calendar.HOUR, 23); + return cal.getTime(); + } + + /** + * String To Date ---OK + * + * @param date + * 待转换的字符串型日期; + * @param format + * 转化的日期格式 + * @return 返回该字符串的日期型数据; + */ + public static Date stringToDate(String date, String format) { + SimpleDateFormat sdf = new SimpleDateFormat(format); + try { + return sdf.parse(date); + } catch (ParseException e) { + return null; + } + } + + /** + * 获得指定日期所在的自然周的第一天,即周日 + * + * @param date + * 日期 + * @return 自然周的第一天 + */ + public static Date getStartDayOfWeek(Date date) { + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.set(Calendar.DAY_OF_WEEK, 1); + date = c.getTime(); + return date; + } + + /** + * 获得指定日期所在的自然周的最后一天,即周六 + * + * @param date + * @return + */ + public static Date getLastDayOfWeek(Date date) { + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.set(Calendar.DAY_OF_WEEK, 7); + date = c.getTime(); + return date; + } + + /** + * 获得指定日期所在当月第一天 + * + * @param date + * @return + */ + public static Date getStartDayOfMonth(Date date) { + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.set(Calendar.DAY_OF_MONTH, 1); + date = c.getTime(); + return date; + } + + /** + * 获得指定日期所在当月最后一天 + * + * @param date + * @return + */ + public static Date getLastDayOfMonth(Date date) { + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.set(Calendar.DATE, 1); + c.add(Calendar.MONTH, 1); + c.add(Calendar.DATE, -1); + date = c.getTime(); + return date; + } + + /** + * 获得指定日期的下一个月的第一天 + * + * @param date + * @return + */ + public static Date getStartDayOfNextMonth(Date date) { + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.add(Calendar.MONTH, 1); + c.set(Calendar.DAY_OF_MONTH, 1); + date = c.getTime(); + return date; + } + + /** + * 获得指定日期的下一个月的最后一天 + * + * @param date + * @return + */ + public static Date getLastDayOfNextMonth(Date date) { + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.set(Calendar.DATE, 1); + c.add(Calendar.MONTH, 2); + c.add(Calendar.DATE, -1); + date = c.getTime(); + return date; + } + + public static Date getTo30MINUTE() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MINUTE, 30); + date = c.getTime(); + return date; + } + + /** + * + * 求某一个时间向前多少秒的时间(currentTimeToBefer)---OK + * + * @param givedTime + * 给定的时间 + * @param interval + * 间隔时间的毫秒数;计算方式 :n(天)*24(小时)*60(分钟)*60(秒)(类型) + * @param format_Date_Sign + * 输出日期的格式;如yyyy-MM-dd、yyyyMMdd等; + */ + public static String givedTimeToBefer(String givedTime, long interval, String format_Date_Sign) { + String tomorrow = null; + try { + SimpleDateFormat sdf = new SimpleDateFormat(format_Date_Sign); + Date gDate = sdf.parse(givedTime); + long current = gDate.getTime(); // 将Calendar表示的时间转换成毫秒 + long beforeOrAfter = current - interval * 1000L; // 将Calendar表示的时间转换成毫秒 + Date date = new Date(beforeOrAfter); // 用timeTwo作参数构造date2 + tomorrow = new SimpleDateFormat(format_Date_Sign).format(date); + } catch (ParseException e) { + e.printStackTrace(); + } + return tomorrow; + } + + /** + * 把String 日期转换成long型日期;---OK + * + * @param date + * String 型日期; + * @param format + * 日期格式; + * @return + */ + public static long stringToLong(String date, String format) { + SimpleDateFormat sdf = new SimpleDateFormat(format); + Date dt2 = null; + long lTime = 0; + try { + dt2 = sdf.parse(date); + // 继续转换得到秒数的long型 + lTime = dt2.getTime() / 1000; + } catch (ParseException e) { + e.printStackTrace(); + } + + return lTime; + } + + /** + * 得到二个日期间的间隔日期; + * + * @param endTime + * 结束时间 + * @param beginTime + * 开始时间 + * @param isEndTime + * 是否包含结束日期; + * @return + */ + public static Map getTwoDay(String endTime, String beginTime, boolean isEndTime) { + Map result = new HashMap(); + if ((endTime == null || endTime.equals("") || (beginTime == null || beginTime.equals("")))) + return null; + try { + Date date = ymdSDF.parse(endTime); + endTime = ymdSDF.format(date); + Date mydate = ymdSDF.parse(beginTime); + long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); + result = getDate(endTime, Integer.parseInt(day + ""), isEndTime); + } catch (Exception e) { + } + return result; + } + + /** + * 得到二个日期间的间隔日期; + * + * @param endTime + * 结束时间 + * @param beginTime + * 开始时间 + * @param isEndTime + * 是否包含结束日期; + * @return + */ + public static Integer getTwoDayInterval(String endTime, String beginTime, boolean isEndTime) { + if ((endTime == null || endTime.equals("") || (beginTime == null || beginTime.equals("")))) + return 0; + long day = 0l; + try { + Date date = ymdSDF.parse(endTime); + endTime = ymdSDF.format(date); + Date mydate = ymdSDF.parse(beginTime); + day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); + } catch (Exception e) { + return 0; + } + return Integer.parseInt(day + ""); + } + + /** + * 根据结束时间以及间隔差值,求符合要求的日期集合; + * + * @param endTime + * @param interval + * @param isEndTime + * @return + */ + public static Map getDate(String endTime, Integer interval, boolean isEndTime) { + Map result = new HashMap(); + if (interval == 0 || isEndTime) { + if (isEndTime) + result.put(endTime, endTime); + } + if (interval > 0) { + int begin = 0; + for (int i = begin; i < interval; i++) { + endTime = givedTimeToBefer(endTime, DATEMM, ymd); + result.put(endTime, endTime); + } + } + return result; + } + + /** + * 使用预设格式提取字符串日期 + * + * @param strDate + * 日期字符串 + * @return + */ + public static Date parse(String strDate) { + return parse(strDate, DATE_FULL_STR); + } + + /** + * 使用用户格式提取字符串日期 + * + * @param strDate + * 日期字符串 + * @param pattern + * 日期格式 + * @return + */ + public static Date parse(String strDate, String pattern) { + SimpleDateFormat df = new SimpleDateFormat(pattern); + try { + return df.parse(strDate); + } catch (ParseException e) { + e.printStackTrace(); + return null; + } + } + + /** + * 两个时间比较 + * + * @param date + * @return + */ + public static int compareDateWithNow(Date date1) { + Date date2 = new Date(); + int rnum = date1.compareTo(date2); + return rnum; + } + + /** + * 两个时间比较(时间戳比较) + * + * @param date + * @return + */ + public static int compareDateWithNow(long date1) { + long date2 = dateToUnixTimestamp(); + if (date1 > date2) { + return 1; + } else if (date1 < date2) { + return -1; + } else { + return 0; + } + } + + /** + * 获取系统当前时间 + * + * @return + */ + public static String getNowTime() { + SimpleDateFormat df = new SimpleDateFormat(DATE_FULL_STR); + return df.format(new Date()); + } + + /** + * 获取系统当前时间 + * + * @return + */ + public static String getNowTime(String type) { + SimpleDateFormat df = new SimpleDateFormat(type); + return df.format(new Date()); + } + + /** + * 获取系统当前计费期 + * + * @return + */ + public static String getJFPTime() { + SimpleDateFormat df = new SimpleDateFormat(DATE_JFP_STR); + return df.format(new Date()); + } + + /** + * 将指定的日期转换成Unix时间戳 + * + * @param String + * date 需要转换的日期 yyyy-MM-dd HH:mm:ss + * @return long 时间戳 + */ + public static long dateToUnixTimestamp(String date) { + long timestamp = 0; + try { + timestamp = new SimpleDateFormat(DATE_FULL_STR).parse(date).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return timestamp; + } + + /** + * 将指定的日期转换成Unix时间戳 + * + * @param String + * date 需要转换的日期 yyyy-MM-dd + * @return long 时间戳 + */ + public static long dateToUnixTimestamp(String date, String dateFormat) { + long timestamp = 0; + try { + timestamp = new SimpleDateFormat(dateFormat).parse(date).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return timestamp; + } + + /** + * 将当前日期转换成Unix时间戳 + * + * @return long 时间戳 + */ + public static long dateToUnixTimestamp() { + long timestamp = new Date().getTime(); + return timestamp; + } + + /** + * 将Unix时间戳转换成日期 + * + * @param long + * timestamp 时间戳 + * @return String 日期字符串 + */ + public static String unixTimestampToDate(long timestamp) { + SimpleDateFormat sd = new SimpleDateFormat(DATE_FULL_STR); + sd.setTimeZone(TimeZone.getTimeZone("GMT+8")); + return sd.format(new Date(timestamp)); + } + + /** + * 生成订单编号 + * + * @return + */ + public static synchronized String getOrderNo() { + + String str = new SimpleDateFormat("yyyyMMddHHmm").format(new Date()); + if (sDate == null || !sDate.equals(str)) { + sDate = str; + orderNum = 0l; + } + orderNum++; + long orderNo = Long.parseLong(str) * 10000; + orderNo += orderNum; + return orderNo + ""; + } + + /** + * 取得当前时间 + * + * @return 当前日期(Date) + */ + public static Date getCurrentDate() { + return new Date(); + } + + public static Date getDateByMonth(int Month) { + + Date date = new Date();// 当前日期 + Calendar calendar = Calendar.getInstance();// 日历对象 + calendar.setTime(date);// 设置当前日期 + calendar.add(Calendar.MONTH, Month);// 月份减一 + + return calendar.getTime(); + } + + /** + * 取得昨天此时的时间 + * + * @return 昨天日期(Date) + */ + public static Date getYesterdayDate() { + return new Date(getCurTimeMillis() - 0x5265c00L); + } + + /** + * 取得去过i天的时间 + * + * @param i + * 过去时间天数 + * @return 昨天日期(Date) + */ + public static Date getPastdayDate(int i) { + return new Date(getCurTimeMillis() - 0x5265c00L * i); + } + + /** + * 取得当前时间的长整型表示 + * + * @return 当前时间(long) + */ + public static long getCurTimeMillis() { + return System.currentTimeMillis(); + } + + /** + * 取得当前时间的特定表示格式的字符串 + * + * @param formatDate + * 时间格式(如:yyyy/MM/dd hh:mm:ss) + * @return 当前时间 + */ + public static synchronized String getCurFormatDate(String formatDate) { + date = getCurrentDate(); + simpleDateFormat.applyPattern(formatDate); + return simpleDateFormat.format(date); + } + + /** + * 取得某日期时间的特定表示格式的字符串 + * + * @param format + * 时间格式 + * @param date + * 某日期(Date) + * @return 某日期的字符串 + */ + public static synchronized String getDate2Str(String format, Date date) { + simpleDateFormat.applyPattern(format); + return simpleDateFormat.format(date); + } + + /** + * 将日期转换为长字符串(包含:年-月-日 时:分:秒) + * + * @param date + * 日期 + * @return 返回型如:yyyy-MM-dd HH:mm:ss 的字符串 + */ + public static String getDate2LStr(Date date) { + return getDate2Str("yyyy-MM-dd HH:mm:ss", date); + } + /** + * 将日期转换为长字符串(包含:年-月-日 时:分:秒) + * + * @param date + * 日期 + * @return 返回型如:yyyy-MM-dd HH:mm:ss 的字符串 + */ + public static String getDate2LStrSSS(Date date) { + return getDate2Str("yyyy-MM-dd HH:mm:ss.SSS", date); + } + /** + * 将日期转换为长字符串(包含:年/月/日 时:分:秒) + * + * @param date + * 日期 + * @return 返回型如:yyyy/MM/dd HH:mm:ss 的字符串 + */ + public static String getDate2LStr2(Date date) { + return getDate2Str("yyyy/MM/dd HH:mm:ss", date); + } + + /** + * 将日期转换为中长字符串(包含:年-月-日 时:分) + * + * @param date + * 日期 + * @return 返回型如:yyyy-MM-dd HH:mm 的字符串 + */ + public static String getDate2MStr(Date date) { + return getDate2Str("yyyy-MM-dd HH:mm", date); + } + + /** + * 将日期转换为中长字符串(包含:年/月/日 时:分) + * + * @param date + * 日期 + * @return 返回型如:yyyy/MM/dd HH:mm 的字符串 + */ + public static String getDate2MStr2(Date date) { + return getDate2Str("yyyy/MM/dd HH:mm", date); + } + + /** + * 将日期转换为短字符串(包含:年-月-日) + * + * @param date + * 日期 + * @return 返回型如:yyyy-MM-dd 的字符串 + */ + public static String getDate2SStr(Date date) { + return getDate2Str("yyyy-MM-dd", date); + } + + /** + * 将日期转换为短字符串(包含:年/月/日) + * + * @param date + * 日期 + * @return 返回型如:yyyy/MM/dd 的字符串 + */ + public static String getDate2SStr2(Date date) { + return getDate2Str("yyyy/MM/dd", date); + } + + /** + * 取得型如:yyyyMMddhhmmss的字符串 + * + * @param date + * @return 返回型如:yyyyMMddhhmmss 的字符串 + */ + public static String getDate2All(Date date) { + return getDate2Str("yyyyMMddhhmmss", date); + } + /** + * 取得型如:yyyyMMddHHmmss的字符串(24小时制) + * + * @param date + * @return 返回型如:yyyyMMddHHmmss 的字符串 + */ + public static String getDate2All24(Date date) { + return getDate2Str("yyyyMMddHHmmss", date); + } + /** + * 取得型如:yyyyMMddhhmmss的字符串 + * + * @param date + * @return 返回型如:yyyyMMddhhmmss 的字符串 + */ + public static String getDate2(Date date) { + return getDate2Str("yyyyMMdd", date); + } + + /** + * 将长整型数据转换为Date后,再转换为型如yyyy-MM-dd HH:mm:ss的长字符串 + * + * @param l + * 表示某日期的长整型数据 + * @return 日期型的字符串 + */ + public static String getLong2LStr(long l) { + date = getLongToDate(l); + return getDate2LStr(date); + } + + /** + * 将长整型数据转换为Date后,再转换为型如yyyy-MM-dd的长字符串 + * + * @param l + * 表示某日期的长整型数据 + * @return 日期型的字符串 + */ + public static String getLong2SStr(long l) { + date = getLongToDate(l); + return getDate2SStr(date); + } + + /** + * 将长整型数据转换为Date后,再转换指定格式的字符串 + * + * @param l + * 表示某日期的长整型数据 + * @param formatDate + * 指定的日期格式 + * @return 日期型的字符串 + */ + public static String getLong2SStr(long l, String formatDate) { + date = getLongToDate(l); + simpleDateFormat.applyPattern(formatDate); + return simpleDateFormat.format(date); + } + + private static synchronized Date getStrToDate(String format, String str) { + simpleDateFormat.applyPattern(format); + try { + return simpleDateFormat.parse(str); + } catch (ParseException e) { + System.out.println(e.getMessage()); + } + return null; + } + + /** + * 将某指定的字符串转换为某类型的字符串 + * + * @param format + * 转换格式 + * @param str + * 需要转换的字符串 + * @return 转换后的字符串 + */ + public static String getStr2Str(String format, String str) { + date = getStrToDate(format, str); + return getDate2Str(format, date); + } + + /** + * 将某指定的字符串转换为型如:yyyy-MM-dd HH:mm:ss的时间 + * + * @param str + * 将被转换为Date的字符串 + * @return 转换后的Date + */ + public static Date getStr2LDate(String str) { + return getStrToDate("yyyy-MM-dd HH:mm:ss", str); + } + + /** + * 将某指定的字符串转换为型如:yyyy/MM/dd HH:mm:ss的时间 + * + * @param str + * 将被转换为Date的字符串 + * @return 转换后的Date + */ + public static Date getStr2LDate2(String str) { + return getStrToDate("yyyy/MM/dd HH:mm:ss", str); + } + + /** + * 将某指定的字符串转换为型如:yyyy-MM-dd HH:mm的时间 + * + * @param str + * 将被转换为Date的字符串 + * @return 转换后的Date + */ + public static Date getStr2MDate(String str) { + return getStrToDate("yyyy-MM-dd HH:mm", str); + } + + /** + * 将某指定的字符串转换为型如:yyyy/MM/dd HH:mm的时间 + * + * @param str + * 将被转换为Date的字符串 + * @return 转换后的Date + */ + public static Date getStr2MDate2(String str) { + return getStrToDate("yyyy/MM/dd HH:mm", str); + } + + /** + * 将某指定的字符串转换为型如:yyyy-MM-dd的时间 + * + * @param str + * 将被转换为Date的字符串 + * @return 转换后的Date + */ + public static Date getStr2SDate(String str) { + return getStrToDate("yyyy-MM-dd", str); + } + + /** + * 将某指定的字符串转换为型如:yyyy-MM-dd的时间 + * + * @param str + * 将被转换为Date的字符串 + * @return 转换后的Date + */ + public static Date getStr2SDate2(String str) { + return getStrToDate("yyyy/MM/dd", str); + } + + /** + * 将某长整型数据转换为日期 + * + * @param l + * 长整型数据 + * @return 转换后的日期 + */ + public static Date getLongToDate(long l) { + return new Date(l); + } + + /** + * 以分钟的形式表示某长整型数据表示的时间到当前时间的间隔 + * + * @param l + * 长整型数据 + * @return 相隔的分钟数 + */ + public static int getOffMinutes(long l) { + return getOffMinutes(l, getCurTimeMillis()); + } + + /** + * 以分钟的形式表示两个长整型数表示的时间间隔 + * + * @param from + * 开始的长整型数据 + * @param to + * 结束的长整型数据 + * @return 相隔的分钟数 + */ + public static int getOffMinutes(long from, long to) { + return (int) ((to - from) / 60000L); + } + + /** + * 以微秒的形式赋值给一个Calendar实例 + * + * @param l + * 用来表示时间的长整型数据 + */ + public static void setCalendar(long l) { + CALENDAR.clear(); + CALENDAR.setTimeInMillis(l); + } + + /** + * 以日期的形式赋值给某Calendar + * + * @param date + * 指定日期 + */ + public static void setCalendar(Date date) { + CALENDAR.clear(); + CALENDAR.setTime(date); + } + + /** + * 在此之前要由一个Calendar实例的存在 + * + * @return 返回某年 + */ + public static int getYear() { + return CALENDAR.get(1); + } + + /** + * 在此之前要由一个Calendar实例的存在 + * + * @return 返回某月 + */ + public static int getMonth() { + return CALENDAR.get(2) + 1; + } + + /** + * 在此之前要由一个Calendar实例的存在 + * + * @return 返回某天 + */ + public static int getDay() { + return CALENDAR.get(5); + } + + /** + * 在此之前要由一个Calendar实例的存在 + * + * @return 返回某小时 + */ + public static int getHour() { + return CALENDAR.get(11); + } + + /** + * 在此之前要由一个Calendar实例的存在 + * + * @return 返回某分钟 + */ + public static int getMinute() { + return CALENDAR.get(12); + } + + /** + * 在此之前要由一个Calendar实例的存在 + * + * @return 返回某秒 + */ + public static int getSecond() { + return CALENDAR.get(13); + } + + // Grace style + public static final String PATTERN_GRACE = "yyyy/MM/dd HH:mm:ss"; + public static final String PATTERN_GRACE_NORMAL = "yyyy/MM/dd HH:mm"; + public static final String PATTERN_GRACE_SIMPLE = "yyyy/MM/dd"; + + // Classical style + public static final String PATTERN_CLASSICAL = "yyyy-MM-dd HH:mm:ss"; + public static final String PATTERN_CLASSICAL_NORMAL = "yyyy-MM-dd HH:mm"; + public static final String PATTERN_CLASSICAL_SIMPLE = "yyyy-MM-dd"; + + private DateUtil() { + // Cannot be instantiated + } + + /** + * 根据默认格式将日期转格式化成字符串 + * + * @param date + * 指定日期 + * @return 返回格式化后的字符串 + */ + public static String format(Date date) { + return format(date, PATTERN_CLASSICAL); + } + + /** + * 根据指定格式将指定日期格式化成字符串 + * + * @param date + * 指定日期 + * @param pattern + * 指定格式 + * @return 返回格式化后的字符串 + */ + public static String format(Date date, String pattern) { + SimpleDateFormat sdf = new SimpleDateFormat(pattern); + return sdf.format(date); + } + + /** + * 获取时间date1与date2相差的秒数 + * + * @param date1 + * 起始时间 + * @param date2 + * 结束时间 + * @return 返回相差的秒数 + */ + public static int getOffsetSeconds(Date date1, Date date2) { + int seconds = (int) ((date2.getTime() - date1.getTime()) / 1000); + return seconds; + } + + /** + * 获取时间date1与date2相差的分钟数 + * + * @param date1 + * 起始时间 + * @param date2 + * 结束时间 + * @return 返回相差的分钟数 + */ + public static int getOffsetMinutes(Date date1, Date date2) { + return getOffsetSeconds(date1, date2) / 60; + } + + /** + * 获取时间date1与date2相差的小时数 + * + * @param date1 + * 起始时间 + * @param date2 + * 结束时间 + * @return 返回相差的小时数 + */ + public static int getOffsetHours(Date date1, Date date2) { + return getOffsetMinutes(date1, date2) / 60; + } + + /** + * 获取时间date1与date2相差的天数数 + * + * @param date1 + * 起始时间 + * @param date2 + * 结束时间 + * @return 返回相差的天数 + */ + public static int getOffsetDays(Date date1, Date date2) { + return getOffsetHours(date1, date2) / 24; + } + + /** + * 获取时间date1与date2相差的周数 + * + * @param date1 + * 起始时间 + * @param date2 + * 结束时间 + * @return 返回相差的周数 + */ + public static int getOffsetWeeks(Date date1, Date date2) { + return getOffsetDays(date1, date2) / 7; + } + + /** + * 获取重置指定日期的时分秒后的时间 + * + * @param date + * 指定日期 + * @param hour + * 指定小时 + * @param minute + * 指定分钟 + * @param second + * 指定秒 + * @return 返回重置时分秒后的时间 + */ + public static Date getResetTime(Date date, int hour, int minute, int second) { + Calendar cal = Calendar.getInstance(); + if (date != null) { + cal.setTime(date); + } + cal.set(Calendar.HOUR_OF_DAY, hour); + cal.set(Calendar.SECOND, minute); + cal.set(Calendar.MINUTE, second); + return cal.getTime(); + } + + /** + * 返回指定日期的起始时间 + * + * @param date + * 指定日期(例如2014-08-01) + * @return 返回起始时间(例如2014-08-01 00:00:00) + */ + public static Date getIntegralStartTime(Date date) { + return getResetTime(date, 0, 0, 0); + } + + /** + * 返回指定日期的结束时间 + * + * @param date + * 指定日期(例如2014-08-01) + * @return 返回结束时间(例如2014-08-01 23:59:59) + */ + public static Date getIntegralEndTime(Date date) { + return getResetTime(date, 23, 59, 59); + } + + /** + * 获取指定日期累加年月日后的时间 + * + * @param date + * 指定日期 + * @param year + * 指定年数 + * @param month + * 指定月数 + * @param day + * 指定天数 + * @return 返回累加年月日后的时间 + */ + public static Date rollDate(Date date, int year, int month, int day) { + Calendar cal = Calendar.getInstance(); + if (date != null) { + cal.setTime(date); + } + cal.add(Calendar.YEAR, year); + cal.add(Calendar.MONTH, month); + cal.add(Calendar.DAY_OF_MONTH, day); + return cal.getTime(); + } + + /** + * 获取指定日期累加指定月数后的时间 + * + * @param date + * 指定日期 + * @param month + * 指定月数 + * @return 返回累加月数后的时间 + */ + public static Date rollMonth(Date date, int month) { + return rollDate(date, 0, month, 0); + } + + /** + * 获取指定日期累加指定天数后的时间 + * + * @param date + * 指定日期 + * @param day + * 指定天数 + * @return 返回累加天数后的时间 + */ + public static Date rollDay(Date date, int day) { + return rollDate(date, 0, 0, day); + } + + /** + * 计算指定日期所在月份的天数 + * + * @param date + * 指定日期 + * @return 返回所在月份的天数 + */ + public static int getDayOfMonth(Date date) { + Calendar cal = Calendar.getInstance(); + if (date != null) { + cal.setTime(date); + } + int dayOfMonth = cal.getActualMaximum(Calendar.DATE); + return dayOfMonth; + } + + /** + * 获取当月第一天的起始时间,例如2014-08-01 00:00:00 + * + * @return 返回当月第一天的起始时间 + */ + public static Date getMonthStartTime() { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.DAY_OF_MONTH, 1); + return getIntegralStartTime(cal.getTime()); + } + + /** + * 获取当月最后一天的结束时间,例如2014-08-31 23:59:59 + * + * @return 返回当月最后一天的结束时间 + */ + public static Date getMonthEndTime() { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.DAY_OF_MONTH, getDayOfMonth(cal.getTime())); + return getIntegralEndTime(cal.getTime()); + } + + /** + * 获取上个月第一天的起始时间,例如2014-07-01 00:00:00 + * + * @return 返回上个月第一天的起始时间 + */ + public static Date getLastMonthStartTime() { + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.MONTH, -1); + cal.set(Calendar.DAY_OF_MONTH, 1); + return getIntegralStartTime(cal.getTime()); + } + + /** + * 获取上个月最后一天的结束时间,例如2014-07-31 23:59:59 + * + * @return 返回上个月最后一天的结束时间 + */ + public static Date getLastMonthEndTime() { + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.MONTH, -1); + cal.set(Calendar.DAY_OF_MONTH, getDayOfMonth(cal.getTime())); + return getIntegralEndTime(cal.getTime()); + } + + /** + * 获取下个月第一天的起始时间,例如2014-09-01 00:00:00 + * + * @return 返回下个月第一天的起始时间 + */ + public static Date getNextMonthStartTime() { + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.MONTH, 1); + cal.set(Calendar.DAY_OF_MONTH, 1); + return getIntegralStartTime(cal.getTime()); + } + + /** + * 获取下个月最后一天的结束时间,例如2014-09-30 23:59:59 + * + * @return 返回下个月最后一天的结束时间 + */ + public static Date getNextMonthEndTime() { + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.MONTH, 1); + cal.set(Calendar.DAY_OF_MONTH, getDayOfMonth(cal.getTime())); + return getIntegralEndTime(cal.getTime()); + } + + /** + * 获取当前季度第一天的起始时间 + * + * @return 返回当前季度第一天的起始时间 + */ + public static Date getQuarterStartTime() { + Calendar cal = Calendar.getInstance(); + int month = cal.get(Calendar.MONTH); + if (month < 3) { + cal.set(Calendar.MONTH, 0); + } else if (month < 6) { + cal.set(Calendar.MONTH, 3); + } else if (month < 9) { + cal.set(Calendar.MONTH, 6); + } else { + cal.set(Calendar.MONTH, 9); + } + cal.set(Calendar.DAY_OF_MONTH, 1); + return getIntegralStartTime(cal.getTime()); + } + + /** + * 获取当前季度最后一天的结束时间 + * + * @return 返回当前季度最后一天的结束时间 + */ + public static Date getQuarterEndTime() { + Calendar cal = Calendar.getInstance(); + int month = cal.get(Calendar.MONTH); + if (month < 3) { + cal.set(Calendar.MONTH, 2); + } else if (month < 6) { + cal.set(Calendar.MONTH, 5); + } else if (month < 9) { + cal.set(Calendar.MONTH, 8); + } else { + cal.set(Calendar.MONTH, 11); + } + cal.set(Calendar.DAY_OF_MONTH, getDayOfMonth(cal.getTime())); + return getIntegralEndTime(cal.getTime()); + } + + /** + * 获取前一个工作日 + * + * @return 返回前一个工作日 + */ + public static Date getPrevWorkday() { + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.DAY_OF_MONTH, -1); + if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { + cal.add(Calendar.DAY_OF_MONTH, -2); + } + if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { + cal.add(Calendar.DAY_OF_MONTH, -1); + } + return getIntegralStartTime(cal.getTime()); + } + + /** + * 获取下一个工作日 + * + * @return 返回下个工作日 + */ + public static Date getNextWorkday() { + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.DAY_OF_MONTH, 1); + if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { + cal.add(Calendar.DAY_OF_MONTH, 2); + } + if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { + cal.add(Calendar.DAY_OF_MONTH, 1); + } + return getIntegralStartTime(cal.getTime()); + } + + /** + * 获取当周的第一个工作日 + * + * @return 返回第一个工作日 + */ + public static Date getFirstWorkday() { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + return getIntegralStartTime(cal.getTime()); + } + + /** + * 获取当周的最后一个工作日 + * + * @return 返回最后一个工作日 + */ + public static Date getLastWorkday() { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY); + return getIntegralStartTime(cal.getTime()); + } + + /** + * 判断指定日期是否是工作日 + * + * @param date + * 指定日期 + * @return 如果是工作日返回true,否则返回false + */ + public static boolean isWorkday(Date date) { + Calendar cal = Calendar.getInstance(); + if (date != null) { + cal.setTime(date); + } + int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); + return !(dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY); + } + + /** + * 获取指定日期是星期几 + * + * @param date + * 指定日期 + * @return 返回星期几的描述 + */ + public static String getWeekdayDesc(Date date) { + final String[] weeks = new String[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; + Calendar cal = Calendar.getInstance(); + if (date != null) { + cal.setTime(date); + } + return weeks[cal.get(Calendar.DAY_OF_WEEK) - 1]; + } + + /** + * 获取指定日期距离当前时间的时间差描述(如3小时前、1天前) + * + * @param date + * 指定日期 + * @return 返回时间差的描述 + */ + public static String getTimeOffsetDesc(Date date) { + int seconds = getOffsetSeconds(date, new Date()); + if (Math.abs(seconds) < 60) { + return Math.abs(seconds) + "秒" + (seconds > 0 ? "前" : "后"); + } + int minutes = seconds / 60; + if (Math.abs(minutes) < 60) { + return Math.abs(minutes) + "分钟" + (minutes > 0 ? "前" : "后"); + } + int hours = minutes / 60; + if (Math.abs(hours) < 60) { + return Math.abs(hours) + "小时" + (hours > 0 ? "前" : "后"); + } + int days = hours / 24; + if (Math.abs(days) < 7) { + return Math.abs(days) + "天" + (days > 0 ? "前" : "后"); + } + int weeks = days / 7; + if (Math.abs(weeks) < 5) { + return Math.abs(weeks) + "周" + (weeks > 0 ? "前" : "后"); + } + int monthes = days / 30; + if (Math.abs(monthes) < 12) { + return Math.abs(monthes) + "个月" + (monthes > 0 ? "前" : "后"); + } + int years = monthes / 12; + return Math.abs(years) + "年" + (years > 0 ? "前" : "后"); + } +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/Different.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/Different.java new file mode 100644 index 0000000..c7ae9b9 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/Different.java @@ -0,0 +1,463 @@ +package com.yunze.apiCommon.utils; + +import java.util.*; + +/** + * 比较两个 list + */ +public class Different { + + /** + * 获取不同数据 + * @param list1 + * @param list2 + * @return + */ + public static List getDiffrent(List list1, List list2) { + Map map = new HashMap(list1.size() + list2.size()); + List diff = new ArrayList(); + List maxList = list1; + List minList = list2; + if (list2.size() > list1.size()) { + maxList = list2; + minList = list1; + } + + for (String string : maxList) { + map.put(string, 1); + } + + for (String string : minList) { + Integer cc = map.get(string); + if (cc != null) { + map.put(string, ++cc); + continue; + } + map.put(string, 1); + } + + for (Map.Entry entry : map.entrySet()) { + if (entry.getValue() == 1) { + diff.add(entry.getKey()); + } + } + return diff; + } + + + /** + * 获取相同值 + * @param list1 + * @param list2 + * @param lie + * @return + */ + public static List> getIdentical(List list1, List list2,String lie) { + Map map = new HashMap(list1.size() + list2.size()); + List> diff = new ArrayList>(); + List maxList = list1; + List minList = list2; + if (list2.size() > list1.size()) { + maxList = list2; + minList = list1; + } + + for (String string : maxList) { + map.put(string, 1); + } + + for (String string : minList) { + Integer cc = map.get(string); + if (cc != null) { + map.put(string, ++cc); + continue; + } + map.put(string, 1); + } + + for (Map.Entry entry : map.entrySet()) { + if (entry.getValue() == 1) { + + }else{ + Map Obj = new HashMap(); + Obj.put(lie,entry.getKey()); + diff.add(Obj); + } + } + return diff; + } + + /** + * 获取相同数据 + * @param list1 + * @param list2 + * @return + */ + public static List getIdentical(List list1, List list2) { + Map map = new HashMap(list1.size() + list2.size()); + List diff = new ArrayList(); + List maxList = list1; + List minList = list2; + if (list2.size() > list1.size()) { + maxList = list2; + minList = list1; + } + + for (String string : maxList) { + map.put(string, 1); + } + + for (String string : minList) { + Integer cc = map.get(string); + if (cc != null) { + map.put(string, ++cc); + continue; + } + map.put(string, 1); + } + + for (Map.Entry entry : map.entrySet()) { + if (entry.getValue() == 1) { + + }else{ + diff.add(entry.getKey()); + } + } + return diff; + } + + + /** + * 获取不同数据 + * @param list1 + * @param list2 + * @param lie + * @return + */ + public static List> getDiffrent(List list1, List list2,String lie) { + Map map = new HashMap(list1.size() + list2.size()); + List> diff = new ArrayList>(); + List maxList = list1; + List minList = list2; + if (list2.size() > list1.size()) { + maxList = list2; + minList = list1; + } + + for (String string : maxList) { + map.put(string, 1); + } + + for (String string : minList) { + Integer cc = map.get(string); + if (cc != null) { + map.put(string, ++cc); + continue; + } + map.put(string, 1); + } + + for (Map.Entry entry : map.entrySet()) { + if (entry.getValue() == 1) { + Map Obj = new HashMap(); + Obj.put(lie,entry.getKey()); + diff.add(Obj); + } + } + return diff; + } + + + /** + * 删除 字段 相同数据 + * @param listmap + * @param list2 + * @param lie + * @return + */ + public static List> delIdentical(List> listmap, List list2,String lie) { + List> Rmap = new ArrayList>(); + + for (int i = 0; i < listmap.size(); i++) { + Map map = listmap.get(i); + String val = map.get(lie); + boolean bool = false; + for (int j = 0; j < list2.size(); j++) { + if(val.equals(list2.get(j))){ + bool = true; + break; + } + } + if(!bool){ + Rmap.add(map); + } + } + return Rmap; + } + + /** + * 删除 字段 相同数据 + * @param listmap + * @param list2 + * @param lie + * @return + */ + public static List> delIdenticalObj(List> listmap, List list2,String lie) { + List> Rmap = new ArrayList>(); + for (int i = 0; i < listmap.size(); i++) { + Map map = listmap.get(i); + String val = map.get(lie)+""; + boolean bool = false; + for (int j = 0; j < list2.size(); j++) { + if(val.equals(list2.get(j))){ + bool = true; + break; + } + } + if(!bool){ + Rmap.add(map); + } + } + return Rmap; + } + + + public static boolean Is_existence(String[] list1, String val) { + boolean bool = false; + for (int i = 0; i list1, String val) { + boolean bool = false; + for (int i = 0; i > list1,String lie, String val) { + boolean bool = false; + for (int i = 0; i obj = list1.get(i); + if(obj.get(lie).equals(val)){ + bool = true; + break; + } + } + return bool; + } + + + public static boolean Is_existenceStr(List list1, String val) { + boolean bool = false; + for (int i = 0; i list1, Integer val) { + boolean bool = false; + for (int i = 0; i list1 =new ArrayList(); + for(int i=1;i<10;i++) { + list1.add(i+""); + + } + + List list2 =new ArrayList(); + for(int i=5;i<11;i++) { + list2.add(i+""); + } + List list3 =getIdentical(list1,list2); + List> list4 =getIdentical(list2,list1,"iccid"); + + System.out.println(list1); + System.out.println(list2); + System.out.println("不同的值:"+list3); + System.out.println("不同的值:"+list4);*/ + + + /*Objects Wtarr[] = {}; + for (int i = 1; i < 10; i++) { + Wtarr = StringArrAdd(Wtarr, ); + } + for (int i = 1; i < Wtarr.length; i++) { + System.out.println(Wtarr[i]); + }*/ + + } + + public static Object[] StringArrAdd(Object[] custom,Object name) { + //添加姓名 + + if(custom==null) { //若数组为空,定义数组的长度为1 + + custom=new Objects[1]; + + custom[0]=name; + + } else { + //若数组不为空,把数组复制出一个新的,在原数组的基础上加1 + + Object[] copy= Arrays.copyOf(custom, custom.length+1); + + //把原先数组制空 + custom=null; + //把新数组给原先这个数组 + custom=copy; + custom[custom.length-1]=name; + } + return custom; + } + + + + /** + * 获取 数组去重数据 和 重复值 + * List list = new LinkedList (); + * list.add ("电视"); + * list.add ("电视"); + * list.add ("手机"); + * list.add ("冰箱"); + * list.add ("电视"); + * list.add ("空调"); + * list.add ("手机"); + * @param list + * @return + */ + public static Map getListDifference(List list){ + Map Rmap = new HashMap<>(); + Set set = new HashSet (); + List arr = new ArrayList<> (); + String result = ""; + for ( String string : list ) + { + // 表示存在就加不进去了 + if (!set.add (string)) + { + if (!result.contains (string)) + { + result += string + "|"; + arr.add(string); + } + } + } + List resultArr = new ArrayList<>(set); + Rmap.put("only",resultArr);//[手机, 空调, 冰箱, 电视] + Rmap.put("Repeat",arr);//[电视, 手机] + return Rmap; + } + + + /** + * 获取 筛选不重复的某列值 和 重复的 + * @param list + * @param lie + * @return + */ + public static Map getNotRepeating(List> list,String lie) { + Map map = new HashMap(); + List> Rlist = new ArrayList>(); + List> Repeatlist = new ArrayList>(); + + for (int i = 0; i obj = list.get(i); + if(Rlist.size()>0){ + if(Is_existence(Rlist,lie,obj.get(lie).toString())){ + Repeatlist.add(obj); + }else{ + Rlist.add(obj); + } + }else{ + Rlist.add(obj); + } + + } + map.put("Rlist",Rlist); + map.put("Repeatlist",Repeatlist); + return map; + } + + + + + /** + * 获取 筛选不重复的某列值 和 重复的 + * @param list + * @param lie + * @return + */ + public static Map getNotRepeating(List> list,List DB_list,String lie) { + Map map = new HashMap(); + List> Rlist = new ArrayList>();//存在 + List> Repeatlist = new ArrayList>();//不存在 + + for (int i = 0; i obj = list.get(i); + if(Is_existenceStr(DB_list,obj.get(lie).toString())){ + Rlist.add(obj); + }else{ + Repeatlist.add(obj); + } + } + map.put("Rlist",Rlist); + map.put("Repeatlist",Repeatlist); + return map; + } + + + + + + + + + + + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/EncodingUtil.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/EncodingUtil.java new file mode 100644 index 0000000..3d2625f --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/EncodingUtil.java @@ -0,0 +1,133 @@ +package com.yunze.apiCommon.utils; + +import java.io.UnsupportedEncodingException; + +/** + * @Auther: zhang feng + * @Date: 2021/06/17/15:57 + * @Description: + */ +public class EncodingUtil { + + + /** + * 将原正确编码的字符串src,转化为编码为srcCharset的字符串 + *

    + * 前提是:确保原字符串的编码是无损(完整的). 无需知道原字符串的具体编码, + * 转化为目标编码的字符串由java库自动实现,无需自己手动实现。 + *

    + * 如果原编码字符串不能转化为目标编码,将会抛出UnsupportedEncodingException + * + * @param src + * @param srcCharset + * @param destCharet + * @return 转换后的字符串 + * @throws UnsupportedEncodingException + */ + public static String convertEncoding_Str(String src, String srcCharset, String destCharet) + throws UnsupportedEncodingException { + byte[] bts = src.getBytes(srcCharset); + return new String(bts, destCharet); + } + + + /** + * 将编码为srcCharset的字节数组src转化为编码为destCharet的字节数组 + * + * @param src + * @param srcCharset + * @param destCharet + * @return + * @throws UnsupportedEncodingException + */ + public static byte[] convertEncoding_ByteArr(byte[] src, String srcCharset, String destCharet) + throws UnsupportedEncodingException { + String s = new String(src, srcCharset); + return s.getBytes(destCharet); + } + + + /** + * 将字节数组byteArr转化为2位16进制字符串,每个16进制之间用空格分割 + * + * @param byteArr + * @return + */ + public static String byteToHex(byte... byteArr) { + if (null == byteArr || byteArr.length == 0) + return ""; + StringBuffer sb = new StringBuffer(); + String tmp = null; + + for (byte b : byteArr) { + + tmp = Integer.toHexString(b); + // 切记:byte进行运算时,会自动转化为int,否则可能会出错 + if (b >>> 31 == 1) { // 最高位为1,负数 + sb.append(tmp.substring(6)); + } else { // 最高位为0,正数 + if (tmp.length() < 2) + sb.append('0'); + sb.append(tmp); + } + sb.append(' '); + } + sb.deleteCharAt(sb.length() - 1); // delete last space + return sb.toString(); + } + + + public static String getEncoding(String str) + { + String encode; + + encode = "UTF-16"; + try { + if (str.equals(new String(str.getBytes(), encode))){ + return encode; + } + } catch (Exception ex) { + } + + encode = "ASCII"; + try { + if (str.equals(new String(str.getBytes(), encode))){ + return "字符串<< " + str + " >>中仅由数字和英文字母组成,无法识别其编码格式"; + } + } catch (Exception ex) { + } + + encode = "ISO-8859-1"; + try { + if (str.equals(new String(str.getBytes(), encode))){ + return encode; + } + } catch (Exception ex) { + } + + encode = "GB2312"; + try { + if (str.equals(new String(str.getBytes(), encode))){ + return encode; + } + } catch (Exception ex) { + } + + encode = "UTF-8"; + try { + if (str.equals(new String(str.getBytes(), encode))){ + return encode; + } + } catch (Exception ex) { + } + + /* + *......待完善 + */ + + return "未识别编码格式"; + } + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/GetApiParam.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/GetApiParam.java new file mode 100644 index 0000000..0773245 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/GetApiParam.java @@ -0,0 +1,78 @@ +package com.yunze.apiCommon.utils; + +import org.springframework.stereotype.Component; + +import java.util.*; + +/** + * 内部请求获取请求参数 + */ +@Component +public class GetApiParam { + + /** + * 封装查询api的必要参数 + * @param pMap + * @return + */ + public Map getApiParams(Map pMap){ + Map map = new HashMap(); + Map Yzmap = new HashMap(); + Map Parmap = new HashMap(); + + String appId = ""; + String password = ""; + String access_key = ""; + String timeStamp = System.currentTimeMillis() + ""; + + + Yzmap.put("password", password); + Yzmap.put("appId", appId); + Yzmap.put("timeStamp", timeStamp); + + Yzmap.put("password", password); + Yzmap.put("appId", appId); + Yzmap.put("timeStamp", timeStamp); + String sign = getSign(Yzmap, access_key); + Yzmap.put("sign", sign); + + if(!pMap.isEmpty()){ + for(String key:pMap.keySet()){ + Parmap.put(key, pMap.get(key).toString()); + } + } + map.put("verify", Yzmap); + map.put("Param", Parmap); + return map; + } + + /** + * Sign 加密 + * @param map + * @param key + * @return + */ + public static String getSign(Map map, String key) {//入参为:appid,password,version,iccid,timestamp,sign + Iterator iterator = map.keySet().iterator(); + while (iterator.hasNext()) {// 循环取键值进行判断 + String m = iterator.next();// 键 + if (m.startsWith("sign")) { + iterator.remove();// 移除map中以a字符开头的键对应的键值对 + } + if (m.startsWith("iccids")) { + iterator.remove(); + } + } + List list = new ArrayList<>(map.keySet()); + Collections.sort(list); + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < list.size(); i++) { + String k = list.get(i); + String v = (String) map.get(k); + sb.append(k).append("=").append(v).append("&"); + } + String signstr = sb.append("key=").append(key).toString(); + String sign = MD5Util.MD5Encode(signstr).toUpperCase(); + return sign; + } +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/HttpClientUtil.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/HttpClientUtil.java new file mode 100644 index 0000000..9cb8dbd --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/HttpClientUtil.java @@ -0,0 +1,115 @@ +package com.yunze.apiCommon.utils; + +import com.alibaba.fastjson.JSONObject; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.HttpStatus; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; + +import java.io.IOException; +import java.nio.charset.Charset; + +public class HttpClientUtil { + + /** + * 传递string参数 + */ + public static String doPostStr(String url, String json){ + String result = null; + + HttpPost post = null; + try { + CloseableHttpClient httpClient = HttpClients.createDefault(); + post = new HttpPost(url); + // 构造消息头 + post.setHeader("Content-type", "application/json; charset=utf-8"); + // 构建消息实体 + StringEntity entity = new StringEntity(json, Charset.forName("UTF-8")); + post.setEntity(entity); + CloseableHttpResponse response = httpClient.execute(post); + + // 检验返回码 + int statusCode = response.getStatusLine().getStatusCode(); + if(statusCode == HttpStatus.SC_OK){ + result= EntityUtils.toString(response.getEntity(),"utf-8"); + + } + } catch (Exception e) { + e.printStackTrace(); + }finally{ + if(post != null){ + try { + post.releaseConnection(); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + System.out.println(result); + return result; + } + + /** + * post 请求 + */ + public static String doPostJson(String url, JSONObject json){ + String result = null; + + HttpPost post = null; + try { + CloseableHttpClient httpClient = HttpClients.createDefault(); + post = new HttpPost(url); + // 构造消息头 + post.setHeader("Content-type", "application/json; charset=utf-8"); + // 构建消息实体 + StringEntity entity = new StringEntity(json.toString(), Charset.forName("UTF-8")); + post.setEntity(entity); + CloseableHttpResponse response = httpClient.execute(post); + + // 检验返回码 + int statusCode = response.getStatusLine().getStatusCode(); + if(statusCode == HttpStatus.SC_OK){ + result= EntityUtils.toString(response.getEntity(),"utf-8"); + + } + } catch (Exception e) { + e.printStackTrace(); + }finally{ + if(post != null){ + try { + post.releaseConnection(); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + System.out.println(result); + return result; + } + + /** + *get 请求 + */ + public static String doGet(String url) throws ClientProtocolException, IOException { + String result = null; + DefaultHttpClient client = new DefaultHttpClient(); + org.apache.http.client.methods.HttpGet getHttp = new org.apache.http.client.methods.HttpGet(url); + HttpResponse res =client.execute(getHttp); + HttpEntity entity =res.getEntity(); + if(null!=entity){ + result = EntityUtils.toString(entity,"utf-8"); + //System.out.println(result); + } + System.out.println(result); + return result; + } +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/HttpUtil.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/HttpUtil.java new file mode 100644 index 0000000..be5af2f --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/HttpUtil.java @@ -0,0 +1,438 @@ +package com.yunze.apiCommon.utils; + + +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.utils.URIBuilder; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; +import org.w3c.dom.Document; + +import javax.servlet.ServletInputStream; +import javax.servlet.http.HttpServletRequest; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import java.io.*; +import java.net.URL; +import java.net.URLConnection; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +public class HttpUtil { + private static CloseableHttpClient httpClient; + + static { + PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); + cm.setMaxTotal(100); + cm.setDefaultMaxPerRoute(20); + cm.setDefaultMaxPerRoute(50); + httpClient = HttpClients.custom().setConnectionManager(cm).build(); + } + + public static String get(String url) { + CloseableHttpResponse response = null; + BufferedReader in = null; + String result = ""; + try { + HttpGet httpGet = new HttpGet(url); + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(30000).build(); + httpGet.setConfig(requestConfig); + httpGet.setConfig(requestConfig); + httpGet.addHeader("Content-type", "application/json; charset=utf-8"); + httpGet.setHeader("Accept", "application/json"); + response = httpClient.execute(httpGet); + in = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),"utf-8")); + StringBuffer sb = new StringBuffer(""); + String line = ""; + String NL = System.getProperty("line.separator"); + while ((line = in.readLine()) != null) { + sb.append(line + NL); + } + in.close(); + result = sb.toString(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (null != response) { + response.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return result; + } + + public static String get(String url, Map headers) { + CloseableHttpResponse response = null; + BufferedReader in = null; + String result = ""; + try { + HttpGet httpGet = new HttpGet(url); + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(30000).build(); + httpGet.setConfig(requestConfig); + httpGet.setConfig(requestConfig); + if (headers!=null){ + for(String key:headers.keySet()){ + //System.out.println("key="+key+" value=" +headers.get(key)); + httpGet.setHeader(key, headers.get(key)); + } + } + response = httpClient.execute(httpGet); + in = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),"utf-8")); + StringBuffer sb = new StringBuffer(""); + String line = ""; + String NL = System.getProperty("line.separator"); + while ((line = in.readLine()) != null) { + sb.append(line + NL); + } + in.close(); + result = sb.toString(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (null != response) { + response.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return result; + } + + + + + public static String post(String url, String jsonString) { + CloseableHttpResponse response = null; + BufferedReader in = null; + String result = ""; + try { + HttpPost httpPost = new HttpPost(url); + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(30000).build(); + httpPost.setConfig(requestConfig); + httpPost.setConfig(requestConfig); + httpPost.addHeader("Content-type", "application/json; charset=utf-8"); + httpPost.setHeader("Accept", "application/json"); + httpPost.setEntity(new StringEntity(jsonString, Charset.forName("UTF-8"))); + response = httpClient.execute(httpPost); + in = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),"utf-8")); + StringBuffer sb = new StringBuffer(""); + String line = ""; + String NL = System.getProperty("line.separator"); + while ((line = in.readLine()) != null) { + sb.append(line + NL); + } + in.close(); + result = sb.toString(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (null != response) { + response.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return result; + } + + + + + public static String post(String url, String jsonString, Map headers) { + CloseableHttpResponse response = null; + BufferedReader in = null; + String result = ""; + try { + HttpPost httpPost = new HttpPost(url); + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(30000).build(); + httpPost.setConfig(requestConfig); + httpPost.setConfig(requestConfig); + httpPost.addHeader("Content-type", "application/json; charset=utf-8"); + httpPost.setHeader("Accept", "application/json"); + + if (headers!=null){ + for(String key:headers.keySet()){ + //System.out.println("key="+key+" value=" +headers.get(key)); + httpPost.setHeader(key, headers.get(key)); + } + } + httpPost.setEntity(new StringEntity(jsonString, Charset.forName("UTF-8"))); + response = httpClient.execute(httpPost); + in = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),"utf-8")); + StringBuffer sb = new StringBuffer(""); + String line = ""; + String NL = System.getProperty("line.separator"); + while ((line = in.readLine()) != null) { + sb.append(line + NL); + } + in.close(); + result = sb.toString(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (null != response) { + response.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return result; + } + + + + + + + + + + /** + * 获取Json数据 + * + * @param request + * @return + */ + public static String getJsonParam(HttpServletRequest request) { + + String jsonParam = ""; + ServletInputStream inputStream = null; + try { + int contentLength = request.getContentLength(); + if (!(contentLength < 0)) { + byte[] buffer = new byte[contentLength]; + inputStream = request.getInputStream(); + for (int i = 0; i < contentLength; ) { + int len = inputStream.read(buffer, i, contentLength); + if (len == -1) { + break; + } + i += len; + } + jsonParam = new String(buffer, "utf-8"); + } + } catch (IOException e) { + //System.out.println("参数转换成json异常 {\"+e+\"}"); + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + //System.out.println("参数转换成json异常 {" + e + "}"); + } + } + } + return jsonParam; + } + + + /** + * json的数据格式 请求体 请求 + * @param url + * @param body + * @return + * @throws Exception + */ + public static String sendPostJson(String url, String body) throws Exception { + CloseableHttpClient httpClient = HttpClients.createDefault(); + HttpPost httpPost = new HttpPost(url); + httpPost.addHeader("Content-Type", "application/json"); + httpPost.setEntity(new StringEntity(body)); + CloseableHttpResponse response = httpClient.execute(httpPost); + //System.out.println(response.getStatusLine().getStatusCode() + "\n"); + HttpEntity entity = response.getEntity(); + String responseContent = EntityUtils.toString(entity, "UTF-8"); + //System.out.println(responseContent); + response.close(); + httpClient.close(); + return responseContent; + } + + /** + * form-data post + * @param url + * @param map + * @return + * @throws Exception + */ + public static String doPost(String url, Map map) throws Exception { + String result = ""; + CloseableHttpClient client = null; + CloseableHttpResponse response = null; + RequestConfig defaultRequestConfig = RequestConfig.custom().setSocketTimeout(550000).setConnectTimeout(550000) + .setConnectionRequestTimeout(550000).setStaleConnectionCheckEnabled(true).build(); + client = HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build(); + // client = HttpClients.createDefault(); + URIBuilder uriBuilder = new URIBuilder(url); + + HttpPost httpPost = new HttpPost(uriBuilder.build()); + httpPost.setHeader("Connection", "Keep-Alive"); + httpPost.setHeader("Charset", "utf-8"); + httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded"); + Iterator> it = map.entrySet().iterator(); + List params = new ArrayList(); + + while (it.hasNext()) { + Map.Entry entry = it.next(); + NameValuePair pair = new BasicNameValuePair(entry.getKey(), entry.getValue().toString()); + params.add(pair); + } + httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); + try { + response = client.execute(httpPost); + if (response != null) { + HttpEntity resEntity = response.getEntity(); + if (resEntity != null) { + result = EntityUtils.toString(resEntity, "utf-8"); + } + } + } catch (ClientProtocolException e) { + throw new RuntimeException("创建连接失败" + e); + } catch (IOException e) { + throw new RuntimeException("创建连接失败" + e); + } + + return result; + } + + + + /** + * form-data post + * @param url + * @param map + * @return + * @throws Exception + */ + public static String doPost(String url, Map map, Map headers) throws Exception { + String result = ""; + CloseableHttpClient client = null; + CloseableHttpResponse response = null; + RequestConfig defaultRequestConfig = RequestConfig.custom().setSocketTimeout(550000).setConnectTimeout(550000) + .setConnectionRequestTimeout(550000).setStaleConnectionCheckEnabled(true).build(); + client = HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build(); + // client = HttpClients.createDefault(); + URIBuilder uriBuilder = new URIBuilder(url); + + HttpPost httpPost = new HttpPost(uriBuilder.build()); + httpPost.setHeader("Connection", "Keep-Alive"); + httpPost.setHeader("Charset", "utf-8"); + httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded"); + + if (headers!=null){ + for(String key:headers.keySet()){ + //System.out.println("key="+key+" value=" +headers.get(key)); + httpPost.setHeader(key, headers.get(key)); + } + } + + Iterator> it = map.entrySet().iterator(); + List params = new ArrayList(); + + while (it.hasNext()) { + Map.Entry entry = it.next(); + NameValuePair pair = new BasicNameValuePair(entry.getKey(), entry.getValue().toString()); + params.add(pair); + } + httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); + try { + response = client.execute(httpPost); + if (response != null) { + HttpEntity resEntity = response.getEntity(); + if (resEntity != null) { + result = EntityUtils.toString(resEntity, "utf-8"); + } + } + } catch (ClientProtocolException e) { + throw new RuntimeException("创建连接失败" + e); + } catch (IOException e) { + throw new RuntimeException("创建连接失败" + e); + } + + return result; + } + + + /** + * post xml 请求 + * @param urlStr + * @param xmlString + * @return + */ + public static String postXml(String urlStr,String xmlString){ + String rResult = null; + byte[] xmlData = xmlString.getBytes(); + DataInputStream input = null; + java.io.ByteArrayOutputStream out = null; + try{ + //获得到位置服务的链接 + URL url = new URL(urlStr); + URLConnection urlCon = url.openConnection(); + urlCon.setDoOutput(true); + urlCon.setDoInput(true); + urlCon.setUseCaches(false); + //将xml数据发送到位置服务 + urlCon.setRequestProperty("Content-Type", "text/xml"); + urlCon.setRequestProperty("Content-length",String.valueOf(xmlData.length)); + DataOutputStream printout = new DataOutputStream(urlCon.getOutputStream()); + + printout.write(xmlData); + printout.flush(); + printout.close(); + input = new DataInputStream(urlCon.getInputStream()); + + out = new java.io.ByteArrayOutputStream(); + byte[] bufferByte = new byte[256]; + int l = -1; + int downloadSize = 0; + + while ((l = input.read(bufferByte)) > -1) { + downloadSize += l; + out.write(bufferByte, 0, l); + out.flush(); + } + + rResult = out.toString(); + } + catch(Exception e){ + e.printStackTrace(); + } + finally { + try { + out.close(); + input.close(); + } + catch (Exception ex) { + + } + } + + return rResult; + } + + + + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/InternalApiRequest.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/InternalApiRequest.java new file mode 100644 index 0000000..105a28d --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/InternalApiRequest.java @@ -0,0 +1,669 @@ +package com.yunze.apiCommon.utils; + +import com.alibaba.fastjson.JSON; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 内部请求 + * @Auther: zhang feng + * @Date: 2021/11/30/11:10 + * @Description: + */ +@Component +public class InternalApiRequest { + + public static String Server_IP = "http://127.0.0.1:9080/route/Api"; + + @Resource + private ApiUtil_NoStatic apiUtil_NoStatic; + + @Resource + private GetApiParam getApiParam; + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map queryFlow(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/queryFlow", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/queryFlow"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.queryFlow(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map queryFlowHis(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/queryFlowHis", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/queryFlowHis"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.queryFlowHis(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map queryCardStatus(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/queryCardStatus", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/queryCardStatus"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.queryCardStatus(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map changeCardStatus(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/changeCardStatus", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/changeCardStatus"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.changeCardStatus(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map FunctionApnStatus(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/FunctionApnStatus", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/FunctionApnStatus"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.FunctionApnStatus(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map SpeedLimit(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/SpeedLimit", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/SpeedLimit"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.SpeedLimit(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map queryOnlineStatus(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/queryOnlineStatus", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/queryOnlineStatus"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.queryOnlineStatus(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map queryCardActiveTime(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/queryCardActiveTime", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/queryCardActiveTime"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.queryCardActiveTime(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map unbundling(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/unbundling", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/unbundling"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.unbundling(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map queryCardImei(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/queryCardImei", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/queryCardImei"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.queryCardImei(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map realNameRemove(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/realNameRemove", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/realNameRemove"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.realNameRemove(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map simStopReason(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/simStopReason", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/simStopReason"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.simStopReason(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map onOffStatus(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/onOffStatus", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/onOffStatus"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.onOffStatus(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map apnInfo(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/apnInfo", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/apnInfo"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.apnInfo(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map cardBindStatus(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/cardBindStatus", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/cardBindStatus"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.cardBindStatus(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map simChangeHistory(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/simChangeHistory", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/simChangeHistory"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.simChangeHistory(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map changeCardStatusFlexible(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/changeCardStatusFlexible", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/changeCardStatusFlexible"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.changeCardStatusFlexible(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + /** + * 内部请求 + * @param map + * @param fmap + * @return + */ + public Map queryOffering(Map map, Map fmap) { + Map Rmap = new HashMap<>(); + try { + if (IsInternal(fmap)) { + try { + Map apiMapNet= getApiParam.getApiParams(map); + String Pardata = AesEncryptUtil.encrypt(JSON.toJSONString(apiMapNet)); + String Rstr = HttpClientUtil.doPostStr(Server_IP + "/queryOffering", Pardata);// 返回结果字符串 + Rmap = JSON.parseObject(Rstr); + if(Rmap.get("code").equals("200")){ + Rmap = JSON.parseObject(AesEncryptUtil.desEncrypt(Rmap.get("data").toString())); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + System.out.println("/queryOffering"+" map "+map+" fmap "+fmap+" Rmap "+Rmap); + } + }else{ + Rmap = apiUtil_NoStatic.queryOffering(map,fmap); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return Rmap; + } + + + + + + + + /** + * 是否需要走内部API 【特定情况如ip地址白名单等 API 与 部署服务不在同一服务器】 + * @param fmap + * @return + */ + public boolean IsInternal(Map fmap) { + boolean bool = false; + String cd_control_type = fmap.get("cd_control_type")!=null && fmap.get("cd_control_type").toString().length()>0?fmap.get("cd_control_type").toString():"0"; + bool = cd_control_type.equals("1")?true:false; + return bool ; + } + + + +} + diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/MD5Util.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/MD5Util.java new file mode 100644 index 0000000..53ededf --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/MD5Util.java @@ -0,0 +1,63 @@ +package com.yunze.apiCommon.utils; + +import java.security.MessageDigest; + +/** + * 1.MD5加密字符串(32位大写) + * 2.MD5加密字符串(32位小写) + *

    + * MD5在线加密:https://md5jiami.51240.com/ + * 3.将二进制字节数组转换为十六进制字符串 + * 4.Unicode中文编码转换成字符串 + */ +public class MD5Util { + + private final static String[] hexDigits = {"0", "1", "2", "3", "4", "5", "6", "7", + "8", "9", "a", "b", "c", "d", "e", "f"}; + + /** + * 转换字节数组为16进制字串 + * @param b 字节数组 + * @return 16进制字串 + */ + public static String byteArrayToHexString(byte[] b) { + StringBuilder resultSb = new StringBuilder(); + for (byte aB : b) { + resultSb.append(byteToHexString(aB)); + } + return resultSb.toString(); + } + + /** + * 转换byte到16进制 + * @param b 要转换的byte + * @return 16进制格式 + */ + private static String byteToHexString(byte b) { + int n = b; + if (n < 0) { + n = 256 + n; + } + int d1 = n / 16; + int d2 = n % 16; + return hexDigits[d1] + hexDigits[d2]; + } + + /** + * MD5编码 + * @param origin 原始字符串 + * @return 经过MD5加密之后的结果 + */ + public static String MD5Encode(String origin) { + String resultString = null; + try { + resultString = origin; + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(resultString.getBytes("UTF-8")); + resultString = byteArrayToHexString(md.digest()); + } catch (Exception e) { + e.printStackTrace(); + } + return resultString; + } +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/Result.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/Result.java new file mode 100644 index 0000000..9c6dd9d --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/Result.java @@ -0,0 +1,59 @@ +package com.yunze.apiCommon.utils; + + +/** + * @author + * @title: Response + * @projectName yunze + * @description: TODO + * @date 2021/10/23 00239:54 + */ +public class Result { + + private String code; + private String msg; + private T data; + + public Result(String code, String msg, T data) { + this.code = code; + this.msg = msg; + this.data = data; + } + + public Result(){ + super(); + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + @Override + public String toString() { + return "Response{" + + "code='" + code + '\'' + + ", msg='" + msg + '\'' + + ", data=" + data + + '}'; + } +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/SHA256Util.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/SHA256Util.java new file mode 100644 index 0000000..9db62fd --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/SHA256Util.java @@ -0,0 +1,48 @@ +package com.yunze.apiCommon.utils; + +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +/** + * @Auther: zhang feng + * @Date: 2021/07/21/17:19 + * @Description: + */ +public class SHA256Util { + + public static void main(String[] args) { + System.out.println(getSHA256StrJava("sdchinacmsdydwlwpt017")); + } + + public static String getSHA256StrJava(String str) { + + MessageDigest messageDigest; + String encodeStr = ""; + try { + messageDigest = MessageDigest.getInstance("SHA-256"); + messageDigest.update(str.getBytes("UTF-8")); + encodeStr = byte2Hex(messageDigest.digest()); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return encodeStr; + } + + private static String byte2Hex(byte[] bytes) { + StringBuffer stringBuffer = new StringBuffer(); + String temp = null; + for (int i = 0; i < bytes.length; i++) { + temp = Integer.toHexString(bytes[i] & 0xFF); + if (temp.length() == 1) { +//1得到一位的进行补0操作 + stringBuffer.append("0"); + } + stringBuffer.append(temp); + } + return stringBuffer.toString(); + } + +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/SMSUtil.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/SMSUtil.java new file mode 100644 index 0000000..61a3acf --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/SMSUtil.java @@ -0,0 +1,134 @@ +package com.yunze.apiCommon.utils; + +import org.springframework.stereotype.Component; + +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class SMSUtil { + + public static void main(String[] args) { + // TODO Auto-generated method stub + + } + + // 判断一个字符串是否含有中文 + public static boolean isChinese(String str) { + if (str == null) + return false; + for (char c : str.toCharArray()) { + if (isChinese(c)) + return true;// 有一个中文字符就返回 + } + return false; + } + + // 判断一个字符是否是中文 + public static boolean isChinese(char c) { + return c >= 0x4E00 && c <= 0x9FA5;// 根据字节码判断 + } + + /** + * UCS2解码 + * + * @param src + * UCS2 源串 + * @return 解码后的UTF-16BE字符串 + */ + public static String DecodeUCS2(String src) { + byte[] bytes = new byte[src.length() / 2]; + + for (int i = 0; i < src.length(); i += 2) { + bytes[i / 2] = (byte) (Integer.parseInt(src.substring(i, i + 2), 16)); + } + String reValue = null; + try { + reValue = new String(bytes, "UTF-16BE"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return reValue; + + } + + /** + * UCS2编码 + * + * @param src + * UTF-16BE编码的源串 + * @return 编码后的UCS2串 + */ + public static String EncodeUCS2(String src) { + + byte[] bytes = null; + + try { + bytes = src.getBytes("UTF-16BE"); + } catch (UnsupportedEncodingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + StringBuffer reValue = new StringBuffer(); + StringBuffer tem = new StringBuffer(); + for (int i = 0; i < bytes.length; i++) { + tem.delete(0, tem.length()); + tem.append(Integer.toHexString(bytes[i] & 0xFF)); + if (tem.length() == 1) { + tem.insert(0, '0'); + } + reValue.append(tem); + } + return reValue.toString().toUpperCase(); + } + + // 发送长短信 + public static List getLongByte(String message) { + List list = new ArrayList(); + try { + byte[] messageUCS2 = message.getBytes("UnicodeBigUnmarked");// 转换为byte[] + int messageUCS2Len = messageUCS2.length;// 长短信长度 + int maxMessageLen = 140; + if (messageUCS2Len > maxMessageLen) {// 长短信发送 + // int tpUdhi = 1; + // 长消息是1.短消息是0 + // int msgFmt = 0x08;//长消息不能用GBK + int messageUCS2Count = messageUCS2Len / (maxMessageLen - 6) + 1;// 长短信分为多少条发送 + byte[] tp_udhiHead = new byte[6]; + Random random = new Random(); + random.nextBytes(tp_udhiHead);// 随机填充tp_udhiHead[3] 标识这批短信 + tp_udhiHead[0] = 0x05; + tp_udhiHead[1] = 0x00; + tp_udhiHead[2] = 0x03; +// tp_udhiHead[3] = 0x0A; + tp_udhiHead[4] = (byte) messageUCS2Count; + tp_udhiHead[5] = 0x01;// 默认为第一条 + for (int i = 0; i < messageUCS2Count; i++) { + tp_udhiHead[5] = (byte) (i + 1); + byte[] msgContent; + if (i != messageUCS2Count - 1) {// 不为最后一条 + msgContent = byteAdd(tp_udhiHead, messageUCS2, i * (maxMessageLen - 6), + (i + 1) * (maxMessageLen - 6)); + list.add(msgContent); + } else { + msgContent = byteAdd(tp_udhiHead, messageUCS2, i * (maxMessageLen - 6), messageUCS2Len); + list.add(msgContent); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return list; + } + + // 超过140字符长短信编码 + private static byte[] byteAdd(byte[] tpUdhiHead, byte[] messageUCS2, int i, int j) { + byte[] msgb = new byte[j - i + 6]; + System.arraycopy(tpUdhiHead, 0, msgb, 0, 6); + System.arraycopy(messageUCS2, i, msgb, 6, j - i); + return msgb; + } +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/UrlUtil.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/UrlUtil.java new file mode 100644 index 0000000..8bdb2cf --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/UrlUtil.java @@ -0,0 +1,123 @@ +package com.yunze.apiCommon.utils; + +import java.util.*; + +public class UrlUtil { + + /** + * 将参数集合转换为get请求地址 + * + * @param url + * @param params + * @return + */ + public static String getUrl(String url, Map params) { + // 添加url参数 + if (params != null) { + Iterator it = params.keySet().iterator(); + StringBuffer sb = null; + while (it.hasNext()) { + String key = it.next(); + Object value = ""; + if (params.get(key) != null) { + value = params.get(key); + } + + if (sb == null) { + sb = new StringBuffer(); + sb.append("?"); + } else { + sb.append("&"); + } + sb.append(key); + sb.append("="); + sb.append(value); + } + url += sb.toString(); + } + //System.out.println(url); + return url; + } + + + /** + * 将参数集合转换为get请求地址 + * + * @param url + * @param params + * @return + */ + public static String getUrl(String url, Map params,boolean isOrderBy) { + // 添加url参数 + if (params != null) { + List list=new ArrayList<>(params.keySet()); + if(isOrderBy){ + Collections.sort(list); + } + StringBuffer sb = null; + for(int i=0;i -1) { + end = dataStr.indexOf("\\u", start + 2); + String charStr = ""; + if (end == -1) { + charStr = dataStr.substring(start + 2, dataStr.length()); + } else { + charStr = dataStr.substring(start + 2, end); + } + char letter = (char) Integer.parseInt(charStr, 16); // 16进制parse整形字符串。 + buffer.append(new Character(letter).toString()); + start = end; + } + return buffer.toString(); + } +} diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/VeDate.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/VeDate.java new file mode 100644 index 0000000..c1f2c65 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/VeDate.java @@ -0,0 +1,930 @@ +package com.yunze.apiCommon.utils; + + +import java.text.ParseException; +import java.text.ParsePosition; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.*; + +/*** + * + * @ClassName: VeDate + * @Description: 格式化时间帮助类(这里用一句话描述这个类的作用) + * @author zhangfeng + * @date 2018年8月15日 + */ +public class VeDate { + + + /** + * 获取现在时间 + * + * @return返回短时间格式 yyyy-MM-dd + */ + public static Date getNowDateShort() { + Date currentTime = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + String dateString = formatter.format(currentTime); + ParsePosition pos = new ParsePosition(8); + Date currentTime_2 = formatter.parse(dateString, pos); + return currentTime_2; + } + + /** + * 获取现在时间 + * + * @return返回短时间格式 yyyyMMdd + */ + public static String getNowDateShortNuber() { + Date currentTime = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + String dateString = formatter.format(currentTime); + System.out.println(dateString); + String times[] = dateString.toString().split("-"); + return times[0] + times[1] + times[2]; + } + + + /** + * 获取现在时间 + * + * @return返回字符串格式 yyyy-MM-dd HH:mm:ss + */ + public static String getStringDate() { + Date currentTime = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String dateString = formatter.format(currentTime); + return dateString; + } + + /** + * 获取一个月的最后一天 + * + * @param yyyy_MM_dd + * @return + */ + public static String getEndDateOfMonth_yyyy_MM_DD(String yyyy_MM_dd) {// yyyy-MM-dd + String[] Strs = yyyy_MM_dd.split("-"); + String str = Strs[0] + "-" + Strs[1] + "-"; + String month = Strs[1]; + // System.out.println("month "+month); + //String yyyy_MM_dd = str.substring(0, 4)+"-"+month+"-01"; + int mon = Integer.parseInt(month); + if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) { + str += "31"; + } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) { + str += "30"; + } else { + if (isLeapYear(yyyy_MM_dd)) { + str += "29"; + } else { + str += "28"; + } + } + return str; + } + + /** + * 获取现在时间 + * + * @return返回字符串格式 yyyy-MM-dd HH:mm:ss.SSS + */ + public static String getStringDateSSS() { + Date currentTime = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + String dateString = formatter.format(currentTime); + return dateString; + } + + + /** + * 获取现在时间 + * + * @return 返回短时间字符串格式yyyy-MM-dd + */ + public static String getStringDateShort() { + Date currentTime = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + String dateString = formatter.format(currentTime); + return dateString; + } + + /** + * 获取当前年月集合 + * + * @return + */ + public static String[] getYyyyAndMm() { + String data = getStringDateShort(); + return data.split("-"); + } + + /** + * 获取时间 小时:分;秒 HH:mm:ss + * + * @return + */ + public static String getTimeShort() { + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); + Date currentTime = new Date(); + String dateString = formatter.format(currentTime); + return dateString; + } + + /** + * 字符串转换成时间格式 + * + * @param date + * @return + */ + public static String GetHH_MM_SS(String strDate) { + String str = strDate.split(" ")[1]; + return str; + } + + + /** + * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss + * + * @param strDate + * @return + */ + public static Date strToDateLong(String strDate) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + ParsePosition pos = new ParsePosition(0); + Date strtodate = formatter.parse(strDate, pos); + return strtodate; + } + + + /** + * 格式化 日期 + * + * @param strDate + * @return + */ + public static Date strToDateLong(String strDate, String Format) { + SimpleDateFormat formatter = new SimpleDateFormat(Format); + ParsePosition pos = new ParsePosition(0); + Date strtodate = formatter.parse(strDate, pos); + return strtodate; + } + + /** + * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss + * + * @param dateDate + * @return + */ + public static String dateToStrLong(Date dateDate) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String dateString = formatter.format(dateDate); + return dateString; + } + + /** + * 将短时间格式时间转换为字符串 yyyy-MM-dd + * + * @param dateDate + * @param + * @return + */ + public static String dateToStr(Date dateDate) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + String dateString = formatter.format(dateDate); + return dateString; + } + + /** + * 将短时间格式字符串转换为时间 yyyy-MM-dd + * + * @param strDate + * @return + */ + public static Date strToDate(String strDate) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + ParsePosition pos = new ParsePosition(0); + Date strtodate = formatter.parse(strDate, pos); + return strtodate; + } + + /** + * 得到现在时间 + * + * @return + */ + public static Date getNow() { + Date currentTime = new Date(); + return currentTime; + } + + /** + * 提取一个月中的最后一天 + * + * @param day + * @return + */ + public static Date getLastDate(long day) { + Date date = new Date(); + long date_3_hm = date.getTime() - 3600000 * 34 * day; + Date date_3_hm_date = new Date(date_3_hm); + return date_3_hm_date; + } + + /** + * 得到现在时间 + * + * @return 字符串 yyyyMMdd HHmmss + */ + public static String getStringToday() { + Date currentTime = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss"); + String dateString = formatter.format(currentTime); + return dateString; + } + + /** + * 得到现在小时 + */ + public static String getHour() { + Date currentTime = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String dateString = formatter.format(currentTime); + String hour; + hour = dateString.substring(11, 13); + return hour; + } + + /** + * 得到现在分钟 + * + * @return + */ + public static String getTime() { + Date currentTime = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String dateString = formatter.format(currentTime); + String min; + min = dateString.substring(14, 16); + return min; + } + + /** + * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。 + * + * @param sformat yyyyMMddhhmmss + * @return + */ + public static String getUserDate(String sformat) { + Date currentTime = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat(sformat); + String dateString = formatter.format(currentTime); + return dateString; + } + + /** + * 二个小时时间间的差值,必须保证二个时间都是"HH:MM"的格式,返回字符型的分钟 + */ + public static String getTwoHour(String st1, String st2) { + String[] kk = null; + String[] jj = null; + kk = st1.split(":"); + jj = st2.split(":"); + if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0])) + return "0"; + else { + double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60; + double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60; + if ((y - u) > 0) + return y - u + ""; + else + return "0"; + } + } + + /** + * 得到二个日期间的间隔天数 + */ + public static String getTwoDay(String sj1, String sj2) { + SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd"); + long day = 0; + try { + Date date = myFormatter.parse(sj1); + Date mydate = myFormatter.parse(sj2); + day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); + } catch (Exception e) { + return ""; + } + return day + ""; + } + + /** + * 时间前推或后推分钟,其中JJ表示分钟. + */ + public static String getPreTime(String sj1, String jj) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String mydate1 = ""; + try { + Date date1 = format.parse(sj1); + long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60; + date1.setTime(Time * 1000); + mydate1 = format.format(date1); + } catch (Exception e) { + } + return mydate1; + } + + /** + * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数 + */ + public static String getNextDay(String nowdate, String delay) { + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + String mdate = ""; + Date d = strToDate(nowdate); + long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60; + d.setTime(myTime * 1000); + mdate = format.format(d); + return mdate; + } catch (Exception e) { + return ""; + } + } + + /** + * 判断是否润年 + * + * @param ddate + * @return + */ + public static boolean isLeapYear(String ddate) { + + /** + * 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年 + * 3.能被4整除同时能被100整除则不是闰年 + */ + Date d = strToDate(ddate); + GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance(); + gc.setTime(d); + int year = gc.get(Calendar.YEAR); + if ((year % 400) == 0) + return true; + else if ((year % 4) == 0) { + if ((year % 100) == 0) + return false; + else + return true; + } else + return false; + } + + /** + * 返回美国时间格式 26 Apr 2006 + * + * @param str + * @return + */ + public static String getEDate(String str) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + ParsePosition pos = new ParsePosition(0); + Date strtodate = formatter.parse(str, pos); + String j = strtodate.toString(); + String[] k = j.split(" "); + return k[2] + k[1].toUpperCase() + k[5].substring(2, 4); + } + + /** + * 获取一个月的最后一天 + * + * @param dat + * @return + */ + public static String getEndDateOfMonth(String dat) {// yyyyMM + String str = dat.substring(0, 6); + String month = dat.substring(4, 6); + // System.out.println("month "+month); + String yyyy_MM_dd = str.substring(0, 4) + "-" + month + "-01"; + int mon = Integer.parseInt(month); + if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) { + str += "31"; + } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) { + str += "30"; + } else { + if (isLeapYear(yyyy_MM_dd)) { + str += "29"; + } else { + str += "28"; + } + } + return str; + } + + + /** + * 获取一个月的最后一天 + * + * @param dat + * @return + */ + public static String getEndDateOfMonthTime(String dat) {// yyyyMM + String str = dat.substring(0, 6); + String month = dat.substring(4, 6); + // System.out.println("month "+month); + String yyyy_MM_dd = str.substring(0, 4) + "-" + month + "-01"; + int mon = Integer.parseInt(month); + if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) { + str += "31"; + } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) { + str += "30"; + } else { + if (isLeapYear(yyyy_MM_dd)) { + str += "29"; + } else { + str += "28"; + } + } + return str; + } + + + /** + * 判断二个时间是否在同一个周 + * + * @param date1 + * @param date2 + * @return + */ + public static boolean isSameWeekDates(Date date1, Date date2) { + Calendar cal1 = Calendar.getInstance(); + Calendar cal2 = Calendar.getInstance(); + cal1.setTime(date1); + cal2.setTime(date2); + int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR); + if (0 == subYear) { + if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)) + return true; + } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) { + // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周 + if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)) + return true; + } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) { + if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)) + return true; + } + return false; + } + + /** + * 产生周序列,即得到当前时间所在的年度是第几周 + * + * @return + */ + public static String getSeqWeek() { + Calendar c = Calendar.getInstance(Locale.CHINA); + String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR)); + if (week.length() == 1) + week = "0" + week; + String year = Integer.toString(c.get(Calendar.YEAR)); + return year + week; + } + + /** + * 获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号 + * + * @param sdate + * @param num + * @return + */ + public static String getWeek(String sdate, String num) { + // 再转换为时间 + Date dd = VeDate.strToDate(sdate); + Calendar c = Calendar.getInstance(); + c.setTime(dd); + if (num.equals("1")) // 返回星期一所在的日期 + c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + else if (num.equals("2")) // 返回星期二所在的日期 + c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); + else if (num.equals("3")) // 返回星期三所在的日期 + c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY); + else if (num.equals("4")) // 返回星期四所在的日期 + c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY); + else if (num.equals("5")) // 返回星期五所在的日期 + c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY); + else if (num.equals("6")) // 返回星期六所在的日期 + c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY); + else if (num.equals("0")) // 返回星期日所在的日期 + c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); + return new SimpleDateFormat("6").format(c.getTime()); + } + + /** + * 根据一个日期,返回是星期几的字符串 + * + * @param sdate + * @return + */ + public static String getWeek(String sdate) { + // 再转换为时间 + Date date = VeDate.strToDate(sdate); + Calendar c = Calendar.getInstance(); + c.setTime(date); + // int hour=c.get(Calendar.DAY_OF_WEEK); + // hour中存的就是星期几了,其范围 1~7 + // 1=星期日 7=星期六,其他类推 + return new SimpleDateFormat("EEEE").format(c.getTime()); + } + + public static String getWeekStr(String sdate) { + String str = ""; + str = VeDate.getWeek(sdate); + if ("1".equals(str)) { + str = "星期日"; + } else if ("2".equals(str)) { + str = "星期一"; + } else if ("3".equals(str)) { + str = "星期二"; + } else if ("4".equals(str)) { + str = "星期三"; + } else if ("5".equals(str)) { + str = "星期四"; + } else if ("6".equals(str)) { + str = "星期五"; + } else if ("7".equals(str)) { + str = "星期六"; + } + return str; + } + + /** + * 两个时间之间的天数 + * + * @param date1 + * @param date2 + * @return + */ + public static long getDays(String date1, String date2) { + if (date1 == null || date1.equals("")) + return 0; + if (date2 == null || date2.equals("")) + return 0; + // 转换为标准时间 + SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd"); + Date date = null; + Date mydate = null; + try { + date = myFormatter.parse(date1); + mydate = myFormatter.parse(date2); + } catch (Exception e) { + } + long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); + return day; + } + + /** + * 形成如下的日历 , 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间 + * 此函数返回该日历第一行星期日所在的日期 + * + * @param sdate + * @return + */ + public static String getNowMonth(String sdate) { + // 取该时间所在月的一号 + sdate = sdate.substring(0, 8) + "01"; + + // 得到这个月的1号是星期几 + Date date = VeDate.strToDate(sdate); + Calendar c = Calendar.getInstance(); + c.setTime(date); + int u = c.get(Calendar.DAY_OF_WEEK); + String newday = VeDate.getNextDay(sdate, (1 - u) + ""); + return newday; + } + + /** + * 取得数据库主键 生成格式为yyyymmddhhmmss+k位随机数 + * + * @param k 表示是取几位随机数,可以自己定 + */ + public static String getNo(int k) { + + return getUserDate("yyyyMMddhhmmss") + getRandom(k); + } + + + /** + * 取得 transid 生成格式为 appid + YYYYMMDDHHMMSS +k位随机数 + * + * @param k 表示是取几位随机数,可以自己定 + */ + public static String getTransid(String appid, int k) { + String YYYYMMDDHHMMSS = "20211126123030"; + String rdm = getRandom(k); + System.out.println(appid); + System.out.println(YYYYMMDDHHMMSS); + System.out.println(getRandom(k)); + return appid + YYYYMMDDHHMMSS + rdm; + } + + + /** + * 返回一个随机数 + * + * @param i + * @return + */ + public static String getRandom(int i) { + Random jjj = new Random(); + // int suiJiShu = jjj.nextInt(9); + if (i == 0) + return ""; + String jj = ""; + for (int k = 0; k < i; k++) { + jj = jj + jjj.nextInt(9); + } + return jj; + } + + /** + * @param + */ + public static boolean RightDate(String date) { + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + ; + if (date == null) + return false; + if (date.length() > 10) { + sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + } else { + sdf = new SimpleDateFormat("yyyy-MM-dd"); + } + try { + sdf.parse(date); + } catch (ParseException pe) { + return false; + } + return true; + } + + + /** + * 时间前推或后推分钟,其中SS表示秒. + */ + public static String getSTime(String sj1, String SS) { + SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss"); + String mydate1 = ""; + try { + Date date1 = format.parse(sj1); + long Time = (date1.getTime() / 1000) + Integer.parseInt(SS); + date1.setTime(Time * 1000); + mydate1 = format.format(date1); + } catch (Exception e) { + } + return mydate1; + } + + /** + * 时间比较 + * + * @param date_1 + * @param date_standard 比较标准 + * @return + */ + public static boolean TimeComparison(String date_1, String date_standard) { + boolean bool = false; + SimpleDateFormat myFormatter = new SimpleDateFormat("HH:mm:ss"); + try { + Date d1 = myFormatter.parse(date_1); + Date d2 = myFormatter.parse(date_standard); + bool = d1.compareTo(d2) >= 0 ? true : false; + } catch (Exception e) { + } + return bool; + } + + + /** + * 日期比较 + * + * @param date_1 + * @param date_standard 比较标准 + * @return + */ + public static boolean TimeComparison_yyyy_MM_dd(String date_1, String date_standard) { + boolean bool = false; + SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd"); + try { + Date d1 = myFormatter.parse(date_1); + Date d2 = myFormatter.parse(date_standard); + bool = d1.compareTo(d2) > 0 ? true : false; + } catch (Exception e) { + } + return bool; + } + + + /** + * 获取某月的最后一天 + * + * @throws + * @Title:getLastDayOfMonth + * @Description: + * @param:@param year + * @param:@param month + * @param:@return + * @return:String + */ + public static String getLastDayOfMonth(int year, int month) { + Calendar cal = Calendar.getInstance(); + //设置年份 + cal.set(Calendar.YEAR, year); + //设置月份 + cal.set(Calendar.MONTH, month - 1); + //获取某月最大天数 + int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); + //设置日历中月份的最大天数 + cal.set(Calendar.DAY_OF_MONTH, lastDay); + //格式化日期 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String lastDayOfMonth = sdf.format(cal.getTime()); + + return lastDayOfMonth; + } + + /** + * 获取指定日期当月的第一天 + * + * @param dateStr + * @param format + * @return + */ + public static String getFirstDayOfGivenMonth(String dateStr, String format) { + SimpleDateFormat sdf = new SimpleDateFormat(format); + try { + Date date = sdf.parse(dateStr); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.DAY_OF_MONTH, 1); + calendar.add(Calendar.MONTH, 0); + return sdf.format(calendar.getTime()); + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } + + /** + * 获取指定日期下个月的第一天 + * + * @param dateStr + * @param format + * @return + */ + public static String getFirstDayOfNextMonth(String dateStr, String format) { + SimpleDateFormat sdf = new SimpleDateFormat(format); + try { + Date date = sdf.parse(dateStr); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.DAY_OF_MONTH, 1); + calendar.add(Calendar.MONTH, 1); + return sdf.format(calendar.getTime()); + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 获取startDate日期后month月的日期 + * + * @param yyyy_MM_dd_HH_mm_ss 开始日期 yyyy-MM-dd HH:mm:ss + * @param month 几个月后 + * @return + */ + public static String getMonthDate(String yyyy_MM_dd_HH_mm_ss, int month) throws ParseException { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date1 = formatter.parse(yyyy_MM_dd_HH_mm_ss); + LocalDateTime localDateTime = date1.toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDateTime().plusMonths(month); + Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); + + String dateString = formatter.format(date); + return dateString; + } + + + /** + * 获取 多少秒后的时间 + * + * @param yyyy_MM_dd_HH_mm_ss + * @param second + * @return + * @throws ParseException + */ + public static String getNextSecond(String yyyy_MM_dd_HH_mm_ss, int second) throws ParseException { + LocalDateTime parse = LocalDateTime.parse(yyyy_MM_dd_HH_mm_ss, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + LocalDateTime plusSeconds = parse.plusSeconds(second);// X 秒后 + //System.out.println(plusSeconds); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + Date date = Date.from(plusSeconds.atZone(ZoneId.systemDefault()).toInstant()); + String dateString = formatter.format(date); + return dateString; + } + + + /** + * @param datestr ⽇期字符串 + * @param day 相对天数,为正数表⽰之后,为负数表⽰之前 + * @return 指定⽇期字符串n天之前或者之后的⽇期 + */ + public static String getBeforeAfterDate(String datestr, int day) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Date olddate = null; + try { + df.setLenient(false); + olddate = new Date(df.parse(datestr).getTime()); + } catch (ParseException e) { + throw new RuntimeException("⽇期转换错误"); + } + Calendar cal = new GregorianCalendar(); + cal.setTime(olddate); + int Year = cal.get(Calendar.YEAR); + int Month = cal.get(Calendar.MONTH); + int Day = cal.get(Calendar.DAY_OF_MONTH); + int NewDay = Day + day; + cal.set(Calendar.YEAR, Year); + cal.set(Calendar.MONTH, Month); + cal.set(Calendar.DAY_OF_MONTH, NewDay); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String lastDayOfMonth = sdf.format(cal.getTime()); + return lastDayOfMonth; + } + + + + + + + + + + + + + + + + + public static void main(String[] args) throws Exception { + VeDate v=new VeDate(); + + + System.out.println(v.getBeforeAfterDate("2021-11-21",180)); +/* + System.out.println(v.GetHH_MM_SS("2006-11-03 12:22:10"));*/ + /* String str[]=getYyyyAndMm(); + System.out.println(str[0]+str[1]+str[2]);*/ + // System.out.println(TimeComparison("08:30:00","08:30:01")); +/* String yyyy_MM_dd= getFirstDayOfNextMonth("2021-04-30","yyyy-MM-dd"); + System.out.println(yyyy_MM_dd); + + System.out.println(TimeComparison_yyyy_MM_dd("2021-04-30",yyyy_MM_dd)); + System.out.println(TimeComparison_yyyy_MM_dd("2021-05-31",yyyy_MM_dd));*/ + + System.out.println(getStringDateShort().substring(0,7)); + /*System.out.println(getFirstDayOfGivenMonth(getMonthDate(getStringDateSSS(),1),"yyyy-MM-dd"));*/ + + //System.out.println(getNo(4)); + + String package_id = "YZ202106230408082666"; + package_id = package_id.substring(package_id.length()-4,package_id.length()); + System.out.println(package_id); + + //System.out.println(getStringDateShort());// new Date()为获取当前系统时间 + + //System.out.println(getEndDateOfMonth("202102")); + //System.out.println(getEndDateOfMonth("202102")); + //System.out.println(getNowDateShortNuber()); + + //String yyyy_MM_dd_HH_mm_ss = VeDate.getStringDate(); + //System.out.println(yyyy_MM_dd_HH_mm_ss); + //System.out.println(VeDate.getNextDay(yyyy_MM_dd_HH_mm_ss.split(" ")[0],"7")); + //System.out.println(getEndDateOfMonth_yyyy_MM_DD(getStringDateShort())); + //System.out.println(Integer.parseInt(getHour())); + System.out.println(getNextSecond("2021-08-31 11:02:51",1)); + + System.out.println(dateToStrLong(strToDate("2019-6-12"))); + //System.out.println(getTwoHour("18:41:00","16:41:00")); + // System.out.println(getLastDayOfMonth(2019,4).split("-")[2]); + //System.out.println(v.GetHH_MM_SS(); + //System.out.print(Integer.valueOf(getTwoDay("2006-11-03 12:22:10", "2006-11-02 11:22:09"))); + } +} \ No newline at end of file diff --git a/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/XmlUtil.java b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/XmlUtil.java new file mode 100644 index 0000000..bb886b1 --- /dev/null +++ b/yunze-apiCommon/src/main/java/com/yunze/apiCommon/utils/XmlUtil.java @@ -0,0 +1,65 @@ +package com.yunze.apiCommon.utils; + +import org.dom4j.Attribute; +import org.dom4j.Document; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; +import org.xml.sax.InputSource; + +import java.io.StringReader; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * + * @author shenpei + * + */ +public class XmlUtil { + + static Map xmlMap = new HashMap(); + + /** + * xml字符串转换成Map 获取标签内属性值和text值 + * + * @param xml + * @return + * @throws Exception + */ + public static Map xmlToMap(String xml) throws Exception { + StringReader reader = new StringReader(xml); + InputSource source = new InputSource(reader); + SAXReader sax = new SAXReader(); // 创建一个SAXReader对象 + Document document = sax.read(source); // 获取document对象,如果文档无节点,则会抛出Exception提前结束 + Element root = document.getRootElement(); // 获取根节点 + Map map = XmlUtil.getNodes(root); // 从根节点开始遍历所有节点 + return map; + } + + /** + * 从指定节点开始,递归遍历所有子节点 + * + * @author chenleixing + * @return + */ + @SuppressWarnings("unchecked") + public static Map getNodes(Element node) { + xmlMap.put(node.getName().toLowerCase(), node.getTextTrim()); + List listAttr = node.attributes(); // 当前节点的所有属性的list + for (Attribute attr : listAttr) { // 遍历当前节点的所有属性 + String name = attr.getName(); // 属性名称 + String value = attr.getValue(); // 属性的值 + xmlMap.put(name, value.trim()); + } + +// 递归遍历当前节点所有的子节点 + List listElement = node.elements(); // 所有一级子节点的list + for (Element e : listElement) { // 遍历所有一级子节点 + XmlUtil.getNodes(e); // 递归 + } + return xmlMap; + + } + +} diff --git a/yunze-apiCommon/src/main/resources/mapper/yunze/YzCardRouteMapper.xml b/yunze-apiCommon/src/main/resources/mapper/yunze/YzCardRouteMapper.xml new file mode 100644 index 0000000..e639029 --- /dev/null +++ b/yunze-apiCommon/src/main/resources/mapper/yunze/YzCardRouteMapper.xml @@ -0,0 +1,849 @@ + + + + + + + + + AND cd_code LIKE CONCAT('%',#{value},'%') + + + AND cd_name LIKE CONCAT('%',#{value},'%') + + + AND cd_alias LIKE CONCAT('%',#{value},'%') + + + AND cd_id = #{value} + + + + + AND cd_agent_id IN + + #{agent_id} + + + + AND cd_operator_type IN + + #{cd_operator_type} + + + + + AND cd_lunxun IN + + #{cd_lunxun} + + + + AND cd_status != '3' + + + AND cd_status IN + + #{cd_status} + + + + + + + + + + INSERT INTO + yz_card_route + ( + cd_id, + cd_code, + cd_name, + cd_username, + cd_pwd, + cd_key, + cd_lunxun, + cd_operator_type, + createTime, + cd_agent_id, + cd_status, + cd_alias, + cd_algorithm, + cd_useraccount, + cd_password, + cd_addressurl, + cd_state, + cd_Interface + )value ( + #{cd_id}, + #{cd_code}, + #{cd_name}, + #{cd_username}, + #{cd_pwd}, + #{cd_key}, + #{cd_lunxun}, + #{cd_operator_type}, + now(), + #{cd_agent_id}, + #{cd_status}, + #{cd_alias}, + #{cd_algorithm}, + #{cd_useraccount}, + #{cd_password}, + #{cd_addressurl}, + #{cd_state}, + #{cd_Interface} + ) + + + + + + + + DELETE FROM yz_ruepke cd_id =#{channel_id} + + + + + + + + + + + + + + DELETE FROM yz_card_route + + cd_id IN + + #{cd_id_arrs} + + + AND cd_agent_id = #{cd_agent_id} + + + + + + UPDATE + yz_card_route + + cd_code = #{cd_code}, + cd_name = #{cd_name}, + cd_username = #{cd_username}, + cd_pwd = #{cd_pwd}, + cd_key = #{cd_key}, + + cd_url = #{cd_url}, + + cd_operator_type = #{cd_operator_type}, + cd_lunxun = #{cd_lunxun}, + updateTime = now(), + cd_status = #{cd_status}, + cd_alias = #{cd_alias}, + cd_algorithm = #{cd_algorithm}, + cd_useraccount =#{cd_useraccount}, + cd_password =#{cd_password}, + cd_addressurl =#{cd_addressurl}, + cd_state =#{cd_state}, + cd_Interface =#{cd_Interface} + + + cd_id = #{cd_id} + + + + + UPDATE + yz_card_route + + cd_status = 3, + cd_delete = now() + + + cd_id = #{cd_id} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE + yz_card_route + + cd_count =#{count} + + + cd_id =#{channel_id} + + + + + + + + + + + + + + + UPDATE + yz_card_route + + cd_key = #{cd_key}, + updateTime = now() + + + cd_id = #{cd_id} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-apiCommon/src/main/resources/mapper/yunze/YzIpWhitelistMapper.xml b/yunze-apiCommon/src/main/resources/mapper/yunze/YzIpWhitelistMapper.xml new file mode 100644 index 0000000..ae272b3 --- /dev/null +++ b/yunze-apiCommon/src/main/resources/mapper/yunze/YzIpWhitelistMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-apiCommon/yunze-apiCommon.iml b/yunze-apiCommon/yunze-apiCommon.iml new file mode 100644 index 0000000..83811ed --- /dev/null +++ b/yunze-apiCommon/yunze-apiCommon.iml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yunze-business/pom.xml b/yunze-business/pom.xml index ed270bc..2702fee 100644 --- a/yunze-business/pom.xml +++ b/yunze-business/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 @@ -55,7 +55,11 @@ compile - + + com.cu + api + 2 + @@ -77,7 +81,8 @@ com.yunze yunze-apiCommon - 0.8.0 + 1.0.0 + compile diff --git a/yunze-business/src/main/java/com/yunze/cn/config/YzWxConfigInit.java b/yunze-business/src/main/java/com/yunze/cn/config/YzWxConfigInit.java index 8fa8e10..f869442 100644 --- a/yunze-business/src/main/java/com/yunze/cn/config/YzWxConfigInit.java +++ b/yunze-business/src/main/java/com/yunze/cn/config/YzWxConfigInit.java @@ -26,7 +26,7 @@ public class YzWxConfigInit { * auther: * return: * 描述: 获取所有的公众号 - * 时间: 2020/12/14 9:40 + * 时间: 2021/12/14 9:40 */ public List getConfigs(){ diff --git a/yunze-business/src/main/java/com/yunze/cn/mapper/YzCardMapper.java b/yunze-business/src/main/java/com/yunze/cn/mapper/YzCardMapper.java index fa4f4f3..5afd954 100644 --- a/yunze-business/src/main/java/com/yunze/cn/mapper/YzCardMapper.java +++ b/yunze-business/src/main/java/com/yunze/cn/mapper/YzCardMapper.java @@ -45,4 +45,11 @@ public interface YzCardMapper */ public int updUsed(Map map); + + /** + * 修改卡状态 + * @param map + * @return + */ + public int updStatusId(Map map); } diff --git a/yunze-business/src/main/java/com/yunze/cn/mapper/YzOrderMapper.java b/yunze-business/src/main/java/com/yunze/cn/mapper/YzOrderMapper.java index c813c42..babaa39 100644 --- a/yunze-business/src/main/java/com/yunze/cn/mapper/YzOrderMapper.java +++ b/yunze-business/src/main/java/com/yunze/cn/mapper/YzOrderMapper.java @@ -115,4 +115,13 @@ public interface YzOrderMapper + + + /** + * 重置 加包执行状态 【未找到加包】的 已经执行过的 + * @param map + * @return + */ + public int resetAddPackage(Map map); + } diff --git a/yunze-business/src/main/java/com/yunze/cn/util/CardFlowSyn.java b/yunze-business/src/main/java/com/yunze/cn/util/CardFlowSyn.java index 78368ef..4fa890a 100644 --- a/yunze-business/src/main/java/com/yunze/cn/util/CardFlowSyn.java +++ b/yunze-business/src/main/java/com/yunze/cn/util/CardFlowSyn.java @@ -127,8 +127,8 @@ public class CardFlowSyn { String []YyyyAndMm = VeDate.getYyyyAndMm(); String nowMonthSta = YyyyAndMm[0]+"-"+YyyyAndMm[1]+"-01"; String nowMonthEnd = VeDate.getLastDayOfMonth(Integer.parseInt(YyyyAndMm[0]),Integer.parseInt(YyyyAndMm[1])); - findMap.put("nowMonthSta",nowMonthSta); - findMap.put("nowMonthEnd",nowMonthEnd); + findMap.put("nowMonthSta",nowMonthSta+" 00:00:00"); + findMap.put("nowMonthEnd",nowMonthEnd+" 23:59:59"); //0.修改 时间到期资费计划 yzCardFlowMapper.updStatus(findMap); //1.查询过期用量 diff --git a/yunze-business/src/main/java/com/yunze/cn/util/RedisUtil_Yz.java b/yunze-business/src/main/java/com/yunze/cn/util/RedisUtil_Yz.java index c0c2860..db281ca 100644 --- a/yunze-business/src/main/java/com/yunze/cn/util/RedisUtil_Yz.java +++ b/yunze-business/src/main/java/com/yunze/cn/util/RedisUtil_Yz.java @@ -20,7 +20,7 @@ public class RedisUtil_Yz { * auther: * return: * 描述: 删除指定的key - * 时间: 2020/12/30 15:54 + * 时间: 2021/12/30 15:54 */ public boolean delKey(String key){ return redisTemplate.delete(key); @@ -30,7 +30,7 @@ public class RedisUtil_Yz { * auther: * return: * 描述: 设置key - * 时间: 2020/12/25 10:02 + * 时间: 2021/12/25 10:02 */ public void setKey(String key,Object value){ redisTemplate.opsForValue().set(key, value); @@ -40,7 +40,7 @@ public class RedisUtil_Yz { * auther: * return: * 描述: 查询当前key是否已经失效 true:失效 - * 时间: 2020/12/18 15:55 + * 时间: 2021/12/18 15:55 */ public boolean ttlKey(String key){ return isExpire(key); @@ -50,7 +50,7 @@ public class RedisUtil_Yz { * auther: * return: * 描述: 查询key是否过期 - * 时间: 2020/12/18 15:59 + * 时间: 2021/12/18 15:59 */ public boolean isExpire(String key){ long t=redisTemplate.opsForValue().getOperations() @@ -67,7 +67,7 @@ public class RedisUtil_Yz { * auther: * return: * 描述: 查询key是否存在 - * 时间: 2020/12/18 15:58 + * 时间: 2021/12/18 15:58 */ public boolean existsKey(String key){ boolean f=redisTemplate.hasKey(key); @@ -83,7 +83,7 @@ public class RedisUtil_Yz { * auther: * return: 添加过期时间 秒 * 描述: - * 时间: 2020/11/23 13:42 + * 时间: 2021/11/23 13:42 */ public void setExpire(String key,Object value,long time) { @@ -93,7 +93,7 @@ public class RedisUtil_Yz { * auther: * return: * 描述: 获取过期时间 - * 时间: 2020/11/23 13:43 + * 时间: 2021/11/23 13:43 */ public long getExpire(String key) { return redisTemplate.opsForValue().getOperations() diff --git a/yunze-business/src/main/java/com/yunze/cn/util/ResponseJson.java b/yunze-business/src/main/java/com/yunze/cn/util/ResponseJson.java index bfe3acc..2cd8c93 100644 --- a/yunze-business/src/main/java/com/yunze/cn/util/ResponseJson.java +++ b/yunze-business/src/main/java/com/yunze/cn/util/ResponseJson.java @@ -10,7 +10,7 @@ import java.util.Map; * @title: ResponseJson * @projectName yunze * @description: TODO - * @date 2020/10/23 00239:30 + * @date 2021/10/23 00239:30 */ public class ResponseJson extends HashMap { @@ -20,7 +20,7 @@ public class ResponseJson extends HashMap { /** * @Author * @Description:成功且带数据 - * @date 2020/10/23 0023 9:55 + * @date 2021/10/23 0023 9:55 * @Param * @return **/ @@ -35,7 +35,7 @@ public class ResponseJson extends HashMap { /** * @Author * @Description:成功不带数据 - * @date 2020/10/23 0023 9:58 + * @date 2021/10/23 0023 9:58 * @Param * @return **/ @@ -46,7 +46,7 @@ public class ResponseJson extends HashMap { /** * @Author * @Description: 失败 - * @date 2020/10/23 0023 10:00 + * @date 2021/10/23 0023 10:00 * @Param * @return **/ diff --git a/yunze-business/src/main/java/com/yunze/cn/util/ResponseJsonMap.java b/yunze-business/src/main/java/com/yunze/cn/util/ResponseJsonMap.java index e7b5202..be45a4e 100644 --- a/yunze-business/src/main/java/com/yunze/cn/util/ResponseJsonMap.java +++ b/yunze-business/src/main/java/com/yunze/cn/util/ResponseJsonMap.java @@ -10,7 +10,7 @@ import java.util.Map; * @title: ResponseJson * @projectName yunze * @description: TODO - * @date 2020/10/23 00239:30 + * @date 2021/10/23 00239:30 */ public class ResponseJsonMap extends HashMap { @@ -20,7 +20,7 @@ public class ResponseJsonMap extends HashMap { /** * @Author * @Description:成功且带数据 - * @date 2020/10/23 0023 9:55 + * @date 2021/10/23 0023 9:55 * @Param * @return **/ @@ -35,7 +35,7 @@ public class ResponseJsonMap extends HashMap { /** * @Author * @Description:成功不带数据 - * @date 2020/10/23 0023 9:58 + * @date 2021/10/23 0023 9:58 * @Param * @return **/ @@ -46,7 +46,7 @@ public class ResponseJsonMap extends HashMap { /** * @Author * @Description: 失败 - * @date 2020/10/23 0023 10:00 + * @date 2021/10/23 0023 10:00 * @Param * @return **/ diff --git a/yunze-business/src/main/java/com/yunze/cn/util/Result.java b/yunze-business/src/main/java/com/yunze/cn/util/Result.java index b1048d6..cf7b0e7 100644 --- a/yunze-business/src/main/java/com/yunze/cn/util/Result.java +++ b/yunze-business/src/main/java/com/yunze/cn/util/Result.java @@ -6,7 +6,7 @@ package com.yunze.cn.util; * @title: Response * @projectName yunze * @description: TODO - * @date 2020/10/23 00239:54 + * @date 2021/10/23 00239:54 */ public class Result { diff --git a/yunze-business/src/main/java/com/yunze/cn/util/WxGetShowStatIdArr.java b/yunze-business/src/main/java/com/yunze/cn/util/WxGetShowStatIdArr.java new file mode 100644 index 0000000..ce06e52 --- /dev/null +++ b/yunze-business/src/main/java/com/yunze/cn/util/WxGetShowStatIdArr.java @@ -0,0 +1,36 @@ +package com.yunze.cn.util; + +import org.springframework.stereotype.Component; + +@Component +public class WxGetShowStatIdArr { + + + public String GetShowStatId (String status_id){ + //卡状态描述 转换 卡状态 + String status_ShowId = "8"; + if(status_id.equals("13") || status_id.equals("14") || status_id.equals("22") || status_id.equals("19")){ + status_ShowId = "1"; + }if(status_id.equals("17") ){ + status_ShowId = "2"; + }if(status_id.equals("9") || status_id.equals("7") || status_id.equals("15")){ + status_ShowId = "3"; + }if(status_id.equals("1")){ + status_ShowId = "4"; + }if(status_id.equals("3") || status_id.equals("2") || status_id.equals("10") || status_id.equals("11") || + status_id.equals("20")|| status_id.equals("30")|| status_id.equals("31") || status_id.equals("32") || + status_id.equals("21")|| status_id.equals("27")|| status_id.equals("33") || status_id.equals("12")){ + status_ShowId = "5"; + }if(status_id.equals("4")){ + status_ShowId = "6"; + }if(status_id.equals("16")|| status_id.equals("23")|| status_id.equals("24") || status_id.equals("5") || + status_id.equals("6") || status_id.equals("28")|| status_id.equals("26") || status_id.equals("18")|| + status_id.equals("25")){ + status_ShowId = "7"; + }if(status_id.equals("8") || status_id.equals("29")){ + status_ShowId = "8"; + } + return status_ShowId; + } + +} diff --git a/yunze-business/src/main/resources/mapper/quartz/yunze/YzCardMapper.xml b/yunze-business/src/main/resources/mapper/quartz/yunze/YzCardMapper.xml index 0a226b0..4526371 100644 --- a/yunze-business/src/main/resources/mapper/quartz/yunze/YzCardMapper.xml +++ b/yunze-business/src/main/resources/mapper/quartz/yunze/YzCardMapper.xml @@ -70,4 +70,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + update yz_card_info + + status_id = #{status_id}, + status_ShowId = #{status_ShowId}, + syn_Time =now() + + + iccid =#{iccid} + + + \ No newline at end of file diff --git a/yunze-business/src/main/resources/mapper/quartz/yunze/YzOrderMapper.xml b/yunze-business/src/main/resources/mapper/quartz/yunze/YzOrderMapper.xml index b55c53b..6f715bc 100644 --- a/yunze-business/src/main/resources/mapper/quartz/yunze/YzOrderMapper.xml +++ b/yunze-business/src/main/resources/mapper/quartz/yunze/YzOrderMapper.xml @@ -217,10 +217,13 @@ update yz_card_info - activate_date = #{activate_date} - - ,open_date = #{open_date} + + activate_date = #{activate_date}, + + open_date = #{open_date}, + + syn_Time =now() iccid =#{iccid} @@ -359,6 +362,18 @@ + + + update + yz_order + + add_package = 0 + + + info LIKE '未找到加%' and add_package = '1' + + + \ No newline at end of file diff --git a/yunze-business/src/main/resources/mapper/quartz/yunze/YzPassagewayPollingMapper.xml b/yunze-business/src/main/resources/mapper/quartz/yunze/YzPassagewayPollingMapper.xml index 4e3b5e0..0c5f824 100644 --- a/yunze-business/src/main/resources/mapper/quartz/yunze/YzPassagewayPollingMapper.xml +++ b/yunze-business/src/main/resources/mapper/quartz/yunze/YzPassagewayPollingMapper.xml @@ -47,7 +47,13 @@ cd_current, polling_id, syn_date, - polling_type + polling_type, + sms_host, + sms_port, + sms_source_addr, + sms_shared_secret, + sms_code, + sms_src_TerminalId FROM yz_passageway_polling diff --git a/yunze-business/yunze-business.iml b/yunze-business/yunze-business.iml index b8e0097..c7fa353 100644 --- a/yunze-business/yunze-business.iml +++ b/yunze-business/yunze-business.iml @@ -51,6 +51,7 @@ + @@ -69,8 +70,7 @@ - - + diff --git a/yunze-common/pom.xml b/yunze-common/pom.xml index 1a6069d..3f9b683 100644 --- a/yunze-common/pom.xml +++ b/yunze-common/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 @@ -17,6 +17,13 @@ + + + com.aliyun + aliyun-java-sdk-core + 4.0.3 + + org.springframework @@ -179,10 +186,6 @@ - - org.projectlombok - lombok - @@ -193,7 +196,8 @@ com.yunze yunze-apiCommon - 0.8.0 + 1.0.0 + compile @@ -210,10 +214,35 @@ 2.5.1 - + + + yunze-common + + + src/main/resources + + **/*.properties + **/*.yml + **/*.xml + **/*.tld + + false + + + src/main/java + + **/*.properties + **/*.yml + **/*.xml + **/*.tld + + false + + + diff --git a/yunze-common/src/main/java/com/yunze/common/constant/ALiYunSendMessage.java b/yunze-common/src/main/java/com/yunze/common/constant/ALiYunSendMessage.java new file mode 100644 index 0000000..c447001 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/constant/ALiYunSendMessage.java @@ -0,0 +1,104 @@ +package com.yunze.common.constant; + +import com.alibaba.fastjson.JSONObject; +import com.aliyuncs.CommonRequest; +import com.aliyuncs.CommonResponse; +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.IAcsClient; +import com.aliyuncs.exceptions.ClientException; +import com.aliyuncs.exceptions.ServerException; +import com.aliyuncs.http.MethodType; +import com.aliyuncs.profile.DefaultProfile; +import com.yunze.common.core.redis.FindSysConfig; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * 阿里云 短信发送配置 + * */ +@Component +public class ALiYunSendMessage { + + + private String accessKeyId = "";//账号 阿里云短信服务账号 + private String secret = "";//密码 阿里云短信服务密码 + private String SignName = "";//签名 + + + @Resource + private FindSysConfig findSysConfig; + + public void initConfig(){ + String accessKeyId_key = "aliyun.sdenMessage.accessKeyId"; + String secret_key = "aliyun.sdenMessage.secret"; + String SignName_key = "aliyun.sdenMessage.SignName"; + accessKeyId = findSysConfig.getSysConfig(accessKeyId_key,1); + secret = findSysConfig.getSysConfig(secret_key,1); + SignName = findSysConfig.getSysConfig(SignName_key,1); + + } + + + /** + * + * @param phoneNum 手机号 + * @param templateCode 模板CODE + * @param code 发送内容主题 + * @return + */ + public boolean send(String phoneNum, String templateCode, Map code) { + initConfig(); + + + // 链接阿里云 这个不需要动 cn-hangzhou accessKeyId : 账号 secret: 密码 + DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou",accessKeyId,secret); + IAcsClient client = new DefaultAcsClient(profile); + + // 构建请求 + CommonRequest request = new CommonRequest(); + + request.setMethod(MethodType.POST); + request.setDomain("dysmsapi.aliyuncs.com");//官方说不要动 + request.setVersion("2017-05-25");//官方说不要动 + request.setAction("SendSms");//事件名称 + + // 自定义的参数 (手机号,验证码,签名,模板!) + request.putQueryParameter("PhoneNumbers",phoneNum);//手机号 + request.putQueryParameter("SignName",SignName);//签名 + request.putQueryParameter("TemplateCode",templateCode);//模板CODE + + // 构建一个短信的验证码 + request.putQueryParameter("TemplateParam", JSONObject.toJSONString(code)); + + try { + CommonResponse response = client.getCommonResponse(request); + System.out.println(response.getData()); + return response.getHttpResponse().isSuccess();//成功 + } catch (ServerException e) { + e.printStackTrace(); + } catch (ClientException e) { + e.printStackTrace(); + } + return false; + } +} + + + + + + + + + + + + + + + + + + diff --git a/yunze-common/src/main/java/com/yunze/common/core/redis/FindSysConfig.java b/yunze-common/src/main/java/com/yunze/common/core/redis/FindSysConfig.java new file mode 100644 index 0000000..697e8e8 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/core/redis/FindSysConfig.java @@ -0,0 +1,47 @@ +package com.yunze.common.core.redis; + +import com.yunze.common.mapper.yunze.commodity.YzWxByProductAgentMapper; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * @Auther: zhang feng + * @Date: 2022/05/30/10:41 + * @Description: + */ +@Component +public class FindSysConfig { + + @Resource + private YzWxByProductAgentMapper yzWxByProductAgentMapper; + @Resource + private RedisCache redisCache; + + + /** + * 获取系统参数 + * @param key + * @param timeout + * @return + */ + public String getSysConfig(String key,int timeout){ + String value = ""; + Object openSelCardMax = redisCache.getCacheObject(key); + if(openSelCardMax!=null && openSelCardMax.toString().length()>0){ + value = openSelCardMax.toString(); + }else{ + Map fMap = new HashMap<>(); + fMap.put("config_key",key); + value = yzWxByProductAgentMapper.findConfig(fMap); + if(value!=null && value.length()>0){ + redisCache.setCacheObject(key,value,timeout, TimeUnit.HOURS);//1 小时 缓存 + } + } + return value; + } + +} diff --git a/yunze-common/src/main/java/com/yunze/common/exception/file/InvalidExtensionException.java b/yunze-common/src/main/java/com/yunze/common/exception/file/InvalidExtensionException.java index d1f5ee8..325b46b 100644 --- a/yunze-common/src/main/java/com/yunze/common/exception/file/InvalidExtensionException.java +++ b/yunze-common/src/main/java/com/yunze/common/exception/file/InvalidExtensionException.java @@ -1,8 +1,9 @@ package com.yunze.common.exception.file; -import java.util.Arrays; import org.apache.commons.fileupload.FileUploadException; +import java.util.Arrays; + /** * 文件上传 误异常类 * diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzAgentPackageMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzAgentPackageMapper.java index 106b46c..ec1cc75 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzAgentPackageMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzAgentPackageMapper.java @@ -83,4 +83,9 @@ public interface YzAgentPackageMapper { * 修改 代理资费组 卡总数 */ public Integer upCountA(Map map); + + /** + * 导出 + */ + public List> exportallorders(Map map); } diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzAgentPacketMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzAgentPacketMapper.java index ddbe871..8b515d2 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzAgentPacketMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzAgentPacketMapper.java @@ -111,4 +111,40 @@ public interface YzAgentPacketMapper { */ public List> FindList(Map map); + + /** + * 查询 续费充值的资费计划信息 + * @param map + * @return + */ + public List> findToBR(Map map); + + /** + * 查询资费计划单表 + * @param map + * @return + */ + public List> findPacketSingleTable(Map map); + + /** + * 查询 单条资费计划所有字段 + * @param map + * @return + */ + public Map findOnePacket(Map map); + + + /** + * 修改 卡总数 + * @param map + * @return + */ + public int updCardCount(Map map); + + /** + * 导出资费计划 + * @param map + * @return + */ + public List> exportPacket(Map map); } diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardBriefMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardBriefMapper.java new file mode 100644 index 0000000..2853247 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardBriefMapper.java @@ -0,0 +1,32 @@ +package com.yunze.common.mapper.yunze; + +import java.util.List; +import java.util.Map; + +public interface YzCardBriefMapper { + + /** + * 批量新增‘ + * @param map + */ + public Integer batchCard(Map map); + + /** + * 批量更新卡信息 + * @param map + * @return + */ + public Integer batchUpd(Map map); + + /** + * 查询 yz_card_brief 没有主表 iccid 的 + * @return + * */ + public List selList(Map map); + + /** + * 查询 yz_card_brief 没有主表 iccid 的 + * @return + * */ + public Integer selMapCount(); +} diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardFlowMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardFlowMapper.java index baa8f64..97742e6 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardFlowMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardFlowMapper.java @@ -230,4 +230,15 @@ public interface YzCardFlowMapper * @return */ public Map findInvalidationSum(Map map); + + /**备份 Flos 表*/ + public List> backupsFl(Map map); + + /** + * 批量删除对应order 表的 订单号 + * */ + public boolean delOrdArr(Map map); + + + public List> consumption(); } diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardInfoChangeMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardInfoChangeMapper.java index 3ac5ad5..b249585 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardInfoChangeMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardInfoChangeMapper.java @@ -45,4 +45,13 @@ public interface YzCardInfoChangeMapper { */ public int addinfo(Map map); + + /** + * 删除 卡信息变更记录 + * @param map + * @return + */ + public int del(Map map); + + } diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardMapper.java index e2462ec..0b9d27d 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardMapper.java @@ -247,7 +247,7 @@ public interface YzCardMapper public int addInfoRemaining(Map map); /** - * 连接管理 设置时 备份 卡所属关联 + * 物联卡管理 设置时 备份 卡所属关联 * @param map * @return */ @@ -287,12 +287,18 @@ public interface YzCardMapper /** - * 通道下 所属卡 设置 未订购资费断网 的卡 + * 通道下 所属卡 设置 未订购资费停机 的卡 * @param map * @return */ public List> findChannelIdDisconnected(Map map); + /** + * 通道下 所属卡 设置 未订购资费断网 的卡 + * @param map + * @return + */ + public List> findChannelIdBreakNetwork(Map map); /** * 查询字典信息 @@ -532,6 +538,33 @@ public interface YzCardMapper public int updStatusShowId(Map map); + /** + * 单卡 修改 备注 分组 + */ + public int UpdateSingle(Map map); + + + /** + * 获取字典 + * @param map + * @return + */ + public List> selectDictDataByType(Map map); + + /** + * 查询iccid 是否有激活时间 + * @param map + * @return + * */ + public List> itemIccid(Map map); + + + /** + * 查询 卡号是否开启了短信服务且配置了短信发送号码 + * @param map + * @return + */ + public List findSmsArr(Map map); } diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardPackageMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardPackageMapper.java index 7f16860..7c0d4c4 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardPackageMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardPackageMapper.java @@ -94,4 +94,16 @@ public interface YzCardPackageMapper { * 选择资费组时加载出对应的通道 */ public List> channelName(Map map); + + /** + * 导出 + */ + public List> exportallorders(Map map); + + + /** + * 修改 用量总和 、已用流量 、剩余流量 、已用百分比 卡总数 代理 + * @param map + * */ + public Integer updAmountAgent(Map map); } diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardPacketMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardPacketMapper.java index 2653918..d08f59a 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardPacketMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzCardPacketMapper.java @@ -80,4 +80,72 @@ public interface YzCardPacketMapper { * @return */ public List> FindList(Map map); + + + /** + * 查询 续费充值的资费计划信息 + * @param map + * @return + */ + public List> findToBR(Map map); + + + /** + * 获取 指定资费计划ID 与 指定ICCID 下iccid 卡号 + * @param map + * @return + */ + public List> getPacketIdCard(Map map); + + /** + * 查询资费计划单表 + * @param map + * @return + */ + public List> findPacketSingleTable(Map map); + + + /** + * 查询 单条资费计划所有字段 + * @param map + * @return + */ + public Map findOnePacket(Map map); + + + /** + * 查询卡总数 + * @param map + * */ + public Integer selCount(Map map); + + /** + * 修改 用量总和 、已用流量 、剩余流量 、已用百分比 卡总数 总平台 + * @param map + * */ + //public int updAmount(Map map); + + + /** + * + * @param map + * @return + */ + public List> findPacketCount(Map map); + + + /** + * 修改 卡总数 + * @param map + * @return + */ + public int updCardCount(Map map); + + /** + * 导出资费计划 + * @param map + * @return + */ + public List> exportPacket(Map map); + } diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzExecutionTaskMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzExecutionTaskMapper.java index c0d756f..85ad9e2 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzExecutionTaskMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzExecutionTaskMapper.java @@ -56,4 +56,19 @@ public interface YzExecutionTaskMapper { public int upd(Map map); + /** + * 查询 需要删除的 执行任务数据- + * @param map + * @return + */ + List> findUrlArr(Map map); + + /** + * 按id删除 + * @param map + * @return + */ + public int delIdArr(Map map); + + } diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzOrderMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzOrderMapper.java index 6d3775b..c500ad5 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzOrderMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzOrderMapper.java @@ -137,5 +137,62 @@ public interface YzOrderMapper { */ public Map getOrderBriefly(Map map); + + /** + * 卡详情界面 获取 订单信息 + * @param map + * @return + */ + public List> getOrderCard(Map map); + + + /** + * 备份 order 表 + * */ + public List> backupsOr(Map map); + + /** + * 批量修改 order 表状态为 退款 + * */ + public boolean updState (Map map); + + /** + * 删除 订单号 + * */ + public boolean delFloArr(Map map); + + /* + * 批量执行加包 + * */ + public boolean updBatch(Map map); + + /** + * 批量 获取执行的加包订单 去生产任务 + * */ + public List> findAddPackageBatch(Map map); + + + /** + * 批-量 获取执行的加包订单 去生产任 不判断是否已加包 + * * */ + public List> findAddPackageNoAddPackage(Map map); + + + /** + * 重置 加包执行状态 【未找到加包】的 已经执行过的 + * @param map + * @return + */ + public int resetAddPackage(Map map); + + + /** + * 获取已经充值过的卡号 + * @param map + * @return + */ + public List findRecharged(Map map); + + } diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzSysLogsMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzSysLogsMapper.java index 5b1a659..9827fbc 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzSysLogsMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzSysLogsMapper.java @@ -41,6 +41,27 @@ public interface YzSysLogsMapper { public Map getById(Map map); + /** + * 删除指定日期之前的数据 + * @param map + * @return + */ + public int del(Map map); + + + /** + * 删除定时任务日志 + * @param map + * @return + */ + public int delJobLog(Map map); + + /** + * 删除 操作日志记录 + * @param map + * @return + */ + public int delOperLog(Map map); diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzUserMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzUserMapper.java index 04d73c3..d7fd748 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzUserMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/YzUserMapper.java @@ -101,4 +101,24 @@ public interface YzUserMapper { */ public Map findUser_name(Map map); + /** + * 通过手机号码查询用户账号和密码 + * @param map + * @return + */ + public Map user_Massage(Map map); + + + /** + * 直接修改预存 + * @param map + * @return + */ + public int setDepositAmount(Map map); + + + + + + } diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/backup/BackupMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/backup/BackupMapper.java deleted file mode 100644 index 42a26e2..0000000 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/backup/BackupMapper.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.yunze.common.mapper.yunze.backup; - -import java.util.List; -import java.util.Map; - -public interface BackupMapper { - public List> GenTableList(); - - public List> GenTableColumnList(); - - public List> QrtzBlobTriggersList(); - - public List> QrtzCalendarsList(); - - public List> QrtzCronTriggersList(); - - public List> QrtrootiredTriggersList(); - - public List> QrtzJobDetailsList(); - - public List> QrtzLocksList(); - - public List> QrtzPausedTriggerGrpsList(); - - public List> QrtzSchedulerStateList(); - - public List> QrtzSimpleTriggersList(); - - public List> QrtzSimpropTriggersList(); - - public List> QrtzTriggersList(); - - public List> SysConfigList(); - - public List> SysDeptList(); - - public List> SysDictDataList(); - - public List> SysDictTypeList(); - - public List> SysJobList(); - - public List> SysJobLogList(); - - public List> SysLogininforList(); - - public List> SysMenuList(); - - public List> SysNoticeList(); - - public List> SysOperLogList(); - - public List> SysPostList(); - - public List> SysRoleList(); - - public List> SysRoleDeptList(); - - public List> SysRoleMenuList(); - - public List> SysUserList(); - - public List> SysUserPostList(); - - public List> SysUserRoleList(); - - public List> YzAgentAccountList(); - - public List> YzAgentPackageList(); - - public List> YzAgentPacketList(); - - public List> YzCardFlowList(); - - public List> YzCardFlowHisList(); - - public List> YzCardInfoList(); - - public List> YzCardOperatingList(); - - public List> YzCardPackageList(); - - public List> YzCardPacketList(); - - public List> YzCardRouteList(); - - public List> YzExecutionTaskList(); - - public List> YzOrderList(); - - public List> YzPassagewayPollingList(); - - public List> YzWechatUserList(); - - public List> YzWxAutoreplyList(); - - public List> YzWxConfigList(); - - public List> YzWxMenuList(); - - - - -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzBulkBusinessDtailsMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzBulkBusinessDtailsMapper.java new file mode 100644 index 0000000..50b87e3 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzBulkBusinessDtailsMapper.java @@ -0,0 +1,49 @@ +package com.yunze.common.mapper.yunze.bulk; + +import java.util.List; +import java.util.Map; + +public interface YzBulkBusinessDtailsMapper { + + + public int add(Map map); + + public int update(Map map); + + public int updateArr(Map map); + + /** + *查询 + * @param map + * @return + */ + public List> selMap(Map map); + + /** + * 查询总数 + * @param map + * @return + */ + public Integer selMapCount(Map map); + + + /** + *查询 状态为 成功 + * @param map + * @return + */ + public List> successArr(Map map); + + /** + * 查询总数 + * @param map + * @return + */ + public Integer publicCount(Map map); + + /** + * 导出 + */ + public List> exportallorders(Map map); + +} diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzBulkBusinessMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzBulkBusinessMapper.java new file mode 100644 index 0000000..b82acd0 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzBulkBusinessMapper.java @@ -0,0 +1,37 @@ +package com.yunze.common.mapper.yunze.bulk; + +import java.util.List; +import java.util.Map; + +public interface YzBulkBusinessMapper { + + + public int add(Map map); + + public int update(Map map); + + /** + * 查询 + * + * @param map + * @return + */ + public List> selMap(Map map); + + /** + * 查询总数 + * + * @param map + * @return + */ + public Integer selMapCount(Map map); + + /** + * + * @param map + * @return + */ + public List findIdArr(Map map); + + +} diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzBusiCardSmsMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzBusiCardSmsMapper.java new file mode 100644 index 0000000..c5dcb5a --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzBusiCardSmsMapper.java @@ -0,0 +1,30 @@ +package com.yunze.common.mapper.yunze.bulk; + +import java.util.List; +import java.util.Map; + +public interface YzBusiCardSmsMapper { + + + public int add(Map map); + + + /** + * 查询 + * + * @param map + * @return + */ + public List> selMap(Map map); + + /** + * 查询总数 + * + * @param map + * @return + */ + public Integer selMapCount(Map map); + + + +} diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzSmSBulkBusinessDtailsMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzSmSBulkBusinessDtailsMapper.java new file mode 100644 index 0000000..b558d35 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzSmSBulkBusinessDtailsMapper.java @@ -0,0 +1,58 @@ +package com.yunze.common.mapper.yunze.bulk; + +import java.util.List; +import java.util.Map; + +public interface YzSmSBulkBusinessDtailsMapper { + + + public int add(Map map); + + public int update(Map map); + + public int updateArr(Map map); + + /** + *查询 + * @param map + * @return + */ + public List> selMap(Map map); + + /** + * 查询总数 + * @param map + * @return + */ + public Integer selMapCount(Map map); + + + /** + *查询 状态为 成功 + * @param map + * @return + */ + public List> successArr(Map map); + + /** + * 查询总数 + * @param map + * @return + */ + public Integer publicCount(Map map); + + /** + * 导出 + */ + public List> exportallorders(Map map); + + + /** + * 查询需要短信发送的卡号执行短信发送 + * @param map + * @return + */ + public List> findSMSbulkArr(Map map); + + +} diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzSmSBulkBusinessMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzSmSBulkBusinessMapper.java new file mode 100644 index 0000000..c9fbb93 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/bulk/YzSmSBulkBusinessMapper.java @@ -0,0 +1,45 @@ +package com.yunze.common.mapper.yunze.bulk; + +import java.util.List; +import java.util.Map; + +public interface YzSmSBulkBusinessMapper { + + + public int add(Map map); + + public int update(Map map); + + /** + * 查询 + * + * @param map + * @return + */ + public List> selMap(Map map); + + /** + * 查询总数 + * + * @param map + * @return + */ + public Integer selMapCount(Map map); + + /** + * + * @param map + * @return + */ + public List findIdArr(Map map); + + + /** + * 查询 单条 状态为 执行中 的 短信任务进行下发执行 + * @param map + * @return + */ + public List> findOneExecution(Map map); + + +} diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzApplicationforRenewalMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzApplicationforRenewalMapper.java new file mode 100644 index 0000000..e0e9418 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzApplicationforRenewalMapper.java @@ -0,0 +1,25 @@ +package com.yunze.common.mapper.yunze.card; + +import java.util.List; +import java.util.Map; + +public interface YzApplicationforRenewalMapper { + + + /** + *查询 + * @param map + * @return + */ + public List> find(Map map); + + + public int save(Map map); + + public int upd(Map map); + + public int del(Map map); + + + +} diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzApplicationforRenewalPrimaryIccidMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzApplicationforRenewalPrimaryIccidMapper.java new file mode 100644 index 0000000..3da5af1 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzApplicationforRenewalPrimaryIccidMapper.java @@ -0,0 +1,26 @@ +package com.yunze.common.mapper.yunze.card; + +import java.util.List; +import java.util.Map; + +public interface YzApplicationforRenewalPrimaryIccidMapper { + + + + /** + *查询 + * @param map + * @return + */ + public List> find(Map map); + + + public int save(Map map); + + public int del(Map map); + + + public Integer findCount(Map map); + + +} diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzApplicationforRenewalPrimaryMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzApplicationforRenewalPrimaryMapper.java new file mode 100644 index 0000000..7e0ff68 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzApplicationforRenewalPrimaryMapper.java @@ -0,0 +1,46 @@ +package com.yunze.common.mapper.yunze.card; + +import java.util.List; +import java.util.Map; + +public interface YzApplicationforRenewalPrimaryMapper { + + /** + * 查询总数 + * @param map + * @return + */ + public Integer selMapCount(Map map); + + /** + *查询 + * @param map + * @return + */ + public List> selMap(Map map); + + + public Integer save(Map map); + + public Integer upd(Map map); + + + public Map find(Map map); + + /** + * 获取需要通知的 状态为 审核中 的续费申请 + * @param map + * @return + */ + public List> findEmailCC(Map map); + + + /** + * 获取 订单生成申请 状态为 已审核 的- + * @param map + * @return + */ + public List> findAppOrderGr(Map map); + + +} diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzApplicationforRenewalPrimaryOrdNoMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzApplicationforRenewalPrimaryOrdNoMapper.java new file mode 100644 index 0000000..fb06dbd --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzApplicationforRenewalPrimaryOrdNoMapper.java @@ -0,0 +1,32 @@ +package com.yunze.common.mapper.yunze.card; + +import java.util.List; +import java.util.Map; + +public interface YzApplicationforRenewalPrimaryOrdNoMapper { + + + + /** + *查询 + * @param map + * @return + */ + public List> find(Map map); + + + public int save(Map map); + + public int del(Map map); + + public String findPid(Map map); + + /** + * 获取系统订单关联信息 + * @param map + * @return + */ + public List> findOrder(Map map); + + +} diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzCardDueSoonMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzCardDueSoonMapper.java new file mode 100644 index 0000000..ddd1c4d --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/card/YzCardDueSoonMapper.java @@ -0,0 +1,21 @@ +package com.yunze.common.mapper.yunze.card; + +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * 2022年8月8日15:31:08 + * 定义查询服务即将失效的企业 + */ +public interface YzCardDueSoonMapper { + /** + * 2022年8月8日15:33:00 + * 查询即将失效的企业 + * map: + * String:对应字段 + * obj:对应时间对象 + */ + List SelectCardDueSoon(Map map); +} diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/commodity/YzWxByProductAgentMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/commodity/YzWxByProductAgentMapper.java index b0d401b..506a400 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/commodity/YzWxByProductAgentMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/commodity/YzWxByProductAgentMapper.java @@ -40,8 +40,6 @@ public interface YzWxByProductAgentMapper { public List> getDepIDArr(Map map); - - /** * 新增商品代理 * @param map @@ -55,4 +53,7 @@ public interface YzWxByProductAgentMapper { * @return */ public int delPAgent(); + + + public int SendCount(Map map); } diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/PollingMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/polling/PollingMapper.java similarity index 64% rename from yunze-common/src/main/java/com/yunze/common/mapper/yunze/PollingMapper.java rename to yunze-common/src/main/java/com/yunze/common/mapper/yunze/polling/PollingMapper.java index 4fc3dc0..1d67c4b 100644 --- a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/PollingMapper.java +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/polling/PollingMapper.java @@ -1,4 +1,4 @@ -package com.yunze.common.mapper.yunze; +package com.yunze.common.mapper.yunze.polling; import java.util.List; import java.util.Map; @@ -18,4 +18,14 @@ public interface PollingMapper { * @return */ public List> getList(Map map); + + + /** + * 删除指定日期之前的数据 + * @param map + * @return + */ + public int del(Map map); + + } diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/polling/YzCardPollingErrorGroupMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/polling/YzCardPollingErrorGroupMapper.java new file mode 100644 index 0000000..ad58668 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/polling/YzCardPollingErrorGroupMapper.java @@ -0,0 +1,72 @@ +package com.yunze.common.mapper.yunze.polling; + +import java.util.List; +import java.util.Map; + +public interface YzCardPollingErrorGroupMapper { + + /** + * 新增 + * @param map + * @return + */ + public int save(Map map); + + /** + * 单个修改 + * @param map + * @return + */ + public int updObj(Map map); + + + public int upd(Map map); + + + + + + /** + * 单个删除 + * @param map + * @return + */ + public int del(Map map); + + /** + *查询是否存在 + * @param map + * @return + */ + public String findEx(Map map); + + + + + + public List> selMap (Map map); + + + public Integer selMapCount(Map map); + + + /** + * 批量删除 + * */ + public int delArr(Map map); + + /** + * 批量修改 + * */ + public int updArr(Map map); + + + /** + * 删除单表所有数据 带下次自动生成 + * @param map + * @return + */ + public int delTableData(Map map); + + +} diff --git a/yunze-common/src/main/java/com/yunze/common/mapper/yunze/polling/YzCardPollingErrorMapper.java b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/polling/YzCardPollingErrorMapper.java new file mode 100644 index 0000000..d7367c8 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/mapper/yunze/polling/YzCardPollingErrorMapper.java @@ -0,0 +1,82 @@ +package com.yunze.common.mapper.yunze.polling; + +import org.springframework.amqp.rabbit.connection.PublisherCallbackChannelImpl; + +import java.util.List; +import java.util.Map; + +public interface YzCardPollingErrorMapper { + + + + /** + * 修改 + * @param map + * @return + */ + public int updObj(Map map); + + + + public int upd(Map map); + + public int save(Map map); + + + + /** + * 删除 + * @param map + * @return + */ + public int del(Map map); + + /** + *查询是否存在 + * @param map + * @return + */ + public String findEx(Map map); + + + /** + * 查询 + * @param map + * @return + */ + public List> findGroup (Map map); + + public List> selMap (Map map); + + + public Integer selMapCount(Map map); + + /** + * 三表联查 + * @param map + * @return + */ + public List> selMapRelevance (Map map); + + + + + /** + * 批量删除 + * */ + public int delArr(Map map); + + /** + * 批量修改 + * */ + public int updArr(Map map); + + + /** + * 删除指定日期之前的数据 + * @param map + * @return + */ + public int delTime(Map map); + +} diff --git a/yunze-common/src/main/java/com/yunze/common/utils/Email/EmailCc.java b/yunze-common/src/main/java/com/yunze/common/utils/Email/EmailCc.java index 0d8398b..bc29a8c 100644 --- a/yunze-common/src/main/java/com/yunze/common/utils/Email/EmailCc.java +++ b/yunze-common/src/main/java/com/yunze/common/utils/Email/EmailCc.java @@ -14,6 +14,7 @@ import java.util.concurrent.TimeUnit; /** * 邮件抄送 + * * @Auther: zhang feng * @Date: 2021/09/26/14:16 * @Description: @@ -27,24 +28,24 @@ public class EmailCc { //findConfig - /** * 下单发货通知 抄送 默认模板 + * * @param CCMap * @return */ - public Map ShoppingDelivery_default(Map CCMap,String SendEmail) { - String userName = "",password = ""; - Map configMap = getConfig(); + public Map ShoppingDelivery_default(Map CCMap, String SendEmail) { + String userName = "", password = ""; + Map configMap = getConfig(); userName = configMap.get("userName"); password = configMap.get("password"); Map rmap = new HashMap(); boolean bool = true; - String info = CCMap.get("info")!=null?CCMap.get("info").toString():""; - Map Text = EmailSend.Shopping_text(CCMap.get("ord_no").toString(),CCMap.get("create_time").toString(),CCMap.get("shipping_Phone").toString(), - CCMap.get("shipping_user").toString(),CCMap.get("province").toString(),CCMap.get("city").toString(),CCMap.get("district").toString(), - CCMap.get("address").toString(),CCMap.get("by_count").toString(),CCMap.get("product_name").toString(),info); + String info = CCMap.get("info") != null ? CCMap.get("info").toString() : ""; + Map Text = EmailSend.Shopping_text(CCMap.get("ord_no").toString(), CCMap.get("create_time").toString(), CCMap.get("shipping_Phone").toString(), + CCMap.get("shipping_user").toString(), CCMap.get("province").toString(), CCMap.get("city").toString(), CCMap.get("district").toString(), + CCMap.get("address").toString(), CCMap.get("by_count").toString(), CCMap.get("product_name").toString(), info); try { MimeMessageDTO mimeDTO = new MimeMessageDTO(); @@ -52,40 +53,70 @@ public class EmailCc { mimeDTO.setSubject("您有新的发货订单"); mimeDTO.setText(Text.get("template").toString()); bool = MailUtil.sendEmail(userName, password, SendEmail, mimeDTO); - }catch(Exception e) { - System.out.println("ShoppingDelivery_default 异常 "+e.getMessage()); - bool=false; + } catch (Exception e) { + System.out.println("ShoppingDelivery_default 异常 " + e.getMessage()); + bool = false; } rmap.put("bool", bool); return rmap; } + /** + * 2022年8月16日15:30:26 + * 邮件抄送给运维 + */ + public Map ServiceOperation(Map Msg, String emailDept) { + String userName = "", password = ""; + Boolean bool = false; + Map configMap = getConfig(); + HashMap rmap = new HashMap<>(); + userName = configMap.get("userName"); + password = configMap.get("password"); + //调用emailsend获取邮件模板 参数 :msg 里面的数据为个数 + Map text = EmailSend.ServiceOperation_text(Msg); + MimeMessageDTO mimeMessageDTO = new MimeMessageDTO(); + mimeMessageDTO.setSentDate(new Date()); + mimeMessageDTO.setText(text.get("template").toString()); + mimeMessageDTO.setSubject("服务快到期通知"); + try { + bool = MailUtil.sendEmail(userName, password, emailDept, mimeMessageDTO); + System.out.println("===>>>邮件发送成功"); + rmap.put("bool", bool); + } catch (Exception e) { + System.out.println("===>>>邮件发送失败"); + rmap.put("bool", bool); + } + + + return rmap; + } /** * 物联网卡 已订购有用量状态异常 抄送 默认模板 + * * @param CCMap * @return */ - public Map CardStatusAbnormal_default(Map CCMap,String SendEmail) { - String userName = "",password = ""; - Map configMap = getConfig(); + public Map CardStatusAbnormal_default(Map CCMap, String SendEmail) { + String userName = "", password = ""; + Map configMap = getConfig(); userName = configMap.get("userName"); password = configMap.get("password"); Map rmap = new HashMap(); boolean bool = true; String Count = CCMap.get("Count").toString(); - Map Text = EmailSend.CardUsefulAmountDowntime_text(CCMap.get("taskId").toString(), VeDate.getStringDateSSS(),Count); + Map Text = EmailSend.CardUsefulAmountDowntime_text(CCMap.get("taskId").toString(), VeDate.getStringDate(), Count); try { MimeMessageDTO mimeDTO = new MimeMessageDTO(); mimeDTO.setSentDate(new Date()); - mimeDTO.setSubject("已订购用量状态已停机数量["+Count+"]"); + mimeDTO.setSubject("已订购用量状态已停机数量[" + Count + "]"); mimeDTO.setText(Text.get("template").toString()); bool = MailUtil.sendEmail(userName, password, SendEmail, mimeDTO); - }catch(Exception e) { - System.out.println("CardStatusAbnormal_default 异常 "+e.getMessage()); - bool=false; + } catch (Exception e) { + System.out.println("CardStatusAbnormal_default 异常 " + e.getMessage()); + bool = false; } rmap.put("bool", bool); return rmap; @@ -94,12 +125,13 @@ public class EmailCc { /** * 物联网卡 未划分资费组状态异常 抄送 默认模板 + * * @param CCMap * @return */ - public Map NotDividedIntoTariffGroups_default(Map CCMap,String SendEmail) { - String userName = "",password = ""; - Map configMap = getConfig(); + public Map NotDividedIntoTariffGroups_default(Map CCMap, String SendEmail) { + String userName = "", password = ""; + Map configMap = getConfig(); userName = configMap.get("userName"); password = configMap.get("password"); @@ -107,17 +139,17 @@ public class EmailCc { boolean bool = true; String Count = CCMap.get("Count").toString(); - Map emailMap = (Map) CCMap.get("emailMap"); - Map Text = EmailSend.NotDividedIntoTariffGroups_text(emailMap, VeDate.getStringDateSSS(),Count); + Map emailMap = (Map) CCMap.get("emailMap"); + Map Text = EmailSend.NotDividedIntoTariffGroups_text(emailMap, VeDate.getStringDate(), Count); try { MimeMessageDTO mimeDTO = new MimeMessageDTO(); mimeDTO.setSentDate(new Date()); - mimeDTO.setSubject("未划分资费组数量["+Count+"]"); + mimeDTO.setSubject("未划分资费组数量[" + Count + "]"); mimeDTO.setText(Text.get("template").toString()); bool = MailUtil.sendEmail(userName, password, SendEmail, mimeDTO); - }catch(Exception e) { - System.out.println("NotDividedIntoTariffGroups_default 异常 "+e.getMessage()); - bool=false; + } catch (Exception e) { + System.out.println("NotDividedIntoTariffGroups_default 异常 " + e.getMessage()); + bool = false; } rmap.put("bool", bool); return rmap; @@ -125,12 +157,13 @@ public class EmailCc { /** * 物联网卡 未划分通道 抄送 默认模板 + * * @param CCMap * @return */ - public Map UndividedChannel_default(Map CCMap,String SendEmail) { - String userName = "",password = ""; - Map configMap = getConfig(); + public Map UndividedChannel_default(Map CCMap, String SendEmail) { + String userName = "", password = ""; + Map configMap = getConfig(); userName = configMap.get("userName"); password = configMap.get("password"); @@ -138,46 +171,47 @@ public class EmailCc { boolean bool = true; String Count = CCMap.get("Count").toString(); - Map emailMap = (Map) CCMap.get("emailMap"); - Map Text = EmailSend.UndividedChannel_text(emailMap, VeDate.getStringDateSSS(),Count); + Map emailMap = (Map) CCMap.get("emailMap"); + Map Text = EmailSend.UndividedChannel_text(emailMap, VeDate.getStringDate(), Count); try { MimeMessageDTO mimeDTO = new MimeMessageDTO(); mimeDTO.setSentDate(new Date()); - mimeDTO.setSubject("未划分通道["+Count+"]"); + mimeDTO.setSubject("未划分通道[" + Count + "]"); mimeDTO.setText(Text.get("template").toString()); bool = MailUtil.sendEmail(userName, password, SendEmail, mimeDTO); - }catch(Exception e) { - System.out.println("UndividedChannel_default 异常 "+e.getMessage()); - bool=false; + } catch (Exception e) { + System.out.println("UndividedChannel_default 异常 " + e.getMessage()); + bool = false; } rmap.put("bool", bool); return rmap; } /** - * 自动化任务邮件抄送 上游套餐超过百分比 抄送 默认模板 + * 自动化任务邮件抄送 上游套餐超过百分比 抄送 默认模板 + * * @param * @return */ - public Map usageMailReminder_default(Map CCMap,String SendEmail) { - String userName = "",password = ""; - Map configMap = getConfig(); + public Map usageMailReminder_default(Map CCMap, String SendEmail) { + String userName = "", password = ""; + Map configMap = getConfig(); userName = configMap.get("userName"); password = configMap.get("password"); Map rmap = new HashMap(); boolean bool = true; String Count = CCMap.get("Count").toString(); - Map Text = EmailSend.usageMailReminder_text(CCMap.get("taskId").toString(), VeDate.getStringDateSSS(),Count); + Map Text = EmailSend.usageMailReminder_text(CCMap.get("taskId").toString(), VeDate.getStringDate(), Count); try { MimeMessageDTO mimeDTO = new MimeMessageDTO(); mimeDTO.setSentDate(new Date()); - mimeDTO.setSubject("上游套餐超过百分比数量["+Count+"]"); + mimeDTO.setSubject("上游套餐超过百分比数量[" + Count + "]"); mimeDTO.setText(Text.get("template").toString()); bool = MailUtil.sendEmail(userName, password, SendEmail, mimeDTO); - }catch(Exception e) { - System.out.println("usageMailReminder_default 异常 "+e.getMessage()); - bool=false; + } catch (Exception e) { + System.out.println("usageMailReminder_default 异常 " + e.getMessage()); + bool = false; } rmap.put("bool", bool); return rmap; @@ -186,29 +220,124 @@ public class EmailCc { /** * 物联网卡 归属为总平台 抄送 默认模板 + * * @param CCMap * @return */ - public Map CardConsumption_default(Map CCMap,String SendEmail) { - String userName = "",password = ""; - Map configMap = getConfig(); + public Map CardConsumption_default(Map CCMap, String SendEmail) { + String userName = "", password = ""; + Map configMap = getConfig(); userName = configMap.get("userName"); password = configMap.get("password"); Map rmap = new HashMap(); boolean bool = true; String Count = CCMap.get("Count").toString(); - Map findCardMap = (Map) CCMap.get("findCardMap"); - Map Text = EmailSend.CardConsumption_text(findCardMap, VeDate.getStringDateSSS(),Count); + Map findCardMap = (Map) CCMap.get("findCardMap"); + Map Text = EmailSend.CardConsumption_text(findCardMap, VeDate.getStringDate(), Count); try { MimeMessageDTO mimeDTO = new MimeMessageDTO(); mimeDTO.setSentDate(new Date()); - mimeDTO.setSubject("归属为总平台有用量卡总数["+Count+"]"); + mimeDTO.setSubject("归属为总平台有用量卡总数[" + Count + "]"); mimeDTO.setText(Text.get("template").toString()); bool = MailUtil.sendEmail(userName, password, SendEmail, mimeDTO); - }catch(Exception e) { - System.out.println("CardConsumption_default 异常 "+e.getMessage()); - bool=false; + } catch (Exception e) { + System.out.println("CardConsumption_default 异常 " + e.getMessage()); + bool = false; + } + rmap.put("bool", bool); + return rmap; + } + + /** + * 2022年8月10日15:56:40 + * 根据服务是否快到期进行发送邮件提醒 + * + * @return + */ + public Map sendEmailForDueSoon(Map map, Map pMap) throws Exception { + String userName = "", password = ""; + Map configMap = getConfig(); + userName = configMap.get("userName"); + password = configMap.get("password"); + + + Map textMap = EmailSend.CardDueSoonEmailSend(map.get("dept_name").toString(), map.get("count").toString(), pMap, com.yunze.apiCommon.utils.VeDate.getStringDate()); + + MimeMessageDTO mimeMessageDTO = new MimeMessageDTO(); + mimeMessageDTO.setText(textMap.get("template").toString()); + mimeMessageDTO.setSentDate(new Date()); + mimeMessageDTO.setSubject("服务即将到期通知-" + map.get("dept_name").toString() + "-" + map.get("count").toString()); + Map returnMap = new HashMap<>(); + + boolean b = MailUtil.sendEmail(userName, password, map.get("email").toString(), mimeMessageDTO); + returnMap.put("bool", b); + + + return returnMap; + } + + + /** + * 获取配置的邮箱 账号 密码 + * + * @return + */ + public Map getConfig() { + String userName = "", password = ""; + Map configMap = new HashMap(); + Map userNameMap = new HashMap<>(); + Map passwordMap = new HashMap<>(); + Object Email = redisCache.getCacheObject("ccConfig.Email"); + Object EmailPwd = redisCache.getCacheObject("ccConfig.EmailPwd"); + if (Email != null && Email.toString().length() > 0) { + userName = Email.toString(); + } else { + userNameMap.put("config_key", "yunze.ccConfig.Email"); + userName = yzWxByProductAgentMapper.findConfig(userNameMap); + redisCache.setCacheObject("ccConfig.Email", userName, 6, TimeUnit.HOURS);//6 小时 缓存 + } + if (EmailPwd != null && EmailPwd.toString().length() > 0) { + password = EmailPwd.toString(); + } else { + passwordMap.put("config_key", "yunze.ccConfig.EmailPwd"); + password = yzWxByProductAgentMapper.findConfig(passwordMap); + redisCache.setCacheObject("ccConfig.EmailPwd", password, 6, TimeUnit.HOURS);//6 小时 缓存 + } + configMap.put("userName", userName); + configMap.put("password", password); + return configMap; + } + + + /** + * 物联网卡 API同步数据错误抄送 抄送 默认模板 + * + * @param CCMap + * @param SendEmail + * @return + */ + public Map CardApiSynError_default(Map CCMap, String SendEmail) { + String userName = "", password = ""; + Map configMap = getConfig(); + userName = configMap.get("userName"); + password = configMap.get("password"); + + Map rmap = new HashMap(); + boolean bool = true; + String describe = CCMap.get("describe").toString(); + String heartext = CCMap.get("heartext").toString(); + String createTime = VeDate.getStringDate(); + Map Text = EmailSend.CardApiSynError_text(heartext, CCMap.get("taskId").toString(), createTime, describe); + try { + MimeMessageDTO mimeDTO = new MimeMessageDTO(); + mimeDTO.setSentDate(new Date()); + mimeDTO.setSubject("[告警]-[" + EmailSend.url + "]-[" + createTime + "] " + heartext); + mimeDTO.setText(Text.get("template").toString()); + bool = MailUtil.sendEmail(userName, password, SendEmail, mimeDTO); + } catch (Exception e) { + System.out.println("CardApiSynError_default 异常 " + e.getMessage()); + bool = false; } rmap.put("bool", bool); return rmap; @@ -216,35 +345,41 @@ public class EmailCc { /** - * 获取配置的邮箱 账号 密码 + * 自动化任务邮件抄送 续费申请通知 抄送 默认模板 + * + * @param * @return */ - public Map getConfig(){ - String userName = "",password = ""; - Map configMap = new HashMap(); - Map userNameMap = new HashMap<>(); - Map passwordMap = new HashMap<>(userNameMap); - Object Email = redisCache.getCacheObject("ccConfig.Email"); - Object EmailPwd = redisCache.getCacheObject("ccConfig.EmailPwd"); - if(Email!=null && Email.toString().length()>0){ - userName = Email.toString(); - }else{ - userNameMap.put("config_key","yunze.ccConfig.Email"); - userName = yzWxByProductAgentMapper.findConfig(userNameMap); - redisCache.setCacheObject("ccConfig.Email",userName,6,TimeUnit.HOURS);//6 小时 缓存 + public Map ApplicationForRenewal_default(Map CCMap, String SendEmail) { + String userName = "", password = ""; + Map configMap = getConfig(); + userName = configMap.get("userName"); + password = configMap.get("password"); + + Map rmap = new HashMap(); + boolean bool = true; + Map parMap = (Map) CCMap.get("parMap"); + String create_time = CCMap.get("create_time").toString(); + String dept_name = CCMap.get("dept_name").toString(); + String card_sumCount = CCMap.get("card_sumCount").toString(); + String amount = CCMap.get("amount").toString(); + String info = CCMap.get("info").toString(); + String title = CCMap.get("title").toString(); + + try { + Map Text = EmailSend.ApplicationForRenewal_text(parMap, create_time, dept_name, card_sumCount, amount, info, title); + MimeMessageDTO mimeDTO = new MimeMessageDTO(); + mimeDTO.setSentDate(new Date()); + mimeDTO.setSubject("[" + dept_name + "] - 续费申请待处理[" + dept_name + "]"); + mimeDTO.setText(Text.get("template").toString()); + bool = MailUtil.sendEmail(userName, password, SendEmail, mimeDTO); + } catch (Exception e) { + System.out.println("usageMailReminder_default 异常 " + e.getMessage()); + bool = false; } - if(EmailPwd!=null && EmailPwd.toString().length()>0){ - password = EmailPwd.toString(); - }else{ - passwordMap.put("config_key","yunze.ccConfig.EmailPwd"); - password = yzWxByProductAgentMapper.findConfig(passwordMap); - redisCache.setCacheObject("ccConfig.EmailPwd",password,6,TimeUnit.HOURS);//6 小时 缓存 - } - configMap.put("userName",userName); - configMap.put("password",password); - return configMap; + rmap.put("bool", bool); + return rmap; } - } diff --git a/yunze-common/src/main/java/com/yunze/common/utils/Email/EmailSend.java b/yunze-common/src/main/java/com/yunze/common/utils/Email/EmailSend.java index a923c00..d604238 100644 --- a/yunze-common/src/main/java/com/yunze/common/utils/Email/EmailSend.java +++ b/yunze-common/src/main/java/com/yunze/common/utils/Email/EmailSend.java @@ -1,6 +1,7 @@ package com.yunze.common.utils.Email; import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.utils.VeDate; import com.yunze.common.utils.yunze.AesEncryptUtil; import java.text.MessageFormat; @@ -17,11 +18,16 @@ import java.util.Map; * @date 2018年8月28日 */ public class EmailSend { - - private static String userName = "123123@5iot.cn"; // 用户邮箱地址 - private static String password = "123@1111111"; // 密码或者授权码 - private static String url = "demo.5iot.com"; // 密码或者授权码 + private static String userName = "123123@5iot.cn"; // 用户邮箱地址 + private static String password = "123@1111111"; // 密码或者授权码 + + public static String url = "demo.5iot.com"; // 密码或者授权码 + + + //默认执行任务跳转模板 + private static String ExecutionTask_text ="

    通知时间:[{2}]

    {3}

    如果这不是您本人所为,则可能是有人误输了您的电子邮件地址。请勿将此订单信息泄露给他人,并且您目前无需执行任何其它操作。

    "; + /** * 发送注册邮件验证码 @@ -177,6 +183,25 @@ public class EmailSend { return rmap; } + + + + /** + * API同步数据错误抄送 + * @param id + * @param createTime + * @param describe + * @return + */ + public static Map CardApiSynError_text(String heartext,String id,String createTime,String describe) { + Map rmap = new HashMap(); + String template = ""; + template = MessageFormat.format(ExecutionTask_text,heartext,id,createTime,describe); + rmap.put("template", template); + return rmap; + } + + /** * 未划分资费组 * @param parMap @@ -212,6 +237,35 @@ public class EmailSend { rmap.put("template", template); return rmap; } + /**2022年8月16日15:10:51 + * 自动化任务抄送给运维 + */ + public static Map ServiceOperation_text(Map map){ + Map rmap = new HashMap(); + String text="
    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "

    即将到期服务通知-共有{0}张卡即将服务到期

    \n" + + "

    [点击查看详情]

    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "

    通知时间:[ {2} ]

    \n" + + "

    即将到期服务数量总数量:[{3}]

    \n" + + "

    如果这不是您本人所为,则可能是有人误输了您的电子邮件地址。请勿将此订单信息泄露给他人,并且您目前无需执行任何其它操作。

    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "
    "; + String format = MessageFormat.format(text, map.get("count").toString(), map.get("taskId").toString(), VeDate.getStringDate(), map.get("count").toString()); + rmap.put("template",format); + return rmap; + } /** * 未划分通道 @@ -260,8 +314,65 @@ public class EmailSend { } + /** + * 自动化任务邮件抄送 续费申请通知 + * @param parMap + * @param create_time + * @param dept_name + * @param card_sumCount + * @param amount + * @param info + * @return + * @throws Exception + */ + public static Map ApplicationForRenewal_text(Map parMap,String create_time,String dept_name,String card_sumCount,String amount,String info,String title) throws Exception { + Map rmap = new HashMap (); + String template = ""; + String text ="

    待处理续费申请

    \n" + + "\t\t\t\t\t\t[{6}]\n" + + "\t\t\t\t\t

    申请时间:[{1}]

    企业:[{2}]

    总数量:[{3}]

    总金额:[{4}]

    备注:[{5}]

    如果这不是您本人所为,则可能是有人误输了您的电子邮件地址。请勿将此订单信息泄露给他人,并且您目前无需执行任何其它操作。

    "; + template = MessageFormat.format(text, AesEncryptUtil.encrypt(JSON.toJSONString(parMap)),create_time,dept_name,card_sumCount,amount,info,title); + rmap.put("template", template); + return rmap; + } + + /**2022年8月9日09:14:42 + *自动化任务,查询所有服务快到期的卡,并抄送邮件给企业 + * @return + */ + public static Map CardDueSoonEmailSend(String dept,String count,Map map,String createTime) throws Exception{ + HashMap rMap = new HashMap<>(); + String dept1=dept; + String template=""; + String text="
    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "

    即将到期服务通知-{0}-{1}张

    \n" + + "

    [点击查看详情]

    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "

    通知时间:[ {3} ]

    \n" + + "

    企业名称: {4}

    \n" + + "

    即将到期服务数量总数量:[{5}]

    \n" + + "

    如果这不是您本人所为,则可能是有人误输了您的电子邮件地址。请勿将此订单信息泄露给他人,并且您目前无需执行任何其它操作。

    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "
    \n" + + "
    "; + String urlMsg=AesEncryptUtil.encrypt(JSON.toJSONString(map)); + template=MessageFormat.format(text,dept,count,urlMsg,createTime,dept1,count); + rMap.put("template",template); + + return rMap; + } diff --git a/yunze-common/src/main/java/com/yunze/common/utils/yunze/ApiParamMap.java b/yunze-common/src/main/java/com/yunze/common/utils/yunze/ApiParamMap.java index cde8f70..0a14677 100644 --- a/yunze-common/src/main/java/com/yunze/common/utils/yunze/ApiParamMap.java +++ b/yunze-common/src/main/java/com/yunze/common/utils/yunze/ApiParamMap.java @@ -15,9 +15,9 @@ public class ApiParamMap { Map Yzmap = new HashMap(); Map Parmap = new HashMap(); - String appId = "adminOption"; - String password = "asdasdasczx"; - String access_key = "asdfdrqads69846532065"; + String appId = ""; + String password = ""; + String access_key = ""; String timeStamp = System.currentTimeMillis() + ""; Yzmap.put("password", password); diff --git a/yunze-common/src/main/java/com/yunze/common/utils/yunze/BulkUtil.java b/yunze-common/src/main/java/com/yunze/common/utils/yunze/BulkUtil.java new file mode 100644 index 0000000..a0949f3 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/utils/yunze/BulkUtil.java @@ -0,0 +1,81 @@ +package com.yunze.common.utils.yunze; + +import com.yunze.common.mapper.yunze.bulk.YzBulkBusinessDtailsMapper; +import com.yunze.common.mapper.yunze.bulk.YzBulkBusinessMapper; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * @Auther: zhang feng + * @Date: 2022/05/18/16:58 + * @Description: + */ +@Component +public class BulkUtil { + + @Resource + private YzBulkBusinessMapper yzBulkBusinessMapper; + @Resource + private YzBulkBusinessDtailsMapper yzBulkBusinessDtailsMapper; + + + public int Dadd( Map bulkDtailsMap){ + return yzBulkBusinessDtailsMapper.add(bulkDtailsMap); + } + + + + public int DupdateArr(String b_id,Object bus_arrs,String end_time,String state_id,String mydescribe){ + Map bulkDtailsMap = new HashMap<>(); + bulkDtailsMap.put("b_id",b_id); + if(bus_arrs!=null){ + bulkDtailsMap.put("bus_arrs",bus_arrs); + } + if(end_time!=null){ + bulkDtailsMap.put("end_time",end_time); + } + if(state_id!=null){ + bulkDtailsMap.put("state_id",state_id); + } + if(mydescribe!=null){ + bulkDtailsMap.put("mydescribe",mydescribe); + } + return yzBulkBusinessDtailsMapper.updateArr(bulkDtailsMap); + } + + + + public int Dupdate(String b_id,String card_number,String end_time,String state_id,String mydescribe){ + Map bulkDtailsMap = new HashMap<>(); + bulkDtailsMap.put("b_id",b_id); + if(card_number!=null){ + bulkDtailsMap.put("card_number",card_number); + } + if(end_time!=null){ + bulkDtailsMap.put("end_time",end_time); + } + if(state_id!=null){ + bulkDtailsMap.put("state_id",state_id); + } + if(mydescribe!=null){ + bulkDtailsMap.put("mydescribe",mydescribe); + } + return yzBulkBusinessDtailsMapper.update(bulkDtailsMap); + } + + + + public int update( Map bulkDtailsMap){ + return yzBulkBusinessMapper.update(bulkDtailsMap); + } + + + + + + + +} diff --git a/yunze-common/src/main/java/com/yunze/common/utils/yunze/CardFlowSyn.java b/yunze-common/src/main/java/com/yunze/common/utils/yunze/CardFlowSyn.java index 21b9ae4..2e4875e 100644 --- a/yunze-common/src/main/java/com/yunze/common/utils/yunze/CardFlowSyn.java +++ b/yunze-common/src/main/java/com/yunze/common/utils/yunze/CardFlowSyn.java @@ -128,8 +128,8 @@ public class CardFlowSyn { String []YyyyAndMm = VeDate.getYyyyAndMm(); String nowMonthSta = YyyyAndMm[0]+"-"+YyyyAndMm[1]+"-01"; String nowMonthEnd = VeDate.getLastDayOfMonth(Integer.parseInt(YyyyAndMm[0]),Integer.parseInt(YyyyAndMm[1])); - findMap.put("nowMonthSta",nowMonthSta); - findMap.put("nowMonthEnd",nowMonthEnd); + findMap.put("nowMonthSta",nowMonthSta+" 00:00:00"); + findMap.put("nowMonthEnd",nowMonthEnd+" 23:59:59"); //0.修改 时间到期资费计划 yzCardFlowMapper.updStatus(findMap); //1.查询过期用量 diff --git a/yunze-common/src/main/java/com/yunze/common/utils/yunze/OutECImei.java b/yunze-common/src/main/java/com/yunze/common/utils/yunze/OutECImei.java index 895a168..bc7421d 100644 --- a/yunze-common/src/main/java/com/yunze/common/utils/yunze/OutECImei.java +++ b/yunze-common/src/main/java/com/yunze/common/utils/yunze/OutECImei.java @@ -39,124 +39,5 @@ public class OutECImei { return sign; } - public static void main(String[] args) { - // String url="http://hsapi.e114.xin:9002/Api/yunze/v1"; - - WriteCSV writeCSV = new WriteCSV(); - Map Yzmap = new HashMap(); - - // for(int i=0;i<300;i++){ - //String geturl = "http://127.0.0.1:9080/route/Api/"; - String geturl = "http://127.0.0.1:9080/route/Api/"; - - String appId = "adminOption"; - String password = "asdasdasczx"; - String access_key = "asdfdrqads69846532065"; - String timeStamp = System.currentTimeMillis() + ""; - - Yzmap.put("password", password); - Yzmap.put("appId", appId); - Yzmap.put("timeStamp", timeStamp); - - OutECImei agentCheckShiro = new OutECImei(); - - String sign = agentCheckShiro.getSign(Yzmap, access_key); - Yzmap.put("sign", sign); - - Map map = new HashMap(); - Map Parmap = new HashMap(); - - - geturl +="queryCardImei";//单卡 imei查询 - - - - - List sArr = new ArrayList<>(); - sArr.add("89860422152080038591"); - sArr.add("89860422152080038592"); - sArr.add("89860422152080038593"); - sArr.add("89860422152080038594"); - sArr.add("89860422152080038595"); - sArr.add("89860422152080038596"); - sArr.add("89860422152080038597"); - sArr.add("89860422152080038598"); - sArr.add("89860422152080038599"); - sArr.add("89860422152080038600"); - sArr.add("89860422152080038601"); - sArr.add("89860422152080038602"); - sArr.add("89860422152080038603"); - sArr.add("89860422152080038604"); - sArr.add("89860422152080038605"); - sArr.add("89860422152080038606"); - sArr.add("89860422152080038607"); - sArr.add("89860422152080038608"); - sArr.add("89860422152080038609"); - sArr.add("89860422152080038610"); - sArr.add("89860422152080038611"); - sArr.add("89860422152080038612"); - sArr.add("89860422152080038613"); - sArr.add("89860422152080038614"); - sArr.add("89860422152080038615"); - sArr.add("89860422152080038616"); - sArr.add("89860422152080038617"); - sArr.add("89860422152080038618"); - sArr.add("89860422152080038619"); - sArr.add("89860422152080038620"); - sArr.add("89860422152080038621"); - sArr.add("89860422152080038622"); - sArr.add("89860422152080038623"); - sArr.add("89860422152080038624"); - sArr.add("89860422152080038625"); - sArr.add("89860422152080038626"); - sArr.add("89860422152080038627"); - sArr.add("89860422152080038628"); - sArr.add("89860422152080038629"); - sArr.add("89860422152080038630"); - sArr.add("89860422152080038631"); - - - - map.put("verify", Yzmap); - Parmap.put("bind_type", "2"); - List> list = new ArrayList>(); - - - - try { - for (int i=0;i Robj = JSON.parseObject(result); - System.out.println(Robj.get("data")); - JSONObject Data = JSON.parseObject(((Map)Robj.get("data")).get("Data").toString()); - if(Data.get("result")!=null){ - if(((List)Data.get("result")).size()>0){ - Map Data_1 = ((List>)Data.get("result")).get(0); - if(Data_1!=null){ - String imei = ""; - if(Data_1.get("imei")!=null){ - imei = Data_1.get("imei").toString(); - } - Map obj = new HashMap<>(); - obj.put("iccid",sArr.get(i)); - obj.put("imei",imei); - list.add(obj); - } - } - } - } - } catch (Exception e) { - System.out.println(e); - } - String Outcolumns[] = {"iccid","imei"}; - - writeCSV.OutCSVObj(list, VeDate.getNo(4), Outcolumns, Outcolumns,50); - - - } } diff --git a/yunze-common/src/main/java/com/yunze/common/utils/yunze/PlOrder.java b/yunze-common/src/main/java/com/yunze/common/utils/yunze/PlOrder.java new file mode 100644 index 0000000..e41a3c3 --- /dev/null +++ b/yunze-common/src/main/java/com/yunze/common/utils/yunze/PlOrder.java @@ -0,0 +1,247 @@ +package com.yunze.common.utils.yunze; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzCardFlowMapper; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzOrderMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.dao.DuplicateKeyException; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 订单 生成 辅助类 + */ +@Component +@Slf4j +public class PlOrder{ + + @Resource + private YzCardFlowMapper cardFlowMapper; + @Resource + private WriteCSV writeCSV; + @Resource + private YzOrderMapper yzOrderMapper; + @Resource + private BulkUtil bulkUtil; + @Resource + private YzCardMapper yzCardMapper; + + + + public Map orderOpen(Map map){ + Map OrderMap = new HashMap<>(); + //或充值 资费计划信息 + String agent_id = map.get("agent_id").toString(); + Map PacketMap = null; + + String ord_name = "",pay_type = ""; + if(agent_id.equals("100")){ + PacketMap = cardFlowMapper.FindPacket(map); + ord_name = "平台-批量充值"; + pay_type = "s"; + }else{ + PacketMap = cardFlowMapper.FindPacketAgent(map); + ord_name = "企业-批量充值"; + pay_type = "ct"; + } + if(PacketMap!=null) { + String ord_type = "2"; + //添加订单生成参数 + PacketMap.put("validate_type", map.get("validate_type"));//生效类型 + PacketMap.put("ord_type", ord_type);//订单类型 + OrderMap.put("add_parameter", JSON.toJSONString(PacketMap));//加包参数 + OrderMap.put("ord_type", ord_type);//订单类型 用量充值 + OrderMap.put("ord_name", ord_name);//交易名称 用量充值 + OrderMap.put("wx_ord_no", null);//微信订单号 + OrderMap.put("status", "1");//支付状态 支付成功 + OrderMap.put("price", PacketMap.get("packet_price"));//交易金额 + OrderMap.put("account", "0");//交易后金额 + OrderMap.put("pay_type", pay_type);//支付方式 s 平台记录 ct 授信支付 + OrderMap.put("is_profit", "0");//是否需要分润 0否-1是 + OrderMap.put("add_package", "0");//是否已经执行过加包 0否 1 是 + OrderMap.put("show_status", "0");//是否显示交易记录:0否-1显示 + OrderMap.put("packet_id", map.get("packet_id"));//资费计划 ID + OrderMap.put("validate_type", map.get("validate_type"));//生效类型 + OrderMap.put("open_id", null);//openid 微信支付记录操作人 + OrderMap.put("agent_id", agent_id);// 所属记录企业id + OrderMap.put("profit_type", "0");//分润类型 + OrderMap.put("info", null);//备注 + OrderMap.put("cre_type", "sys");//生成方式 系统 sys 人工 ai + + } + return OrderMap; + } + + + + + /** + * 生成订单 + * @param filePath + * @param ReadName + * @param newName + * @param Pmap + * @param User + * @param OrderMap + */ + public void TextAddOrder(List iccidArr, String filePath, String ReadName, String newName, Map Pmap, Map User, Map OrderMap, Map bulkMap, String SaveUrl){ + //1.读取 上传文件 + List> list = new ArrayList<>(); + + List Exlist = new ArrayList();//记录 已生成的订单编号避免重复 + // + for (int i = 0; i < iccidArr.size(); i++) { + Map addMap = new HashMap<>(); + addMap.putAll(OrderMap); + String ord_no = VeDate.getNo(8); + while (true){ + if(!CommonlyUsed.Val_Is_Arr(Exlist,ord_no)){ + Exlist.add(ord_no); + break; + }else{ + ord_no = VeDate.getNo(8); + } + } + addMap.put("ord_no",ord_no); + addMap.put("iccid",iccidArr.get(i)); + list.add(addMap); + } + + if(list!=null && list.size()>0){ + PlusPackageCommon(list,newName,Pmap,User,OrderMap,bulkMap,SaveUrl); + }else{ + log.error( "admin-消费者 上传表格无数据!无需执行充值"); + } + } + + + /** + * 生成订单 + * @param filePath + * @param ReadName + * @param newName + * @param Pmap + * @param User + * @param OrderMap + */ + public void AddOrder(String filePath,String ReadName,String newName,Map Pmap,Map User,Map OrderMap,Map bulkMap,String SaveUrl){ + //1.读取 上传文件 + String path = filePath + ReadName; + ExcelConfig excelConfig = new ExcelConfig(); + String columns[] = {"iccid"}; + + List> list = excelConfig.getExcelListMap(path,columns,OrderMap,"order"); + + + if(list!=null && list.size()>0){ + PlusPackageCommon(list,newName,Pmap,User,OrderMap,bulkMap,SaveUrl); + }else{ + log.error( "admin-消费者 上传表格无数据!无需执行充值"); + } + } + + + /** + * 上传加包公共执行 + * @param list + * @param newName + * @param Pmap + * @param User + * @param OrderMap + * @param bulkMap + * @param SaveUrl + */ + public void PlusPackageCommon (List> list,String newName,Map Pmap,Map User,Map OrderMap,Map bulkMap,String SaveUrl){ + boolean isFailBool = false;//是否有失败的错误数据 + + String create_by = bulkMap.get("auth").toString(); + String Outcolumns[] = {"iccid","操作描述","执行时间","执行结果","执行人"}; + String keys[] = {"iccid","description","time","result","agentName"}; + + //筛选出 iccid 卡号 重复项 + Map getNotRepeatingMap = Different.getNotRepeating(list,"iccid");//获取 筛选不重复的某列值 和 重复的 + list = (List>) getNotRepeatingMap.get("Rlist");//更新 充值数据 + List> Repeatlist = (List>) getNotRepeatingMap.get("Repeatlist"); + if(Repeatlist.size()>0){ + isFailBool = true; + writeCSV.OutCSVObj(Repeatlist,newName,"ICCID重复充值失败!同一ICCID同批次,多次充值不允许!",create_by,"充值失败",Outcolumns,keys); + } + //查询数据库中 匹对iccid 是否存在 + HashMap map = new HashMap<>(); + map.put("order_arrs",list); + map.put("card_arrs",list); + map.put("type","3"); + List iccidarr = yzCardMapper.isExistence(map); + + //新增批量操作详情 + Map bulkDtailsMap = new HashMap<>(); + String b_id = bulkMap.get("id").toString(); + bulkDtailsMap.put("b_id",b_id); + bulkDtailsMap.put("bus_arrs",list); + bulkUtil.Dadd(bulkDtailsMap); + + //1.判断 充值卡号是否都在库里 + if(iccidarr.size()>0){ + //库中查询出卡号与上传卡号数量 不一致 说明有卡号不在数据库中 + if(!(iccidarr.size()==list.size())){ + //上传数据>数据库查询 赛选出 + List list1 = new ArrayList<>(); + for (int i = 0; i getNotRepeatingMap_DB = Different.getNotRepeating(list,iccidarr,"iccid");//获取 筛选不重复的某列值 和 重复的 + list = (List>) getNotRepeatingMap_DB.get("Rlist");//更新 充值数据 + List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 充值数据 + //找出与数据库已存在 相同 ICCID 去除 重复 iccid + if(Out_list_Different.size()>0){ + bulkUtil.DupdateArr(b_id,Out_list_Different,VeDate.getStringDate(),"2","iccid卡号未找到!操作取消!"); + + } + } + map.put("order_arrs",list);//更新 list + map.put("create_by",create_by); + try { + if(list.size()>0){ + int sInt = yzOrderMapper.importOrder(map); + if(sInt>0){ + bulkUtil.DupdateArr(b_id,list,VeDate.getStringDate(),"1",""); + + } + } + }catch (DuplicateKeyException e){ + bulkUtil.DupdateArr(b_id,list,VeDate.getStringDate(),"2","充值失败"); + log.error(">> order-消费者- 上传excel异常 [插入数据 DuplicateKeyException ] :{}<<", e.getMessage()); + }catch (Exception e){ + bulkUtil.DupdateArr(b_id,list,VeDate.getStringDate(),"2","充值失败"); + log.error(">>order-消费者- 批量充值消费者:{}<<", e.getMessage().toString()); + } + }else{ + isFailBool = true; + bulkUtil.DupdateArr(b_id,list,VeDate.getStringDate(),"2","iccid卡号未找到!操作取消!"); + //上传卡号不在数据库中 + //writeCSV.OutCSVObj(list,newName,"充值iccid卡号平台中未找到!充值取消!",create_by,"充值失败",Outcolumns,keys); + } + bulkMap.put("state_id","1");//状态 完成 1 + bulkMap.put("end_time", VeDate.getStringDate());//赋值 结束时间 + if(isFailBool){ + if(SaveUrl.length()>0){ + SaveUrl += ",/getcsv/"+newName+".csv"; + }else{ + SaveUrl += "/getcsv/"+newName+".csv"; + } + bulkMap.put("url", SaveUrl);//url 存储上传文件 原始地址 + } + bulkUtil.update(bulkMap);//消费者进入变更执行状态 执行中 + + } + + + +} diff --git a/yunze-common/src/main/java/com/yunze/common/utils/yunze/Result.java b/yunze-common/src/main/java/com/yunze/common/utils/yunze/Result.java index b31c2ae..27bcd8d 100644 --- a/yunze-common/src/main/java/com/yunze/common/utils/yunze/Result.java +++ b/yunze-common/src/main/java/com/yunze/common/utils/yunze/Result.java @@ -6,7 +6,7 @@ package com.yunze.common.utils.yunze; * @title: Response * @projectName yunze * @description: TODO - * @date 2020/10/23 00239:54 + * @date 2021/10/23 00239:54 */ public class Result { diff --git a/yunze-common/src/main/java/com/yunze/common/utils/yunze/VeDate.java b/yunze-common/src/main/java/com/yunze/common/utils/yunze/VeDate.java index c7bb6e7..4999fc9 100644 --- a/yunze-common/src/main/java/com/yunze/common/utils/yunze/VeDate.java +++ b/yunze-common/src/main/java/com/yunze/common/utils/yunze/VeDate.java @@ -809,7 +809,34 @@ public static String getLastDayOfMonth(int year,int month) return null; } + /** + * @param datestr ⽇期字符串 + * @param day 相对天数,为正数表⽰之后,为负数表⽰之前 + * @return 指定⽇期字符串n天之前或者之后的⽇期 + */ + public static String getBeforeAfterDate(String datestr, int day) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Date olddate = null; + try { + df.setLenient(false); + olddate = new Date(df.parse(datestr).getTime()); + } catch (ParseException e) { + throw new RuntimeException("⽇期转换错误"); + } + Calendar cal = new GregorianCalendar(); + cal.setTime(olddate); + int Year = cal.get(Calendar.YEAR); + int Month = cal.get(Calendar.MONTH); + int Day = cal.get(Calendar.DAY_OF_MONTH); + int NewDay = Day + day; + cal.set(Calendar.YEAR, Year); + cal.set(Calendar.MONTH, Month); + cal.set(Calendar.DAY_OF_MONTH, NewDay); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String lastDayOfMonth = sdf.format(cal.getTime()); + return lastDayOfMonth; + } /** diff --git a/yunze-common/src/main/resources/mapper/quartz/backup/BackupMapper.xml b/yunze-common/src/main/resources/mapper/quartz/backup/BackupMapper.xml deleted file mode 100644 index fe8856b..0000000 --- a/yunze-common/src/main/resources/mapper/quartz/backup/BackupMapper.xml +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzAgentPackagetMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzAgentPackagetMapper.xml index 1ea0123..d8dab71 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/YzAgentPackagetMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzAgentPackagetMapper.xml @@ -193,4 +193,25 @@ + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzAgentPacketMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzAgentPacketMapper.xml index f591fe9..841f7be 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/YzAgentPacketMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzAgentPacketMapper.xml @@ -480,4 +480,151 @@ + + + + + + + + + + + + + + + + + UPDATE yz_agent_packet + + card_count =#{card_count} + + + packet_id =#{packet_id} + and dept_id = #{dept_id} + + + + + + + + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardBriefMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardBriefMapper.xml new file mode 100644 index 0000000..18ed1f8 --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardBriefMapper.xml @@ -0,0 +1,82 @@ + + + + + + + INSERT INTO + yz_card_brief + ( + vid, + msisdn, + iccid + )value + + ( + #{cardArr.vid}, + #{cardArr.msisdn}, + #{cardArr.iccid} + ) + + + + + + UPDATE + yz_card_brief + + msisdn = #{msisdn}, + iccid = #{iccid}, + + + + + + msisdn = #{msisdn} + + + iccid = #{iccid} + + + vid = #{vid} + + + + vid = #{vid} + + + + + + + + a.iccid not in (SELECT iccid FROM yz_card_brief WHERE iccid = a.iccid) + + + + + + + + + + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardFlowMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardFlowMapper.xml index c846f3d..4f18982 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardFlowMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardFlowMapper.xml @@ -178,7 +178,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" packet_id as dictValue, packet_wx_name as dictLabel, package_id, - packet_valid_type + wechat_pay, + balance_pay, + packet_valid_type, + packet_cost, + in_stock, + packet_flow, + packet_valid_name, + packet_valid_time, + packet_price, + is_month FROM yz_card_packet @@ -189,7 +198,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" packet_id as dictValue, packet_wx_name as dictLabel, package_id, - packet_valid_type + wechat_pay, + balance_pay, + packet_valid_type, + packet_cost, + in_stock, + packet_flow, + packet_valid_name, + packet_valid_time, + packet_price, + is_month FROM yz_agent_packet @@ -669,6 +687,69 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + DELETE from yz_card_flow + + ord_no IN + + #{delOrd} + + + + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardInfoChangeMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardInfoChangeMapper.xml index 5570090..c7722d3 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardInfoChangeMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardInfoChangeMapper.xml @@ -68,6 +68,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + DELETE FROM yz_card_info_change + + createTime #{delTime} + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardMapper.xml index af8bc4c..c030ca4 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardMapper.xml @@ -84,28 +84,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and del_flag = #{del_flag} - + + + and - - vid - - - msisdn - - - iccid - - - imsi - - IN - - - #{UpArr.cardNumber} - - + iccid IN + + #{outCardIccidArr} + + + and + iccid IN + + #{toBRIccidArr} + + and @@ -188,6 +183,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" BETWEEN #{StartValue} AND #{EndValue} + + + and + + vid + + + msisdn + + + SUBSTRING(iccid,1,19) + + + imsi + + IN + + + #{UpArr.cardNumber} + + + + + + @@ -229,6 +249,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" BETWEEN #{StartValue} AND #{EndValue} + + + and + + vid + + + msisdn + + + iccid + + + imsi + + IN + + + #{UpArr.cardNumber} + + + + @@ -241,7 +284,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" msisdn, iccid, imsi, - open_date, + imei, + DATE_FORMAT( open_date, '%Y-%m-%d' ) as 'open_date', activate_date, agent_id, channel_id, @@ -252,6 +296,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" status_ShowId, package_id, used, + remaining, customize_grouping, DATE_FORMAT( deliver_date, "%Y-%m-%d" ) AS deliver_date, DATE_FORMAT( due_expire_time, "%Y-%m-%d" ) AS due_expire_time @@ -261,6 +306,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" del_flag, connection_status, is_Disconnected, + is_NetworkBreak, is_polling FROM @@ -359,6 +405,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" customize_grouping, remind_ratio, is_Disconnected, + is_NetworkBreak, connection_status, DATE_FORMAT( deliver_date, "%Y-%m-%d" ) AS deliver_date, DATE_FORMAT( due_expire_time, "%Y-%m-%d" ) AS due_expire_time, @@ -392,6 +439,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" customize_grouping, remind_ratio, is_Disconnected, + is_NetworkBreak, connection_status, DATE_FORMAT( deliver_date, "%Y-%m-%d" ) AS deliver_date, DATE_FORMAT( due_expire_time, "%Y-%m-%d" ) AS due_expire_time, @@ -432,7 +480,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.msisdn, a.iccid, a.imsi, - a.open_date, + DATE_FORMAT( a.open_date, '%Y-%m-%d' ) as 'open_date', a.activate_date, a.agent_id, a.channel_id, @@ -467,6 +515,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.connection_status, a.customize_grouping, a.is_Disconnected, + a.is_NetworkBreak, a.is_polling FROM yz_card_info a, @@ -491,7 +540,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.msisdn, a.iccid, a.imsi, - a.open_date, + DATE_FORMAT( a.open_date, '%Y-%m-%d' ) as 'open_date', a.activate_date, a.agent_id, a.channel_id, @@ -521,7 +570,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.sms_number, a.gprs, a.out_of_stock, - a.is_polling + a.is_polling, + a.customize_grouping FROM yz_card_info a, sys_dept b @@ -724,12 +774,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.status_ShowId as 'Sel_status_ShowId', a.connection_status as 'Sel_connection_status', b.cd_control_type, - a.network_type + a.network_type, + b.sms_host, + b.sms_port, + b.sms_source_addr, + b.sms_shared_secret, + b.sms_code, + a.sms_number, + b.sms_src_TerminalId FROM yz_card_info a, yz_card_route b a.channel_id = b.cd_id + + and LENGTH(trim( b.sms_code )) ]]> 1 + and a.iccid in @@ -745,6 +805,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{card_arrs.imsi} + + + ORDER BY a.channel_id @@ -802,7 +865,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" channel_id = #{channel_id} - and ISNULL(activate_date) = 1 + and LENGTH(trim( activate_date )) 1 and ISNULL(used) = 0 @@ -817,7 +880,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and deliver_date - and ISNULL(deliver_date) = 1 + and LENGTH(trim( deliver_date )) 1 + + + and status_ShowId in + + #{status_ShowIdArr} + and is_polling = 1 @@ -875,6 +944,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" card_no + + + @@ -889,7 +978,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{Arr.iccid} - and ISNULL(activate_date)=1 + and LENGTH(trim( activate_date )) 1 + @@ -937,11 +1027,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update yz_card_info - activate_date = #{activate_date}, - syn_Time =now() - - ,open_date = #{open_date} + + activate_date = #{activate_date}, + + open_date = #{open_date}, + + syn_Time =now() iccid =#{iccid} @@ -1032,7 +1124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" yz_card_info - + + select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark + from sys_dict_data + + status = '0' and dict_type = #{dictType} + + order by dict_sort asc + + + + + + + + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardPackagetMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardPackagetMapper.xml index 9d58c9b..d3d6d3e 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardPackagetMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardPackagetMapper.xml @@ -217,4 +217,42 @@ + + + + + + UPDATE yz_agent_packet + + card_count =#{card_count}, + amount_count =#{amount_count}, + use_amount =#{use_amount}, + surplus =#{surplus}, + use_percentage =#{use_percentage} + + + packet_id =#{packet_id} + AND dept_id =#{dept_id} + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardPacketMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardPacketMapper.xml index 66d75ff..970e090 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardPacketMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzCardPacketMapper.xml @@ -96,7 +96,8 @@ a.packet_valid_type, a.dept_id, a.user_id, - a.packet_valid_name + a.packet_valid_name, + a.card_count FROM yz_card_packet a LEFT JOIN sys_dept d ON a.dept_id = d.dept_id @@ -139,7 +140,8 @@ a.packet_valid_type, a.dept_id, a.user_id, - a.packet_valid_name + a.packet_valid_name, + a.card_count FROM yz_card_packet a LEFT JOIN sys_dept d ON a.dept_id = d.dept_id @@ -378,6 +380,209 @@ GROUP BY a.id + + + + + + + + + + + + + + UPDATE yz_card_packet + + card_count =#{card_count}, + amount_count =#{amount_count}, + use_amount =#{use_amount}, + surplus =#{surplus}, + use_percentage =#{use_percentage} + + + packet_id =#{packet_id} + + + + + + + + + + + + + + + + + + UPDATE yz_card_packet + + card_count =#{card_count} + + + packet_id =#{packet_id} + + + + + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzExecutionTaskMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzExecutionTaskMapper.xml index 4ad520f..910aae7 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/YzExecutionTaskMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzExecutionTaskMapper.xml @@ -156,5 +156,27 @@ + + + + + + DELETE FROM yz_execution_task + where id in + + #{idArr} + + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzOrderMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzOrderMapper.xml index 31ad4e7..7d0ff7a 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/YzOrderMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzOrderMapper.xml @@ -36,8 +36,8 @@ and a.ord_type = #{ord_type} - - and a.packet_id = #{packet_id} + + and a.packet_id = #{packet_idSig} and a.pay_type = #{pay_type} @@ -83,6 +83,26 @@ and a.del_flag =#{del_flag} + + + and + + a.ord_no + + + a.iccid + + + a.wx_ord_no + + IN + + + #{UpArrList.cardNumberAge} + + + + @@ -100,6 +120,7 @@ @@ -201,10 +225,70 @@ + + + UPDATE yz_order + + add_package = 1, + add_package_time = now() + + + id in + + #{UpdaArr} + + + + + + - update yz_order add_package = 1 @@ -226,15 +310,17 @@ - update yz_card_info - activate_date = #{activate_date} - - ,open_date = #{open_date} + + activate_date = #{activate_date}, + + open_date = #{open_date}, + + syn_Time =now() iccid =#{iccid} @@ -352,6 +438,8 @@ FROM yz_order a + ORDER BY + a.create_time DESC @@ -408,6 +497,182 @@ + + + + + + + + + UPDATE + yz_order + + status ='2' + + + ord_no IN + + #{ordNoID} + + + + + + + DELETE from yz_order + + ord_no IN + + #{delFlo} + + + + + + + update + yz_order + + add_package = 0 + + + info LIKE '未找到加%' and add_package = '1' + + + + + + + + + + + + + diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzPassagewayPollingMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzPassagewayPollingMapper.xml index 361f23d..3b6175b 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/YzPassagewayPollingMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzPassagewayPollingMapper.xml @@ -47,7 +47,13 @@ cd_current, polling_id, syn_date, - polling_type + polling_type, + sms_host, + sms_port, + sms_source_addr, + sms_shared_secret, + sms_code, + sms_src_TerminalId FROM yz_passageway_polling diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzSysLogsMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzSysLogsMapper.xml index f121ee6..70062f2 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/YzSysLogsMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzSysLogsMapper.xml @@ -88,6 +88,29 @@ WHERE id = #{id} + + + delete from yz_sys_logs + where + DATE_FORMAT( create_time , '%Y-%m-%d' ) #{delTime} + + + + + delete from sys_job_log + where + DATE_FORMAT( create_time , '%Y-%m-%d' ) #{delTime} + + + + + delete from sys_oper_log + where + DATE_FORMAT( oper_time , '%Y-%m-%d' ) #{delTime} + + + + diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/YzUserMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/YzUserMapper.xml index 6e2efe8..f828622 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/YzUserMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/YzUserMapper.xml @@ -23,6 +23,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" u.del_flag = '0' + + and d.dept_name like CONCAT( '%',#{value}, '%') + and u.nick_name like CONCAT( '%',#{value}, '%') @@ -32,6 +35,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and u.phonenumber like CONCAT( '%',#{value}, '%') + + and d.dname like CONCAT( '%',#{value}, '%') + + + and d.dept_id =#{value} + AND u.status = #{status} @@ -164,6 +173,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + update sys_dept + + deposit_amount = #{deposit_amount}, + update_time = sysdate() + + + dept_id = #{dept_id} + + + + update sys_dept @@ -197,6 +220,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzBulkBusinessDtailsMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzBulkBusinessDtailsMapper.xml new file mode 100644 index 0000000..66c71e3 --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzBulkBusinessDtailsMapper.xml @@ -0,0 +1,201 @@ + + + + + + + + + INSERT INTO yz_bulk_business_dtails + ( + b_id, + card_number, + create_time, + update_time, + state_id + ) + value + + ( + #{b_id}, + #{bus_arrs.iccid}, + now(), + now(), + 0 + ) + + + + + + UPDATE + yz_bulk_business_dtails + + update_time = now(), + + end_time = #{end_time}, + + + mydescribe = #{mydescribe}, + + + url = #{url}, + + + state_id = #{state_id}, + + + + b_id = #{b_id} + and card_number =#{card_number} + + + + + + + UPDATE + yz_bulk_business_dtails + + update_time = now(), + + end_time = #{end_time}, + + + mydescribe = #{mydescribe}, + + + url = #{url}, + + + state_id = #{state_id}, + + + + b_id = #{b_id} + and card_number in + + #{bus_arrs.iccid} + + + + + + + + + + + + and card_number LIKE CONCAT(#{value},'%') + + + and mydescribe LIKE CONCAT(#{value},'%') + + + + and state_id =#{state_id} + + + AND + + DATE_FORMAT( create_time , '%Y-%m-%d' ) + + BETWEEN #{staTime} AND #{endTime} + + + + + + + + + + + + b_id =#{b_id} + + + AND state_id = 1 + + + AND state_id = 2 + + + AND state_id = 0 + + + + and b_id in + + #{bIdArr} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzBulkBusinessMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzBulkBusinessMapper.xml new file mode 100644 index 0000000..cd722f0 --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzBulkBusinessMapper.xml @@ -0,0 +1,138 @@ + + + + + + + + + + INSERT INTO yz_bulk_business + ( + code, + create_time, + update_time, + task_name, + auth, + agent_id, + type, + state_id + ) + value ( + #{code}, + now(), + now(), + #{task_name}, + #{auth}, + #{agent_id}, + #{type}, + '2' + ) + + + + + UPDATE + yz_bulk_business + + update_time = now(), + + start_time = #{start_time}, + + + end_time = #{end_time}, + + + url = #{url}, + + + state_id = #{state_id}, + + + + id = #{id} + + + + + + + + + + and task_name LIKE CONCAT(#{value},'%') + + + and code LIKE CONCAT(#{value},'%') + + + and auth LIKE CONCAT(#{value},'%') + + + + and type =#{type} + + + and state_id =#{state_id} + + + and agent_id =#{agent_id} + + + AND + + DATE_FORMAT( create_time , '%Y-%m-%d' ) + + BETWEEN #{staTime} AND #{endTime} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzBusiCardSmsMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzBusiCardSmsMapper.xml new file mode 100644 index 0000000..70e54e0 --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzBusiCardSmsMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + INSERT INTO yz_busi_card_sms + ( + msgid, + msisdn, + content, + state_id, + type, + create_date, + del_flag, + sms_src_TerminalId + ) + value ( + #{msgid}, + #{msisdn}, + , + #{state_id}, + #{type}, + now(), + 0, + #{sms_src_TerminalId} + ) + + + + + + + + + + + + and sms_src_TerminalId = #{value} + + + and msgid LIKE CONCAT(#{value},'%') + + + and msisdn LIKE CONCAT(#{value},'%') + + + and content LIKE CONCAT('%',#{value},'%') + + + + and type =#{type} + + + and state_id =#{state_id} + + + and del_flag =#{del_flag} + + + AND + + DATE_FORMAT( create_date , '%Y-%m-%d' ) + + BETWEEN #{staTime} AND #{endTime} + + + + + + + + + + + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzSmSBulkBusinessDtailsMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzSmSBulkBusinessDtailsMapper.xml new file mode 100644 index 0000000..f5d0ce1 --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzSmSBulkBusinessDtailsMapper.xml @@ -0,0 +1,252 @@ + + + + + + + + + INSERT INTO yz_sms_bulk_business_dtails + ( + b_id, + card_number, + create_time, + update_time, + state_id, + message, + send_number + ) + value + + ( + #{b_id}, + #{bus_arrs.iccid}, + now(), + now(), + 0, + + + + + '' + + + ,#{bus_arrs.send_number} + + + ,'' + + ) + + + + + + UPDATE + yz_sms_bulk_business_dtails + + update_time = now(), + + end_time = #{end_time}, + + + mydescribe = #{mydescribe}, + + + state_id = #{state_id}, + + + send_number = #{send_number}, + + + result = #{result}, + + + msgId = #{msgId}, + + + + b_id = #{b_id} + and card_number =#{card_number} + + + + + + + + + + + + UPDATE + yz_sms_bulk_business_dtails + + update_time = now(), + + end_time = #{end_time}, + + + mydescribe = #{mydescribe}, + + + url = #{url}, + + + state_id = #{state_id}, + + + result = #{result}, + + + msgId = #{msgId}, + + + + b_id = #{b_id} + and card_number in + + #{bus_arrs.iccid} + + + + + + + + + + + + and card_number LIKE CONCAT(#{value},'%') + + + and mydescribe LIKE CONCAT(#{value},'%') + + + + and state_id =#{state_id} + + + AND + + DATE_FORMAT( create_time , '%Y-%m-%d' ) + + BETWEEN #{staTime} AND #{endTime} + + + + + + + + + + + + b_id =#{b_id} + + + AND state_id = 1 + + + AND state_id = 2 + + + AND state_id = 0 + + + + and b_id in + + #{bIdArr} + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzSmSBulkBusinessMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzSmSBulkBusinessMapper.xml new file mode 100644 index 0000000..28c5668 --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/bulk/YzSmSBulkBusinessMapper.xml @@ -0,0 +1,176 @@ + + + + + + + + + + INSERT INTO yz_sms_bulk_business + ( + code, + create_time, + update_time, + task_name, + auth, + agent_id, + type, + state_id, + message + ) + value ( + #{code}, + now(), + now(), + #{task_name}, + #{auth}, + #{agent_id}, + #{type}, + '2', + + + ) + + + + + UPDATE + yz_sms_bulk_business + + update_time = now(), + + start_time = #{start_time}, + + + end_time = #{end_time}, + + + url = #{url}, + + + state_id = #{state_id}, + + + + id = #{id} + + + + + + + + + + + + + + and task_name LIKE CONCAT('%',#{value},'%') + + + and code LIKE CONCAT('%',#{value},'%') + + + and auth LIKE CONCAT('%',#{value},'%') + + + and message LIKE CONCAT('%',#{value},'%') + + + + and type =#{type} + + + and state_id =#{state_id} + + + and agent_id =#{agent_id} + + + AND + + DATE_FORMAT( create_time , '%Y-%m-%d' ) + + BETWEEN #{staTime} AND #{endTime} + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzApplicationforRenewalMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzApplicationforRenewalMapper.xml new file mode 100644 index 0000000..3f6940e --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzApplicationforRenewalMapper.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + insert into + yz_applicationfor_renewal + ( + p_id, + dept_id, + create_time, + update_time, + packet_info, + card_count, + packet_wx_name, + packet_price, + packet_flow, + packet_cost, + packet_valid_time, + packet_valid_name, + generate_tariff_orders, + packet_id + ) + values + ( + #{p_id}, + #{dept_id}, + now(), + now(), + #{packet_info}, + #{card_count}, + #{packet_wx_name}, + #{packet_price}, + #{packet_flow}, + #{packet_cost}, + #{packet_valid_time}, + #{packet_valid_name}, + 0, + #{packet_id} + ) + + + + update + yz_applicationfor_renewal + + + generate_tariff_orders = #{generate_tariff_orders}, + + update_time = now() + + + p_id = #{p_id} + and packet_id = #{packet_id} + + + + + + delete from yz_applicationfor_renewal + + p_id = #{p_id} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzApplicationforRenewalPrimaryIccidMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzApplicationforRenewalPrimaryIccidMapper.xml new file mode 100644 index 0000000..47090ec --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzApplicationforRenewalPrimaryIccidMapper.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + insert into + yz_applicationfor_renewal_iccid + ( + iccid, + b_id + ) + values + + ( + #{cardArrs.iccid}, + #{b_id} + ) + + + + + delete from yz_applicationfor_renewal_iccid + + b_id = #{b_id} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzApplicationforRenewalPrimaryMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzApplicationforRenewalPrimaryMapper.xml new file mode 100644 index 0000000..77c66e3 --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzApplicationforRenewalPrimaryMapper.xml @@ -0,0 +1,242 @@ + + + + + + + + + and a.info LIKE CONCAT('%',#{value},'%') + + + and a.id = #{value} + + + + + AND + + DATE_FORMAT( a.create_time , '%Y-%m-%d %H:%i:%S' ) + + + DATE_FORMAT( a.review_time , '%Y-%m-%d %H:%i:%S' ) + + + DATE_FORMAT( a.update_time , '%Y-%m-%d %H:%i:%S' ) + + BETWEEN #{staTime} AND #{endTime} + + + + and a.is_send = #{is_send} + + + and a.id = #{id} + + + and a.status = #{status} + + + and a.dept_id in + + #{agent_id} + + + + + + + + + + + + insert into + yz_applicationfor_renewal_primary + ( + dept_id, + create_time, + `status`, + info, + annotation, + feedback, + user_id, + update_time, + is_send, + card_sumCount, + amount + ) + values + ( + #{dept_id}, + now(), + 0, + #{info}, + #{annotation}, + #{feedback}, + #{user_id}, + now(), + 1, + #{card_sumCount}, + #{amount} + ) + + + + update + yz_applicationfor_renewal_primary + + + status = #{status}, + review_time = now(), + + + info = #{info}, + + + annotation = #{annotation}, + + + feedback = #{feedback}, + + + is_send = #{is_send}, + + update_time = now() + + + id = #{id} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzApplicationforRenewalPrimaryOrdNoMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzApplicationforRenewalPrimaryOrdNoMapper.xml new file mode 100644 index 0000000..0232898 --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzApplicationforRenewalPrimaryOrdNoMapper.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + insert into + yz_applicationfor_renewal_ordno + ( + ord_no, + p_id + ) + values + + ( + #{OrdArrs}, + #{p_id} + ) + + + + + delete from yz_applicationfor_renewal_ordno + + p_id = #{p_id} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzCardDueSoonMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzCardDueSoonMapper.xml new file mode 100644 index 0000000..631525e --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/card/YzCardDueSoonMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/commodity/YzWxByProductAgentMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/commodity/YzWxByProductAgentMapper.xml index f76a4a8..1b8800a 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/commodity/YzWxByProductAgentMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/commodity/YzWxByProductAgentMapper.xml @@ -71,5 +71,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" delete from yz_wx_by_product_agent + + \ No newline at end of file diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/PollingMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/polling/PollingMapper.xml similarity index 82% rename from yunze-common/src/main/resources/mapper/quartz/yunze/PollingMapper.xml rename to yunze-common/src/main/resources/mapper/quartz/yunze/polling/PollingMapper.xml index b3b89c3..292f414 100644 --- a/yunze-common/src/main/resources/mapper/quartz/yunze/PollingMapper.xml +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/polling/PollingMapper.xml @@ -2,7 +2,7 @@ - + @@ -14,13 +14,13 @@ AND - DATE_FORMAT( create_date , '%Y-%m-%d %H:%i:%S' ) + DATE_FORMAT( create_date , '%Y-%m-%d' ) - DATE_FORMAT( upd_date , '%Y-%m-%d %H:%i:%S' ) + DATE_FORMAT( upd_date , '%Y-%m-%d' ) - DATE_FORMAT( syn_date , '%Y-%m-%d %H:%i:%S' ) + DATE_FORMAT( syn_date , '%Y-%m-%d' ) BETWEEN #{staTime} AND #{endTime} @@ -67,6 +67,12 @@ + + delete from yz_passageway_polling + + DATE_FORMAT( create_date , '%Y-%m-%d' ) #{delTime} + + diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/polling/YzCardPollingErrorGroupMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/polling/YzCardPollingErrorGroupMapper.xml new file mode 100644 index 0000000..f6b18fe --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/polling/YzCardPollingErrorGroupMapper.xml @@ -0,0 +1,222 @@ + + + + + + insert into + yz_card_polling_error_group + ( + codeOn, + message, + cd_code, + create_date, + upd_date, + is_notice, + ct_sum + ) + value + + ( + #{msg_arrs.codeOn}, + #{msg_arrs.message}, + #{msg_arrs.cd_code}, + now(), + now(), + 1, + #{msg_arrs.ct_sum} + ) + + + + + + + + + + + + + + + + + + + + + + + DELETE from yz_card_polling_error_group + + id in + + #{DeleArr} + + + + + + + UPDATE yz_card_polling_error_group + + is_notice =#{is_notice}, + upd_date = now() + + + id in + + #{UpdaArr} + + + + + + + + update yz_card_polling_error_group + + is_notice = #{is_notice}, + upd_date = now() + + + id = #{id} + + + + + + + update yz_card_polling_error_group + + message = #{message}, + cd_code = #{cd_code}, + upd_date = now(), + ct_sum = #{ct_sum} + + + id = #{id} + + + + + + + delete from yz_card_polling_error_group id =#{id} + + + + + + + + + + + + + is_notice = #{is_notice} + + + and DATE_FORMAT( upd_date, '%Y-%m-%d' ) = CURDATE() + + + and cd_code =#{cd_code} + + + AND + + DATE_FORMAT( create_date , '%Y-%m-%d' ) + + + DATE_FORMAT( upd_date , '%Y-%m-%d' ) + + BETWEEN #{staTime} AND #{endTime} + + + + and codeOn LIKE CONCAT(#{value},'%') + + + and message LIKE CONCAT(#{value},'%') + + + + + + + + delete from yz_card_polling_error_group + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-common/src/main/resources/mapper/quartz/yunze/polling/YzCardPollingErrorMapper.xml b/yunze-common/src/main/resources/mapper/quartz/yunze/polling/YzCardPollingErrorMapper.xml new file mode 100644 index 0000000..17eddb0 --- /dev/null +++ b/yunze-common/src/main/resources/mapper/quartz/yunze/polling/YzCardPollingErrorMapper.xml @@ -0,0 +1,273 @@ + + + + + + + + insert into + yz_card_polling_error + ( + iccid, + codeOn, + message, + cd_code, + create_date, + upd_date, + is_notice, + rt_map + ) + value + ( + #{iccid}, + #{codeOn}, + #{message}, + #{cd_code}, + now(), + now(), + 1, + #{rt_map} + ) + + + + + + + DELETE from yz_card_polling_error + + id in + + #{DeleArr} + + + + + + + UPDATE yz_card_polling_error + + is_notice =#{is_notice}, + upd_date = now() + + + id in + + #{UpdaArr} + + + + + + + + update yz_card_polling_error + + is_notice =#{is_notice}, + upd_date = now() + + + id =#{id} + + + + + + + + update yz_card_polling_error + + message = #{message}, + cd_code = #{cd_code}, + rt_map = #{rt_map}, + upd_date = now() + + + id = #{id} + + + + + + + + delete from yz_card_polling_error + id =#{id} + + + + + + + + + + + + + + + + is_notice = #{is_notice} + + + and DATE_FORMAT( upd_date, '%Y-%m-%d' ) = CURDATE() + + + and cd_code =#{cd_code} + + + AND + + DATE_FORMAT( create_date , '%Y-%m-%d' ) + + + DATE_FORMAT( upd_date , '%Y-%m-%d' ) + + BETWEEN #{staTime} AND #{endTime} + + + + and iccid LIKE CONCAT(#{value},'%') + + + and codeOn LIKE CONCAT(#{value},'%') + + + and message LIKE CONCAT(#{value},'%') + + + + + + + + + + + + delete from yz_card_polling_error + where + DATE_FORMAT( create_date , '%Y-%m-%d' ) #{delTime} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-common/yunze-common.iml b/yunze-common/yunze-common.iml index 97d1f60..0c61b1e 100644 --- a/yunze-common/yunze-common.iml +++ b/yunze-common/yunze-common.iml @@ -15,6 +15,13 @@ + + + + + + + @@ -102,11 +109,10 @@ - - - + + diff --git a/yunze-consumption-admin/cAdmin.iml b/yunze-consumption-admin/cAdmin.iml index 15a7f67..89d0d8b 100644 --- a/yunze-consumption-admin/cAdmin.iml +++ b/yunze-consumption-admin/cAdmin.iml @@ -1,9 +1,6 @@ - - - @@ -13,6 +10,9 @@ + + + @@ -69,6 +69,13 @@ + + + + + + + @@ -130,8 +137,7 @@ - - + diff --git a/yunze-consumption-admin/pom.xml b/yunze-consumption-admin/pom.xml index 2ec60cd..7386dcc 100644 --- a/yunze-consumption-admin/pom.xml +++ b/yunze-consumption-admin/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardBriefMQ.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardBriefMQ.java new file mode 100644 index 0000000..8881237 --- /dev/null +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardBriefMQ.java @@ -0,0 +1,54 @@ +package com.yunze.system.card; + +import com.yunze.common.mapper.yunze.YzCardBriefMapper; +import com.yunze.common.utils.yunze.PageUtil; +import com.yunze.common.utils.yunze.VeDate; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class CardBriefMQ { + + @Resource + private YzCardBriefMapper yzCardBriefMapper; + + @RabbitHandler + @RabbitListener(queues = "admin_BatchByBatchAdd_queue") + public void CardAdd() { + + System.out.println("================= admin_BatchByBatchAdd_queue【Start"+ VeDate.getNow() +"】 ================= "); + Map map=new HashMap<>(); + Integer currenPage= 0; + Integer pageSize= 500; + Integer rowCount = yzCardBriefMapper.selMapCount(); + rowCount=rowCount!=null?rowCount:0; + PageUtil pu =new PageUtil(rowCount,currenPage , pageSize);//初始化分页工具类 + + int saveCount = 0; + int StarRow = pu.getStarRow();//开始行数 + for (int i = 0; i < pu.getPageCount(); i++) { //总页数 + //数据打包 + map.put("StarRow", StarRow); + map.put("PageSize", pu.getPageSize()); + List list = yzCardBriefMapper.selList(map); + if(list != null && list.size()>0){ + Map objectMap = new HashMap<>(); + objectMap.put("cardArr",list); + saveCount += yzCardBriefMapper.batchCard(objectMap); + StarRow +=1; + } + + } + System.out.println(); + System.out.println("================= admin_BatchByBatchAdd_queue【End "+ VeDate.getNow() +" 新增卡号 "+saveCount+" 】 ================= "); + + } +} diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardImportSet.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardImportSet.java index 73ff92e..0f6b0ac 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardImportSet.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardImportSet.java @@ -48,7 +48,7 @@ public class CardImportSet { * @param channel * @throws IOException */ - @RabbitHandler + @RabbitHandler @RabbitListener(queues = "admin_CardImportSet_queue") public void CardSet(String msg, Channel channel) throws IOException { try { @@ -114,12 +114,11 @@ public class CardImportSet { public void execution(String filePath,String ReadName,Map Pmap,Map User){ String Message = ""; //1.读取 上传文件 - String path = filePath + "/upload/importSet/" + ReadName; + String path = filePath + ReadName; ExcelConfig excelConfig = new ExcelConfig(); String columns[] = {"iccid"}; - List> list = excelConfig.getExcelListMap(path,columns); Map Dept = (Map)User.get("dept"); String create_by = " [ "+Dept.get("deptName")+" ] - "+" [ "+User.get("userName")+" ] "; @@ -155,6 +154,7 @@ public class CardImportSet { map.put("Is_remind_ratio",Pmap.get("Is_remind_ratio")); map.put("remind_ratio",Pmap.get("remind_ratio")); map.put("is_Disconnected",Pmap.get("is_Disconnected")); + map.put("is_NetworkBreak",Pmap.get("is_NetworkBreak")); map.put("card_arrs",list); map.put("type","3"); List iccidarr = yzCardMapper.isExistence(map); @@ -213,10 +213,4 @@ public class CardImportSet { - - - - - - } diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardInfoReplace.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardInfoReplace.java index f7d5dce..726b3f8 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardInfoReplace.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardInfoReplace.java @@ -3,6 +3,7 @@ package com.yunze.system.card; import com.alibaba.fastjson.JSON; import com.rabbitmq.client.Channel; import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.YzCardBriefMapper; import com.yunze.common.mapper.yunze.YzCardInfoExpandMapper; import com.yunze.common.mapper.yunze.YzCardMapper; import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; @@ -14,7 +15,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -39,9 +39,11 @@ public class CardInfoReplace { private WriteCSV writeCSV; @Resource private YzCardInfoExpandMapper yzCardInfoExpandMapper; + @Resource + private YzCardBriefMapper yzCardBriefMapper; - private String Outcolumns[] = {"vid", "msisdn", "iccid", "imsi", "open_date", "activate_date", "agent_id", "channel_id", "is_pool", "batch_date", "remind_ratio", "deliver_date", "customize_grouping", "remarks", "connection_status", "package_id", "imei", "type", "network_type", "is_sms", "sms_number", "gprs", "user_id", "is_polling", "test_period_last_time", "silent_period_last_time","执行描述","执行人","执行结果"}; - private String keys[] = {"vid", "msisdn", "iccid", "imsi", "open_date", "activate_date", "agent_id", "channel_id", "is_pool", "batch_date", "remind_ratio", "deliver_date", "customize_grouping", "remarks", "connection_status", "package_id", "imei", "type", "network_type", "is_sms", "sms_number", "gprs", "user_id", "is_polling","test_period_last_time", "silent_period_last_time", "message","agentName","result"}; + private String Outcolumns[] = {"vid", "msisdn", "iccid", "imsi", "open_date", "activate_date", "agent_id", "channel_id", "is_pool", "batch_date", "remind_ratio", "deliver_date", "customize_grouping", "remarks", "connection_status", "package_id", "imei", "type", "network_type", "is_sms", "sms_number", "gprs", "user_id", "is_polling", "test_period_last_time", "silent_period_last_time","is_NetworkBreak","执行描述","执行人","执行结果"}; + private String keys[] = {"vid", "msisdn", "iccid", "imsi", "open_date", "activate_date", "agent_id", "channel_id", "is_pool", "batch_date", "remind_ratio", "deliver_date", "customize_grouping", "remarks", "connection_status", "package_id", "imei", "type", "network_type", "is_sms", "sms_number", "gprs", "user_id", "is_polling","test_period_last_time", "silent_period_last_time", "is_NetworkBreak","message","agentName","result"}; private int OutSize = 50;//每 50条数据输出一次 /** @@ -63,12 +65,17 @@ public class CardInfoReplace { Map Pmap = ( Map)map.get("map");//参数 Map User = ( Map)Pmap.get("User");//登录用户信息 + + Map task_map = ( Map)map.get("task_map");//执行任务map + String newName = map.get("newName").toString();// + String UpdBackupName = map.get("UpdBackupName").toString();// + String prefix = "admin_CardImportReplace_queue"; //执行前判断 redis 是否存在 执行数据 存在时 不执行 Object isExecute = redisCache.getCacheObject(prefix+":"+ ReadName); if(isExecute==null){ redisCache.setCacheObject(prefix+":"+ ReadName, msg, 3, TimeUnit.SECONDS);//3 秒缓存 避免 重复消费 - execution(filePath,ReadName,Pmap,User);//执行批量变更卡信息 + execution(filePath,ReadName,Pmap,User,task_map,newName,UpdBackupName);//执行批量变更卡信息 } } catch (Exception e) { log.error(">>错误 - 批量变更卡信息 消费者:{}<<", e.getMessage().toString()); @@ -97,12 +104,17 @@ public class CardInfoReplace { Map Pmap = ( Map)map.get("map");//参数 Map User = ( Map)Pmap.get("User");//登录用户信息 + Map task_map = ( Map)map.get("task_map");//执行任务map + String newName = map.get("newName").toString();// + String UpdBackupName = map.get("UpdBackupName").toString();// + + String prefix = "admin_CardImportReplace_queue"; //执行前判断 redis 是否存在 执行数据 存在时 不执行 Object isExecute = redisCache.getCacheObject(prefix+":"+ ReadName); if(isExecute==null){ redisCache.setCacheObject(prefix+":"+ ReadName, msg, 3, TimeUnit.SECONDS);//3 秒缓存 避免 重复消费 - execution(filePath,ReadName,Pmap,User);//执行批量变更卡信息 + execution(filePath,ReadName,Pmap,User,task_map,newName,UpdBackupName);//执行批量变更卡信息 } } catch (Exception e) { log.error(">>错误 - dlx_ 批量变更卡信息 消费者:{}<<", e.getMessage().toString()); @@ -115,35 +127,23 @@ public class CardInfoReplace { /** * 变更 执行 */ - public void execution(String filePath,String ReadName,Map Pmap,Map User){ + public void execution(String filePath,String ReadName,Map Pmap,Map User,Map task_map,String newName,String UpdBackupName){ String Message = ""; //1.读取 上传文件 - String path = filePath + "/upload/importCardReplace/" + ReadName; + String path = filePath + ReadName; ExcelConfig excelConfig = new ExcelConfig(); - String columns[] = {"vid", "msisdn", "iccid", "imsi", "open_date", "activate_date", "agent_id", "channel_id", "is_pool", "batch_date", "remind_ratio", "deliver_date", "customize_grouping", "remarks", "connection_status", "package_id", "imei", "type", "network_type", "is_sms", "sms_number", "gprs", "user_id", "is_polling", "test_period_last_time", "silent_period_last_time"}; + String columns[] = {"vid", "msisdn", "iccid", "imsi", "open_date", "activate_date", "agent_id", "channel_id", "is_pool", "batch_date", "remind_ratio", "deliver_date", "customize_grouping", "remarks", "connection_status", "package_id", "imei", "type", "network_type", "is_sms", "sms_number", "gprs", "user_id", "is_polling","test_period_last_time", "silent_period_last_time","is_NetworkBreak"}; List> list = excelConfig.getExcelListMap(path,columns); Map Dept = (Map)User.get("dept"); String create_by = " [ "+Dept.get("deptName")+" ] - "+" [ "+User.get("userName")+" ] "; - String newName = UUID.randomUUID().toString().replace("-","")+"_CardInfoReplace"; + String newExpandName = UUID.randomUUID().toString().replace("-","")+"_CardInfoExpandReplace"; - String UpdBackupName = UUID.randomUUID().toString().replace("-","")+"__CardInfoReplaceBackup";//设置分组备注前信息备份名称 String UpdBackupExpandName = UUID.randomUUID().toString().replace("-","")+"__CardInfoReplaceExpandBackup";//设置分组备注前信息备份名称 String deptId = User.get("deptId").toString(); - String task_name = "特殊操作 [批量变更卡信息] "; - String SaveUrl = "/getcsv/"+newName+".csv"; - SaveUrl += ",/getcsv/"+UpdBackupName+".csv"; - - - Map task_map = new HashMap(); - task_map.put("auth",create_by); - task_map.put("task_name",task_name); - task_map.put("url",SaveUrl); - task_map.put("agent_id",User.get("deptId") ); - task_map.put("type", "15"); - - Integer type = Integer.parseInt(Pmap.get("myUpdType").toString()); + String SaveUrl = task_map.get("url").toString(); + Integer type = Integer.parseInt(Pmap.get("myUpdType").toString()); type+=1;// cardNumber 字典装换 +1 String lie = ""; @@ -162,10 +162,6 @@ public class CardInfoReplace { break; } - - - - if(list!=null && list.size()>0) { //筛选出 iccid 卡号 重复项 Map getNotRepeatingMap = Different.getNotRepeating(list,lie);//获取 筛选不重复的某列值 和 重复的 @@ -186,7 +182,6 @@ public class CardInfoReplace { map.put("myUpdType",myUpdType); map.put("type",type); List iccidarr = yzCardMapper.isExistence(map); - yzExecutionTaskMapper.add(task_map);//添加执行 任务表 if (iccidarr != null && iccidarr.size() > 0) { //1.判断 查询卡号是否都在库里 //库中查询出卡号与上传卡号数量 不一致 说明有卡号不在数据库中 @@ -236,11 +231,11 @@ public class CardInfoReplace { if(list.size()>0){ //1.备份 修改前数据 主表 List> BakUpArr = yzCardMapper.findReplaceBk(map); - String Card_Outcolumns[] = {"vid", "msisdn", "iccid", "imsi", "open_date", "activate_date", "agent_id", "channel_id", "is_pool", "batch_date", "remind_ratio", "deliver_date", "customize_grouping","remarks", "connection_status", "package_id", "imei", "type", "network_type", "is_sms", "sms_number", "gprs", "user_id","is_polling", "执行描述","执行人","执行结果"}; - String Card_keys[] = {"vid", "msisdn", "iccid", "imsi", "open_date", "activate_date", "agent_id", "channel_id", "is_pool", "batch_date", "remind_ratio", "deliver_date", "customize_grouping", "remarks", "connection_status", "package_id", "imei", "type", "network_type", "is_sms", "sms_number", "gprs", "user_id","is_polling","message","agentName","result"}; + String Card_Outcolumns[] = {"vid", "msisdn", "iccid", "imsi", "open_date", "activate_date", "agent_id", "channel_id", "is_pool", "batch_date", "remind_ratio", "deliver_date", "customize_grouping","remarks", "connection_status", "package_id", "imei", "type", "network_type", "is_sms", "sms_number", "gprs", "user_id","is_polling","is_NetworkBreak", "执行描述","执行人","执行结果"}; + String Card_keys[] = {"vid", "msisdn", "iccid", "imsi", "open_date", "activate_date", "agent_id", "channel_id", "is_pool", "batch_date", "remind_ratio", "deliver_date", "customize_grouping", "remarks", "connection_status", "package_id", "imei", "type", "network_type", "is_sms", "sms_number", "gprs", "user_id","is_polling","is_NetworkBreak","message","agentName","result"}; if(BakUpArr!=null && BakUpArr.size()>0){ Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","操作前数据备份 操作时间:"+ VeDate.getStringDateSSS()); + defOutcolumns.put("message","操作前数据备份 操作时间:"+ VeDate.getStringDate()); defOutcolumns.put("agentName",create_by); defOutcolumns.put("result","操作成功"); //主表备份导出列 @@ -248,6 +243,7 @@ public class CardInfoReplace { } int updCount = 0; + int updCard = 0; List> outCardArr = new ArrayList<>(); //2.修改主表 for (int i = 0; i < list.size(); i++) { @@ -257,6 +253,7 @@ public class CardInfoReplace { //System.out.println(uObj); uObj.put("myUpdType",myUpdType); updCount += yzCardMapper.updCardReplace(uObj);//同步主表信息 +// updCard += yzCardBriefMapper.batchUpd(uObj); result = "操作成功"; }catch (Exception e){ Msg = e.getMessage(); @@ -324,7 +321,7 @@ public class CardInfoReplace { String cardExpand_keys[] = {"iccid","gprs", "user_id","test_period_last_time","silent_period_last_time","result"}; if(BakUpExpandArr!=null && BakUpExpandArr.size()>0){ Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","操作前数据备份 操作时间:"+ VeDate.getStringDateSSS()); + defOutcolumns.put("message","操作前数据备份 操作时间:"+ VeDate.getStringDate()); defOutcolumns.put("agentName",create_by); defOutcolumns.put("result","操作成功"); //主表备份导出列 diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardSetCardInfo.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardSetCardInfo.java index f3c261d..ebd25da 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardSetCardInfo.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/CardSetCardInfo.java @@ -76,7 +76,7 @@ public class CardSetCardInfo { public void execution(String filePath,String ReadName,Map Pmap,Map User){ String Message = ""; //1.读取 上传文件 - String path = filePath + "/upload/importSetCardInfo/" + ReadName; + String path = filePath + ReadName; ExcelConfig excelConfig = new ExcelConfig(); String columns[] = {"iccid","customize_grouping","remarks","deliver_date"}; List> list = excelConfig.getExcelListMap(path,columns); @@ -169,7 +169,7 @@ public class CardSetCardInfo { List> BakUpArr = yzCardMapper.findGroupingAndRemarks(map); if(BakUpArr!=null && BakUpArr.size()>0){ Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","操作前数据备份 操作时间:"+ VeDate.getStringDateSSS()); + defOutcolumns.put("message","操作前数据备份 操作时间:"+ VeDate.getStringDate()); defOutcolumns.put("agentName",create_by); defOutcolumns.put("result","操作成功"); writeCSV.OutCSVObj(BakUpArr, UpdBackupName,Outcolumns, keys,defOutcolumns,OutSize); @@ -199,7 +199,6 @@ public class CardSetCardInfo { defOutcolumns.put("agentName",create_by); defOutcolumns.put("result","操作失败"); writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); - yzExecutionTaskMapper.set_end_time(task_map);//任务结束 log.error(">> cardSet-消费者- 上传excel异常 [ Exception ] :{}<<", e.getMessage()); } } else { @@ -210,9 +209,12 @@ public class CardSetCardInfo { defOutcolumns.put("result","操作失败"); writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); } + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 }else{ log.error( "admin_importSetCardInfo_queue-消费者 上传表格无数据!无需执行"); } + + } diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/DistributeCard.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/DistributeCard.java index c4e58a0..f166a18 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/DistributeCard.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/DistributeCard.java @@ -83,7 +83,7 @@ public class DistributeCard { String DistributeBackupName = UUID.randomUUID().toString().replace("-","")+"_CardDistributeBackup"; String agent_id = map.get("TaskAgent_id").toString(); - String task_name ="连接管理 [划卡] "; + String task_name ="物联卡管理 [划卡] "; String SaveUrl = "/getcsv/"+newName+".csv"; SaveUrl += ",/getcsv/"+DistributeBackupName+".csv"; Map task_map = new HashMap(); diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ExportAge.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/ExportAge.java new file mode 100644 index 0000000..a06ed21 --- /dev/null +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/ExportAge.java @@ -0,0 +1,117 @@ +package com.yunze.system.card; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.common.mapper.yunze.YzCardFlowMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 客户资费 导出 + * */ +@Slf4j +@Component +public class ExportAge { + + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private WriteCSV writeCSV; + @Resource + private YzCardFlowMapper yzCardFlowMapper; + + + @RabbitHandler + @RabbitListener(queues = "admin_ExportaAge_queue") + public void DbCard(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + //System.out.println(Pmap); + Map map = (Map) Pmap.get("map"); + Map User = (Map) Pmap.get("User"); + List> outCardIccidArr = (List>) Pmap.get("outCardIccidArr"); + String newName = (String) Pmap.get("newName"); + Map task_map = (Map) Pmap.get("task_map"); + + //执行前判断 redis 是否存在 执行数据 存在时 不执行 + OutDataCard( map,User,outCardIccidArr,newName,task_map); + + }catch (Exception e){ + log.error(">>错误 - 客户资费导出 消费者:{}<<", e.getMessage().toString()); + } + + } + + private void OutDataCard(Map map, Map user, List> outCardIccidArr, String newName, Map task_map) { + + Map Dept = (Map) user.get("dept"); + String agent_id = Dept.get("deptId").toString(); + if(agent_id.equals("100")){ + yzCardFlowMapper.queryPackage_simple(map); + }else{ + Map PackageMap = new HashMap(); + PackageMap.put("agent_id",agent_id); + yzCardFlowMapper.queryAgentPackage_simple(PackageMap); + } + map.put("iccid_arrs",outCardIccidArr); + try { + WriteOutCard(outCardIccidArr,newName,task_map); + }catch (Exception e){ + log.error("导出客户资费异常 [导出数据 Exception] "+e.getCause().toString() ); + } + } + + private String WriteOutCard(List> outCardIccidArr, String newName, Map task_map) { + + String Outcolumns[] = {"资费组编号","资费组名称","所属公司","所属人","创建时间","卡总数"}; + String keys[] = {"package_id","package_agentname","dept_name","nick_name","create_time","agent_count"}; + + + writeCSV.Write(newName,outCardIccidArr,Outcolumns,null,keys); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + return "已下发执行日志可在【系统管理】》【日志管理】》【执行日志】查看"; + } + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ExportPacket.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/ExportPacket.java new file mode 100644 index 0000000..1590aad --- /dev/null +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/ExportPacket.java @@ -0,0 +1,134 @@ +package com.yunze.system.card; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 资费计划 导出 + * */ +@Slf4j +@Component +public class ExportPacket { + + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private WriteCSV writeCSV; + + + @RabbitHandler + @RabbitListener(queues = "admin_ExportPacket_queue") + public void ExportPacket(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + /* Map map = (Map) Pmap.get("map"); + Map User = (Map) Pmap.get("User");*/ + List> outDataArr = (List>) Pmap.get("outDataArr"); + + List> customize_whether = (List>) Pmap.get("customize_whether"); + + String newName = (String) Pmap.get("newName"); + Map task_map = (Map) Pmap.get("task_map"); + + //执行前判断 redis 是否存在 执行数据 存在时 不执行 + OutDataCard(outDataArr,newName,task_map,customize_whether); + + }catch (Exception e){ + log.error(">>错误 - 资费计划 消费者:{}<<", e.getMessage().toString()); + } + + } + + private void OutDataCard(List> outDataArr, String newName, Map task_map,List> customize_whether) { + + + List> out_list = new ArrayList>(); + //循环添加单卡数据信息 + for (int i = 0; i < outDataArr.size(); i++) { + Map CarMap = outDataArr.get(i); + + //写入 在售 + CarMap = WriteDic(CarMap,customize_whether,"in_stock","in_stock_value"); + //写入 拆分到账 + CarMap = WriteDic(CarMap,customize_whether,"is_month","is_month_value"); + //写入 可微信支付 + CarMap = WriteDic(CarMap,customize_whether,"wechat_pay","wechat_pay_value"); + //删除导出不需要的字段 + CarMap.remove("packet_valid_type"); + CarMap.remove("wechat_pay"); + CarMap.remove("in_stock"); + CarMap.remove("is_month"); + out_list.add(CarMap); + } + + + try { + WriteOutCard(out_list,newName,task_map); + }catch (Exception e){ + log.error("导出资费计划异常 [导出数据 Exception] "+e.getCause().toString() ); + } + } + + private void WriteOutCard(List> out_list, String newName, Map task_map) { + + String Outcolumns[] = {"资费组编号","资费组名称","资费组别称", "资费计划编号","资费计划名称","资费计划别称","售价","成本","可微信支付","规格","规格类型","在售","拆分到账", "卡总数", "所属公司","所属人","创建时间"}; + String keys[] = {"package_id","package_name","package_agentname", "packet_id","packet_name","packet_wx_name","packet_price","packet_cost","wechat_pay_value","packet_valid_time","packet_valid_name","in_stock_value","is_month_value","card_count", "dept_name","nick_name","create_time"}; + + + writeCSV.Write(newName,out_list,Outcolumns,null,keys); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + + } + + + + /** + * 字典获取 + * @param CarMap 写入Map + * @param DictDataArr 字典 list + * @param basis 获取依据 字段 与 dictValue 判断 + * @param fieldName 返回字段名称 + * @return + */ + public Map WriteDic (Map CarMap,List> DictDataArr,String basis,String fieldName){ + + Map Rmap = new HashMap(); + String status_id = CarMap.get(basis)!=null?CarMap.get(basis).toString():null; + boolean bool = false; + if(status_id!=null){ + for (int i = 0; i < DictDataArr.size(); i++) { + Map dictData = DictDataArr.get(i); + String dictValue = dictData.get("dictValue").toString(); + if(dictValue.equals(status_id)){ + CarMap.put(fieldName,dictData.get("dictLabel")); + bool = true; + break; + } + } + } + //字段 默认值 + if(!bool){ + CarMap.put(fieldName,""); + } + return CarMap; + } + + +} diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ExportPlatform.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/ExportPlatform.java new file mode 100644 index 0000000..7d4f786 --- /dev/null +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/ExportPlatform.java @@ -0,0 +1,79 @@ +package com.yunze.system.card; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.common.mapper.yunze.YzCardFlowMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 平台资费 导出 + * */ +@Slf4j +@Component +public class ExportPlatform { + + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private WriteCSV writeCSV; + @Resource + private YzCardFlowMapper yzCardFlowMapper; + + @RabbitHandler + @RabbitListener(queues = "admin_ExportPlatform_queue") + public void DbCard(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + //System.out.println(Pmap); + Map map = (Map) Pmap.get("map"); + Map User = (Map) Pmap.get("User"); + List> outCardIccidArr = (List>) Pmap.get("outCardIccidArr"); + String newName = (String) Pmap.get("newName"); + Map task_map = (Map) Pmap.get("task_map"); + + //执行前判断 redis 是否存在 执行数据 存在时 不执行 + OutDataCard( map,User,outCardIccidArr,newName,task_map); + + }catch (Exception e){ + log.error(">>错误 - 平台资费导出 消费者:{}<<", e.getMessage().toString()); + } + + } + + private void OutDataCard(Map map, Map user, List> outCardIccidArr, String newName, Map task_map) { + + map.put("iccid_arrs",outCardIccidArr); + try { + WriteOutCard(outCardIccidArr,newName,task_map); + }catch (Exception e){ + log.error("导出平台资费异常 [导出数据 Exception] "+e.getCause().toString() ); + } + } + + private String WriteOutCard(List> outCardIccidArr, String newName, Map task_map) { + + String Outcolumns[] = {"资费组编号","资费组名称","资费组别称","所属公司","所属人","创建时间","卡总数"}; + String keys[] = {"package_id","package_name","package_agentname","dept_name","nick_name","create_time","card_count"}; + + + writeCSV.Write(newName,outCardIccidArr,Outcolumns,null,keys); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + return "已下发执行日志可在【系统管理】》【日志管理】》【执行日志】查看"; + } + +} diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/OutCat.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/OutCat.java index f17fb0b..de5c14d 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/OutCat.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/OutCat.java @@ -83,7 +83,11 @@ public class OutCat { List> card_types,List> customize_whether,String newName,Map task_map,List> cardConnection_type){ yzExecutionTaskMapper.add(task_map);//添加执行 任务表 - List> outCardArr = yzCardMapper.outCard(map); + + Map outCardMap = new HashMap(); + outCardMap.put("outCardIccidArr",outCardIccidArr); + List> outCardArr = yzCardMapper.outCard(outCardMap); + Map Dept = (Map) User.get("dept"); String agent_id = Dept.get("deptId").toString(); if(agent_id.equals("100")){ @@ -96,8 +100,13 @@ public class OutCat { map.put("iccid_arrs",outCardIccidArr); //卡板信息导出需要用到的套餐数据 List> CardFlowArr = yzCardFlowMapper.outCardFlow(map); + //获取通道信息 - List> routeArr = yzCardRouteMapper.find_simple(map); + Map find_simpleMap = new HashMap(); + find_simpleMap.putAll(map); + find_simpleMap.put("cd_operator_type",null);// + find_simpleMap.put("channel_id",null);// + List> routeArr = yzCardRouteMapper.find_simple(find_simpleMap); //获取 用户信息 try { diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/SaveCardArr.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/SaveCardArr.java index 4b135ad..9685f9f 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/SaveCardArr.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/SaveCardArr.java @@ -3,6 +3,7 @@ package com.yunze.system.card; import com.alibaba.fastjson.JSON; import com.rabbitmq.client.*; import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.YzCardBriefMapper; import com.yunze.common.mapper.yunze.YzCardInfoExpandMapper; import com.yunze.common.mapper.yunze.YzCardMapper; import com.yunze.apiCommon.mapper.YzCardRouteMapper; @@ -39,7 +40,8 @@ public class SaveCardArr { private WriteCSV writeCSV; @Resource private YzCardInfoExpandMapper yzCardInfoExpandMapper; - + @Resource + private YzCardBriefMapper yzCardBriefMapper; /** @@ -83,7 +85,7 @@ public class SaveCardArr { * @param newName */ public void ImportCar(String filePath, String ReadName,Map User,String newName){ - String path = filePath + "/upload/uploadCard/" + ReadName; + String path = filePath + ReadName; ExcelConfig excelConfig = new ExcelConfig(); String columns[] = {"msisdn","iccid","imsi","open_date","activate_date","agent_id","channel_id","is_pool","batch_date","remarks","status_id","package_id","imei","type","network_type","is_sms","sms_number","gprs","user_id","test_period_last_time","silent_period_last_time"}; String maxVid = yzCardMapper.findMaxVid(); @@ -150,7 +152,11 @@ public class SaveCardArr { List> card_arrs = lMap.get(key); map.put("card_arrs",card_arrs);//更新 list map.put("create_by",create_by); - sInt += yzCardMapper.importCard(map); + sInt += yzCardMapper.importCard(map); +// Map Ramp = new HashMap<>(); +// Ramp.put("cardArr",card_arrs); +// sInt += yzCardBriefMapper.batchCard(Ramp); + try {//有 测试期最后时间 或 沉默期最后时间 存入 卡列表拓展表 List> addExpandArr = new ArrayList<>(); diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/CardCardCancelrealname.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/CardCardCancelrealname.java similarity index 67% rename from yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/CardCardCancelrealname.java rename to yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/CardCardCancelrealname.java index d2fd8b7..6628e23 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/CardCardCancelrealname.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/CardCardCancelrealname.java @@ -1,4 +1,4 @@ -package com.yunze.system.card.ApiSyn; +package com.yunze.system.card.apisyn; import com.alibaba.fastjson.JSON; import com.rabbitmq.client.Channel; @@ -7,9 +7,7 @@ import com.yunze.apiCommon.utils.InternalApiRequest; import com.yunze.common.core.redis.RedisCache; import com.yunze.common.mapper.yunze.YzCardMapper; import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; -import com.yunze.common.utils.yunze.Different; -import com.yunze.common.utils.yunze.ExcelConfig; -import com.yunze.common.utils.yunze.WriteCSV; +import com.yunze.common.utils.yunze.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.annotation.RabbitHandler; @@ -34,14 +32,13 @@ public class CardCardCancelrealname { @Resource private RedisCache redisCache; @Resource - private YzExecutionTaskMapper yzExecutionTaskMapper; - @Resource private WriteCSV writeCSV; @Resource private InternalApiRequest internalApiRequest; @Resource private YzCardRouteMapper yzCardRouteMapper; - + @Resource + private BulkUtil bulkUtil; private String Outcolumns[] = {"iccid","执行描述","执行人","执行结果"}; @@ -57,7 +54,7 @@ public class CardCardCancelrealname { @RabbitHandler @RabbitListener(queues = "admin_CardCancelrealname_queue") - public void CardCancelrealname(String msg, Channel channel) throws IOException { + public void CardCancelrealname(String msg, Channel channel) { try { if (StringUtils.isEmpty(msg)) { return; @@ -65,15 +62,25 @@ public class CardCardCancelrealname { Map map = JSON.parseObject(msg); String filePath = map.get("filePath").toString();//项目根目录 String ReadName = map.get("ReadName").toString();//上传新文件名 + String SaveUrl = "/getOriginal"+ReadName; + Map Pmap = ( Map)map.get("map");//参数 Map User = ( Map)Pmap.get("User");//登录用户信息 + + Map bulkMap = ( Map)map.get("bulkMap");//批量任务主表 信息 + bulkMap.put("state_id","3");//状态 执行中 3 + bulkMap.put("start_time", VeDate.getStringDate());//赋值 开始时间 + bulkMap.put("url", SaveUrl);//url 存储上传文件 原始地址 + bulkUtil.update(bulkMap);//消费者进入变更执行状态 执行中 + + String prefix = "admin_CardCancelrealname_queue"; //执行前判断 redis 是否存在 执行数据 存在时 不执行 Object isExecute = redisCache.getCacheObject(prefix+":"+ ReadName); if(isExecute==null){ redisCache.setCacheObject(prefix+":"+ ReadName, msg, 3, TimeUnit.SECONDS);//3 秒缓存 避免 重复消费 - execution(filePath,ReadName,Pmap,User);//执行特殊操作 查询imie + execution(filePath,ReadName,Pmap,User,bulkMap,SaveUrl);//执行特殊操作 查询imie } } catch (Exception e) { log.error(">>错误 - 批量取消实名 消费者:{}<<", e.getMessage().toString()); @@ -84,27 +91,19 @@ public class CardCardCancelrealname { * 查询执行 * */ - private void execution(String filePath, String ReadName, Map pmap, Map User) { + private void execution(String filePath, String ReadName, Map pmap, Map User,Map bulkMap,String SaveUrl) { + boolean isFailBool = false;//是否有失败的错误数据 - String Message = ""; //1.读取 上传文件 - String path = filePath + "/upload/cancelrealname/" + ReadName; + String path = filePath + ReadName; ExcelConfig excelConfig = new ExcelConfig(); String columns[] = {"iccid"}; List> list = excelConfig.getExcelListMap(path,columns); Map Dept = (Map)User.get("dept"); String create_by = " [ "+Dept.get("deptName")+" ] - "+" [ "+User.get("userName")+" ] "; - String newName = UUID.randomUUID().toString().replace("-","")+"_CardRealNameRemove";//对应 执行任务导出类别 CSV 前缀 - String task_name ="批量操作 [批量取消实名] "; - String SaveUrl = "/getcsv/"+newName+".csv"; - SaveUrl = "/getcsv/"+newName+".csv"; - Map task_map = new HashMap(); - task_map.put("auth",create_by); - task_map.put("task_name",task_name); - task_map.put("url",SaveUrl); - task_map.put("agent_id",User.get("deptId") ); - task_map.put("type", "15");//对应的任务类别 + String newName = UUID.randomUUID().toString().replace("-","")+"_repeat";//对应 执行任务导出类别 CSV 前缀 + if(list!=null && list.size()>0) { @@ -113,6 +112,7 @@ public class CardCardCancelrealname { list = (List>) getNotRepeatingMap.get("Rlist");//更新 查询数据 List> Repeatlist = (List>) getNotRepeatingMap.get("Repeatlist"); if(Repeatlist.size()>0) { + isFailBool = true; Map defOutcolumns = new HashMap<>(); defOutcolumns.put("message", "ICCID重复查询失败!同一ICCID同批次,无需多次查询!"); defOutcolumns.put("agentName", create_by); @@ -126,7 +126,16 @@ public class CardCardCancelrealname { map.put("card_arrs",list); map.put("type","3"); List iccidarr = yzCardMapper.isExistence(map); - yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + + //新增批量操作详情 + Map bulkDtailsMap = new HashMap<>(); + String b_id = bulkMap.get("id").toString(); + bulkDtailsMap.put("b_id",b_id); + bulkDtailsMap.put("bus_arrs",list); + bulkUtil.Dadd(bulkDtailsMap); + + if (iccidarr != null && iccidarr.size() > 0) { if (!(iccidarr.size() == list.size())) { //上传数据>数据库查询 赛选出 @@ -140,11 +149,7 @@ public class CardCardCancelrealname { List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 查询数据 //找出与数据库已存在 相同 ICCID 去除 重复 iccid if (Out_list_Different.size() > 0) { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","iccid 不在数据库中!请核对iccid卡号!"); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(Out_list_Different, newName,Outcolumns, keys,defOutcolumns,OutSize); + bulkUtil.DupdateArr(b_id,Out_list_Different,VeDate.getStringDate(),"2","iccid卡号未找到!操作取消!"); } } map.put("card_arrs", list);//更新 list @@ -166,11 +171,7 @@ public class CardCardCancelrealname { List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 查询数据 //找出与数据库已存在 相同 ICCID 去除 重复 iccid if (Out_list_Different.size() > 0) { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","未划分通道,取消操作!"); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(Out_list_Different, newName,Outcolumns, keys,defOutcolumns,OutSize); + bulkUtil.DupdateArr(b_id,Out_list_Different,VeDate.getStringDate(),"2","未划分通道!操作取消!"); } } map.put("card_arrs", list);//更新 list @@ -199,19 +200,15 @@ public class CardCardCancelrealname { List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 查询数据 //找出与数据库已存在 相同 ICCID 去除 重复 iccid if (Out_list_Different.size() > 0) { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","通道状态 为停用或已删除 取消操作"); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(Out_list_Different, newName,Outcolumns, keys,defOutcolumns,OutSize); + bulkUtil.DupdateArr(b_id,Out_list_Different,VeDate.getStringDate(),"2","通道状态 为停用或已删除!操作取消!"); } } map.put("card_arrs", list);//更新 list /** * 这下面是做 批量取消实名的 * */ - List> SuccessArr = new ArrayList<>(); - List> failArr = new ArrayList<>(); + /*List> SuccessArr = new ArrayList<>(); + List> failArr = new ArrayList<>();*/ List> findRouteArr = yzCardMapper.findRouteArr(map);//查询需要轮询的卡 for (int i = 0; i Obj = new HashMap<>(); @@ -220,64 +217,56 @@ public class CardCardCancelrealname { Map Rmap = internalApiRequest.realNameRemove(Obj, findRouteArr.get(i)); String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; - String NameRemove = Rmap.get("Message")!= null && Rmap.get("Message").toString().length() > 0?Rmap.get("Message").toString():""; + String RMessage = Rmap.get("Message")!= null && Rmap.get("Message").toString().length() > 0?Rmap.get("Message").toString():""; + String end_time = ""; + String state_id = "2"; if (code.equals("200")) { //获取 Message - NameRemove = NameRemove.length()>0?NameRemove:"下发指令成功"; - Obj.put("message", NameRemove); - SuccessArr.add(Obj); + RMessage = RMessage.length()>0?RMessage:"下发指令成功"; + Obj.put("message", RMessage); + //SuccessArr.add(Obj); log.info(">>API - 下发指令成功 statusCode = 0 :{} | {}<<", iccid, Rmap); + state_id = "1"; } else { - NameRemove = NameRemove.length()>0?NameRemove:"下发指令失败"; - Obj.put("message", NameRemove); - failArr.add(Obj); + RMessage = RMessage.length()>0?RMessage:"下发指令失败"; + Obj.put("message", RMessage); + //failArr.add(Obj); log.error(">>API - 下发指令失败 statusCode = 0 :{} | {}<<", iccid, Rmap); + state_id = "2"; } - if(SuccessArr.size()>0){ - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","执行成功"); - writeCSV.OutCSVObj(SuccessArr, newName,Outcolumns, keys,defOutcolumns,OutSize); - } - if(failArr.size()>0){ - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","执行失败"); - writeCSV.OutCSVObj(failArr, newName,Outcolumns, keys,defOutcolumns,OutSize); - } + end_time = VeDate.getStringDate(); + bulkUtil.Dupdate(b_id,iccid,end_time,state_id,RMessage); } + /*if(SuccessArr.size()>0){ + Map defOutcolumns = new HashMap<>(); + defOutcolumns.put("agentName",create_by); + defOutcolumns.put("result","执行成功"); + writeCSV.OutCSVObj(SuccessArr, newName,Outcolumns, keys,defOutcolumns,OutSize); + } + if(failArr.size()>0){ + + }*/ }else{ - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","通道状态 为停用或已删除 取消操作!"); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); + bulkUtil.DupdateArr(b_id,list,VeDate.getStringDate(),"2","通道状态 为停用或已删除 取消操作"); } }else{ - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","未划分通道,取消操作!"); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); + bulkUtil.DupdateArr(b_id,list,VeDate.getStringDate(),"2","未划分通道 取消操作"); } } }catch (DuplicateKeyException e){ - String[] solit = e.getCause().toString().split("'"); - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message",e.getCause().toString()); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); - yzExecutionTaskMapper.set_end_time(task_map);//任务结束 log.error(">> cardSet-消费者- 上传excel异常 [插入数据 DuplicateKeyException ] :{}<<", e.getMessage().toString()); } } - }else{ log.error( "admin_importSetCardInfo_queue-消费者 上传表格无数据!无需执行"); } - yzExecutionTaskMapper.set_end_time(task_map);//任务结束 - + bulkMap.put("state_id","1");//状态 完成 1 + bulkMap.put("end_time", VeDate.getStringDate());//赋值 结束时间 + if(isFailBool){ + SaveUrl += ",/getcsv/"+newName+".csv"; + bulkMap.put("url", SaveUrl);//url 存储上传文件 原始地址 + } + bulkUtil.update(bulkMap);//消费者进入变更执行状态 执行中 } } diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/CardImportBatchApiUpd.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/CardImportBatchApiUpd.java similarity index 78% rename from yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/CardImportBatchApiUpd.java rename to yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/CardImportBatchApiUpd.java index e8bf578..e1e8d26 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/CardImportBatchApiUpd.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/CardImportBatchApiUpd.java @@ -1,4 +1,4 @@ -package com.yunze.system.card.ApiSyn; +package com.yunze.system.card.apisyn; import com.alibaba.fastjson.JSON; import com.rabbitmq.client.Channel; @@ -8,7 +8,6 @@ import com.yunze.common.core.redis.RedisCache; import com.yunze.common.mapper.yunze.YzCardInfoChangeMapper; import com.yunze.common.mapper.yunze.YzCardMapper; import com.yunze.apiCommon.mapper.YzCardRouteMapper; -import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; import com.yunze.common.utils.yunze.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -34,8 +33,6 @@ public class CardImportBatchApiUpd { @Resource private RedisCache redisCache; @Resource - private YzExecutionTaskMapper yzExecutionTaskMapper; - @Resource private WriteCSV writeCSV; @Resource private InternalApiRequest internalApiRequest; @@ -47,6 +44,8 @@ public class CardImportBatchApiUpd { private MyDictionary myDictionary; @Resource private GetShowStatIdArr getShowStatIdArr; + @Resource + private BulkUtil bulkUtil; private String Outcolumns[] = {"iccid", "返回消息", "执行描述", "执行人", "执行结果"}; private String keys[] = {"iccid", "Message", "describe", "agentName", "result"}; @@ -65,15 +64,26 @@ public class CardImportBatchApiUpd { Map map = JSON.parseObject(msg); String filePath = map.get("filePath").toString();//项目根目录 String ReadName = map.get("ReadName").toString();//上传新文件名 + + String SaveUrl = "/getOriginal"+ReadName; + Map Pmap = (Map) map.get("map");//参数 Map User = (Map) Pmap.get("User");//登录用户信息 + Map bulkMap = ( Map)map.get("bulkMap");//批量任务主表 信息 + + bulkMap.put("state_id","3");//状态 执行中 3 + bulkMap.put("start_time", VeDate.getStringDate());//赋值 开始时间 + bulkMap.put("url", SaveUrl);//url 存储上传文件 原始地址 + + bulkUtil.update(bulkMap);//消费者进入变更执行状态 执行中 + String prefix = "admin_CardImportBatch_queue"; //执行前判断 redis 是否存在 执行数据 存在时 不执行 Object isExecute = redisCache.getCacheObject(prefix + ":" + ReadName); if (isExecute == null) { redisCache.setCacheObject(prefix + ":" + ReadName, msg, 3, TimeUnit.SECONDS);//3 秒缓存 避免 重复消费 - execution(filePath, ReadName, Pmap, User);//执行特殊操作 查询imie + execution(filePath, ReadName, Pmap, User,bulkMap,SaveUrl);//执行特殊操作 查询imie } } catch (Exception e) { log.error(">>错误 - 特殊操作 批量停复机 断开网 消费者:{}<<", e.getMessage().toString()); @@ -81,33 +91,27 @@ public class CardImportBatchApiUpd { } /** - * 查询执行 + * 执行 */ - public void execution(String filePath, String ReadName, Map Pmap, Map User) { + public void execution(String filePath, String ReadName, Map Pmap, Map User,Map bulkMap,String SaveUrl) { String Message = ""; String cbefore = "";//变更前 String cafterward = "";//变更后 String OPtionType = "";//操作类型 String describe = ""; + boolean isFailBool = false;//是否有失败的错误数据 //1.读取 上传文件 - String path = filePath + "/upload/importSelImei/" + ReadName; + String path = filePath + ReadName; ExcelConfig excelConfig = new ExcelConfig(); String columns[] = {"iccid"}; List> list = excelConfig.getExcelListMap(path, columns); - Map Dept = (Map) User.get("dept"); - String create_by = " [ " + Dept.get("deptName") + " ] - " + " [ " + User.get("userName") + " ] "; + String create_by = bulkMap.get("auth").toString(); + String newName = UUID.randomUUID().toString().replace("-", "") + "_repeat"; + + + - String newName = UUID.randomUUID().toString().replace("-", "") + "_CardChangeInfo"; - String task_name = "-批量变更 [批量变更 输出] "; - String SaveUrl = "/getcsv/" + newName + ".csv"; - SaveUrl = "/getcsv/" + newName + ".csv"; - Map task_map = new HashMap(); - task_map.put("auth", create_by); - task_map.put("task_name", task_name); - task_map.put("url", SaveUrl); - task_map.put("agent_id", User.get("deptId")); - task_map.put("type", "8"); if (list != null && list.size() > 0) { //筛选出 iccid 卡号 重复项 @@ -115,19 +119,33 @@ public class CardImportBatchApiUpd { list = (List>) getNotRepeatingMap.get("Rlist");//更新 查询数据 List> Repeatlist = (List>) getNotRepeatingMap.get("Repeatlist"); if (Repeatlist.size() > 0) { + isFailBool = true; Map defOutcolumns = new HashMap<>(); defOutcolumns.put("describe", "ICCID重复查询失败!同一ICCID同批次,无需多次查询!"); defOutcolumns.put("agentName", create_by); defOutcolumns.put("result", "查询失败"); writeCSV.OutCSVObj(Repeatlist, newName, Outcolumns, keys, defOutcolumns, OutSize); } + + //新增批量操作详情 + Map bulkDtailsMap = new HashMap<>(); + String b_id = bulkMap.get("id").toString(); + bulkDtailsMap.put("b_id",b_id); + bulkDtailsMap.put("bus_arrs",list); + bulkUtil.Dadd(bulkDtailsMap); + + + + //查询数据库中 匹对iccid 是否存在 HashMap map = new HashMap<>(); //添加修改数据 map.put("card_arrs", list); map.put("type", "3"); List iccidarr = yzCardMapper.isExistence(map); - yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + + if (iccidarr != null && iccidarr.size() > 0) { //1.判断 查询卡号是否都在库里 //库中查询出卡号与上传卡号数量 不一致 说明有卡号不在数据库中 @@ -143,11 +161,7 @@ public class CardImportBatchApiUpd { List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 查询数据 //找出与数据库已存在 相同 ICCID 去除 重复 iccid if (Out_list_Different.size() > 0) { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("describe", "iccid 不在数据库中!请核对iccid卡号!"); - defOutcolumns.put("agentName", create_by); - defOutcolumns.put("result", "查询失败"); - writeCSV.OutCSVObj(Out_list_Different, newName, Outcolumns, keys, defOutcolumns, OutSize); + bulkUtil.DupdateArr(b_id,Out_list_Different,VeDate.getStringDate(),"2","iccid卡号未找到!操作取消!"); } } map.put("card_arrs", list);//更新 list @@ -169,11 +183,7 @@ public class CardImportBatchApiUpd { List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 查询数据 //找出与数据库已存在 相同 ICCID 去除 重复 iccid if (Out_list_Different.size() > 0) { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("describe", "未划分通道,取消操作!"); - defOutcolumns.put("agentName", create_by); - defOutcolumns.put("result", "查询失败"); - writeCSV.OutCSVObj(Out_list_Different, newName, Outcolumns, keys, defOutcolumns, OutSize); + bulkUtil.DupdateArr(b_id,Out_list_Different,VeDate.getStringDate(),"2","未划分通道!操作取消!"); } } map.put("card_arrs", list);//更新 list @@ -202,11 +212,7 @@ public class CardImportBatchApiUpd { List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 查询数据 //找出与数据库已存在 相同 ICCID 去除 重复 iccid if (Out_list_Different.size() > 0) { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("describe", "通道状态 为停用或已删除 取消操作"); - defOutcolumns.put("agentName", create_by); - defOutcolumns.put("result", "查询失败"); - writeCSV.OutCSVObj(Out_list_Different, newName, Outcolumns, keys, defOutcolumns, OutSize); + bulkUtil.DupdateArr(b_id,Out_list_Different,VeDate.getStringDate(),"2","通道状态 为停用或已删除!操作取消!"); } } map.put("card_arrs", list);//更新 list @@ -215,7 +221,6 @@ public class CardImportBatchApiUpd { List> failArr = new ArrayList<>(); String Is_remind_ratio = Pmap.get("Is_remind_ratio").toString(); - System.out.println(Is_remind_ratio.toString()); String Switch_network = Pmap.get("Switch_network").toString(); List> findRouteArr = yzCardMapper.findRouteArr(map);//查询 卡号 分配 通道 及变更前 卡状态 断开网状态 //判断 取值 key 字典key ctype @@ -250,11 +255,11 @@ public class CardImportBatchApiUpd { //【是否停复机】 on 开机 off 停机 - System.out.println(Switch_network.toString()); if (Is_remind_ratio.equals("1") && Switch_network.equals("1")) { System.out.println("不操作"); } else if (!Is_remind_ratio.equals("1") && !Switch_network.equals("1")) { System.out.println("多项操作不允许"); + bulkUtil.Dupdate(b_id,iccid,VeDate.getStringDate(),"2","多项操作不允许!操作取消!"); } else if (!Is_remind_ratio.equals("1")) { System.out.println("批量停复机操作"); describe = "批量停复机操作-"; @@ -276,22 +281,16 @@ public class CardImportBatchApiUpd { //停复机操作 Object status = Rmap.get("status"); if (status != null && status != "" && status.toString().trim().length() > 0) { - Obj.put("status", status.toString().trim()); String RMessage = Rmap.get("Message") != null ? Rmap.get("Message").toString() : "操作成功!"; - Obj.put("Message", RMessage); - Obj.put("agentName", create_by); - Obj.put("result", "操作成功"); - SuccessArr.add(Obj);//输出 csv 文间 + bulkUtil.Dupdate(b_id,iccid,VeDate.getStringDate(),"1",RMessage); log.info(">>API - 变更操作 statusCode = 0 :{} | {}<<", iccid, Rmap); } } else { - Obj.put("result", "操作失败"); Message = Rmap.get("Message") != null ? Rmap.get("Message").toString() : "API异常!"; - Obj.put("Message", Message); - failArr.add(Obj); + bulkUtil.Dupdate(b_id,iccid,VeDate.getStringDate(),"2",Message); } } else if (!Switch_network.equals("1")) { - System.out.println("允许操作"); + //System.out.println("允许操作"); describe = "断开网操作"; OPtionType = "FunctionApnStatus"; if (Switch_network.equals("3")) { @@ -309,24 +308,19 @@ public class CardImportBatchApiUpd { if (code.equals("200")) { //断开网操作 String RMessage = Rmap.get("Message") != null ? Rmap.get("Message").toString() : "操作成功!"; - Obj.put("Message", RMessage); - Obj.put("describe", describe); - Obj.put("agentName", create_by); - Obj.put("result", "操作成功"); SuccessArr.add(Obj);//输出 csv 文间 + bulkUtil.Dupdate(b_id,iccid,VeDate.getStringDate(),"1",RMessage); log.info(">>API - 变更操作 statusCode = 0 :{} | {}<<", iccid, Rmap); } else { - Obj.put("result", "操作失败"); Message = Rmap.get("Message") != null ? Rmap.get("Message").toString() : "API异常!"; - Obj.put("Message", Message); - failArr.add(Obj); + bulkUtil.Dupdate(b_id,iccid,VeDate.getStringDate(),"2",Message); } } } //2. 卡信息 变更表 插入数据 if (SuccessArr.size() > 0) { - writeCSV.OutCSVObj(SuccessArr, newName, Outcolumns, keys, null, OutSize); + // writeCSV.OutCSVObj(SuccessArr, newName, Outcolumns, keys, null, OutSize); //变更主表信息 try { if (!Is_remind_ratio.equals("1")) {//停复机 @@ -380,53 +374,32 @@ public class CardImportBatchApiUpd { int addBool = yzCardInfoChangeMapper.addinfo(map2); log.info("Dlx - " + map.get("iccid") + " 卡信息变更表 插入 : " + failArr + " 新增卡信息变更记录 addBool :" + addBool); } - - } else { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("describe", "通道状态 为停用或已删除 取消操作!"); - defOutcolumns.put("agentName", create_by); - defOutcolumns.put("result", "查询失败"); - writeCSV.OutCSVObj(list, newName, Outcolumns, keys, defOutcolumns, OutSize); + bulkUtil.DupdateArr(b_id,list,VeDate.getStringDate(),"2","通道状态 为停用或已删除 取消操作"); } } else { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("describe", "未划分通道,取消操作!"); - defOutcolumns.put("agentName", create_by); - defOutcolumns.put("result", "查询失败"); - writeCSV.OutCSVObj(list, newName, Outcolumns, keys, defOutcolumns, OutSize); + bulkUtil.DupdateArr(b_id,list,VeDate.getStringDate(),"2","未划分通道 取消操作"); } } } catch (DuplicateKeyException e) { - String[] solit = e.getCause().toString().split("'"); - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("describe", e.getCause().toString()); - defOutcolumns.put("agentName", create_by); - defOutcolumns.put("result", "查询失败"); - writeCSV.OutCSVObj(list, newName, Outcolumns, keys, defOutcolumns, OutSize); - yzExecutionTaskMapper.set_end_time(task_map);//任务结束 log.error(">> cardSet-消费者- 上传excel异常 [插入数据 DuplicateKeyException ] :{}<<", e.getMessage().toString()); } catch (Exception e) { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("describe", e.getCause().toString()); - defOutcolumns.put("agentName", create_by); - defOutcolumns.put("result", "查询失败"); - writeCSV.OutCSVObj(list, newName, Outcolumns, keys, defOutcolumns, OutSize); - yzExecutionTaskMapper.set_end_time(task_map);//任务结束 log.error(">>cardSet-消费者- 批量查询消费者:{}<<", e.getMessage()); } } else { log.info("上传ICCID卡号不在数据库中!请核对后重试!"); - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("describe", "查询iccid卡号平台中未找到!查询取消!"); - defOutcolumns.put("agentName", create_by); - defOutcolumns.put("result", "查询失败"); - writeCSV.OutCSVObj(list, newName, Outcolumns, keys, defOutcolumns, OutSize); + bulkUtil.DupdateArr(b_id,list,VeDate.getStringDate(),"2","iccid卡号未找到!操作取消!"); } } else { log.error("admin_CardImportBatch_queue`-消费者 上传表格无数据!无需执行"); } - yzExecutionTaskMapper.set_end_time(task_map);//需改任务 结束 时间 + bulkMap.put("state_id","1");//状态 完成 1 + bulkMap.put("end_time", VeDate.getStringDate());//赋值 结束时间 + if(isFailBool){ + SaveUrl += ",/getcsv/"+newName+".csv"; + bulkMap.put("url", SaveUrl);//url 存储上传文件 原始地址 + } + bulkUtil.update(bulkMap);//消费者进入变更执行状态 执行中 } diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/CardImportSelImei.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/CardImportSelImei.java similarity index 73% rename from yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/CardImportSelImei.java rename to yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/CardImportSelImei.java index f3e3ef5..3a10840 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/CardImportSelImei.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/CardImportSelImei.java @@ -1,4 +1,4 @@ -package com.yunze.system.card.ApiSyn; +package com.yunze.system.card.apisyn; import com.alibaba.fastjson.JSON; import com.rabbitmq.client.Channel; @@ -45,7 +45,8 @@ public class CardImportSelImei { private RabbitMQConfig rabbitMQConfig; @Resource private RabbitTemplate rabbitTemplate; - + @Resource + private BulkUtil bulkUtil; private String Outcolumns[] = {"iccid","imei","执行描述","执行人","执行结果"}; private String keys[] = {"iccid","imei","message","agentName","result"}; @@ -67,15 +68,27 @@ public class CardImportSelImei { Map map = JSON.parseObject(msg); String filePath = map.get("filePath").toString();//项目根目录 String ReadName = map.get("ReadName").toString();//上传新文件名 + String SaveUrl = "/getOriginal"+ReadName; + Map Pmap = ( Map)map.get("map");//参数 Map User = ( Map)Pmap.get("User");//登录用户信息 + + Map bulkMap = ( Map)map.get("bulkMap");//批量任务主表 信息 + + bulkMap.put("state_id","3");//状态 执行中 3 + bulkMap.put("start_time", VeDate.getStringDate());//赋值 开始时间 + bulkMap.put("url", SaveUrl);//url 存储上传文件 原始地址 + + bulkUtil.update(bulkMap);//消费者进入变更执行状态 执行中 + + String prefix = "admin_CardImportSelImei_queue"; //执行前判断 redis 是否存在 执行数据 存在时 不执行 Object isExecute = redisCache.getCacheObject(prefix+":"+ ReadName); if(isExecute==null){ redisCache.setCacheObject(prefix+":"+ ReadName, msg, 3, TimeUnit.SECONDS);//3 秒缓存 避免 重复消费 - execution(filePath,ReadName,Pmap,User);//执行特殊操作 查询imie + execution(filePath,ReadName,Pmap,User,bulkMap,SaveUrl);//执行特殊操作 查询imie } } catch (Exception e) { log.error(">>错误 - 特殊操作 查询imie 消费者:{}<<", e.getMessage().toString()); @@ -85,26 +98,19 @@ public class CardImportSelImei { /** * 查询执行 */ - public void execution(String filePath,String ReadName,Map Pmap,Map User){ - String Message = ""; + public void execution(String filePath,String ReadName,Map Pmap,Map User,Map bulkMap,String SaveUrl){ + boolean isFailBool = false;//是否有失败的错误数据 + //1.读取 上传文件 - String path = filePath + "/upload/importSelImei/" + ReadName; + String path = filePath + ReadName; ExcelConfig excelConfig = new ExcelConfig(); String columns[] = {"iccid"}; List> list = excelConfig.getExcelListMap(path,columns); - Map Dept = (Map)User.get("dept"); - String create_by = " [ "+Dept.get("deptName")+" ] - "+" [ "+User.get("userName")+" ] "; - String newName = UUID.randomUUID().toString().replace("-","")+"_CardImportSelImei"; - String task_name ="特殊操作 [特殊操作 查询imie] "; - String SaveUrl = "/getcsv/"+newName+".csv"; - SaveUrl = "/getcsv/"+newName+".csv"; - Map task_map = new HashMap(); - task_map.put("auth",create_by); - task_map.put("task_name",task_name); - task_map.put("url",SaveUrl); - task_map.put("agent_id",User.get("deptId") ); - task_map.put("type", "7"); + String create_by = bulkMap.get("auth").toString(); + + String newName = UUID.randomUUID().toString().replace("-","")+"_repeat"; + if(list!=null && list.size()>0) { //筛选出 iccid 卡号 重复项 @@ -112,6 +118,7 @@ public class CardImportSelImei { list = (List>) getNotRepeatingMap.get("Rlist");//更新 查询数据 List> Repeatlist = (List>) getNotRepeatingMap.get("Repeatlist"); if(Repeatlist.size()>0){ + isFailBool = true; Map defOutcolumns = new HashMap<>(); defOutcolumns.put("message","ICCID重复查询失败!同一ICCID同批次,无需多次查询!"); defOutcolumns.put("agentName",create_by); @@ -124,7 +131,14 @@ public class CardImportSelImei { map.put("card_arrs",list); map.put("type","3"); List iccidarr = yzCardMapper.isExistence(map); - yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + //新增批量操作详情 + Map bulkDtailsMap = new HashMap<>(); + String b_id = bulkMap.get("id").toString(); + bulkDtailsMap.put("b_id",b_id); + bulkDtailsMap.put("bus_arrs",list); + bulkUtil.Dadd(bulkDtailsMap); + if (iccidarr != null && iccidarr.size() > 0) { //1.判断 查询卡号是否都在库里 //库中查询出卡号与上传卡号数量 不一致 说明有卡号不在数据库中 @@ -140,11 +154,7 @@ public class CardImportSelImei { List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 查询数据 //找出与数据库已存在 相同 ICCID 去除 重复 iccid if (Out_list_Different.size() > 0) { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","iccid 不在数据库中!请核对iccid卡号!"); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(Out_list_Different, newName,Outcolumns, keys,defOutcolumns,OutSize); + bulkUtil.DupdateArr(b_id,Out_list_Different,VeDate.getStringDate(),"2","iccid卡号未找到!操作取消!"); } } map.put("card_arrs", list);//更新 list @@ -166,11 +176,7 @@ public class CardImportSelImei { List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 查询数据 //找出与数据库已存在 相同 ICCID 去除 重复 iccid if (Out_list_Different.size() > 0) { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","未划分通道,取消操作!"); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(Out_list_Different, newName,Outcolumns, keys,defOutcolumns,OutSize); + bulkUtil.DupdateArr(b_id,Out_list_Different,VeDate.getStringDate(),"2","未划分通道!操作取消!"); } } map.put("card_arrs", list);//更新 list @@ -199,11 +205,7 @@ public class CardImportSelImei { List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 查询数据 //找出与数据库已存在 相同 ICCID 去除 重复 iccid if (Out_list_Different.size() > 0) { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","通道状态 为停用或已删除 取消操作"); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(Out_list_Different, newName,Outcolumns, keys,defOutcolumns,OutSize); + bulkUtil.DupdateArr(b_id,Out_list_Different,VeDate.getStringDate(),"2","通道状态 为停用或已删除!操作取消!"); } } map.put("card_arrs", list);//更新 list @@ -218,17 +220,23 @@ public class CardImportSelImei { //Obj.put("Is_Stop", "on"); Map Rmap = internalApiRequest.queryCardImei(Obj, findRouteArr.get(i)); String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + String RMessage = ""; if (code.equals("200")) { //获取 imei 更新 card info Object imei = Rmap.get("imei"); + RMessage = Rmap.get("Message") != null ? Rmap.get("Message").toString() : "操作成功!"; if (imei != null && imei != "" && imei.toString().trim().length() > 0) { Obj.put("imei", imei.toString().trim()); SuccessArr.add(Obj); log.info(">>API - 获取imei statusCode = 0 :{} | {}<<", iccid, Rmap); + bulkUtil.Dupdate(b_id,iccid,VeDate.getStringDate(),"1",RMessage); + }else{ + RMessage +=" - 返回数据中imei未找到"; + bulkUtil.Dupdate(b_id,iccid,VeDate.getStringDate(),"2",RMessage); } }else{ - Obj.put("message", Message); - failArr.add(Obj); + Obj.put("message", RMessage); + bulkUtil.Dupdate(b_id,iccid,VeDate.getStringDate(),"2",RMessage); } if(SuccessArr.size()>0){ try { @@ -242,59 +250,35 @@ public class CardImportSelImei { defOutcolumns.put("result","查询成功"); writeCSV.OutCSVObj(SuccessArr, newName,Outcolumns, keys,defOutcolumns,OutSize); } - if(failArr.size()>0){ - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); - } - - // } }else{ - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","通道状态 为停用或已删除 取消操作!"); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); + bulkUtil.DupdateArr(b_id,list,VeDate.getStringDate(),"2","通道状态 为停用或已删除 取消操作"); } }else{ - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","未划分通道,取消操作!"); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); + bulkUtil.DupdateArr(b_id,list,VeDate.getStringDate(),"2","未划分通道 取消操作"); } } } catch (DuplicateKeyException e) { - String[] solit = e.getCause().toString().split("'"); - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message",e.getCause().toString()); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); - yzExecutionTaskMapper.set_end_time(task_map);//任务结束 log.error(">> cardSet-消费者- 上传excel异常 [插入数据 DuplicateKeyException ] :{}<<", e.getMessage().toString()); } catch (Exception e) { - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message",e.getCause().toString()); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); - yzExecutionTaskMapper.set_end_time(task_map);//任务结束 log.error(">>cardSet-消费者- 批量查询消费者:{}<<", e.getMessage()); } } else { log.info("上传ICCID卡号不在数据库中!请核对后重试!"); - Map defOutcolumns = new HashMap<>(); - defOutcolumns.put("message","查询iccid卡号平台中未找到!查询取消!"); - defOutcolumns.put("agentName",create_by); - defOutcolumns.put("result","查询失败"); - writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); + bulkUtil.DupdateArr(b_id,list,VeDate.getStringDate(),"2","iccid卡号未找到!操作取消!"); } }else{ log.error( "admin_CardImportSelImei_queue-消费者 上传表格无数据!无需执行"); } + + bulkMap.put("state_id","1");//状态 完成 1 + bulkMap.put("end_time", VeDate.getStringDate());//赋值 结束时间 + if(isFailBool){ + SaveUrl += ",/getcsv/"+newName+".csv"; + bulkMap.put("url", SaveUrl);//url 存储上传文件 + } + bulkUtil.update(bulkMap);//消费者进入变更执行状态 + } diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/PublicFlowState.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/PublicFlowState.java similarity index 99% rename from yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/PublicFlowState.java rename to yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/PublicFlowState.java index 6683302..4a24b0f 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/PublicFlowState.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/PublicFlowState.java @@ -1,4 +1,4 @@ -package com.yunze.system.card.ApiSyn; +package com.yunze.system.card.apisyn; import com.alibaba.fastjson.JSON; import com.yunze.apiCommon.utils.InternalApiRequest; diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/PublicMethod.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/PublicMethod.java similarity index 99% rename from yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/PublicMethod.java rename to yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/PublicMethod.java index 0865b73..a726f60 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/PublicMethod.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/PublicMethod.java @@ -1,4 +1,4 @@ -package com.yunze.system.card.ApiSyn; +package com.yunze.system.card.apisyn; import com.alibaba.fastjson.JSON; import com.yunze.apiCommon.utils.InternalApiRequest; diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/UpdCardConnectionStatus.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/UpdCardConnectionStatus.java similarity index 99% rename from yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/UpdCardConnectionStatus.java rename to yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/UpdCardConnectionStatus.java index 49b9a16..5d5febb 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/UpdCardConnectionStatus.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/UpdCardConnectionStatus.java @@ -1,4 +1,4 @@ -package com.yunze.system.card.ApiSyn; +package com.yunze.system.card.apisyn; import com.alibaba.fastjson.JSON; import com.rabbitmq.client.Channel; diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/UpdCardStatus.java b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/UpdCardStatus.java similarity index 99% rename from yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/UpdCardStatus.java rename to yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/UpdCardStatus.java index f979155..1bab211 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/card/ApiSyn/UpdCardStatus.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/card/apisyn/UpdCardStatus.java @@ -1,4 +1,4 @@ -package com.yunze.system.card.ApiSyn; +package com.yunze.system.card.apisyn; import com.alibaba.fastjson.JSON; import com.rabbitmq.client.Channel; diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/dept/UpdDeptAmount.java b/yunze-consumption-admin/src/main/java/com/yunze/system/dept/UpdDeptAmount.java index 179c027..3703d6a 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/dept/UpdDeptAmount.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/dept/UpdDeptAmount.java @@ -2,15 +2,23 @@ package com.yunze.system.dept; import com.alibaba.fastjson.JSON; import com.rabbitmq.client.Channel; -import com.yunze.common.mapper.yunze.YzOrderMapper; -import com.yunze.common.mapper.yunze.YzUserMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.*; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalMapper; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalPrimaryIccidMapper; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalPrimaryMapper; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalPrimaryOrdNoMapper; import com.yunze.common.utils.Arith; +import com.yunze.common.utils.yunze.BulkUtil; +import com.yunze.common.utils.yunze.PlOrder; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.IOException; @@ -30,7 +38,24 @@ public class UpdDeptAmount { private YzUserMapper yzUserMapper; @Resource private RabbitTemplate rabbitTemplate; - + @Resource + private YzApplicationforRenewalMapper yzApplicationforRenewalMapper; + @Resource + private YzApplicationforRenewalPrimaryIccidMapper yzApplicationforRenewalPrimaryIccidMapper; + @Resource + private YzApplicationforRenewalPrimaryMapper yzApplicationforRenewalPrimaryMapper; + @Resource + private YzApplicationforRenewalPrimaryOrdNoMapper yzApplicationforRenewalPrimaryOrdNoMapper; + @Resource + private YzCardPacketMapper yzCardPacketMapper; + @Resource + private YzAgentPacketMapper yzAgentPacketMapper; + @Resource + private PlOrder plOrder; + @Resource + private BulkUtil bulkUtil; + @Resource + private RedisCache redisCache; /** * 企业 预存金额 授信额度 授信支付 消费者 @@ -55,10 +80,24 @@ public class UpdDeptAmount { case "updCredit"://变更授信信息 updCredit(Pmap,operateMap);//执行连接设置 break; - case "Prestore"://代理 预存金额 - Prestore(Pmap,operateMap);//执行连接设置 + /*case "Prestore"://代理 预存金额 + Prestore(Pmap,operateMap);// + break;*/ + case "RenewalDebit"://代理 扣款 + Map primaryMap = ( Map)Pmap.get("primaryMap");//请求参数 + Debit(null,null,null,null,null,Pmap,operateMap,primaryMap,"RenewalDebit");// break; + case "Recharge"://企业批量充值 + String filePath = map.get("filePath").toString();//项目根目录 + String newName = map.get("newName").toString();//输出文件名 + Map primaryMap_1 = ( Map)Pmap.get("primaryMap");//请求参数 + Map User = ( Map)Pmap.get("User");//登录用户信息 + Map OrderMap = ( Map)Pmap.get("OrderMap");//添加订单生成参数 + Map bulkMap = ( Map)map.get("bulkMap");//批量任务主表 信息 + List iccidArr = (List) Pmap.get("iccidArr");//文本域卡号 + Debit(filePath,newName,OrderMap,bulkMap,iccidArr,Pmap,operateMap,primaryMap_1,"Recharge"); + break; default: log.info(">> switch - default mytype:{} msg:{}<<", type,msg); break; @@ -75,7 +114,7 @@ public class UpdDeptAmount { /** - * 企业 预存金额 修改 消费者 [充值 增加走这里] + * 企业 预存金额 修改 消费者 [充值 扣款都 走这里] * @param msg * @param channel * @throws IOException @@ -109,238 +148,9 @@ public class UpdDeptAmount { public void updCredit( Map Pmap ,Map operateMap){ - if(Pmap.get("agent_id")!=null && Pmap.get("agent_id").toString().length()>0 && Pmap.get("line_of_credit")!=null && Pmap.get("line_of_credit").toString().length()>0){ - String agent_id = Pmap.get("agent_id").toString(); - Double line_of_credit = Double.parseDouble(Pmap.get("line_of_credit").toString()); - - //1. 授信额度 - ( 获取 订单 SUM(交易类型为 [用量充值] & 支付方式[授信支付]) - SUM(预存抵扣) ) = 已使用额度 - - Double D_CreditPrice = 0.0; - Double D_DeductPrice = 0.0; - - List agent_idArr = new ArrayList<>(); - agent_idArr.add(agent_id); - - Map OrderpMap = new HashMap<>(); - OrderpMap.put("ord_mytype","2"); - OrderpMap.put("pay_mytype","ct"); - OrderpMap.put("agent_id",agent_idArr); - String SumCreditPrice = yzOrderMapper.getSumPrice(OrderpMap); - D_CreditPrice = SumCreditPrice!=null?Double.parseDouble(SumCreditPrice):D_CreditPrice; - - Map deductMap = new HashMap<>(); - deductMap.put("ord_mytype","6"); - deductMap.put("agent_id",agent_idArr); - String SumDeductPrice = yzOrderMapper.getSumPrice(deductMap); - D_DeductPrice = SumDeductPrice!=null?Double.parseDouble(SumDeductPrice):D_DeductPrice; - - - Double used_line_of_credit = Arith.sub(line_of_credit,Arith.sub(D_CreditPrice,D_DeductPrice));//已使用授信额度 - Double be_usable_line_of_credit = Arith.sub(line_of_credit,used_line_of_credit);//可使用授信额度 - - String result = "1"; - String remarks = ""; - - - //2.准备 金额变更记录表 新增数据 - Map FindDeptAmountMap = new HashMap<>(); - FindDeptAmountMap.put("dept_id",agent_id); - Map DeptAmountMap = yzUserMapper.findDeptAmount(FindDeptAmountMap); - - try { - Map updCreditMap = new HashMap<>(); - updCreditMap.put("used_line_of_credit",used_line_of_credit); - updCreditMap.put("be_usable_line_of_credit",be_usable_line_of_credit); - updCreditMap.put("line_of_credit",line_of_credit); - updCreditMap.put("dept_id",agent_id); - int updCOunt = yzUserMapper.updCredit(updCreditMap); - remarks = "操作成功 updCOunt "+updCOunt; - }catch (Exception e){ - result = "2"; - remarks = e.getMessage()!=null?e.getMessage():remarks; - remarks = remarks.length()>150?remarks.substring(0,150):remarks; - log.error("yzUserMapper.updCredit Exception {}",e.getMessage()); - - } - - - - - Map par_valMap = new HashMap<>(); - par_valMap.put("Pmap",Pmap); - par_valMap.put("operateMap",operateMap); - - - String mytable_name = "sys_dept"; - String mytype = "2"; - String myfunction_name = "updCredit"; - String par_val = JSON.toJSONString(par_valMap); - String sel_key = "dept_id"; - String sel_val = agent_id; - - - Map add_common = new HashMap<>(); - add_common.put("mytable_name",mytable_name); - add_common.put("sel_key",sel_key); - add_common.put("sel_val",sel_val); - add_common.put("result",result); - add_common.put("par_val",par_val); - add_common.put("remarks",remarks); - add_common.put("myfunction_name",myfunction_name); - add_common.put("mytype",mytype); - - - Map add_row1 = new HashMap<>(); - add_row1.put("mybefore",DeptAmountMap.get("line_of_credit")!=null?DeptAmountMap.get("line_of_credit").toString():""); - add_row1.put("change_value",line_of_credit.toString()); - add_row1.put("field_key","line_of_credit"); - add_row1.put("field_val","已授信额度"); - - Map add_row2 = new HashMap<>(); - add_row2.put("mybefore",DeptAmountMap.get("used_line_of_credit")!=null?DeptAmountMap.get("used_line_of_credit").toString():""); - add_row2.put("change_value",used_line_of_credit.toString()); - add_row2.put("field_key","used_line_of_credit"); - add_row2.put("field_val","已使用授信额度"); - - Map add_row3 = new HashMap<>(); - add_row3.put("mybefore",DeptAmountMap.get("be_usable_line_of_credit")!=null?DeptAmountMap.get("be_usable_line_of_credit").toString():""); - add_row3.put("change_value",be_usable_line_of_credit.toString()); - add_row3.put("field_key","be_usable_line_of_credit"); - add_row3.put("field_val","可使用授信额度"); - - - List> insertArr = new ArrayList<>(); - - insertArr.add(add_row1); - insertArr.add(add_row2); - insertArr.add(add_row3); - - add_common.put("saveArr",insertArr); - - //修改企业金额信息 路由队列 - String polling_routingKey = "admin.insertMoneyChangeRecord.queue"; - String polling_exchangeName = "admin_exchange";//路由 - try { - Map start_mytype = new HashMap<>(); - rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(add_common), message -> { - // 设置消息过期时间 30 分钟 过期 - message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); - return message; - }); - } catch (Exception e) { - log.error("admin_insertMoneyChangeRecord_queue 发送 失败 {} {}",add_common,e.getMessage() ); - } - - - - }else{ - log.error(">>updCredit 参数不全取消操作 Pmap:{} operateMap:{}<<", Pmap,operateMap); - } - - - } - - /** - * 修改 预存金额 - * @param Pmap - * @param operateMap - */ - public void UpdDAmount( Map Pmap ,Map operateMap){ - if(Pmap.get("agent_id")!=null && Pmap.get("agent_id").toString().length()>0 && Pmap.get("deposit_amount")!=null && Pmap.get("deposit_amount").toString().length()>0 - && Pmap.get("operateType")!=null && Pmap.get("operateType").toString().length()>0) { - String agent_id = Pmap.get("agent_id").toString(); - Double deposit_amount = Double.parseDouble(Pmap.get("deposit_amount").toString()); - String operateType = Pmap.get("operateType").toString(); - - - //准备 金额变更记录表 新增数据 - Map FindDeptAmountMap = new HashMap<>(); - FindDeptAmountMap.put("dept_id",agent_id); - Map DeptAmountMap = yzUserMapper.findDeptAmount(FindDeptAmountMap); - String result = "1"; - String remarks = ""; - - try { - int updCOunt = yzUserMapper.updDepositAmount(Pmap);; - remarks = ""+operateType+" 操作成功 updCOunt "+updCOunt; - }catch (Exception e){ - result = "2"; - remarks = e.getMessage()!=null?e.getMessage():remarks; - remarks = remarks.length()>150?remarks.substring(0,150):remarks; - remarks = ""+operateType+" "+remarks; - log.error("yzUserMapper.updCredit Exception {}",e.getMessage()); - - } - - Map par_valMap = new HashMap<>(); - par_valMap.put("Pmap",Pmap); - par_valMap.put("operateMap",operateMap); - - - String mytable_name = "sys_dept"; - String mytype = "2"; - String myfunction_name = "updDepositAmount"; - String par_val = JSON.toJSONString(par_valMap); - String sel_key = "dept_id"; - String sel_val = agent_id; - - - Map add_common = new HashMap<>(); - add_common.put("mytable_name",mytable_name); - add_common.put("sel_key",sel_key); - add_common.put("sel_val",sel_val); - add_common.put("result",result); - add_common.put("par_val",par_val); - add_common.put("remarks",remarks); - add_common.put("myfunction_name",myfunction_name); - add_common.put("mytype",mytype); - - - Map add_row1 = new HashMap<>(); - add_row1.put("mybefore",DeptAmountMap.get("deposit_amount")!=null?DeptAmountMap.get("deposit_amount").toString():""); - add_row1.put("change_value",deposit_amount.toString()); - add_row1.put("field_key","deposit_amount"); - add_row1.put("field_val","预存金额"); - - List> insertArr = new ArrayList<>(); - - insertArr.add(add_row1); - - add_common.put("saveArr",insertArr); - - //修改企业金额信息 路由队列 - String polling_routingKey = "admin.insertMoneyChangeRecord.queue"; - String polling_exchangeName = "admin_exchange";//路由 - try { - rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(add_common), message -> { - // 设置消息过期时间 30 分钟 过期 - message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); - return message; - }); - } catch (Exception e) { - log.error("admin_insertMoneyChangeRecord_queue 发送 失败 {} {}",add_common,e.getMessage() ); - } - - - - } - - - } - - - - /** - * 代理 预存金额 - * @param Pmap - * @param operateMap - */ - public void Prestore( Map Pmap ,Map operateMap){ - - - if(Pmap.get("agent_id")!=null && Pmap.get("agent_id").toString().length()>0 && Pmap.get("deposit_amount")!=null && Pmap.get("deposit_amount").toString().length()>0){ + if(Pmap.get("agent_id")!=null && Pmap.get("agent_id").toString().length()>0 && Pmap.get("line_of_credit")!=null && Pmap.get("line_of_credit").toString().length()>0){ String agent_id = Pmap.get("agent_id").toString(); - Double deposit_amount = Double.parseDouble(Pmap.get("deposit_amount").toString()); + Double line_of_credit = Double.parseDouble(Pmap.get("line_of_credit").toString()); //1. 授信额度 - ( 获取 订单 SUM(交易类型为 [用量充值] & 支付方式[授信支付]) - SUM(预存抵扣) ) = 已使用额度 @@ -351,20 +161,111 @@ public class UpdDeptAmount { agent_idArr.add(agent_id); Map OrderpMap = new HashMap<>(); - OrderpMap.put("ord_mytype","2"); - OrderpMap.put("pay_mytype","ct"); + OrderpMap.put("ord_type","2"); + OrderpMap.put("pay_type","ct"); OrderpMap.put("agent_id",agent_idArr); String SumCreditPrice = yzOrderMapper.getSumPrice(OrderpMap); D_CreditPrice = SumCreditPrice!=null?Double.parseDouble(SumCreditPrice):D_CreditPrice; Map deductMap = new HashMap<>(); - deductMap.put("ord_mytype","6"); + deductMap.put("ord_type","6"); deductMap.put("agent_id",agent_idArr); String SumDeductPrice = yzOrderMapper.getSumPrice(deductMap); D_DeductPrice = SumDeductPrice!=null?Double.parseDouble(SumDeductPrice):D_DeductPrice; + Double used_line_of_credit = Arith.sub(line_of_credit,Arith.sub(D_CreditPrice,D_DeductPrice));//已使用授信额度 + Double be_usable_line_of_credit = Arith.sub(line_of_credit,used_line_of_credit);//可使用授信额度 + String result = "1"; + String remarks = ""; + + + //2.准备 金额变更记录表 新增数据 + Map FindDeptAmountMap = new HashMap<>(); + FindDeptAmountMap.put("dept_id",agent_id); + Map DeptAmountMap = yzUserMapper.findDeptAmount(FindDeptAmountMap); + + try { + Map updCreditMap = new HashMap<>(); + updCreditMap.put("used_line_of_credit",used_line_of_credit); + updCreditMap.put("be_usable_line_of_credit",be_usable_line_of_credit); + updCreditMap.put("line_of_credit",line_of_credit); + updCreditMap.put("dept_id",agent_id); + int updCOunt = yzUserMapper.updCredit(updCreditMap); + remarks = "操作成功 updCOunt "+updCOunt; + }catch (Exception e){ + result = "2"; + remarks = e.getMessage()!=null?e.getMessage():remarks; + remarks = remarks.length()>150?remarks.substring(0,150):remarks; + log.error("yzUserMapper.updCredit Exception {}",e.getMessage()); + + } + + Map par_valMap = new HashMap<>(); + par_valMap.put("Pmap",Pmap); + par_valMap.put("operateMap",operateMap); + + + String mytable_name = "sys_dept"; + String mytype = "2"; + String myfunction_name = "updCredit"; + String par_val = JSON.toJSONString(par_valMap); + String sel_key = "dept_id"; + String sel_val = agent_id; + + + Map add_common = new HashMap<>(); + add_common.put("mytable_name",mytable_name); + add_common.put("sel_key",sel_key); + add_common.put("sel_val",sel_val); + add_common.put("result",result); + add_common.put("par_val",par_val); + add_common.put("remarks",remarks); + add_common.put("myfunction_name",myfunction_name); + add_common.put("mytype",mytype); + + + Map add_row1 = new HashMap<>(); + add_row1.put("mybefore",DeptAmountMap.get("line_of_credit")!=null?DeptAmountMap.get("line_of_credit").toString():""); + add_row1.put("change_value",line_of_credit.toString()); + add_row1.put("field_key","line_of_credit"); + add_row1.put("field_val","已授信额度"); + + Map add_row2 = new HashMap<>(); + add_row2.put("mybefore",DeptAmountMap.get("used_line_of_credit")!=null?DeptAmountMap.get("used_line_of_credit").toString():""); + add_row2.put("change_value",used_line_of_credit.toString()); + add_row2.put("field_key","used_line_of_credit"); + add_row2.put("field_val","已使用授信额度"); + + Map add_row3 = new HashMap<>(); + add_row3.put("mybefore",DeptAmountMap.get("be_usable_line_of_credit")!=null?DeptAmountMap.get("be_usable_line_of_credit").toString():""); + add_row3.put("change_value",be_usable_line_of_credit.toString()); + add_row3.put("field_key","be_usable_line_of_credit"); + add_row3.put("field_val","可使用授信额度"); + + + List> insertArr = new ArrayList<>(); + + insertArr.add(add_row1); + insertArr.add(add_row2); + insertArr.add(add_row3); + + add_common.put("saveArr",insertArr); + + //修改企业金额信息 路由队列 + String polling_routingKey = "admin.insertMoneyChangeRecord.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + Map start_mytype = new HashMap<>(); + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(add_common), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + log.error("admin_insertMoneyChangeRecord_queue 发送 失败 {} {}",add_common,e.getMessage() ); + } }else{ log.error(">>updCredit 参数不全取消操作 Pmap:{} operateMap:{}<<", Pmap,operateMap); @@ -373,9 +274,790 @@ public class UpdDeptAmount { } + /** + * 修改 预存金额 + * @param Pmap + * @param operateMap + */ + public void UpdDAmount( Map Pmap ,Map operateMap){ + if(Pmap.get("agent_id")!=null && Pmap.get("agent_id").toString().length()>0 && Pmap.get("deposit_amount")!=null && Pmap.get("deposit_amount").toString().length()>0 + && Pmap.get("operateType")!=null && Pmap.get("operateType").toString().length()>0) { + String agent_id = Pmap.get("agent_id").toString(); + Double deposit_amount = Double.parseDouble(Pmap.get("deposit_amount").toString()); + String operateType = Pmap.get("operateType").toString(); + + //准备 金额变更记录表 新增数据 + Map FindDeptAmountMap = new HashMap<>(); + FindDeptAmountMap.put("dept_id",agent_id); + Map DeptAmountMap = yzUserMapper.findDeptAmount(FindDeptAmountMap); + String result = "1"; + String remarks = ""; + + try { + int updCOunt = yzUserMapper.updDepositAmount(Pmap); + remarks = ""+operateType+" 操作成功 updCOunt "+updCOunt; + }catch (Exception e){ + result = "2"; + remarks = e.getMessage()!=null?e.getMessage():remarks; + remarks = remarks.length()>150?remarks.substring(0,150):remarks; + remarks = ""+operateType+" "+remarks; + log.error("yzUserMapper.updCredit Exception {}",e.getMessage()); + + } + String mytable_name = "sys_dept"; + String mytype = "2"; + String myfunction_name = "updDepositAmount"; + String sel_key = "dept_id"; + String sel_val = agent_id; + String mybefore = DeptAmountMap.get("deposit_amount")!=null?DeptAmountMap.get("deposit_amount").toString():""; + String change_value = deposit_amount.toString(); + String field_key = "deposit_amount"; + String field_val = "预存金额"; + + insertMoneyChangeRecord(Pmap,operateMap,result,remarks,mybefore,change_value,mytable_name,mytype,myfunction_name,sel_key,sel_val,field_key,field_val); + + + } + + + } + + + /** + * 新增 金额变更记录表 + * @param Pmap 请求参数 + * @param operateMap 操作人信息 + * @param result 执行结果 + * @param remarks 备注 + * @param mybefore 变更前 + * @param change_value 变更值 + * @param mytable_name 变更表名 + * @param mytype 变更类型 + * @param myfunction_name 函数名 + * @param sel_key 关联查询 字段 + * @param sel_val 关联查询 字段值 + * @param field_key 变更字段 + * @param field_val 变更字段介绍 + */ + public void insertMoneyChangeRecord(Map Pmap ,Map operateMap,String result,String remarks,String mybefore,String change_value, + String mytable_name,String mytype,String myfunction_name,String sel_key,String sel_val,String field_key,String field_val){ + Map par_valMap = new HashMap<>(); + par_valMap.put("Pmap",Pmap); + par_valMap.put("operateMap",operateMap); + + String par_val = JSON.toJSONString(par_valMap); + + + Map add_common = new HashMap<>(); + add_common.put("mytable_name",mytable_name); + add_common.put("sel_key",sel_key); + add_common.put("sel_val",sel_val); + add_common.put("result",result); + add_common.put("par_val",par_val); + add_common.put("remarks",remarks); + add_common.put("myfunction_name",myfunction_name); + add_common.put("mytype",mytype); + + + Map add_row1 = new HashMap<>(); + add_row1.put("mybefore",mybefore); + add_row1.put("change_value",change_value); + add_row1.put("field_key",field_key); + add_row1.put("field_val",field_val); + + List> insertArr = new ArrayList<>(); + + insertArr.add(add_row1); + + add_common.put("saveArr",insertArr); + + //修改企业金额信息 路由队列 + String polling_routingKey = "admin.insertMoneyChangeRecord.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(add_common), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + log.error("admin_insertMoneyChangeRecord_queue 发送 失败 {} {}",add_common,e.getMessage() ); + } + + } + + + + + + + + + + + + + + + + + + + + + + + + /** + * 代理 预存金额 + * @param Pmap + * @param operateMap + */ + @Transactional + public void Prestore( Map Pmap ,Map operateMap){ + + + if(Pmap.get("agent_id")!=null && Pmap.get("agent_id").toString().length()>0 && Pmap.get("deposit_amount")!=null && Pmap.get("deposit_amount").toString().length()>0){ + String agent_id = Pmap.get("agent_id").toString(); + Double deposit_amount = Double.parseDouble(Pmap.get("deposit_amount").toString());//预存金额 + + String result = "1"; + String remarks = ""; + + + //1. 授信 + Map creditMap = getCredit(agent_id); + Double D_CreditPrice = Double.parseDouble(creditMap.get("D_CreditPrice").toString());//已用授信 + Double D_DeductPrice = Double.parseDouble(creditMap.get("D_DeductPrice").toString());//预存抵扣 + Double used_line_of_credit = Double.parseDouble(creditMap.get("used_line_of_credit").toString());//已使用授信额度 + + //查询企业下金额信息 + Map FindDeptAmountMap = new HashMap<>(); + FindDeptAmountMap.put("dept_id",agent_id); + Map DeptAmountMap = yzUserMapper.findDeptAmount(FindDeptAmountMap); + Double line_of_credit = DeptAmountMap.get("line_of_credit")!=null&&DeptAmountMap.get("line_of_credit").toString().length()>0?Double.parseDouble(DeptAmountMap.get("line_of_credit").toString()):0.0;//已授信额度 + + + int updCredit = 0; + int updAmount = 0; + + String operateType = "add"; + + try { + //2.该次预存金额 - 已使用额度 = 实际预存金额 + Double actualDeposit_amount = Arith.sub(deposit_amount,used_line_of_credit); + if(used_line_of_credit>0){//如果有已使用授信额度 预存时因优先扣除 已使用授信额度 + + String ordNo = VeDate.getNo(8); + Double paySum = 0.0; + if(actualDeposit_amount<0){//实际预存金额 < 0 [说明 该次预存没有达到已使用授信(还是充钱了还是欠账)] + actualDeposit_amount = 0.0;//预存金额 0 + paySum = deposit_amount;//交易金额 + }else{//实际预存金额 >= 0 [说明 该次预存 大于 已使用的授信额度 ] + paySum = used_line_of_credit;//交易金额 = 已使用的授信额度 [抵扣] + used_line_of_credit = 0.0;//已使用的授信额度 清零 + } + + //添加订单生成参数 + Map OrderMap = new HashMap<>(); + + OrderMap.put("ord_type", 6);//订单类型 企业预存 4 预存抵扣 6 + OrderMap.put("ord_name", "预存抵扣");//交易名称 + OrderMap.put("wx_ord_no", null);//微信订单号 + OrderMap.put("status", "1");//支付状态 未支付 + OrderMap.put("price", paySum);//交易金额 + OrderMap.put("account", "0");//交易后金额 + OrderMap.put("pay_type", "pe");//支付方式 预存支付 pe + OrderMap.put("is_profit", "0");//是否需要分润 0否-1是 + OrderMap.put("add_package", "0");//是否已经执行过加包 0否 1 是 + OrderMap.put("show_status", "1");//是否显示交易记录:0否-1显示 + OrderMap.put("open_id", null);//openid 微信支付记录操作人 + OrderMap.put("agent_id", agent_id);// 所属记录企业id + OrderMap.put("cre_type", "sys");//生成方式 系统 sys 人工 ai + OrderMap.put("iccid", ""); + OrderMap.put("ord_no", ordNo); + OrderMap.put("info", ""); + //生成交易订单 + if(yzOrderMapper.save(OrderMap)>0){ + //修改授信额度信息 + Double be_usable_line_of_credit = Arith.sub(line_of_credit,used_line_of_credit);//可使用授信额度 = 已授信额度 - 已使用授信额度[本次交易] + + Map updCreditMap = new HashMap<>(); + updCreditMap.put("used_line_of_credit",used_line_of_credit); + updCreditMap.put("be_usable_line_of_credit",be_usable_line_of_credit); + updCreditMap.put("line_of_credit",line_of_credit);//授信额度不变 + updCreditMap.put("dept_id",agent_id); + updCredit = yzUserMapper.updCredit(updCreditMap); + } + } + Map updDepositAmountMap = new HashMap<>(); + updDepositAmountMap.put("operateType",operateType); + updDepositAmountMap.put("deposit_amount",actualDeposit_amount); + updDepositAmountMap.put("dept_id",agent_id); + + updAmount = yzUserMapper.updDepositAmount(updDepositAmountMap); + remarks = ""+operateType+" 操作成功 updAmount "+updAmount; + }catch (Exception e){ + result = "2"; + remarks = e.getMessage()!=null?e.getMessage():remarks; + remarks = remarks.length()>150?remarks.substring(0,150):remarks; + remarks = ""+operateType+" "+remarks; + log.error("yzUserMapper.updCredit Exception {}",e.getMessage()); + } + + try { + String mytable_name = "sys_dept"; + String mytype = "2"; + String myfunction_name = "updDepositAmount"; + String sel_key = "dept_id"; + String sel_val = agent_id; + String mybefore = DeptAmountMap.get("deposit_amount")!=null?DeptAmountMap.get("deposit_amount").toString():""; + String change_value = deposit_amount.toString(); + String field_key = "deposit_amount"; + String field_val = "预存金额"; + insertMoneyChangeRecord(Pmap,operateMap,result,remarks,mybefore,change_value,mytable_name,mytype,myfunction_name,sel_key,sel_val,field_key,field_val); + + }catch (Exception e){ + log.error(">>insertMoneyChangeRecord 操作异常 Pmap:{} operateMap:{}<<", Pmap,operateMap); + } + + log.info(">>Prestore 成功 Pmap:{} operateMap:{} updAmount {} updCredit {}<<", Pmap,operateMap,updAmount,updCredit); + }else{ + log.error(">>Prestore 参数不全取消操作 Pmap:{} operateMap:{}<<", Pmap,operateMap); + } + + + } + + + /** + * 获取 企业预存信息 + * @param agent_id + * @return + */ + public Map getCredit(String agent_id){ + Map rMap = new HashMap<>(); + + //1. 授信额度 - ( 获取 订单 SUM(交易类型为 [企业续费] & 支付方式[授信支付]) - SUM(预存抵扣) ) = 已使用额度 + Double D_CreditPrice = 0.0;//已用授信 + Double D_DeductPrice = 0.0;//预存抵扣 + + List agent_idArr = new ArrayList<>(); + agent_idArr.add(agent_id); + + Map OrderpMap = new HashMap<>(); + OrderpMap.put("ord_type","7"); + OrderpMap.put("pay_type","ct"); + OrderpMap.put("agent_id",agent_idArr); + String SumCreditPrice = yzOrderMapper.getSumPrice(OrderpMap); + D_CreditPrice = SumCreditPrice!=null?Double.parseDouble(SumCreditPrice):D_CreditPrice; + + Map deductMap = new HashMap<>(); + deductMap.put("ord_type","6"); + deductMap.put("agent_id",agent_idArr); + String SumDeductPrice = yzOrderMapper.getSumPrice(deductMap); + D_DeductPrice = SumDeductPrice!=null?Double.parseDouble(SumDeductPrice):D_DeductPrice; + + Double used_line_of_credit = Arith.sub(D_CreditPrice,D_DeductPrice) ;//已使用授信额度 + rMap.put("D_CreditPrice",D_CreditPrice); + rMap.put("D_DeductPrice",D_DeductPrice); + rMap.put("used_line_of_credit",used_line_of_credit); + + return rMap; + } + + + /** + * 企业账户续费扣款 + * @param Pmap + * @param operateMap + * @param primaryMap + */ + @Transactional + public void RenewalDebit( Map Pmap ,Map operateMap,Map primaryMap){ + if(Pmap.get("dept_id")!=null && Pmap.get("dept_id").toString().length()>0 && primaryMap.get("amount")!=null && primaryMap.get("amount").toString().length()>0){ + String agent_id = Pmap.get("dept_id").toString(); + Map dept = (Map) operateMap.get("dept"); + String deptName = dept.get("deptName").toString(); + Double amount = Double.parseDouble(primaryMap.get("amount").toString());//扣款金额 + + int renewalCount = 0,iccidCount = 0,ordnoCount = 0,primaryCount = 0; + + //1. 获取授信 + Map creditMap = getCredit(agent_id); + Double D_CreditPrice = Double.parseDouble(creditMap.get("D_CreditPrice").toString());//已用授信 + Double D_DeductPrice = Double.parseDouble(creditMap.get("D_DeductPrice").toString());//预存抵扣 + Double used_line_of_credit = Double.parseDouble(creditMap.get("used_line_of_credit").toString());//已使用授信额度 + Map FindDeptAmountMap = new HashMap<>(); + FindDeptAmountMap.put("dept_id",agent_id); + Map DeptAmountMap = yzUserMapper.findDeptAmount(FindDeptAmountMap); + + Double deposit_amount = DeptAmountMap.get("deposit_amount")!=null&&DeptAmountMap.get("deposit_amount").toString().length()>0?Double.parseDouble(DeptAmountMap.get("deposit_amount").toString()):0.0;//预存金额 + Double be_usable_line_of_credit = DeptAmountMap.get("be_usable_line_of_credit")!=null&&DeptAmountMap.get("be_usable_line_of_credit").toString().length()>0?Double.parseDouble(DeptAmountMap.get("be_usable_line_of_credit").toString()):0.0;//可使用授信额度 + Double line_of_credit = DeptAmountMap.get("line_of_credit")!=null&&DeptAmountMap.get("line_of_credit").toString().length()>0?Double.parseDouble(DeptAmountMap.get("line_of_credit").toString()):0.0;//已授信额度 + + + double forecast_deposit_amount = 0.0;//预计剩余可用预存金额 + double forecast_be_usable_line_of_credit = 0.0;//预计剩余 可用授信 [默认 0 ] + forecast_deposit_amount = Arith.sub(deposit_amount,amount);//预计剩余可用预存金额 = 可用预存金额 - 总扣款 + boolean is_NeedToRecharge = false;//判断扣款是否不足以支付该次 操作进行提示 + + if(forecast_deposit_amount<0 && be_usable_line_of_credit==0){//如 预计剩余可用预存金额 <0 且 可用授信额度 == 0 + is_NeedToRecharge = true; + }else if(forecast_deposit_amount<0 && be_usable_line_of_credit>0){//如 预计剩余可用预存金额 <0 且 可用授信额度》0 》》 继续判断可用授信是否足够扣款 + forecast_be_usable_line_of_credit = Arith.add(be_usable_line_of_credit,forecast_deposit_amount);//预计剩余 可用授信 = 剩余可用授信 - 预计剩余可用预存金额 + forecast_deposit_amount = 0; + if(forecast_be_usable_line_of_credit>0) {//如 预计剩余 可用授信 >0 变更 预计剩余可用预存金额 = 0 + + }else{ + is_NeedToRecharge = true; + } + }else{ + forecast_be_usable_line_of_credit = be_usable_line_of_credit; + } + + if(is_NeedToRecharge){ //不足以扣款时 + double stillNeeded = Arith.add(forecast_deposit_amount,forecast_be_usable_line_of_credit);//还需充值金额 + stillNeeded = Math.abs(stillNeeded); + log.error(">>本次操作需扣款 [ {} ] 还需 [ {} ] ,{} 账户目前可用预存/授信不足,请点击['去预存']!<<", amount,stillNeeded,deptName); + }else{ + //0.账户扣款 【1.预计剩余可用预存金额》0 且 预存金额 》0 】 + List OrdArrs = new ArrayList<>(); + int orderSaveCount = 0; + Double debit = 0.0;//已经扣款的金额 【预存授信混合支付时做减法】 + if(deposit_amount>0){//预存里面可以扣 优先扣预存再扣授信 + Double paySum = 0.0; + if(forecast_deposit_amount>0){ + paySum = amount;//预计剩余可用预存金额 > 0 交易金额 = amount 扣款金额 + }else{ + paySum = deposit_amount;//交易金额 = deposit_amount 现有可用预存金额 + } + debit = Arith.add(debit,paySum);//已经扣除 + //添加订单生成参数 + Map OrderMap = new HashMap<>(); + String ordNo = VeDate.getNo(8); + OrdArrs.add(ordNo); + OrderMap.put("ord_type", 7);//订单类型 企业续费 7 + OrderMap.put("ord_name", "企业续费");//交易名称 + OrderMap.put("wx_ord_no", null);//微信订单号 + OrderMap.put("status", "1");//支付状态 已支付 + OrderMap.put("price", paySum);//交易金额 + OrderMap.put("account", forecast_deposit_amount);//交易后金额 = 预计剩余可用预存金额 + OrderMap.put("pay_type", "pe");//支付方式 预存支付 pe + OrderMap.put("is_profit", "0");//是否需要分润 0否-1是 + OrderMap.put("add_package", "0");//是否已经执行过加包 0否 1 是 + OrderMap.put("show_status", "1");//是否显示交易记录:0否-1显示 + OrderMap.put("open_id", null);//openid 微信支付记录操作人 + OrderMap.put("agent_id", agent_id);// 所属记录企业id + OrderMap.put("cre_type", "sys");//生成方式 系统 sys 人工 ai + OrderMap.put("iccid", ""); + OrderMap.put("ord_no", ordNo); + OrderMap.put("info", ""); + + Map setDAMap = new HashMap<>(); + setDAMap.put("deposit_amount",forecast_deposit_amount); + setDAMap.put("dept_id",agent_id); + if(yzUserMapper.setDepositAmount(setDAMap)>0){ + //生成交易订单 + orderSaveCount += yzOrderMapper.save(OrderMap); + } + } + + if(be_usable_line_of_credit>0){//可使用授信额度 》 0 + Double paySum = 0.0; + if(forecast_be_usable_line_of_credit>=0){ + paySum = amount;//预计剩余 可用授信 》=0 交易金额 = amount 扣款金额 + }else{ + paySum = forecast_be_usable_line_of_credit;//交易金额 = forecast_be_usable_line_of_credit 可使用授信额度 + } + paySum = Arith.sub(paySum,debit);//交易金额减去已经扣款的部分 + + //添加订单生成参数 + Map OrderMap = new HashMap<>(); + String ordNo = VeDate.getNo(8); + OrdArrs.add(ordNo); + OrderMap.put("ord_type", 7);//订单类型 企业续费 7 + OrderMap.put("ord_name", "企业续费");//交易名称 + OrderMap.put("wx_ord_no", null);//微信订单号 + OrderMap.put("status", "1");//支付状态 已支付 + OrderMap.put("price", paySum);//交易金额 + OrderMap.put("account", forecast_be_usable_line_of_credit);//交易后金额 = 预计剩余可用授信 + OrderMap.put("pay_type", "ct");//支付方式 授信支付 ct + OrderMap.put("is_profit", "0");//是否需要分润 0否-1是 + OrderMap.put("add_package", "0");//是否已经执行过加包 0否 1 是 + OrderMap.put("show_status", "1");//是否显示交易记录:0否-1显示 + OrderMap.put("open_id", null);//openid 微信支付记录操作人 + OrderMap.put("agent_id", agent_id);// 所属记录企业id + OrderMap.put("cre_type", "sys");//生成方式 系统 sys 人工 ai + OrderMap.put("iccid", ""); + OrderMap.put("ord_no", ordNo); + OrderMap.put("info", ""); + + used_line_of_credit = Arith.add(paySum,used_line_of_credit);//已使用授信额度 = //结算出的历史已使用授信额度+本次使用的 + + Map updCreditMap = new HashMap<>(); + updCreditMap.put("line_of_credit",line_of_credit);//已授信额度 不变 + updCreditMap.put("used_line_of_credit",used_line_of_credit);//已使用授信额度 + updCreditMap.put("be_usable_line_of_credit",forecast_be_usable_line_of_credit);//可使用授信额度 + updCreditMap.put("dept_id",agent_id); + if(yzUserMapper.updCredit(updCreditMap)>0){ + //生成交易订单 + orderSaveCount += yzOrderMapper.save(OrderMap); + } + } + //2.生成 续费申请 + if(orderSaveCount>0){ + + //2.1 续费申请主表 + primaryMap.put("info",Pmap.get("info")); + primaryMap.put("dept_id",agent_id); + primaryCount = yzApplicationforRenewalPrimaryMapper.save(primaryMap); + if(primaryCount>0){ + String p_id = primaryMap.get("id").toString(); + //2.1 订单表 + Map OrdNoMap = new HashMap<>(); + OrdNoMap.put("p_id",p_id); + OrdNoMap.put("OrdArrs",OrdArrs); + + ordnoCount = yzApplicationforRenewalPrimaryOrdNoMapper.save(OrdNoMap); + + List> packetArr = (List>) Pmap.get("packetArr"); + Map BRpacketCardCount = (Map) Pmap.get("BRpacketCardCount"); + + + + + + + List> packet_arrs = new ArrayList<>(); + for (int i = 0; i < packetArr.size(); i++) { + Map packetObj = packetArr.get(i); + Map findPacketMap = new HashMap<>(); + String packet_id = packetObj.get("packet_id").toString(); + findPacketMap.put("dept_id",agent_id); + findPacketMap.put("packet_id",packet_id); + Map packet_info = new HashMap<>(); + if(agent_id.equals("100")){ + packet_info = yzCardPacketMapper.findOnePacket(findPacketMap); + }else{ + packet_info = yzAgentPacketMapper.findOnePacket(findPacketMap); + } + packetObj.put("packet_info",JSON.toJSONString(packet_info)); + List> cardObj = (List>) BRpacketCardCount.get(""+packet_id); + packetObj.put("card_count",cardObj.size()); + packet_arrs.add(packetObj); + } + for (int i = 0; i < packet_arrs.size(); i++) {//续费申请详情卡号 新增 指定资费下 卡号信息 + Map packetObj = packet_arrs.get(i); + packetObj.put("p_id",p_id); + packetObj.put("dept_id",agent_id); + + int rCount = yzApplicationforRenewalMapper.save(packetObj); + renewalCount += rCount; + if(rCount>0){ + Map IccidMap = new HashMap<>(); + String packet_id = packetObj.get("packet_id").toString(); + String b_id = packetObj.get("id").toString(); + List> cardArrs = (List>) BRpacketCardCount.get(""+packet_id); + IccidMap.put("b_id",b_id); + IccidMap.put("cardArrs",cardArrs); + iccidCount = yzApplicationforRenewalPrimaryIccidMapper.save(IccidMap); + } + + } + } + } + } + + log.info(">>RenewalDebit 成功 Pmap:{} operateMap:{} renewalCount {} iccidCount {} ordnoCount {} primaryCount {}<<", Pmap,operateMap,renewalCount,iccidCount,ordnoCount,primaryCount); + }else{ + log.error(">>RenewalDebit 参数不全取消操作 Pmap:{} operateMap:{}<<", Pmap,operateMap); + } + + + } + + /** + * 企业账户续费扣款 + * @param Pmap + * @param operateMap + * @param primaryMap + */ + @Transactional + public void Debit(String filePath, String newName,Map POrderMap,Map bulkMap,List iccidArr, Map Pmap ,Map operateMap,Map primaryMap,String opType){ + if(Pmap.get("dept_id")!=null && Pmap.get("dept_id").toString().length()>0 && primaryMap.get("amount")!=null && primaryMap.get("amount").toString().length()>0){ + String agent_id = Pmap.get("dept_id").toString(); + Map dept = (Map) operateMap.get("dept"); + String deptName = dept.get("deptName").toString(); + Double amount = Double.parseDouble(primaryMap.get("amount").toString());//扣款金额 + + int renewalCount = 0,iccidCount = 0,ordnoCount = 0,primaryCount = 0; + + String ord_name = ""; + switch (opType){ + case "RenewalDebit": + ord_name = "企业续费"; + break; + case "Recharge": + ord_name = "企业充值"; + break; + } + + + + //1. 获取授信 + Map creditMap = getCredit(agent_id); + Double D_CreditPrice = Double.parseDouble(creditMap.get("D_CreditPrice").toString());//已用授信 + Double D_DeductPrice = Double.parseDouble(creditMap.get("D_DeductPrice").toString());//预存抵扣 + Double used_line_of_credit = Double.parseDouble(creditMap.get("used_line_of_credit").toString());//已使用授信额度 + Map FindDeptAmountMap = new HashMap<>(); + FindDeptAmountMap.put("dept_id",agent_id); + Map DeptAmountMap = yzUserMapper.findDeptAmount(FindDeptAmountMap); + + Double deposit_amount = DeptAmountMap.get("deposit_amount")!=null&&DeptAmountMap.get("deposit_amount").toString().length()>0?Double.parseDouble(DeptAmountMap.get("deposit_amount").toString()):0.0;//预存金额 + Double be_usable_line_of_credit = DeptAmountMap.get("be_usable_line_of_credit")!=null&&DeptAmountMap.get("be_usable_line_of_credit").toString().length()>0?Double.parseDouble(DeptAmountMap.get("be_usable_line_of_credit").toString()):0.0;//可使用授信额度 + Double line_of_credit = DeptAmountMap.get("line_of_credit")!=null&&DeptAmountMap.get("line_of_credit").toString().length()>0?Double.parseDouble(DeptAmountMap.get("line_of_credit").toString()):0.0;//已授信额度 + + + double forecast_deposit_amount = 0.0;//预计剩余可用预存金额 + double forecast_be_usable_line_of_credit = 0.0;//预计剩余 可用授信 [默认 0 ] + forecast_deposit_amount = Arith.sub(deposit_amount,amount);//预计剩余可用预存金额 = 可用预存金额 - 总扣款 + boolean is_NeedToRecharge = false;//判断扣款是否不足以支付该次 操作进行提示 + + if(forecast_deposit_amount<0 && be_usable_line_of_credit==0){//如 预计剩余可用预存金额 <0 且 可用授信额度 == 0 + is_NeedToRecharge = true; + }else if(forecast_deposit_amount<0 && be_usable_line_of_credit>0){//如 预计剩余可用预存金额 <0 且 可用授信额度》0 》》 继续判断可用授信是否足够扣款 + forecast_be_usable_line_of_credit = Arith.add(be_usable_line_of_credit,forecast_deposit_amount);//预计剩余 可用授信 = 剩余可用授信 - 预计剩余可用预存金额 + forecast_deposit_amount = 0; + if(forecast_be_usable_line_of_credit>0) {//如 预计剩余 可用授信 >0 变更 预计剩余可用预存金额 = 0 + + }else{ + is_NeedToRecharge = true; + } + }else{ + forecast_be_usable_line_of_credit = be_usable_line_of_credit; + } + + if(is_NeedToRecharge){ //不足以扣款时 + double stillNeeded = Arith.add(forecast_deposit_amount,forecast_be_usable_line_of_credit);//还需充值金额 + stillNeeded = Math.abs(stillNeeded); + log.error(">>本次操作需扣款 [ {} ] 还需 [ {} ] ,{} 账户目前可用预存/授信不足,请点击['去预存']!<<", amount,stillNeeded,deptName); + }else{ + //0.账户扣款 【1.预计剩余可用预存金额》0 且 预存金额 》0 】 + List OrdArrs = new ArrayList<>(); + int orderSaveCount = 0; + Double debit = 0.0;//已经扣款的金额 【预存授信混合支付时做减法】 + if(deposit_amount>0){//预存里面可以扣 优先扣预存再扣授信 + Double paySum = 0.0; + if(forecast_deposit_amount>0){ + paySum = amount;//预计剩余可用预存金额 > 0 交易金额 = amount 扣款金额 + }else{ + paySum = deposit_amount;//交易金额 = deposit_amount 现有可用预存金额 + } + debit = Arith.add(debit,paySum);//已经扣除 + //添加订单生成参数 + Map OrderMap = new HashMap<>(); + String ordNo = VeDate.getNo(8); + OrdArrs.add(ordNo); + OrderMap.put("ord_type", 7);//订单类型 企业续费 7 + OrderMap.put("ord_name", ord_name);//交易名称 + OrderMap.put("wx_ord_no", null);//微信订单号 + OrderMap.put("status", "1");//支付状态 已支付 + OrderMap.put("price", paySum);//交易金额 + OrderMap.put("account", forecast_deposit_amount);//交易后金额 = 预计剩余可用预存金额 + OrderMap.put("pay_type", "pe");//支付方式 预存支付 pe + OrderMap.put("is_profit", "0");//是否需要分润 0否-1是 + OrderMap.put("add_package", "0");//是否已经执行过加包 0否 1 是 + OrderMap.put("show_status", "1");//是否显示交易记录:0否-1显示 + OrderMap.put("open_id", null);//openid 微信支付记录操作人 + OrderMap.put("agent_id", agent_id);// 所属记录企业id + OrderMap.put("cre_type", "sys");//生成方式 系统 sys 人工 ai + OrderMap.put("iccid", ""); + OrderMap.put("ord_no", ordNo); + OrderMap.put("info", ""); + + Map setDAMap = new HashMap<>(); + setDAMap.put("deposit_amount",forecast_deposit_amount); + setDAMap.put("dept_id",agent_id); + if(yzUserMapper.setDepositAmount(setDAMap)>0){ + //生成交易订单 + orderSaveCount += yzOrderMapper.save(OrderMap); + } + } + + if(be_usable_line_of_credit>0){//可使用授信额度 》 0 + Double paySum = 0.0; + if(forecast_be_usable_line_of_credit>=0){ + paySum = amount;//预计剩余 可用授信 》=0 交易金额 = amount 扣款金额 + }else{ + paySum = forecast_be_usable_line_of_credit;//交易金额 = forecast_be_usable_line_of_credit 可使用授信额度 + } + paySum = Arith.sub(paySum,debit);//交易金额减去已经扣款的部分 + + //添加订单生成参数 + Map OrderMap = new HashMap<>(); + String ordNo = VeDate.getNo(8); + OrdArrs.add(ordNo); + OrderMap.put("ord_type", 7);//订单类型 企业续费 7 + OrderMap.put("ord_name", "企业续费");//交易名称 + OrderMap.put("wx_ord_no", null);//微信订单号 + OrderMap.put("status", "1");//支付状态 已支付 + OrderMap.put("price", paySum);//交易金额 + OrderMap.put("account", forecast_be_usable_line_of_credit);//交易后金额 = 预计剩余可用授信 + OrderMap.put("pay_type", "ct");//支付方式 授信支付 ct + OrderMap.put("is_profit", "0");//是否需要分润 0否-1是 + OrderMap.put("add_package", "0");//是否已经执行过加包 0否 1 是 + OrderMap.put("show_status", "1");//是否显示交易记录:0否-1显示 + OrderMap.put("open_id", null);//openid 微信支付记录操作人 + OrderMap.put("agent_id", agent_id);// 所属记录企业id + OrderMap.put("cre_type", "sys");//生成方式 系统 sys 人工 ai + OrderMap.put("iccid", ""); + OrderMap.put("ord_no", ordNo); + OrderMap.put("info", ""); + + used_line_of_credit = Arith.add(paySum,used_line_of_credit);//已使用授信额度 = //结算出的历史已使用授信额度+本次使用的 + + Map updCreditMap = new HashMap<>(); + updCreditMap.put("line_of_credit",line_of_credit);//已授信额度 不变 + updCreditMap.put("used_line_of_credit",used_line_of_credit);//已使用授信额度 + updCreditMap.put("be_usable_line_of_credit",forecast_be_usable_line_of_credit);//可使用授信额度 + updCreditMap.put("dept_id",agent_id); + if(yzUserMapper.updCredit(updCreditMap)>0){ + //生成交易订单 + orderSaveCount += yzOrderMapper.save(OrderMap); + } + } + //2. + if(orderSaveCount>0){ + if(opType.equals("RenewalDebit")){ + //生成 续费申请 + Renewal(Pmap,operateMap,primaryMap,agent_id,OrdArrs,primaryCount,orderSaveCount,renewalCount,iccidCount); + }else if(opType.equals("Recharge")){ + //文本域批量充值 + TextExecution(filePath,newName,Pmap,operateMap,POrderMap,bulkMap,iccidArr); + } + + + } + } + + + }else{ + log.error(">>RenewalDebit 参数不全取消操作 Pmap:{} operateMap:{}<<", Pmap,operateMap); + } + + + } + + + /** + * 续费 + * @param Pmap + * @param operateMap + * @param primaryMap + * @param agent_id + * @param OrdArrs + * @param primaryCount + * @param ordnoCount + * @param renewalCount + * @param iccidCount + */ + public void Renewal(Map Pmap , Map operateMap,Map primaryMap,String agent_id,List OrdArrs,int primaryCount,int ordnoCount,int renewalCount,int iccidCount){ + //2.1 续费申请主表 + primaryMap.put("info",Pmap.get("info")); + primaryMap.put("dept_id",agent_id); + primaryCount = yzApplicationforRenewalPrimaryMapper.save(primaryMap); + if(primaryCount>0){ + String p_id = primaryMap.get("id").toString(); + //2.1 订单表 + Map OrdNoMap = new HashMap<>(); + OrdNoMap.put("p_id",p_id); + OrdNoMap.put("OrdArrs",OrdArrs); + + ordnoCount = yzApplicationforRenewalPrimaryOrdNoMapper.save(OrdNoMap); + + List> packetArr = (List>) Pmap.get("packetArr"); + Map BRpacketCardCount = (Map) Pmap.get("BRpacketCardCount"); + + + + + + + List> packet_arrs = new ArrayList<>(); + for (int i = 0; i < packetArr.size(); i++) { + Map packetObj = packetArr.get(i); + Map findPacketMap = new HashMap<>(); + String packet_id = packetObj.get("packet_id").toString(); + findPacketMap.put("dept_id",agent_id); + findPacketMap.put("packet_id",packet_id); + Map packet_info = new HashMap<>(); + if(agent_id.equals("100")){ + packet_info = yzCardPacketMapper.findOnePacket(findPacketMap); + }else{ + packet_info = yzAgentPacketMapper.findOnePacket(findPacketMap); + } + packetObj.put("packet_info",JSON.toJSONString(packet_info)); + List> cardObj = (List>) BRpacketCardCount.get(""+packet_id); + packetObj.put("card_count",cardObj.size()); + packet_arrs.add(packetObj); + } + for (int i = 0; i < packet_arrs.size(); i++) {//续费申请详情卡号 新增 指定资费下 卡号信息 + Map packetObj = packet_arrs.get(i); + packetObj.put("p_id",p_id); + packetObj.put("dept_id",agent_id); + + int rCount = yzApplicationforRenewalMapper.save(packetObj); + renewalCount += rCount; + if(rCount>0){ + Map IccidMap = new HashMap<>(); + String packet_id = packetObj.get("packet_id").toString(); + String b_id = packetObj.get("id").toString(); + List> cardArrs = (List>) BRpacketCardCount.get(""+packet_id); + IccidMap.put("b_id",b_id); + IccidMap.put("cardArrs",cardArrs); + iccidCount = yzApplicationforRenewalPrimaryIccidMapper.save(IccidMap); + } + + } + } + log.info(">>RenewalDebit 成功 Pmap:{} operateMap:{} renewalCount {} iccidCount {} ordnoCount {} primaryCount {}<<", Pmap,operateMap,renewalCount,iccidCount,ordnoCount,primaryCount); + } + + + /** + * 文本域批量充值 + * @param filePath + * @param newName + * @param Pmap + * @param User + * @param OrderMap + * @param bulkMap + * @param iccidArr + */ + public void TextExecution(String filePath, String newName, Map Pmap,Map User,Map OrderMap, Map bulkMap,List iccidArr){ + + bulkMap.put("state_id","3");//状态 执行中 3 + bulkMap.put("start_time", VeDate.getStringDate());//赋值 开始时间 + bulkMap.put("url", "");//url + + bulkUtil.update(bulkMap);//消费者进入变更执行状态 执行中 + + String prefix = "admin_OrderTextRecharge_queue"; + //执行前判断 redis 是否存在 执行数据 存在时 不执行 + Object isExecute = redisCache.getCacheObject(prefix+":"+ newName); + if(isExecute==null){ + //System.out.println("SUCCESS"); + redisCache.setCacheObject(prefix+":"+ newName, JSON.toJSONString(Pmap), 30, TimeUnit.SECONDS);//30 秒缓存 避免 重复消费 + plOrder.TextAddOrder(iccidArr,filePath,"",newName,Pmap,User,OrderMap,bulkMap,"");//生成订单 + } + } + + + } diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/index/IndexDataGenerate.java b/yunze-consumption-admin/src/main/java/com/yunze/system/index/IndexDataGenerate.java index 76adde1..9d62557 100644 --- a/yunze-consumption-admin/src/main/java/com/yunze/system/index/IndexDataGenerate.java +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/index/IndexDataGenerate.java @@ -110,7 +110,7 @@ public class IndexDataGenerate { findExistCount = Integer.parseInt(map.get("id").toString()); }else{ HashMap findExistMap = new HashMap<>(); - findExistCount = yzIndexpageMapper.findExist(findExistMap); + findExistCount = yzIndexpageMapper.findExist(findExistMap); } findExistCount = findExistCount!=null?findExistCount:0; @@ -187,7 +187,7 @@ public class IndexDataGenerate { Map Pmap_downCount = new HashMap<>(); Pmap_downCount.putAll(map); Pmap_downCount.put("status_ShowId","5"); - downCount = yzCardMapper.selMapCount(Pmap_downCount); + downCount = yzCardMapper.selMapCount(Pmap_downCount); downCount = downCount!=null?downCount:0; requestMap.put("Pmap_downCount",Pmap_downCount); @@ -197,7 +197,7 @@ public class IndexDataGenerate { Pmap_overdoseCount.put("dimensionField","2"); Pmap_overdoseCount.put("dimensionType","4"); Pmap_overdoseCount.put("dimensionValue","0"); - overdoseCount = yzCardMapper.selMapCount(Pmap_overdoseCount); + overdoseCount = yzCardMapper.selMapCount(Pmap_overdoseCount); overdoseCount = overdoseCount!=null?overdoseCount:0; requestMap.put("Pmap_overdoseCount",Pmap_overdoseCount); @@ -207,7 +207,7 @@ public class IndexDataGenerate { Pmap_expiringSoonCount.put("timetype","5"); Pmap_expiringSoonCount.put("staTime",record_date); Pmap_expiringSoonCount.put("endTime", VeDate.getNextDay(record_date,delay)); - expiringSoonCount = yzCardMapper.selMapCount(Pmap_expiringSoonCount); + expiringSoonCount = yzCardMapper.selMapCount(Pmap_expiringSoonCount); expiringSoonCount = expiringSoonCount!=null?expiringSoonCount:0; requestMap.put("Pmap_expiringSoonCount",Pmap_expiringSoonCount); @@ -215,7 +215,7 @@ public class IndexDataGenerate { Map Pmap_thresholdReachedCount = new HashMap<>(); Pmap_thresholdReachedCount.putAll(map); Pmap_thresholdReachedCount.put("exceedsThreshold","1"); - thresholdReachedCount = yzCardMapper.selMapCount(Pmap_thresholdReachedCount); + thresholdReachedCount = yzCardMapper.selMapCount(Pmap_thresholdReachedCount); thresholdReachedCount = thresholdReachedCount!=null?thresholdReachedCount:0; requestMap.put("Pmap_thresholdReachedCount",Pmap_thresholdReachedCount); @@ -225,7 +225,7 @@ public class IndexDataGenerate { Pmap_simCardNewCount.put("timetype","6"); Pmap_simCardNewCount.put("staTime",day1); Pmap_simCardNewCount.put("endTime", record_date); - simCardNewCount = yzCardMapper.selMapCount(Pmap_simCardNewCount); + simCardNewCount = yzCardMapper.selMapCount(Pmap_simCardNewCount); simCardNewCount = simCardNewCount!=null?simCardNewCount:0; requestMap.put("Pmap_simCardNewCount",Pmap_simCardNewCount); @@ -309,7 +309,7 @@ public class IndexDataGenerate { Map status_ShowId_P_series = new HashMap<>(); status_ShowId_P_series.put("data",P_series_data); - lifeCycleDistribution = JSON.toJSONString(status_ShowId_P_series); + lifeCycleDistribution = JSON.toJSONString(status_ShowId_P_series); //业务使用情况 @@ -491,7 +491,7 @@ public class IndexDataGenerate { Pmap_activationCardCount.put("timetype","2"); Pmap_activationCardCount.put("staTime",day1); Pmap_activationCardCount.put("endTime", record_date); - activationCardCount = yzCardMapper.selMapCount(Pmap_activationCardCount); + activationCardCount = yzCardMapper.selMapCount(Pmap_activationCardCount); activationCardCount = activationCardCount!=null?activationCardCount:0; requestMap.put("Pmap_activationCardCount",Pmap_activationCardCount); @@ -501,7 +501,7 @@ public class IndexDataGenerate { Pmap_shipCard.put("timetype","4"); Pmap_shipCard.put("staTime",day1); Pmap_shipCard.put("endTime", record_date); - shipCard = yzCardMapper.selMapCount(Pmap_shipCard); + shipCard = yzCardMapper.selMapCount(Pmap_shipCard); shipCard = shipCard!=null?shipCard:0; requestMap.put("Pmap_shipCard",Pmap_shipCard); diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/order/BscribeEls.java b/yunze-consumption-admin/src/main/java/com/yunze/system/order/BscribeEls.java new file mode 100644 index 0000000..9184fcc --- /dev/null +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/order/BscribeEls.java @@ -0,0 +1,410 @@ +package com.yunze.system.order; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzCardFlowMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.mapper.yunze.YzOrderMapper; +import com.yunze.common.utils.yunze.VeDate; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 资费退订 + * */ +@Slf4j +@Component +public class BscribeEls { + + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private WriteCSV writeCSV; + @Resource + private YzOrderMapper yzOrderMapper; + @Resource + private YzCardFlowMapper yzCardFlowMapper; + + @RabbitHandler + @RabbitListener(queues = "admin_Unsubscribe_queue") + public void Unsubscribe(String msg) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + PbEx(msg); + + } catch (Exception e) { + log.error(">>错误 - 资费退订 消费者:{}<<", e.getMessage().toString()); + } + } + + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_Unsubscribe_queue") + public void DlxUnsubscribe(String msg) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + PbEx(msg); + + } catch (Exception e) { + log.error(">>错误 - 资费退订 消费者:{}<<", e.getMessage().toString()); + } + } + + + + + public void PbEx(String msg){ + Map map = JSON.parseObject(msg); + List> Unsubscribe = (List>) map.get("Unsubscribe"); + Map task_map = (Map) map.get("task_map"); + String create_by = map.get("create_by").toString(); + String newUpdte = map.get("newUpdte").toString(); + String newDelete = map.get("newDelete").toString(); + String newOrder = map.get("newOrder").toString(); + Map OrderMap = (Map) map.get("OrderMap"); + + execution(map,OrderMap,Unsubscribe,task_map,create_by,newUpdte,newDelete,newOrder);//执行卡划分 + } + + + @Transactional + public String execution(Map map, Map OrderMap, List> unsubscribe, + Map task_map, String create_by, String newUpdte, String newDelete,String newOrder) { + + String Outcolumns[] = {"iccid","操作描述","执行时间","执行结果","执行人"}; + String keys[] = {"iccid","description","time","result","agentName"}; + + map.remove("agent_id"); + //备份 order 表 + List> listOr =yzOrderMapper.backupsOr(map); + if(listOr != null && listOr.size()>0){ + OutCSV(listOr,newDelete,create_by); + } + + //遍历listOr 与 订单匹对 + List stringList = new ArrayList<>(); + for (Map mapList : listOr) { + String Str = mapList.get("ord_no").toString(); + stringList.add(Str); + } + + // 备份 flow 表 + Map Ramp = new HashMap<>(); + Ramp.put("ordNoID",stringList); + List> listFl = yzCardFlowMapper.backupsFl(Ramp); + if(listFl != null && listFl.size()>0){ + OutCSVFlow(listFl,newUpdte,create_by); + //System.out.println(listFl); + } + + + // 下面执行 订单状态【退款】并删除资费计划! + if(unsubscribe != null && unsubscribe.size()>0){ + List newString = new ArrayList<>(); + for(Map Bscribe : unsubscribe){ + String Str = Bscribe.get("ord_no").toString(); + newString.add(Str); + } + String obj = map.get("radio").toString(); + if(obj.equals("update")){ + Map ordMap = new HashMap<>(); + ordMap.put("ordNoID",newString); + boolean bool = yzOrderMapper.updState(ordMap); + if(bool){ + ordMap.put("delOrd",newString); + yzCardFlowMapper.delOrdArr(ordMap); + }else { + return "订单状态【退款】并删除资费计划!操作失败"; + } + } + if(obj.equals("delete")){ + Map DelMap = new HashMap<>(); + DelMap.put("delFlo",newString); + boolean bool = yzOrderMapper.delFloArr(DelMap); + if(bool){ + DelMap.put("delOrd",newString); + yzCardFlowMapper.delOrdArr(DelMap); + }else { + return "删除订单并删除资费计划"; + } + } + } + + //下面是资费订购操作 + String value = map.get("valueIs").toString(); + if(value.equals("true")){ + if(unsubscribe.size()>0){ + Map Arrs = new HashMap<>(); + + List> list = new ArrayList<>(); + for (Map unsuMap : unsubscribe){ + Map Amap = new HashMap<>(); + String ord_no = VeDate.getNo(8);//获取八位随机数 + unsuMap.remove("ord_no"); + unsuMap.remove("status"); + unsuMap.remove("packet_id"); + unsuMap.remove("validate_type"); + Amap.put("ord_no",ord_no); + Amap.putAll(OrderMap); + Amap.putAll(unsuMap); + list.add(Amap); + } + Arrs.put("order_arrs",list); + int sInt = yzOrderMapper.importOrder(Arrs); + if(sInt>0){ + writeCSV.OutCSVObj(unsubscribe,newOrder,"平台批量成功 充值 数据 ["+sInt+"] 条",create_by,"充值成功",Outcolumns,keys); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + } + } + } + + yzExecutionTaskMapper.set_end_time(task_map); + return "当前筛选条件下需要的数据 [ " + unsubscribe.size() + " ] 条 指令已下发详情查看 【执行日志管理】 !"; + } + + + + /** + * 输出 备份 yz_order 表 + * @param list 输出数据 + * @param fileName_flow 文件名 + * @param agentName 执行人 + */ + public void OutCSV(List> list , String fileName_flow, String agentName){ + + List> out_list = new ArrayList<>(); + + for (int i = 0; i < list.size(); i++) { + Map out_map= new HashMap(); + + Map cardIndex=list.get(i); + String id =cardIndex.get("id")+""; + String ord_no =cardIndex.get("ord_no")+""; + String ord_type =cardIndex.get("ord_type")+""; + String ord_name =cardIndex.get("ord_name")+""; + String iccid =cardIndex.get("iccid")+""; + String wx_ord_no =cardIndex.get("wx_ord_no")+""; + String status =cardIndex.get("status")+""; + String price =cardIndex.get("price")+""; + String account =cardIndex.get("account")+""; + String packet_id =cardIndex.get("packet_id")+""; + String pay_type =cardIndex.get("pay_type")+""; + String cre_type =cardIndex.get("cre_type")+""; + String is_profit =cardIndex.get("is_profit")+""; + String add_package =cardIndex.get("add_package")+""; + String show_status =cardIndex.get("show_status")+""; + String open_id =cardIndex.get("open_id")+""; + String agent_id =cardIndex.get("agent_id")+""; + String profit_type =cardIndex.get("profit_type")+""; + String create_time =cardIndex.get("create_time")+""; + String validate_type =cardIndex.get("validate_type")+""; + String info =cardIndex.get("info")+""; + String add_parameter =cardIndex.get("add_parameter")+""; + String add_package_time =cardIndex.get("add_package_time")+""; + String del_flag =cardIndex.get("del_flag")+""; + String is_profit_sharing =cardIndex.get("is_profit_sharing")+""; + String profit_sharing_time =cardIndex.get("profit_sharing_time")+""; + + //String tableName ="zy_"+cardType; + + String Outcolumns[] = {"id","ord_no","ord_type","ord_name","iccid","wx_ord_no","status","price","account","packet_id","pay_type", + "cre_type","is_profit","add_package","show_status","open_id","agent_id","profit_type","create_time","validate_type", + "info","add_parameter","add_package_time","del_flag","is_profit_sharing","profit_sharing_time", + "执行时间","执行人"}; + + String keys[] = {"id","ord_no","ord_type","ord_name","iccid","wx_ord_no","status","price","account","packet_id","pay_type", + "cre_type","is_profit","add_package","show_status","open_id","agent_id","profit_type","create_time","validate_type", + "info","add_parameter","add_package_time","del_flag","is_profit_sharing","profit_sharing_time", + "time","agentName"}; + + String Time= LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + out_map.put("id",id); + out_map.put("ord_no",ord_no); + out_map.put("ord_type",ord_type); + out_map.put("ord_name",ord_name); + out_map.put("iccid",iccid); + out_map.put("wx_ord_no",wx_ord_no); + out_map.put("status",status); + out_map.put("price",price); + out_map.put("account",account); + out_map.put("packet_id",packet_id); + out_map.put("pay_type",pay_type); + out_map.put("cre_type",cre_type); + out_map.put("is_profit",is_profit); + out_map.put("add_package",add_package); + out_map.put("show_status",show_status); + out_map.put("open_id",open_id); + out_map.put("agent_id",agent_id); + out_map.put("profit_type",profit_type); + out_map.put("create_time",create_time); + out_map.put("validate_type",validate_type); + out_map.put("info",info); + out_map.put("add_parameter",add_parameter); + out_map.put("add_package_time",add_package_time); + out_map.put("del_flag",del_flag); + out_map.put("is_profit_sharing",is_profit_sharing); + out_map.put("profit_sharing_time",profit_sharing_time); + + out_map.put("time",Time); + out_map.put("agentName",agentName); + + out_list.add(out_map); + if ((i+1)%50==0 || (i+1)==list.size()){ + //执行导出 + if(out_list.size()>0){ + writeCSV.Write(fileName_flow,out_list,Outcolumns,null,keys); + out_list = new ArrayList<>(); + } + } + } + } + + /** + * 备份 flow 表 + * @param list 输出数据 + * @param fileName_flow 文件名 + * @param agentName 执行人 + */ + public void OutCSVFlow (List> list , String fileName_flow, String agentName){ + + List> out_list = new ArrayList<>(); + + for (int i = 0; i < list.size(); i++) { + Map out_map= new HashMap(); + + Map cardIndex=list.get(i); + String id =cardIndex.get("id")+""; + String package_id =cardIndex.get("package_id")+""; + String packet_id =cardIndex.get("packet_id")+""; + String ord_no =cardIndex.get("ord_no")+""; + String true_flow =cardIndex.get("true_flow")+""; + String error_flow =cardIndex.get("error_flow")+""; + String start_time =cardIndex.get("start_time")+""; + String end_time =cardIndex.get("end_time")+""; + String create_time =cardIndex.get("create_time")+""; + String ord_type =cardIndex.get("ord_type")+""; + String status =cardIndex.get("status")+""; + String packet_type =cardIndex.get("packet_type")+""; + String use_flow =cardIndex.get("use_flow")+""; + String iccid =cardIndex.get("iccid")+""; + String error_time =cardIndex.get("error_time")+""; + String validate_type =cardIndex.get("validate_type")+""; + String validate_time =cardIndex.get("validate_time")+""; + String use_true_flow =cardIndex.get("use_true_flow")+""; + String use_so_flow =cardIndex.get("use_so_flow")+""; + + String Outcolumns[] = {"id","package_id","packet_id","ord_no","true_flow","error_flow","start_time","end_time","create_time", + "ord_type","status","packet_type","use_flow","iccid","error_time","validate_type","validate_time","use_true_flow", + "use_so_flow","执行时间","执行人"}; + String keys[] = {"id","package_id","packet_id","ord_no","true_flow","error_flow","start_time","end_time","create_time", + "ord_type","status","packet_type","use_flow","iccid","error_time","validate_type","validate_time","use_true_flow", + "use_so_flow","time","agentName"}; + String Time= LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + + out_map.put("id",id); + out_map.put("package_id",package_id); + out_map.put("packet_id",packet_id); + out_map.put("ord_no",ord_no); + out_map.put("true_flow",true_flow); + out_map.put("error_flow",error_flow); + out_map.put("start_time",start_time); + out_map.put("end_time",end_time); + out_map.put("create_time",create_time); + out_map.put("ord_type",ord_type); + out_map.put("status",status); + out_map.put("packet_type",packet_type); + out_map.put("use_flow",use_flow); + out_map.put("iccid",iccid); + out_map.put("error_time",error_time); + out_map.put("validate_type",validate_type); + out_map.put("validate_time",validate_time); + out_map.put("use_true_flow",use_true_flow); + out_map.put("use_so_flow",use_so_flow); + out_map.put("time",Time); + out_map.put("agentName",agentName); + + out_list.add(out_map); + if ((i+1)%50==0 || (i+1)==list.size()){ + //执行导出 + if(out_list.size()>0){ + writeCSV.Write(fileName_flow,out_list,Outcolumns,null,keys); + out_list = new ArrayList<>(); + } + } + } + } + + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-consumption-admin/src/main/java/com/yunze/system/task/ExportBusiness.java b/yunze-consumption-admin/src/main/java/com/yunze/system/task/ExportBusiness.java new file mode 100644 index 0000000..6e2e795 --- /dev/null +++ b/yunze-consumption-admin/src/main/java/com/yunze/system/task/ExportBusiness.java @@ -0,0 +1,140 @@ +package com.yunze.system.task; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.common.mapper.yunze.YzCardFlowMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 业务受理详情导出 成功 失败 待处理 + * */ +@Slf4j +@Component +public class ExportBusiness { + + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private WriteCSV writeCSV; + @Resource + private YzCardFlowMapper yzCardFlowMapper; + + + @RabbitHandler + @RabbitListener(queues = "admin_ExportaBusiness_queue") + public void DbCard(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + //System.out.println(Pmap); + Map map = (Map) Pmap.get("map"); + Map User = (Map) Pmap.get("User"); + List> outCardIccidArr = (List>) Pmap.get("outCardIccidArr"); + List> state_id = (List>) Pmap.get("state_id"); + String newName = (String) Pmap.get("newName"); + Map task_map = (Map) Pmap.get("task_map"); + + String prefix = "admin_Exportallorders_queue"; + //执行前判断 redis 是否存在 执行数据 存在时 不执行 + OutDataCard( map,User,outCardIccidArr,state_id, newName,task_map); + + }catch (Exception e){ + log.error(">>错误 - 业务受理详情导出 消费者:{}<<", e.getMessage().toString()); + } + + } + + private void OutDataCard(Map map, Map user, List> outCardIccidArr, + List> state_id, String newName, Map task_map) { + + Map Dept = (Map) user.get("dept"); + String agent_id = Dept.get("deptId").toString(); + if(agent_id.equals("100")){ + yzCardFlowMapper.queryPackage_simple(map); + }else{ + Map PackageMap = new HashMap(); + PackageMap.put("agent_id",agent_id); + yzCardFlowMapper.queryAgentPackage_simple(PackageMap); + } + map.put("iccid_arrs",outCardIccidArr); + + try { + WriteOutCard(outCardIccidArr,newName,task_map,state_id); + }catch (Exception e){ + log.error("导出卡信息异常 [导出数据 Exception] "+e.getCause().toString() ); + } + } + + /** + * 字典获取 + * @param CarMap 写入Map + * @param DictDataArr 字典 list + * @param basis 获取依据 字段 与 dictValue 判断 + * @param fieldName 返回字段名称 + * @return + */ + public Map WriteDic (Map CarMap,List> DictDataArr,String basis,String fieldName){ + + Map Rmap = new HashMap(); + String status_id = CarMap.get(basis)!=null?CarMap.get(basis).toString():null; + boolean bool = false; + if(status_id!=null){ + for (int i = 0; i < DictDataArr.size(); i++) { + Map dictData = DictDataArr.get(i); + String dictValue = dictData.get("dictValue").toString(); + if(dictValue.equals(status_id)){ + CarMap.put(fieldName,dictData.get("dictLabel")); + bool = true; + break; + } + } + } + //字段 默认值 + if(!bool){ + CarMap.put(fieldName,""); + } + return CarMap; + } + + private String WriteOutCard(List> outCardArr, String newName, Map + task_map, List> state_id) { + + List> out_list = new ArrayList>(); + //循环添加单数据信息 + for (int i = 0; i < outCardArr.size(); i++) { + Map CarMap = outCardArr.get(i); + + //写入 状态 + CarMap = WriteDic(CarMap,state_id,"state_id","state_id_value"); + + + out_list.add(CarMap); + } + + String Outcolumns[] = {"号码","创建时间","修改时间","结束时间","描述","状态"}; + String keys[] = {"card_number","create_time","update_time","end_time","mydescribe","state_id_value"}; + + + writeCSV.Write(newName,out_list,Outcolumns,null,keys); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + return "已下发执行日志可在【系统管理】》【日志管理】》【执行日志】查看"; + + } + + +} diff --git a/yunze-consumption-backup/src/main/java/com/yunze/config/DisposableBean.java b/yunze-consumption-backup/src/main/java/com/yunze/config/DisposableBean.java deleted file mode 100644 index 84711c0..0000000 --- a/yunze-consumption-backup/src/main/java/com/yunze/config/DisposableBean.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.yunze.config; - -import com.yunze.common.core.redis.RedisCache; -import org.springframework.stereotype.Component; - -import javax.annotation.PreDestroy; -import javax.annotation.Resource; -import java.util.List; -import java.util.Map; - -/** - * @Auther: zhang feng - * @Date: 2021/07/10/14:24 - * @Description: - */ -@Component -public class DisposableBean { - - - - @Resource - private RedisCache redisCache; - - - - @PreDestroy - public void exit(){ - /*//防止程序意外终止后 redis 还有记录正在监听 记录 下次程序启动不在创建 消费者 - System.out.println("cardStop 程序结束 执行删除redis Listener 记录key "); - //获取现在数据库中 开启轮询 状态正常的通道进行监听 - List IDArr = yzCardRouteMapper.findIDArr(); - if(IDArr!=null && IDArr.size()>0) { - //获取redis 中 记录的 已经在监听中的通道名称 避免重复监听 - for (int i = 0; i < IDArr.size(); i++) { - String cd_id = IDArr.get(i); - redisCache.redisTemplate.delete("polling_cardCardStop_queue_"+cd_id); - } - }*/ - - } -} diff --git a/yunze-consumption-backup/src/main/java/com/yunze/system/card/GenTable.java b/yunze-consumption-backup/src/main/java/com/yunze/system/card/GenTable.java deleted file mode 100644 index b9030b0..0000000 --- a/yunze-consumption-backup/src/main/java/com/yunze/system/card/GenTable.java +++ /dev/null @@ -1,1034 +0,0 @@ -package com.yunze.system.card; - -import com.alibaba.fastjson.JSON; -import com.rabbitmq.client.Channel; -import com.yunze.common.core.redis.RedisCache; -import com.yunze.common.mapper.yunze.backup.BackupMapper; -import com.yunze.common.utils.yunze.VeDate; -import com.yunze.common.utils.yunze.WriteCSV; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.amqp.rabbit.annotation.RabbitHandler; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.io.IOException; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -/** - * 导出 消费 者 - */ -@Slf4j -@Component -public class GenTable { - - - @Resource - private RedisCache redisCache; - @Resource - private WriteCSV writeCSV; - @Resource - private BackupMapper genTableMapper; - - @RabbitHandler - @RabbitListener(queues = "admin_BackupsGenTable_queue") - public void DbCard(String msg, Channel channel) throws IOException { - try { - if (StringUtils.isEmpty(msg)) { - return; - } - Map Bmap = JSON.parseObject(msg); - //System.out.println(Bmap); - String create_by = Bmap.get("Masage").toString();//上传新文件名 - String prefix = "admin_BackupsGenTable_queue"; - //执行前判断 redis 是否存在 执行数据 存在时 不执行 - Object isExecute = redisCache.getCacheObject(prefix + ":" + create_by); - if (isExecute == null) { - redisCache.setCacheObject(prefix + ":" + create_by, msg, 3, TimeUnit.SECONDS);//3 秒缓存 避免 重复消费 - GenTabl(); - gentablecolumn(); - qrtzblobtriggers(); - qrtzcrontriggers(); - qrtzcalendars(); - qrtrootiredtriggers(); - qrtzjobdetails(); - qrtzlocks(); - qrtzpausedtriggergrps(); - qrtzschedulerstate(); - qrtzsimpletriggers(); - qrtzsimproptriggers(); - qrtztriggers(); - sysconfig(); - sysdept(); - sysdictdata(); - sysdicttype(); - sysjob(); - sysjoblog(); - syslogininfor(); - sysmenu(); - sysnotice(); - sysoperlog(); - syspost(); - sysrole(); - sysroledept(); - sysrolemenu(); - sysuser(); - sysuserpost(); - sysuserrole(); - yzagentaccount(); - yzagentpackage(); - yzagentpacket(); - yzcardflow(); - yzcardinfo(); - yzcardoperating(); - yzcardpackage(); - yzcardpacket(); - yzcardroute(); - yzexecutiontask(); - yzorder(); - yzpassagewaypolling(); - yzwechatuser(); - yzwxautoreply(); - yzwxconfig(); - yzwxmenu(); - } - } catch (Exception e) { - log.error(">>错误 - 连接管理导出 消费者:{}<<", e.getMessage().toString()); - } - } - - - /** - * 备份 GenTabl - */ - public void GenTabl() { - - //1.查询出 yz_sys_logs - List> channelArr = genTableMapper.GenTableList(); //查询所有 - System.out.println("备份 GenTable ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_GenTable"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"table_id", "table_name", "table_comment", "sub_table_name", "sub_table_fk_name", "class_name", - "tpl_category", "package_name", "module_name", "business_name", "function_name", "function_author", "gen_type", - "gen_path", "options", "create_by", "create_time", "update_by", "update_time", "remark"};//数据库的注释名 - String keys[] = {"table_id", "table_name", "table_comment", "sub_table_name", "sub_table_fk_name", "class_name", - "tpl_category", "package_name", "module_name", "business_name", "function_name", "function_author", "gen_type", - "gen_path", "options", "create_by", "create_time", "update_by", "update_time", "remark"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 GenTableColumn - */ - public void gentablecolumn() { - List> channelArr = genTableMapper.GenTableColumnList(); //查询所有 - System.out.println("备份 GenTableColumn ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_GenTableColumn"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"column_id", "table_id", "column_name", "column_comment", "column_type", "java_type", "java_field", - "is_pk", "is_increment", "is_required", "is_insert", "is_edit", "is_list", "is_query,query_type", - "html_type", "dict_type", "sort", "create_by", "create_time", "update_by", "update_time"};//数据库的注释名 - String keys[] = {"column_id", "table_id", "column_name", "column_comment", "column_type", "java_type", "java_field", - "is_pk", "is_increment", "is_required", "is_insert", "is_edit", "is_list", "is_query,query_type", - "html_type", "dict_type", "sort", "create_by", "create_time", "update_by", "update_time"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - /** - * 备份 QrtzBlobTriggers - */ - public void qrtzblobtriggers() { - List> channelArr = genTableMapper.QrtzBlobTriggersList(); //查询所有 - System.out.println("备份 QrtzBlobTriggers ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_QrtzBlobTriggers"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"sched_name", "trigger_name", "trigger_group", "blob_data"};//数据库的注释名 - String keys[] = {"sched_name", "trigger_name", "trigger_group", "blob_data"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 QrtzCalendars - */ - public void qrtzcalendars() { - List> channelArr = genTableMapper.QrtzCalendarsList(); //查询所有 - System.out.println("备份 QrtzCalendars ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_QrtzCalendars"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"sched_name", "calendar_name", "calendar"};//数据库的注释名 - String keys[] = {"sched_name", "calendar_name", "calendar"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - /** - * 备份 QrtzCronTriggers - */ - public void qrtzcrontriggers() { - List> channelArr = genTableMapper.QrtzCronTriggersList(); //查询所有 - System.out.println("备份 QrtzCronTriggers ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_QrtzCronTriggers"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"sched_name", "trigger_name", "trigger_group", "cron_expression", "time_zone_id"};//数据库的注释名 - String keys[] = {"sched_name", "trigger_name", "trigger_group", "cron_expression", "time_zone_id"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 QrtrootiredTriggers - */ - public void qrtrootiredtriggers() { - List> channelArr = genTableMapper.QrtrootiredTriggersList(); //查询所有 - System.out.println("备份 QrtrootiredTriggersList ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_QrtrootiredTriggers"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"sched_name", "entry_id", "trigger_name", "trigger_group", "instance_name", "fired_time", "sched_time", "priority", - "state", "job_name", "job_group", "is_nonconcurrent", "requests_recovery"};//数据库的注释名 - String keys[] = {"sched_name", "entry_id", "trigger_name", "trigger_group", "instance_name", "fired_time", "sched_time", "priority", - "state", "job_name", "job_group", "is_nonconcurrent", "requests_recovery"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 QrtzJobDetails - */ - public void qrtzjobdetails() { - List> channelArr = genTableMapper.QrtzJobDetailsList(); //查询所有 - System.out.println("备份 QrtzJobDetails ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_QrtzJobDetails"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"sched_name", "job_name", "job_group", "description", "job_class_name", "is_durable", "is_nonconcurrent", - "is_update_data", "requests_recovery", "job_data"};//数据库的注释名 - String keys[] = {"sched_name", "job_name", "job_group", "description", "job_class_name", "is_durable", "is_nonconcurrent", - "is_update_data", "requests_recovery", "job_data"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 QrtzLocks - */ - public void qrtzlocks() { - List> channelArr = genTableMapper.QrtzLocksList(); //查询所有 - System.out.println("备份 QrtzLocks ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_QrtzLocks"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"sched_name", "lock_name"};//数据库的注释名 - String keys[] = {"sched_name", "lock_name"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 QrtzPausedTriggerGrps - */ - public void qrtzpausedtriggergrps() { - List> channelArr = genTableMapper.QrtzPausedTriggerGrpsList(); //查询所有 - System.out.println("备份 QrtzPausedTriggerGrps ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_QrtzPausedTriggerGrps"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"sched_name", "trigger_group"};//数据库的注释名 - String keys[] = {"sched_name", "trigger_group"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 QrtzSchedulerState - */ - public void qrtzschedulerstate() { - List> channelArr = genTableMapper.QrtzSchedulerStateList(); //查询所有 - System.out.println("备份 QrtzSchedulerState ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_QrtzSchedulerState"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"sched_name", "instance_name", "last_checkin_time", "checkin_interval"};//数据库的注释名 - String keys[] = {"sched_name", "instance_name", "last_checkin_time", "checkin_interval"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 QrtzSimpleTriggers - */ - public void qrtzsimpletriggers() { - List> channelArr = genTableMapper.QrtzSimpleTriggersList(); //查询所有 - System.out.println("备份 QrtzSimpleTriggers ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_QrtzSimpleTriggers"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"sched_name", "trigger_name", "trigger_group", "repeat_count", "repeat_interval", "times_triggered"};//数据库的注释名 - String keys[] = {"sched_name", "trigger_name", "trigger_group", "repeat_count", "repeat_interval", "times_triggered"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 QrtzSimpropTriggers - */ - public void qrtzsimproptriggers() { - List> channelArr = genTableMapper.QrtzSimpropTriggersList(); //查询所有 - System.out.println("备份 QrtzSimpropTriggers ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_QrtzSimpropTriggers"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"sched_name", "trigger_name", "trigger_group", "str_prop_1", "str_prop_2", "str_prop_3", "int_prop_1", "int_prop_2", - "long_prop_1", "long_prop_2", "dec_prop_1", "dec_prop_2", "bool_prop_1", "bool_prop_1"};//数据库的注释名 - String keys[] = {"sched_name", "trigger_name", "trigger_group", "str_prop_1", "str_prop_2", "str_prop_3", "int_prop_1", "int_prop_2", - "long_prop_1", "long_prop_2", "dec_prop_1", "dec_prop_2", "bool_prop_1", "bool_prop_1"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - - } - - /** - * 备份 QrtzTriggers - */ - public void qrtztriggers() { - List> channelArr = genTableMapper.QrtzTriggersList(); //查询所有 - System.out.println("备份 QrtzTriggers ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_QrtzTriggers"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"sched_name","trigger_name","trigger_group","job_name","job_group","description","next_fire_time", - "prev_fire_time","priority","trigger_state","trigger_type","start_time","end_time","calendar_name", - "misfire_instr","job_data"};//数据库的注释名 - String keys[] = {"sched_name","trigger_name","trigger_group","job_name","job_group","description","next_fire_time", - "prev_fire_time","priority","trigger_state","trigger_type","start_time","end_time","calendar_name", - "misfire_instr","job_data"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysConfig - */ - public void sysconfig() { - List> channelArr = genTableMapper.SysConfigList(); //查询所有 - System.out.println("备份 SysConfig ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysConfig"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"config_id","config_name","config_key","config_value","config_type","create_by","create_time","update_by", - "update_time","remark"};//数据库的注释名 - String keys[] = {"config_id","config_name","config_key","config_value","config_type","create_by","create_time","update_by", - "update_time","remark"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysDept - */ - public void sysdept() { - List> channelArr = genTableMapper.SysDeptList(); //查询所有 - System.out.println("备份 SysDept ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysDept"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"dept_id","parent_id","ancestors","dept_name","order_num","leader","phone","email","status","del_flag","create_by", - "create_time","update_by","update_time"};//数据库的注释名 - String keys[] = {"dept_id","parent_id","ancestors","dept_name","order_num","leader","phone","email","status","del_flag","create_by", - "create_time","update_by","update_time"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysDictData - */ - public void sysdictdata() { - List> channelArr = genTableMapper.SysDictDataList(); //查询所有 - System.out.println("备份 SysDictData ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysDictData"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"dict_code","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","status", - "create_by","create_time","update_by","update_time","remark"};//数据库的注释名 - String keys[] = {"dict_code","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","status", - "create_by","create_time","update_by","update_time","remark"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysDictType - */ - public void sysdicttype() { - List> channelArr = genTableMapper.SysDictTypeList(); //查询所有 - System.out.println("备份 SysDictType ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysDictType"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"dict_id","dict_name","dict_type","status","create_by","create_time","update_by","update_time","remark"};//数据库的注释名 - String keys[] = {"dict_id","dict_name","dict_type","status","create_by","create_time","update_by","update_time","remark"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysJob - */ - public void sysjob() { - List> channelArr = genTableMapper.SysJobList(); //查询所有 - System.out.println("备份 SysJob ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysJob"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"job_id","job_name","job_group","invoke_target","cron_expression","misfire_policy","concurrent", - "status","create_by","create_time","update_by","update_time","remark"};//数据库的注释名 - String keys[] = {"job_id","job_name","job_group","invoke_target","cron_expression","misfire_policy","concurrent", - "status","create_by","create_time","update_by","update_time","remark"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysJobLog - */ - public void sysjoblog() { - List> channelArr = genTableMapper.SysJobLogList(); //查询所有 - System.out.println("备份 SysJobLog ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysJobLog"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"job_log_id","job_name","job_group","invoke_target","job_message","status","exception_info","create_time"};//数据库的注释名 - String keys[] = {"job_log_id","job_name","job_group","invoke_target","job_message","status","exception_info","create_time"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysLogininfor - */ - public void syslogininfor() { - List> channelArr = genTableMapper.SysLogininforList(); //查询所有 - System.out.println("备份 SysLogininfor ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysLogininfor"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"info_id","user_name","ipaddr","login_location","browser","os","status","msg","login_time"};//数据库的注释名 - String keys[] = {"info_id","user_name","ipaddr","login_location","browser","os","status","msg","login_time"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysMenu - */ - public void sysmenu() { - List> channelArr = genTableMapper.SysMenuList(); //查询所有 - System.out.println("备份 SysMenu ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysMenu"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"menu_id","menu_name","parent_id","order_num","path","component","is_frame","is_cache","menu_type","visible", - "status","perms","icon","create_by","create_time","update_by","update_time","remark"};//数据库的注释名 - String keys[] = {"menu_id","menu_name","parent_id","order_num","path","component","is_frame","is_cache","menu_type","visible", - "status","perms","icon","create_by","create_time","update_by","update_time","remark"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysNotice - */ - public void sysnotice() { - List> channelArr = genTableMapper.SysNoticeList(); //查询所有 - System.out.println("备份 SysNotice ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysNotice"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"notice_id","notice_title","notice_type","notice_content","status","create_by","create_time","update_by", - "update_time","remark"};//数据库的注释名 - String keys[] = {"notice_id","notice_title","notice_type","notice_content","status","create_by","create_time","update_by", - "update_time","remark"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysOperLog - */ - public void sysoperlog() { - List> channelArr = genTableMapper.SysOperLogList(); //查询所有 - System.out.println("备份 SysOperLog ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysOperLog"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"oper_id","title","business_type","method","request_method","operator_type","oper_name","dept_name","oper_url", - "oper_ip","oper_location","oper_param","json_result","status","error_msg","oper_time"};//数据库的注释名 - String keys[] = {"oper_id","title","business_type","method","request_method","operator_type","oper_name","dept_name","oper_url", - "oper_ip","oper_location","oper_param","json_result","status","error_msg","oper_time"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysPost - */ - public void syspost() { - List> channelArr = genTableMapper.SysPostList(); //查询所有 - System.out.println("备份 SysPost ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysPost"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"post_id","post_code","post_name","post_sort","status","create_by","create_time","update_by","update_time","remark"};//数据库的注释名 - String keys[] = {"post_id","post_code","post_name","post_sort","status","create_by","create_time","update_by","update_time","remark"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysRole - */ - public void sysrole() { - List> channelArr = genTableMapper.SysRoleList(); //查询所有 - System.out.println("备份 SysRole ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysRole"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"role_id","role_name","role_key","role_sort","data_scope","menu_check_strictly","dept_check_strictly","status", - "del_flag","create_by","create_time","update_by","update_time","remark"};//数据库的注释名 - String keys[] = {"role_id","role_name","role_key","role_sort","data_scope","menu_check_strictly","dept_check_strictly","status", - "del_flag","create_by","create_time","update_by","update_time","remark"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysRoleDept - */ - public void sysroledept() { - List> channelArr = genTableMapper.SysRoleDeptList(); //查询所有 - System.out.println("备份 SysRoleDept ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysRoleDept"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"role_id","dept_id"};//数据库的注释名 - String keys[] = {"role_id","dept_id"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysRoleMenu - */ - public void sysrolemenu() { - List> channelArr = genTableMapper.SysRoleMenuList(); //查询所有 - System.out.println("备份 SysRoleMenu ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysRoleMenu"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"role_id","menu_id"};//数据库的注释名 - String keys[] = {"role_id","menu_id"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysUser - */ - public void sysuser() { - List> channelArr = genTableMapper.SysUserList(); //查询所有 - System.out.println("备份 SysUser ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysUser"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"user_id","dept_id","user_name","nick_name","user_type","email","phonenumber","sex","avatar","password","status", - "del_flag","login_ip","login_date","create_by","create_time","update_by","update_time","remark"};//数据库的注释名 - String keys[] = {"user_id","dept_id","user_name","nick_name","user_type","email","phonenumber","sex","avatar","password","status", - "del_flag","login_ip","login_date","create_by","create_time","update_by","update_time","remark"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysUserPost - */ - public void sysuserpost() { - List> channelArr = genTableMapper.SysUserPostList(); //查询所有 - System.out.println("备份 SysUserPost ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysUserPost"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"user_id","post_id"};//数据库的注释名 - String keys[] = {"user_id","post_id"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 SysUserRole - */ - public void sysuserrole() { - List> channelArr = genTableMapper.SysUserRoleList(); //查询所有 - System.out.println("备份 SysUserRole ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysUserRole"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"user_id","role_id"};//数据库的注释名 - String keys[] = {"user_id","role_id"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 YzAgentAccount - */ - public void yzagentaccount() { - List> channelArr = genTableMapper.YzAgentAccountList(); //查询所有 - System.out.println("备份 YzAgentAccount ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzAgentAccount"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","app_id","access_key","password","create_time","update_time","agent_name","agent_id","times","openurl","typesys"};//数据库的注释名 - String keys[] = {"id","app_id","access_key","password","create_time","update_time","agent_name","agent_id","times","openurl","typesys"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 YzAgentPackage - */ - public void yzagentpackage() { - List> channelArr = genTableMapper.YzAgentPackageList(); //查询所有 - System.out.println("备份 YzAgentPackage ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzAgentPackage"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","package_id","package_agentname","package_name","create_time","error_so","dept_id","user_id"};//数据库的注释名 - String keys[] = {"id","package_id","package_agentname","package_name","create_time","error_so","dept_id","user_id"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 YzAgentPacket - */ - public void yzagentpacket() { - List> channelArr = genTableMapper.YzAgentPacketList(); //查询所有 - System.out.println("备份 YzAgentPacket ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzAgentPacket"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","package_id","packet_id","packet_name","packet_wx_name","packet_price","packet_flow","base_packet_type", - "packet_type","is_profit","show_profit","wechat_pay","balance_pay","create_time","error_flow","error_so", - "packet_valid_time","packet_cost","is_month","date_limit","deduction","in_stock","packet_valid_type", - "dept_id","user_id","packet_valid_name"};//数据库的注释名 - String keys[] = {"id","package_id","packet_id","packet_name","packet_wx_name","packet_price","packet_flow","base_packet_type", - "packet_type","is_profit","show_profit","wechat_pay","balance_pay","create_time","error_flow","error_so", - "packet_valid_time","packet_cost","is_month","date_limit","deduction","in_stock","packet_valid_type", - "dept_id","user_id","packet_valid_name"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 YzCardFlow - */ - public void yzcardflow() { - List> channelArr = genTableMapper.YzCardFlowList(); //查询所有 - System.out.println("备份 YzCardFlow ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzCardFlow"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","package_id","packet_id","ord_no","true_flow","error_flow","start_time","end_time","create_time","ord_type", - "status","packet_type","use_flow","iccid","error_time","validate_type","validate_time","use_true_flow", - "use_so_flow"};//数据库的注释名 - String keys[] = {"id","package_id","packet_id","ord_no","true_flow","error_flow","start_time","end_time","create_time","ord_type", - "status","packet_type","use_flow","iccid","error_time","validate_type","validate_time","use_true_flow", - "use_so_flow"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 YzCardInfo - */ - public void yzcardinfo() { - List> channelArr = genTableMapper.YzCardInfoList(); //查询所有 - System.out.println("备份 YzCardInfo ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzCardInfo"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","vid","msisdn","iccid","imsi","open_date","activate_date","agent_id","channel_id","is_pool","pool_id","remind_ratio", - "virtual_ratio","batch_date","syn_Time","create_by","create_date","update_by","update_date","remarks","del_flag", - "status_id","package_id","used","remaining","imei","type","network_type","is_sms","sms_number", - "gprs","dept_id","user_id","out_of_stock"};//数据库的注释名 - String keys[] = {"id","vid","msisdn","iccid","imsi","open_date","activate_date","agent_id","channel_id","is_pool","pool_id","remind_ratio", - "virtual_ratio","batch_date","syn_Time","create_by","create_date","update_by","update_date","remarks","del_flag", - "status_id","package_id","used","remaining","imei","type","network_type","is_sms","sms_number", - "gprs","dept_id","user_id","out_of_stock"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - /** - * 备份 YzCardOperating - */ - public void yzcardoperating() { - List> channelArr = genTableMapper.YzCardOperatingList(); //查询所有 - System.out.println("备份 YzCardOperating ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzCardOperating"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","create_by","create_date","update_by","update_date","remarks","operating","operating_type"};//数据库的注释名 - String keys[] = {"id","create_by","create_date","update_by","update_date","remarks","operating","operating_type"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - /** - * 备份 YzCardPackage - */ - public void yzcardpackage() { - List> channelArr = genTableMapper.YzCardPackageList(); //查询所有 - System.out.println("备份 YzCardPackage ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzCardPackage"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","package_id","package_agentname","package_name","create_time","error_so","dept_id","user_id"};//数据库的注释名 - String keys[] = {"id","package_id","package_agentname","package_name","create_time","error_so","dept_id","user_id"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - /** - * 备份 YzCardPacket - */ - public void yzcardpacket() { - List> channelArr = genTableMapper.YzCardPacketList(); //查询所有 - System.out.println("备份 YzCardPacket ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzCardPacket"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","package_id","packet_id","packet_name","packet_wx_name","packet_price","packet_flow","base_packet_type","packet_type", - "is_profit","show_profit","wechat_pay","balance_pay","create_time","error_flow","error_so","packet_valid_time","packet_cost", - "is_month","date_limit","deduction","in_stock","packet_valid_type","dept_id","user_id","packet_valid_name"};//数据库的注释名 - String keys[] = {"id","package_id","packet_id","packet_name","packet_wx_name","packet_price","packet_flow","base_packet_type","packet_type", - "is_profit","show_profit","wechat_pay","balance_pay","create_time","error_flow","error_so","packet_valid_time","packet_cost", - "is_month","date_limit","deduction","in_stock","packet_valid_type","dept_id","user_id","packet_valid_name"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - /** - * 备份 YzCardRoute - */ - public void yzcardroute() { - List> channelArr = genTableMapper.YzCardRouteList(); //查询所有 - System.out.println("备份 YzCardRoute ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzCardRoute"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"cd_id","cd_code","cd_name","cd_username","cd_pwd","cd_key","cd_url","cd_operator_type","cd_concurrency","cd_lunxun","cd_control_type", - "cd_max_use","createTime","updateTime","cd_delete","cd_agent_id","cd_status","cd_alias"};//数据库的注释名 - String keys[] = {"cd_id","cd_code","cd_name","cd_username","cd_pwd","cd_key","cd_url","cd_operator_type","cd_concurrency","cd_lunxun","cd_control_type", - "cd_max_use","createTime","updateTime","cd_delete","cd_agent_id","cd_status","cd_alias"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - /** - * 备份 YzExecutionTask - */ - public void yzexecutiontask() { - List> channelArr = genTableMapper.YzExecutionTaskList(); //查询所有 - System.out.println("备份 YzExecutionTask ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzExecutionTask"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","create_time","update_time","start_time","end_time","task_name","url","auth","agent_id","type"};//数据库的注释名 - String keys[] = {"id","create_time","update_time","start_time","end_time","task_name","url","auth","agent_id","type"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - /** - * 备份 YzOrder - */ - public void yzorder() { - List> channelArr = genTableMapper.YzOrderList(); //查询所有 - System.out.println("备份 YzOrder ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzOrder"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","ord_no","ord_type","ord_name","iccid","wx_ord_no","status","price","account","packet_id","pay_type","cre_type","is_profit", - "add_package","show_status","open_id","agent_id","profit_type","create_time","validate_type","info","add_parameter", - "add_package_time","del_flag","is_profit_sharing","profit_sharing_time"};//数据库的注释名 - String keys[] = {"id","ord_no","ord_type","ord_name","iccid","wx_ord_no","status","price","account","packet_id","pay_type","cre_type","is_profit", - "add_package","show_status","open_id","agent_id","profit_type","create_time","validate_type","info","add_parameter", - "add_package_time","del_flag","is_profit_sharing","profit_sharing_time"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - /** - * 备份 YzPassagewayPolling - */ - public void yzpassagewaypolling() { - List> channelArr = genTableMapper.YzPassagewayPollingList(); //查询所有 - System.out.println("备份 YzPassagewayPolling ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzPassagewayPolling"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","cd_id","create_date","upd_date","cd_count","cd_current","polling_id","syn_date","polling_type"};//数据库的注释名 - String keys[] = {"id","cd_id","create_date","upd_date","cd_count","cd_current","polling_id","syn_date","polling_type"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - /** - * 备份 YzWechatUser - */ - public void yzwechatuser() { - List> channelArr = genTableMapper.YzWechatUserList(); //查询所有 - System.out.println("备份 YzWechatUser ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzWechatUser"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","user_name","openid","head_image","iccid","sex","create_time","city","province","country","app_id","status","bind_status"};//数据库的注释名 - String keys[] = {"id","user_name","openid","head_image","iccid","sex","create_time","city","province","country","app_id","status","bind_status"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - /** - * 备份 YzWxAutoreply - */ - public void yzwxautoreply() { - List> channelArr = genTableMapper.YzWxAutoreplyList(); //查询所有 - System.out.println("备份 YzWxAutoreply ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzWxAutoreply"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","auto_id","keywords","content","create_time","create_user","app_id"};//数据库的注释名 - String keys[] = {"id","auto_id","keywords","content","create_time","create_user","app_id"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - /** - * 备份 YzWxConfig - */ - public void yzwxconfig() { - List> channelArr = genTableMapper.YzWxConfigList(); //查询所有 - System.out.println("备份 YzWxConfig ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzWxConfig"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","app_id","app_secret","app_token","origin_id","mch_id","paterner_key","index_url","back_url","status","create_time","update_time", - "create_user","company_id","agent_id","native_url","auth_txt"};//数据库的注释名 - String keys[] = {"id","app_id","app_secret","app_token","origin_id","mch_id","paterner_key","index_url","back_url","status","create_time","update_time", - "create_user","company_id","agent_id","native_url","auth_txt"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - /** - * 备份 YzWxMenu - */ - public void yzwxmenu() { - List> channelArr = genTableMapper.YzWxMenuList(); //查询所有 - System.out.println("备份 YzWxMenu ======"); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_YzWxMenu"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id","menu_id","menu_name","menu_pid","menu_url","menu_status","create_time","update_time","create_user","app_id","menu_type","media_id"};//数据库的注释名 - String keys[] = {"id","menu_id","menu_name","menu_pid","menu_url","menu_status","create_time","update_time","create_user","app_id","menu_type","media_id"};//对应的数据库字段名字 - String Flieurl = fileUrl[0] + "/" + fileUrl[1] + "/" + fileUrl[2] + "/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys, Flieurl);//导出 - } - - - - - -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/yunze-consumption-car-activatedate/cardActivateDate.iml b/yunze-consumption-car-activatedate/cardActivateDate.iml index 15a7f67..89d0d8b 100644 --- a/yunze-consumption-car-activatedate/cardActivateDate.iml +++ b/yunze-consumption-car-activatedate/cardActivateDate.iml @@ -1,9 +1,6 @@ - - - @@ -13,6 +10,9 @@ + + + @@ -69,6 +69,13 @@ + + + + + + + @@ -130,8 +137,7 @@ - - + diff --git a/yunze-consumption-car-activatedate/pom.xml b/yunze-consumption-car-activatedate/pom.xml index 1fd5c52..c270067 100644 --- a/yunze-consumption-car-activatedate/pom.xml +++ b/yunze-consumption-car-activatedate/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-consumption-car-activatedate/src/main/java/com/yunze/config/RbMQConfig.java b/yunze-consumption-car-activatedate/src/main/java/com/yunze/config/RbMQConfig.java index 0fed030..b5e97c4 100644 --- a/yunze-consumption-car-activatedate/src/main/java/com/yunze/config/RbMQConfig.java +++ b/yunze-consumption-car-activatedate/src/main/java/com/yunze/config/RbMQConfig.java @@ -14,7 +14,7 @@ import org.springframework.context.annotation.Configuration; @Configuration public class RbMQConfig { //并发数量 - public static final int DEFAULT_CONCURRENT = 80; + public static final int DEFAULT_CONCURRENT = 300; @Bean("customContainerFactory") public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory connectionFactory) { diff --git a/yunze-consumption-car-activatedate/src/main/java/com/yunze/polling/card/ActivateDate.java b/yunze-consumption-car-activatedate/src/main/java/com/yunze/polling/card/ActivateDate.java index 32688ef..dc4ef11 100644 --- a/yunze-consumption-car-activatedate/src/main/java/com/yunze/polling/card/ActivateDate.java +++ b/yunze-consumption-car-activatedate/src/main/java/com/yunze/polling/card/ActivateDate.java @@ -1,35 +1,20 @@ package com.yunze.polling.card; import com.alibaba.fastjson.JSON; -import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Channel; -import com.rabbitmq.client.DefaultConsumer; -import com.rabbitmq.client.Envelope; import com.yunze.apiCommon.utils.InternalApiRequest; -import com.yunze.common.config.RabbitMQConfig; import com.yunze.common.core.redis.RedisCache; import com.yunze.common.mapper.yunze.YzCardMapper; -import com.yunze.apiCommon.mapper.YzCardRouteMapper; -import com.yunze.apiCommon.utils.VeDate; -import com.yunze.common.utils.yunze.YzPollingUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.amqp.rabbit.connection.Connection; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; -import java.util.List; import java.util.Map; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; /** * @Auther: zhang feng @@ -68,7 +53,21 @@ public class ActivateDate { - + @RabbitHandler + @RabbitListener(queues = "pollingOther_cardCardActivateDate_queue",containerFactory = "customContainerFactory") + public void cardCardActivateDate_queue(String msg, Channel channel_1) throws IOException { + if(msg!=null && msg.length()>0){ + synActivateDate(msg,channel_1); + } + } + + @RabbitHandler + @RabbitListener(queues = "dlx_pollingOther_cardCardActivateDate_queue",containerFactory = "customContainerFactory") + public void dlxCardCardActivateDate_queue(String msg, Channel channel_1) throws IOException { + if(msg!=null && msg.length()>0){ + synActivateDate(msg,channel_1); + } + } public void synActivateDate(String msg, Channel channel) throws IOException { try { diff --git a/yunze-consumption-car-activatedate/src/main/java/com/yunze/polling/card/dlx/DlxActivateDate.java b/yunze-consumption-car-activatedate/src/main/java/com/yunze/polling/card/dlx/DlxActivateDate.java deleted file mode 100644 index 66833a4..0000000 --- a/yunze-consumption-car-activatedate/src/main/java/com/yunze/polling/card/dlx/DlxActivateDate.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.yunze.polling.card.dlx; - -import com.alibaba.fastjson.JSON; -import com.rabbitmq.client.AMQP; -import com.rabbitmq.client.Channel; -import com.rabbitmq.client.DefaultConsumer; -import com.rabbitmq.client.Envelope; -import com.yunze.apiCommon.utils.InternalApiRequest; -import com.yunze.common.config.RabbitMQConfig; -import com.yunze.common.core.redis.RedisCache; -import com.yunze.apiCommon.mapper.YzCardRouteMapper; - -import com.yunze.apiCommon.utils.VeDate; -import com.yunze.common.mapper.yunze.YzCardMapper; -import com.yunze.common.utils.yunze.YzPollingUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.amqp.rabbit.annotation.RabbitHandler; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.amqp.rabbit.connection.Connection; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -/** - * @Auther: zhang feng - * @Date: 2021/07/09/12:43 - * @Description: - */ -@Slf4j -@Component -public class DlxActivateDate { - - @Resource - private InternalApiRequest internalApiRequest; - @Resource - private RedisCache redisCache; - @Resource - private YzCardRouteMapper yzCardRouteMapper; - @Resource - private RabbitMQConfig rabbitMQConfig; - @Resource - private RabbitTemplate rabbitTemplate; - @Resource - private YzPollingUtil yzPollingUtil; - @Resource - private YzCardMapper yzCardMapper; - - - - @RabbitHandler - @RabbitListener(queues = "polling_dlxcardActivateDate_queue",containerFactory = "customContainerFactory") - public void dlxcardActivateDate_queue(String msg, Channel channel_1) throws IOException { - if(msg!=null && msg.length()>0){ - synActivateDate(msg,channel_1); - } - } - - public void synActivateDate(String msg, Channel channel) throws IOException { - try { - if (StringUtils.isEmpty(msg)) { - return; - } - - Map map = JSON.parseObject(msg); - String iccid = map.get("iccid").toString(); - String polling_id = map.get("polling_id").toString();//轮询任务编号 - String prefix = "polling_cardActivateDate_queue"; - //执行前判断 redis 是否存在 执行数据 存在时 不执行 - // Object isExecute = redisCache.getCacheObject(prefix+":"+ iccid); - //if(isExecute==null){ - //System.out.println("SUCCESS"); - //redisCache.setCacheObject(prefix+":"+ iccid, msg, 3, TimeUnit.MINUTES);//3 分钟缓存 避免 重复消费 - redisCache.setCacheObject(polling_id+":"+ iccid, msg, 1, TimeUnit.HOURS);//1 小时缓存 用来统计轮询进度 - - - Map Parammap=new HashMap<>(); - Parammap.put("iccid",iccid); - Map Rmap = internalApiRequest.queryCardActiveTime(Parammap,map); - String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; - if(code.equals("200")){ - //获取 激活日期 开卡日期 更新 card info - if(Rmap.get("activateDate")!=null && Rmap.get("activateDate")!="" && Rmap.get("activateDate").toString().trim().length()>0){ - String activateDate = Rmap.get("activateDate").toString().trim(); - Object openDate = Rmap.get("openDate")!=null && Rmap.get("openDate")!="" && Rmap.get("openDate").toString().trim().length()>0? - Rmap.get("openDate").toString().trim():null; - Map Upd_Map = new HashMap<>(); - Upd_Map.put("activate_date",activateDate); - if(openDate!=null){ - Upd_Map.put("open_date",openDate); - } - Upd_Map.put("iccid",iccid); - //1.创建路由 绑定 生产队列 发送消息 - String card_exchangeName = "admin_card_exchange", card_queueName = "admin_CardUpd_queue", card_routingKey = "admin.CardUpd.queue", - card_del_exchangeName = "dlx_"+card_exchangeName,card_del_queueName = "dlx_"+card_queueName, card_del_routingKey = "dlx_"+card_routingKey; - try { - //rabbitMQConfig.creatExchangeQueue(card_exchangeName, card_queueName, card_routingKey, card_del_exchangeName, card_del_queueName, card_del_routingKey,null); - /* Upd_Map.put("queueTypeName","admin_CardUpdActivate_queue"); - rabbitTemplate.convertAndSend(card_exchangeName, card_routingKey, JSON.toJSONString(Upd_Map), message -> { - // 设置消息过期时间 30 分钟 过期 - message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); - return message; - });*/ - int upd = yzCardMapper.updActivate(Upd_Map); - log.info("发送 变更激活时间 指令成功 !{} ",upd); - } catch (Exception e) { - log.error("变更激活时间 队列 创建 失败 " + e.getMessage()); - } - } - }else{ - log.info(">>API - 激活时间轮询消费者 未获取到激活日期:{} | {} | Parammap {} | map {}<<",iccid,Rmap,Parammap,map); - // System.out.println(map.get("iccid")+" 未获取到激活日期 !"); - } - //} - } catch (Exception e) { -// // 记录该消息日志形式 存放数据库db中、后期通过定时任务实现消息补偿、人工实现补偿 - log.error(">>错误 - 激活时间轮询消费者:{}<<", e.getMessage().toString()); -// //将该消息存放到死信队列中,单独写一个死信消费者实现消费。 - } - } - - -} diff --git a/yunze-consumption-car-activatedate/src/main/resources/application.yml b/yunze-consumption-car-activatedate/src/main/resources/application.yml index f100b50..003e232 100644 --- a/yunze-consumption-car-activatedate/src/main/resources/application.yml +++ b/yunze-consumption-car-activatedate/src/main/resources/application.yml @@ -10,6 +10,8 @@ spring: password: 20220107@yzIot ## 心跳 请求的心跳超时,以秒为单位; 零表示没有 requested-heartbeat: 40 + ####心跳开启 + keepalive: true ### 地址 virtual-host: /VirtualHosts listener: @@ -33,7 +35,7 @@ spring: # redis 配置 redis: # 地址 - host: 127.0.0.1 + host: r-uf6r62dtsyztnh3312pd.redis.rds.aliyuncs.com # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/yunze-consumption-car-activatedate/src/main/resources/logback.xml b/yunze-consumption-car-activatedate/src/main/resources/logback.xml index 289a23c..fe3f1d9 100644 --- a/yunze-consumption-car-activatedate/src/main/resources/logback.xml +++ b/yunze-consumption-car-activatedate/src/main/resources/logback.xml @@ -30,8 +30,8 @@ ${LOG_PATH}/${LOG_FILE}/${LOG_FILE}-%d{yyyy-MM-dd}.log - - 7 + + 2 diff --git a/yunze-consumption-car-api/cardSynApi.iml b/yunze-consumption-car-api/cardSynApi.iml new file mode 100644 index 0000000..89d0d8b --- /dev/null +++ b/yunze-consumption-car-api/cardSynApi.iml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yunze-consumption-backup/pom.xml b/yunze-consumption-car-api/pom.xml similarity index 96% rename from yunze-consumption-backup/pom.xml rename to yunze-consumption-car-api/pom.xml index e0c6764..4158330 100644 --- a/yunze-consumption-backup/pom.xml +++ b/yunze-consumption-car-api/pom.xml @@ -5,16 +5,15 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 - backup + cardSynApi - org.springframework.boot @@ -64,7 +63,7 @@ - backup + cardSynApi src/main/resources diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/CardSynApiApplication.java b/yunze-consumption-car-api/src/main/java/com/yunze/CardSynApiApplication.java new file mode 100644 index 0000000..0e33511 --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/CardSynApiApplication.java @@ -0,0 +1,15 @@ +package com.yunze; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + + +@SpringBootApplication +@MapperScan("com.yunze.common.mapper") +@MapperScan("com.yunze.apiCommon.mapper") +class CardSynApiApplication { + public static void main(String[] args) { + SpringApplication.run(CardSynApiApplication.class); + } +} diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/card/CardFleState.java b/yunze-consumption-car-api/src/main/java/com/yunze/card/CardFleState.java new file mode 100644 index 0000000..1cbae5f --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/card/CardFleState.java @@ -0,0 +1,342 @@ +package com.yunze.card; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.InternalApiRequest; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.YzCardInfoChangeMapper; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.utils.yunze.*; +import lombok.extern.slf4j.Slf4j; +import org.apache.catalina.User; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.Console; +import java.io.IOException; +import java.util.*; + +/** + * 灵活变更状态 + **/ +@Slf4j +@Component +public class CardFleState { + + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RedisCache redisCache; + @Resource + private YzCardInfoChangeMapper yzCardInfoChangeMapper; + @Resource + private WriteCSV writeCSV; + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private InternalApiRequest internalApiRequest; + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private GetShowStatIdArr getShowStatIdArr; + @Resource + private BulkUtil bulkUtil; + + private String Outcolumns[] = {"iccid", "返回消息", "执行描述", "执行人", "执行结果"}; + private String keys[] = {"iccid", "Message", "describe", "agentName", "result"}; + private int OutSize = 50;//每 50条数据输出一次 + + /** + * 灵活变更状态 + * + * @param msg + * @throws IOException + */ + @RabbitHandler + @RabbitListener(queues = "admin_fileFlexible_queue") + private void SetCardInfo(String msg ) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map map = JSON.parseObject(msg); + Map Rmap = (Map) map.get("map");//参数 + Map User = ( Map)map.get("User");//登录用户信息 + + Map bulkMap = ( Map)map.get("bulkMap");//批量任务主表 信息 + + bulkMap.put("state_id","3");//状态 执行中 3 + bulkMap.put("start_time", VeDate.getStringDate());//赋值 开始时间 + + bulkUtil.update(bulkMap);//消费者进入变更执行状态 执行中 + + executionel(Rmap,User,bulkMap);//灵活变更状态 + } catch (Exception e) { + log.error(">>错误 - 特殊操作 灵活变更状态 :{}<<", e.getMessage().toString()); + } + } + + private void executionel(Map Rmap,Map User,Map bulkMap) { + String Message = ""; + HashMap map = new HashMap<>(); + + List list = (List) Rmap.get("iccids"); + + List> mapList = new ArrayList<>(); + + // 把List 转换成 List> + for (int i = 0; i HaAap = new HashMap<>(); + HaAap.put("iccid", list.get(i)); + mapList.add(HaAap); + } + + Map Dept = (Map)User.get("dept"); + String create_by = " [ "+Dept.get("deptName")+" ] - "+" [ "+User.get("userName")+" ] "; + + String newName = UUID.randomUUID().toString().replace("-", "") + "_FleStat";////对应 执行任务导出类别 CSV 前缀 + String failAdd = UUID.randomUUID().toString().replace("-","")+"_failAdd"; + + + map.put("card_arrs", mapList);//更新 list + map.put("type", "3"); //获取 iccid + + //新增批量操作详情 + Map bulkDtailsMap = new HashMap<>(); + String b_id = bulkMap.get("id").toString(); + bulkDtailsMap.put("b_id",b_id); + bulkDtailsMap.put("bus_arrs",mapList); + bulkUtil.Dadd(bulkDtailsMap); + + if (mapList != null && mapList.size() > 0) { + //筛选出未划分通道的 + map.put("channel_idType", "notNull"); + List Channel_iccidarr = yzCardMapper.isExistence(map); //查询单卡信息 + if (Channel_iccidarr != null && Channel_iccidarr.size() > 0) { + if (!(Channel_iccidarr.size() == mapList.size())) { + // 获取 数组去重数据 和 重复值 + Map getNotRepeatingMap_DB = Different.getNotRepeating(mapList, Channel_iccidarr, "iccid");//获取 筛选不重复的某列值 和 重复的 + mapList = (List>) getNotRepeatingMap_DB.get("Rlist");//更新 查询数据 + List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 查询数据 + //找出与数据库已存在 相同 ICCID 去除 重复 iccid + if (Out_list_Different.size() > 0) { + bulkUtil.DupdateArr(b_id,Out_list_Different,VeDate.getStringDate(),"2","未划分通道!操作取消!"); + } + } + map.put("card_arrs", mapList);//更新 list + List> find_crArr = yzCardRouteMapper.find_cr();//查询 通道简要信息 状态为 正常 + List channel_idArr = new ArrayList<>(); + if (find_crArr != null && find_crArr.size() > 0) {//查询 通道简要信息 状态为 正常 + for (int i = 0; i < find_crArr.size(); i++) { + channel_idArr.add(find_crArr.get(i).get("dictValue")); + } + } else { + channel_idArr.add("0"); + } + //筛选出通道正常的进行 查询 + map.put("channel_idArr", channel_idArr); + List normalChannel_iccidarr = yzCardMapper.isExistence(map); + if (normalChannel_iccidarr != null && normalChannel_iccidarr.size() > 0) { + if (normalChannel_iccidarr != null && normalChannel_iccidarr.size() > 0) { + if (!(normalChannel_iccidarr.size() == mapList.size())) { + //上传数据>数据库查询 赛选出 + List list1 = new ArrayList<>(); + for (int i = 0; i < mapList.size(); i++) { + list1.add(mapList.get(i).get("iccid").toString()); + } + // 获取 数组去重数据 和 重复值 + Map getNotRepeatingMap_DB = Different.getNotRepeating(mapList, normalChannel_iccidarr, "iccid");//获取 筛选不重复的某列值 和 重复的 + mapList = (List>) getNotRepeatingMap_DB.get("Rlist");//更新 查询数据 + List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 查询数据 + //找出与数据库已存在 相同 ICCID 去除 重复 iccid + if (Out_list_Different.size() > 0) { + bulkUtil.DupdateArr(b_id,Out_list_Different,VeDate.getStringDate(),"2","通道状态 为停用或已删除!操作取消!"); + } + } + map.put("card_arrs", mapList);//更新 list + + + List> SuccessArr = new ArrayList<>(); + List> failArr = new ArrayList<>(); + + List> findRouteArr = yzCardMapper.findRouteArr(map);//查询 卡号 分配 通道 + for (int i = 0; i < findRouteArr.size(); i++) { + Map Route = findRouteArr.get(i); + String iccid = Route.get("iccid").toString();//获取 + + Map Obj = new HashMap<>();// 定义 Obj + Obj.put("iccid", iccid); + Obj.put("card_arrs", iccid); + Object ShowId = Rmap.get("status_ShowId"); + Obj.put("operType",ShowId);//API 状态 + + + Map CsFble = internalApiRequest.changeCardStatusFlexible(Obj, findRouteArr.get(i));//获取接口 + String code = CsFble.get("code") != null ? CsFble.get("code").toString() : "500"; + if (code.equals("200")) { + Object status = Rmap.get("status_ShowId"); + if (status != null && status != "" && status.toString().trim().length() > 0) { + Message = Rmap.get("Message") != null ? Rmap.get("Message").toString() : "操作成功!"; + Obj.put("status", status); + Obj.put("Message", Message); + Obj.put("agentName", create_by); + Obj.put("describe", "成功"); + Obj.put("result", "操作成功"); + SuccessArr.add(Obj); + bulkUtil.Dupdate(b_id,iccid,VeDate.getStringDate(),"1",Message); + } + } else { + Obj.put("result", "操作失败"); + Obj.put("describe", "失败"); + Message = CsFble.get("Message") != null ? CsFble.get("Message").toString() : "失败!"; + Obj.put("Message", Message); + failArr.add(Obj); + bulkUtil.Dupdate(b_id,iccid,VeDate.getStringDate(),"2",Message); + } + } + + + // 成功 + if (SuccessArr.size() > 0) { + // 变更主表信息 + try { + String State =""; + String status_ShowId = Rmap.get("status_ShowId").toString(); + if(status_ShowId.equals("0")){ // 已激活转已停机 + State = "2";//卡状态 停机 + } + // 1:已停机转已激活 2:库存转已激活 5:可测试转已激活 6:待激活转已激活 + if(status_ShowId.equals("1") || status_ShowId.equals("2") || status_ShowId.equals("5") || status_ShowId.equals("6")){ + State = "1";//卡状态 正常 + } + if(status_ShowId.equals("3")){// 可测试转库存 + State = "19";//卡状态 库存 + } + if(status_ShowId.equals("4")){// 可测试转待激活 + State = "7";//卡状态 待激活 + } + updStatus(SuccessArr, State);//下发变更 卡状态 队列 + + }catch (Exception e){ + log.info(">>错误 - 变更主表信息 :{} | {}<<", e.getMessage()); + } + + List> AddArr = new ArrayList<>(); + for (int j = 0; j < SuccessArr.size(); j++) { + Map Add_Map = SuccessArr.get(j); + String cbefore =""; //变更前 状态 + String cafterward = ""; //变更后状态 + Add_Map.put("ctype", "1"); //变更类型 + Object ShowIds = Rmap.get("status_ShowId"); + if(ShowIds.equals("0")){ + cbefore="1"; + cafterward="2"; + } + if(ShowIds.equals("1")){ + cbefore="2"; + cafterward="1"; + } + if(ShowIds.equals("2")){ + cbefore="19"; + cafterward="1"; + } + if(ShowIds.equals("3")){ + cbefore="17"; + cafterward="19"; + } + if(ShowIds.equals("4")){ + cbefore="17"; + cafterward="7"; + } + if(ShowIds.equals("5")){ + cbefore="17"; + cafterward="1"; + } + if(ShowIds.equals("6")){ + cbefore="7"; + cafterward="1"; + } + Add_Map.put("cbefore", cbefore); + Add_Map.put("cafterward", cafterward); + Add_Map.put("remark", "执行成功!"); + Add_Map.put("source_type", "9");// 卡变更类型来源 + Add_Map.put("execution_status", "1");//执行状态 + AddArr.add(Add_Map); + } + Map map2 = new HashMap<>(); + map2.put("CardInfoMapList", AddArr); + Integer addBool = yzCardInfoChangeMapper.addinfo(map2); + log.info("Dlx - " + map.get("iccid") + " 卡信息变更表 插入 : " + SuccessArr + " 新增卡信息变更记录 addBool :" + addBool); + } + + + // 失败 newName + if (failArr.size() > 0) { + List> AddArr = new ArrayList<>(); + for (int j = 0; j < failArr.size(); j++) { + Map Add_Map = failArr.get(j); + Add_Map.put("ctype", "1"); + Object ShowIds = Rmap.get("status_ShowId"); + Add_Map.put("cbefore", ShowIds); + Add_Map.put("cafterward", ShowIds); + Add_Map.put("remark", "执行失败!"); + Add_Map.put("source_type", "9");// 卡变更类型来源 + Add_Map.put("execution_status", "2"); + AddArr.add(Add_Map); + } + Map map3 = new HashMap<>(); + map3.put("CardInfoMapList", AddArr); + Integer addBool = yzCardInfoChangeMapper.addinfo(map3); + log.info("Dlx - " + map.get("iccid") + " 卡信息变更表 插入 : " + failArr + " 新增卡信息变更记录 addBool :" + addBool); + } + + } else { + bulkUtil.DupdateArr(b_id,mapList,VeDate.getStringDate(),"2","通道状态 为停用或已删除 取消操作"); + } + } else { + bulkUtil.DupdateArr(b_id,mapList,VeDate.getStringDate(),"2","未划分通道 取消操作"); + } + } + bulkMap.put("state_id","1");//状态 完成 1 + bulkMap.put("end_time", VeDate.getStringDate());//赋值 结束时间 + bulkUtil.update(bulkMap);//消费者进入变更执行状态 执行中 + + } + } + + /** + * 修改卡状态 + * + * @param SuccessArr + */ + public void updStatus(List> SuccessArr, String statusCode) { + //1. 修改卡状态 || 修改停复机状态 + List iccidArr = new ArrayList(); + Map Upd_Map = new HashMap<>(); + for (int i = 0; i < SuccessArr.size(); i++) { + iccidArr.add(SuccessArr.get(i).get("iccid").toString()); + } + Upd_Map.put("iccidArr", iccidArr); + Upd_Map.put("status_id", statusCode); + Upd_Map.put("status_ShowId", getShowStatIdArr.GetShowStatId(statusCode)); + + yzCardMapper.updStatusIdArr(Upd_Map); + } + + + + +} + + + + + + + + + diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/CardGetOpenDate.java b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/CardGetOpenDate.java new file mode 100644 index 0000000..3f3581e --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/CardGetOpenDate.java @@ -0,0 +1,125 @@ +package com.yunze.card.apisyn; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.apiCommon.utils.InternalApiRequest; +import com.yunze.common.mapper.yunze.YzCardMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +/** + * 获取 开卡日期 + */ +@Slf4j +@Component +public class CardGetOpenDate { + + @Resource + private InternalApiRequest internalApiRequest; + @Resource + private YzCardMapper yzCardMapper; + + /** + * @param msg + * @param channel_1 + * @throws IOException + */ + @RabbitHandler + @RabbitListener(queues = "admin_CardGetOpenDate_queue",containerFactory = "customContainerFactory") + public void SynOffering(String msg, Channel channel_1) { + if(msg!=null && msg.length()>0){ + Offering(msg); + } + } + + + /** + * 死信队列 + * @param msg + * @param channel_1 + * @throws IOException + */ + @RabbitHandler + @RabbitListener(queues = "dlx_admin_CardGetOpenDate_queue",containerFactory = "customContainerFactory") + public void dlxSynOffering(String msg, Channel channel_1) { + if(msg!=null && msg.length()>0){ + Offering(msg); + } + } + + + /** + * 同步 获取 开卡日期 + * @param msg + * @throws IOException + */ + public void Offering(String msg) { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Parammap = JSON.parseObject(msg); + //System.out.println(Parammap); + Map Route = yzCardMapper.findRoute(Parammap); + String opType = Parammap.get("opType").toString();// 更新激活时间 还是 开卡时间 + if(Route!=null ){ + String cd_status = Route.get("cd_status").toString(); + if(cd_status!=null && cd_status!="" && cd_status.equals("1")){ + Map Rmap = internalApiRequest.queryCardActiveTime(Parammap,Route); + String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; + if(code.equals("200")){ + //获取 激活时间 + if(Rmap.get("activateDate")!=null && Rmap.get("activateDate")!="" && Rmap.get("activateDate").toString().trim().length()>0 || + Rmap.get("openDate")!=null && Rmap.get("openDate")!="" && Rmap.get("openDate").toString().trim().length()>0){ + Object activateDate_obj = Rmap.get("activateDate")!=null && Rmap.get("activateDate")!="" && Rmap.get("activateDate").toString().trim().length()>0? + Rmap.get("activateDate").toString().trim():""; + String activateDate = activateDate_obj.toString().trim(); + activateDate = activateDate.length()>10?activateDate.substring(0,10):activateDate; + Object openDate = Rmap.get("openDate")!=null && Rmap.get("openDate")!="" && Rmap.get("openDate").toString().trim().length()>0? + Rmap.get("openDate").toString().trim():null; + Map Upd_Map = new HashMap<>(); + if(activateDate!=null && activateDate.length()>0 && opType.equals("activate")){ + Upd_Map.put("activate_date",activateDate); + } + if(openDate!=null){ + Upd_Map.put("open_date",openDate); + } + Upd_Map.put("iccid",Parammap.get("iccid").toString()); + try { + boolean bool = yzCardMapper.updActivate(Upd_Map)>0;//变更激活时间 开卡日期 + if(bool){ + log.info(" 成功 同步激活时间 {} ",JSON.toJSONString(Upd_Map)); + }else{ + log.error(" 失败 同步激活时间 {} ",JSON.toJSONString(Upd_Map)); + } + }catch (Exception e){ + log.error("DB保存状态操作失败!"+e.getMessage()); + } + }else{ + log.error("上游接口返回数据操作失败,{}",JSON.toJSONString(Rmap)); + } + }else{ + log.error("网络繁忙稍后重试!{}",JSON.toJSONString(Rmap)); + } + }else{ + String statusVal = cd_status.equals("2")?"已停用":cd_status.equals("3")?"已删除":"状态未知"; + log.error("同步激活时间 操作失败! "+" 通道 ["+statusVal+"]"); + } + }else{ + log.error(" iccid [{}] 未划分 API通道 !请划分通道后重试!",Parammap.get("iccid")); + } + } catch (Exception e) { + log.error(">>错误 - 同步 获取 开卡日期 消费者:{}<<", e.getMessage()); + } + } + + +} diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/CardStatus.java b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/CardStatus.java new file mode 100644 index 0000000..14902a6 --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/CardStatus.java @@ -0,0 +1,122 @@ +package com.yunze.card.apisyn; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.utils.yunze.GetShowStatIdArr; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * APi实时 获取数据时同步 数据库数据 消费者 [状态] + * */ +@Slf4j +@Component +public class CardStatus { + + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RedisCache redisCache; + @Resource + private GetShowStatIdArr getShowStatIdArr; + + @RabbitHandler + @RabbitListener(queues = "admin_ApiSynCardStatus_queue") + private void Listener(String msg, Channel channel){ + ListeneCommonr(msg,channel,"admin_ApiSynCardStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "admin_ApiSynCardStatus_queue") + private void Listener1(String msg, Channel channel){ + ListeneCommonr(msg,channel,"admin_ApiSynCardStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "admin_ApiSynCardStatus_queue") + private void Listener2(String msg, Channel channel){ + ListeneCommonr(msg,channel,"admin_ApiSynCardStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ApiSynCardStatus_queue") + private void DListener(String msg, Channel channel){ + ListeneCommonr(msg,channel,"dlx_admin_ApiSynCardStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ApiSynCardStatus_queue") + private void DListener1(String msg, Channel channel){ + ListeneCommonr(msg,channel,"dlx_admin_ApiSynCardStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ApiSynCardStatus_queue") + private void DListener2(String msg, Channel channel){ + ListeneCommonr(msg,channel,"dlx_admin_ApiSynCardStatus_queue"); + } + + + /** + * 监听公用 + * @param msg + * @param channel + */ + private void ListeneCommonr(String msg, Channel channel,String ListenePrefix){ + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + String iccid = Pmap.get("iccid").toString(); + Double Use = Double.parseDouble(Pmap.get("Use").toString()); + String prefix = ListenePrefix; + //执行前判断 redis 是否存在 执行数据 存在时 不执行 + String recordKey = prefix+":"+ iccid; + Object isExecute = redisCache.getCacheObject(recordKey); + if(isExecute==null){ + redisCache.setCacheObject(recordKey, msg, 10, TimeUnit.SECONDS);// 10 秒 缓存 避免 重复消费 + try { + Syn(Pmap); + }catch (Exception e){ + log.error(">>{} Syn 消费者:{}<<",ListenePrefix, e.getMessage()); + redisCache.deleteObject(recordKey);//删除正在执行key + } + } + } catch (Exception e) { + log.error(">>错误 - {} {} 消费者:{}<<",ListenePrefix, msg,e.getMessage()); + } + } + + + + + + + private void Syn(Map Upd_Map) { + + String statusCode = Upd_Map.get("statusCode").toString().trim(); + Upd_Map.put("status_ShowId",getShowStatIdArr.GetShowStatId(statusCode)); + int updcount = yzCardMapper.updStatusId(Upd_Map);//变更卡状态 + log.info(" Upd_Map {} updcount {}",Upd_Map,updcount); + } + + + + +} + + + + + + diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/CardSynOffering.java b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/CardSynOffering.java new file mode 100644 index 0000000..a878c17 --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/CardSynOffering.java @@ -0,0 +1,108 @@ +package com.yunze.card.apisyn; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.apiCommon.utils.InternalApiRequest; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +/** + * 同步上游 已订购资费信息 + */ +@Slf4j +@Component +public class CardSynOffering { + + @Resource + private InternalApiRequest internalApiRequest; + + + /** + * @param msg + * @param channel_1 + * @throws IOException + */ + @RabbitHandler + @RabbitListener(queues = "admin_cardSynOffering_queue") + public void SynOffering(String msg, Channel channel_1) { + if(msg!=null && msg.length()>0){ + Offering(msg); + } + } + + @RabbitHandler + @RabbitListener(queues = "admin_cardSynOffering_queue") + public void SynOffering_1(String msg, Channel channel_1) { + if(msg!=null && msg.length()>0){ + Offering(msg); + } + } + + /** + * 死信队列 + * @param msg + * @param channel_1 + * @throws IOException + */ + @RabbitHandler + @RabbitListener(queues = "dlx_admin_cardSynOffering_queue") + public void dlxSynOffering(String msg, Channel channel_1) { + if(msg!=null && msg.length()>0){ + Offering(msg); + } + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_cardSynOffering_queue") + public void dlxSynOffering_2(String msg, Channel channel_1) { + if(msg!=null && msg.length()>0){ + Offering(msg); + } + } + + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_cardSynOffering_queue") + public void dlxSynOffering_3(String msg, Channel channel_1) { + if(msg!=null && msg.length()>0){ + Offering(msg); + } + } + + + /** + * 同步 上游套餐 + * @param msg + * @throws IOException + */ + public void Offering(String msg) { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map map = JSON.parseObject(msg); + String iccid = map.get("iccid").toString(); + Map Parammap = new HashMap<>(); + Parammap.put("iccid", iccid); + Map Rmap = internalApiRequest.queryOffering(Parammap, map); + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { + //System.out.println(Rmap); + } else { + log.info(">>API - 同步 上游套餐 消费者 未获取到 : {} | {}<<", iccid, Rmap); + } + } catch (Exception e) { + log.error(">>错误 - 同步 上游套餐 消费者:{}<<", e.getMessage()); + } + } + + +} diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/CardUsed.java b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/CardUsed.java new file mode 100644 index 0000000..561b027 --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/CardUsed.java @@ -0,0 +1,119 @@ +package com.yunze.card.apisyn; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.utils.yunze.CardFlowSyn; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * APi实时 获取数据时同步 数据库数据 消费者 [用量] + * */ +@Slf4j +@Component +public class CardUsed { + + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RedisCache redisCache; + @Resource + private CardFlowSyn cardFlowSyn; + + + @RabbitHandler + @RabbitListener(queues = "admin_ApiSynCardUsed_queue") + private void Listener(String msg, Channel channel){ + ListeneCommonr(msg,channel,"admin_ApiSynCardUsed_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "admin_ApiSynCardUsed_queue") + private void Listener1(String msg, Channel channel){ + ListeneCommonr(msg,channel,"admin_ApiSynCardUsed_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "admin_ApiSynCardUsed_queue") + private void Listener2(String msg, Channel channel){ + ListeneCommonr(msg,channel,"admin_ApiSynCardUsed_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ApiSynCardUsed_queue") + private void DListener(String msg, Channel channel){ + ListeneCommonr(msg,channel,"dlx_admin_ApiSynCardUsed_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ApiSynCardUsed_queue") + private void DListener1(String msg, Channel channel){ + ListeneCommonr(msg,channel,"dlx_admin_ApiSynCardUsed_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ApiSynCardUsed_queue") + private void DListener2(String msg, Channel channel){ + ListeneCommonr(msg,channel,"dlx_admin_ApiSynCardUsed_queue"); + } + + /** + * 监听公用 + * @param msg + * @param channel + */ + private void ListeneCommonr(String msg, Channel channel,String ListenePrefix){ + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + String iccid = Pmap.get("iccid").toString(); + Double Use = Double.parseDouble(Pmap.get("Use").toString()); + String prefix = ListenePrefix; + //执行前判断 redis 是否存在 执行数据 存在时 不执行 + String recordKey = prefix+":"+ iccid; + Object isExecute = redisCache.getCacheObject(recordKey); + if(isExecute==null){ + redisCache.setCacheObject(recordKey, msg, 10, TimeUnit.SECONDS);// 10 秒 缓存 避免 重复消费 + try { + Syn(iccid,Use); + }catch (Exception e){ + log.error(">>{} Syn 消费者:{}<<",ListenePrefix, e.getMessage()); + redisCache.deleteObject(recordKey);//删除正在执行key + } + } + } catch (Exception e) { + log.error(">>错误 - {} 消费者:{}<<",ListenePrefix, e.getMessage()); + } + } + + + + + + + private void Syn(String iccid,Double Use) { + Map RMap = cardFlowSyn.CalculationFlow(iccid,Use); + log.info("RMap {}",RMap); + } + + + + +} + + + + + + diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/SynApiOfferinginfolist.java b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/SynApiOfferinginfolist.java new file mode 100644 index 0000000..93443a2 --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/SynApiOfferinginfolist.java @@ -0,0 +1,156 @@ +package com.yunze.card.apisyn; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.common.mapper.yunze.card.YzCardApiOfferinginfolistMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Auther: zhang feng + * @Date: 2022/04/08/15:41 + * @Description: 同步上游返回套餐记录信息 + */ +@Slf4j +@Component +public class SynApiOfferinginfolist { + + @Resource + private YzCardApiOfferinginfolistMapper yzCardApiOfferinginfolistMapper; + + @RabbitHandler + @RabbitListener(queues = "admin_sendSynApiOfferinginfolist_queue",containerFactory = "customContainerFactory") + public void SynApiOfferinginfolist(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + + Map Pmap = JSON.parseObject(msg); + String iccid = Pmap.get("iccid").toString();// + String cd_code = Pmap.get("cd_code").toString();// + List> setResult = (List>) Pmap.get("setResult"); + CardSynEnforce(iccid,cd_code,setResult); + }catch (Exception e){ + log.error(">>错误 - SynApiOfferinginfolist 消费者:{}<<", e.getMessage().toString()); + } + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_sendSynApiOfferinginfolist_queue",containerFactory = "customContainerFactory") + public void dlxSynApiOfferinginfolist(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + String iccid = Pmap.get("iccid").toString();// + String cd_code = Pmap.get("cd_code").toString();// + List> setResult = (List>) Pmap.get("setResult"); + CardSynEnforce(iccid,cd_code,setResult); + }catch (Exception e){ + log.error(">>错误 - dlxSynApiOfferinginfolist 消费者:{}<<", e.getMessage().toString()); + } + } + + @RabbitListener(queues = "dlx_admin_sendSynApiOfferinginfolist_queue") + public void dlxSynApiOfferinginfolist_1(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + String iccid = Pmap.get("iccid").toString();// + String cd_code = Pmap.get("cd_code").toString();// + List> setResult = (List>) Pmap.get("setResult"); + CardSynEnforce(iccid,cd_code,setResult); + }catch (Exception e){ + log.error(">>错误 - dlxSynApiOfferinginfolist 消费者:{}<<", e.getMessage().toString()); + } + } + + + public void CardSynEnforce(String iccid,String cd_code,List> setResult){ + List> card_arrs = new ArrayList<>(); + if(setResult!=null && setResult.size()>0){ + for (int i = 0; i < setResult.size(); i++) { + Map card = setResult.get(i); + Map addMap = new HashMap<>(); + String offeringId = ""; + String offeringName = ""; + String apnName = ""; + String effectiveDate = ""; + String expiriedDate = ""; + + //格式化数据 + if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) { + offeringId = card.get("offeringId")!=null?card.get("offeringId").toString():offeringId; + offeringName = card.get("offeringName")!=null?card.get("offeringName").toString():offeringName; + apnName = card.get("apnName")!=null?card.get("apnName").toString():apnName; + effectiveDate = card.get("effectiveDate")!=null?card.get("effectiveDate").toString():effectiveDate; + expiriedDate = card.get("expiriedDate")!=null?card.get("expiriedDate").toString():expiriedDate; + }else if (cd_code.equals("YiDong_ECv2") || cd_code.equals("YiDong_ECv2_Combo")) { + offeringId = card.get("prodid")!=null?card.get("prodid").toString():offeringId; + offeringName = card.get("prodname")!=null?card.get("prodname").toString():offeringName; + apnName = card.get("apnname")!=null?card.get("apnname").toString():apnName; + effectiveDate = card.get("prodinstefftime")!=null?card.get("prodinstefftime").toString():effectiveDate; + expiriedDate = card.get("prodinstexptime")!=null?card.get("prodinstexptime").toString():expiriedDate; + } + + + addMap.put("offeringId",offeringId); + addMap.put("offeringName",offeringName); + addMap.put("apnName",apnName); + addMap.put("effectiveDate",effectiveDate); + addMap.put("expiriedDate",expiriedDate); + card_arrs.add(addMap); + } + List> updarrs = new ArrayList<>(); + List> addarrs = new ArrayList<>(); + for (int i = 0; i < card_arrs.size(); i++) { + Map findMap = card_arrs.get(i); + findMap.put("iccid",iccid); + Map isMap = yzCardApiOfferinginfolistMapper.is_ex(findMap); + if(isMap!=null && isMap.get("iccid")!=null){ + updarrs.add(findMap); + }else{ + addarrs.add(findMap); + } + } + + int saveCount = 0; + int updCount = 0; + if(addarrs!=null && addarrs.size()>0){ + Map addMap = new HashMap<>(); + addMap.put("card_arrs",addarrs); + addMap.put("iccid",iccid); + addMap.put("cd_code",cd_code); + saveCount = yzCardApiOfferinginfolistMapper.save(addMap); + } + if(updarrs!=null && updarrs.size()>0){ + for (int i = 0; i < updarrs.size(); i++) { + Map updMap = updarrs.get(i); + updMap.put("iccid",iccid); + updMap.put("cd_code",cd_code); + updCount += yzCardApiOfferinginfolistMapper.upd(updMap); + } + } + log.info("iccid {} : 新增套餐 {} 修改套餐 {} ",iccid,saveCount,updCount); + } + + } + + + + +} diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/SynUsageReminder.java b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/SynUsageReminder.java new file mode 100644 index 0000000..70c9473 --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/SynUsageReminder.java @@ -0,0 +1,200 @@ +package com.yunze.card.apisyn; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.apiCommon.utils.Arith; +import com.yunze.common.mapper.yunze.card.YzCardUsageReminderMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.IOException; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Auther: zhang feng + * @Date: 2022/04/08/15:41 + * @Description: 同步上游返回套餐记录信息 + */ +@Slf4j +@Component +public class SynUsageReminder { + + @Resource + private YzCardUsageReminderMapper yzCardUsageReminderMapper; + + @RabbitHandler + @RabbitListener(queues = "admin_sendSynUsageReminder_queue",containerFactory = "customContainerFactory") + public void SynUsageReminder(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + + Map Pmap = JSON.parseObject(msg); + //System.out.println(Pmap); + String iccid = Pmap.get("iccid").toString();//iccid + String cd_code = Pmap.get("cd_code").toString();//iccid + List> setResult = (List>) Pmap.get("setResult"); + CardSynEnforce(iccid,cd_code,setResult); + }catch (Exception e){ + log.error(">>错误 - 同步上游返回套餐记录信息 消费者:{}<<", e.getMessage().toString()); + } + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_sendSynUsageReminder_queue",containerFactory = "customContainerFactory") + public void dlxSynUsageReminder(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + + Map Pmap = JSON.parseObject(msg); + //System.out.println(Pmap); + String iccid = Pmap.get("iccid").toString();//iccid + String cd_code = Pmap.get("cd_code").toString();//iccid + List> setResult = (List>) Pmap.get("setResult"); + CardSynEnforce(iccid,cd_code,setResult); + }catch (Exception e){ + log.error(">>错误 - 同步上游返回套餐记录信息 消费者:{}<<", e.getMessage().toString()); + } + } + + + + public void CardSynEnforce(String iccid,String cd_code,List> setResult){ + List> card_arrs = new ArrayList<>(); + if(setResult!=null && setResult.size()>0){ + for (int i = 0; i < setResult.size(); i++) { + Map card = setResult.get(i); + Map addMap = new HashMap<>(); + String offeringId = ""; + String offeringName = ""; + String apnName = ""; + double totalAmount = 0.0; + double useAmount = 0.0; + double remainAmount = 0.0; + double percentage = 0.0; + + //格式化数据 + switch (cd_code){ + case "YiDong_EC_Combo": + + offeringId = card.get("offeringId")!=null?card.get("offeringId").toString():offeringId; + offeringName = card.get("offeringName")!=null?card.get("offeringName").toString():offeringName; + apnName = card.get("apnName")!=null?card.get("apnName").toString():apnName; + + totalAmount = card.get("totalAmount")!=null?Double.parseDouble(card.get("totalAmount").toString()):totalAmount; + useAmount = card.get("useAmount")!=null?Double.parseDouble(card.get("useAmount").toString()):useAmount; + remainAmount = card.get("remainAmount")!=null?Double.parseDouble(card.get("remainAmount").toString()):remainAmount; + //kb 转 MB + totalAmount = Arith.formatToTwo(Arith.div(totalAmount,1024)); + useAmount = Arith.formatToTwo(Arith.div(useAmount,1024)); + remainAmount = Arith.formatToTwo(Arith.div(remainAmount,1024)); + break; + case "YiDong_ECv2_Combo": + offeringId = card.get("prodid")!=null?card.get("prodid").toString():offeringId; + offeringName = card.get("prodname")!=null?card.get("prodname").toString():offeringName; + apnName = card.get("apnname")!=null?card.get("apnname").toString():apnName; + + totalAmount = card.get("total")!=null?Double.parseDouble(card.get("total").toString()):totalAmount;//MB + useAmount = card.get("used")!=null?Double.parseDouble(card.get("used").toString()):useAmount;//KB + remainAmount = card.get("left")!=null?Double.parseDouble(card.get("left").toString()):remainAmount;//KB + + useAmount = Arith.formatToTwo(Arith.div(useAmount,1024)); + remainAmount = Arith.formatToTwo(Arith.div(remainAmount,1024)); + break; + } + if(useAmount>0.0){ + percentage = Arith.formatToTwo(Arith.mul(Arith.div(useAmount,totalAmount),100)); + }else { + percentage = 0; + } + addMap.put("offeringId",offeringId); + addMap.put("offeringName",offeringName); + addMap.put("apnName",apnName); + addMap.put("totalAmount",totalAmount); + addMap.put("useAmount",useAmount); + addMap.put("remainAmount",remainAmount); + addMap.put("percentage",percentage); + card_arrs.add(addMap); + } + + List> ex_arrs = new ArrayList<>(); + for (int i = 0; i < card_arrs.size(); i++) { + Map findMap = card_arrs.get(i); + findMap.put("iccid",iccid); + Map isMap = yzCardUsageReminderMapper.is_ex(findMap); + if(isMap!=null && isMap.get("iccid")!=null){ + ex_arrs.add(isMap); + } + } + + + List> updarrs = new ArrayList<>(); + List> addarrs = new ArrayList<>(); + + + if(ex_arrs!=null && ex_arrs.size()>0){ + + + for (int i = 0; i < card_arrs.size(); i++) { + Map c_obj = card_arrs.get(i); + String c_offeringId = c_obj.get("offeringId").toString(); + boolean bool = false; + for (int j = 0; j < ex_arrs.size(); j++) { + Map ex_obj = ex_arrs.get(j); + String ex_iccid = ex_obj.get("iccid").toString(); + String ex_offeringId = ex_obj.get("offeringId").toString(); + if(iccid.equals(ex_iccid) && c_offeringId.equals(ex_offeringId)){ + updarrs.add(c_obj); + bool = true; + break; + } + } + if(!bool){ + addarrs.add(c_obj); + } + } + }else { + addarrs.addAll(card_arrs); + } + int saveCount = 0; + int updCount = 0; + if(addarrs!=null && addarrs.size()>0){ + Map addMap = new HashMap<>(); + addMap.put("card_arrs",addarrs); + addMap.put("iccid",iccid); + saveCount = yzCardUsageReminderMapper.save(addMap); + } + if(updarrs!=null && updarrs.size()>0){ + for (int i = 0; i < updarrs.size(); i++) { + Map updMap = updarrs.get(i); + updMap.put("iccid",iccid); + updCount += yzCardUsageReminderMapper.upd(updMap); + } + } + log.info("iccid {} : 新增套餐 {} 修改套餐 {} ",iccid,saveCount,updCount); + } + + } + + + public double double_format(double value, int retain) { + + BigDecimal bd = new BigDecimal(value); + bd = bd.setScale(retain, RoundingMode.HALF_UP); + return Double.parseDouble(bd.toString()); + } + + +} diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/UpdCardConnectionStatus.java b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/UpdCardConnectionStatus.java new file mode 100644 index 0000000..ae9663d --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/UpdCardConnectionStatus.java @@ -0,0 +1,167 @@ +package com.yunze.card.apisyn; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.common.config.MyDictionary; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.YzCardInfoChangeMapper; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.utils.yunze.GetShowStatIdArr; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * APi实时 获取数据时同步 数据库数据 消费者 [修改断开网状态] + * */ +@Slf4j +@Component +public class UpdCardConnectionStatus { + + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RedisCache redisCache; + @Resource + private GetShowStatIdArr getShowStatIdArr; + @Resource + private MyDictionary myDictionary; + @Resource + private YzCardInfoChangeMapper yzCardInfoChangeMapper; + + @RabbitHandler + @RabbitListener(queues = "admin_ApiSynUpdCardConnectionStatus_queue") + private void Listener(String msg, Channel channel){ + ListeneCommonr(msg,channel,"admin_ApiSynUpdCardConnectionStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "admin_ApiSynUpdCardConnectionStatus_queue") + private void Listener1(String msg, Channel channel){ + ListeneCommonr(msg,channel,"admin_ApiSynUpdCardConnectionStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "admin_ApiSynUpdCardConnectionStatus_queue") + private void Listener2(String msg, Channel channel){ + ListeneCommonr(msg,channel,"admin_ApiSynUpdCardConnectionStatus_queue"); + } + + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ApiSynUpdCardConnectionStatus_queue") + private void DListener(String msg, Channel channel){ + ListeneCommonr(msg,channel,"dlx_admin_ApiSynUpdCardConnectionStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ApiSynUpdCardConnectionStatus_queue") + private void DListener1(String msg, Channel channel){ + ListeneCommonr(msg,channel,"dlx_admin_ApiSynUpdCardConnectionStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ApiSynUpdCardConnectionStatus_queue") + private void DListener2(String msg, Channel channel){ + ListeneCommonr(msg,channel,"dlx_admin_ApiSynUpdCardConnectionStatus_queue"); + } + + + /** + * 监听公用 + * @param msg + * @param channel + */ + private void ListeneCommonr(String msg, Channel channel,String ListenePrefix){ + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + String iccid = Pmap.get("iccid").toString(); + Double Use = Double.parseDouble(Pmap.get("Use").toString()); + String prefix = ListenePrefix; + //执行前判断 redis 是否存在 执行数据 存在时 不执行 + String recordKey = prefix+":"+ iccid; + Object isExecute = redisCache.getCacheObject(recordKey); + if(isExecute==null){ + redisCache.setCacheObject(recordKey, msg, 10, TimeUnit.SECONDS);// 10 秒 缓存 避免 重复消费 + try { + Syn(Pmap); + }catch (Exception e){ + log.error(">>{} Syn 消费者:{}<<", ListenePrefix,e.getMessage()); + redisCache.deleteObject(recordKey);//删除正在执行key + } + } + } catch (Exception e) { + log.error(">>错误 - {} {} 消费者:{}<<",ListenePrefix, msg,e.getMessage()); + } + } + + + + + + + private void Syn(Map Upd_Map) { + + String Is_Break = Upd_Map.get("Is_Break").toString(); + + Map Obj = yzCardMapper.findRoute(Upd_Map); + if(Obj!=null){ + String key = "status_id"; + String dict_type = "yunze_card_status_ShowId"; + String ctype = "1"; + String cbefore = "";//变更前 + String cafterward = "";//变更后 + String connection_status = "";//断开网状态 + String value = Obj.get(key) != null && Obj.get(key).toString().length() > 0 ? Obj.get(key).toString() : "未知"; + if (!value.equals("未知")) { + cbefore = myDictionary.getdictLabel(dict_type, value); + } else { + cbefore = value; + } + Map Add_Map = new HashMap(); + + if(Is_Break.equals("1")){ + cafterward ="断网"; + connection_status ="2"; + }else if(Is_Break.equals("0")){ + cafterward ="开网"; + connection_status ="1"; + } + Add_Map.put("ctype", ctype); + Add_Map.put("cbefore", cbefore); + Add_Map.put("cafterward", cafterward); + Add_Map.put("remark", "执行成功!"); + Add_Map.put("source_type", "8");// 来源 类型 :8 Api变更 + Add_Map.put("execution_status", "2"); + + Upd_Map.put("connection_status", connection_status); + + int updCount = yzCardMapper.updConnectionStatus(Upd_Map); + int addChange = 0; + if(updCount>0){ + addChange = yzCardInfoChangeMapper.save(Add_Map); + } + log.info("Upd_Map {} updCount {} addChange {}",Upd_Map,updCount,addChange); + } + } + + + + +} + + + + + + diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/UpdCardStatus.java b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/UpdCardStatus.java new file mode 100644 index 0000000..9b2886d --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/card/apisyn/UpdCardStatus.java @@ -0,0 +1,167 @@ +package com.yunze.card.apisyn; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.common.config.MyDictionary; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.YzCardInfoChangeMapper; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.utils.yunze.GetShowStatIdArr; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * APi实时 获取数据时同步 数据库数据 消费者 [修改状态] + * */ +@Slf4j +@Component +public class UpdCardStatus { + + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RedisCache redisCache; + @Resource + private GetShowStatIdArr getShowStatIdArr; + @Resource + private MyDictionary myDictionary; + @Resource + private YzCardInfoChangeMapper yzCardInfoChangeMapper; + + @RabbitHandler + @RabbitListener(queues = "admin_ApiSynUpdCardStatus_queue") + private void Listener(String msg, Channel channel){ + ListeneCommonr(msg,channel,"admin_ApiSynUpdCardStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "admin_ApiSynUpdCardStatus_queue") + private void Listener1(String msg, Channel channel){ + ListeneCommonr(msg,channel,"admin_ApiSynUpdCardStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "admin_ApiSynUpdCardStatus_queue") + private void Listener2(String msg, Channel channel){ + ListeneCommonr(msg,channel,"admin_ApiSynUpdCardStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ApiSynUpdCardStatus_queue") + private void DListener(String msg, Channel channel){ + ListeneCommonr(msg,channel,"dlx_admin_ApiSynUpdCardStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ApiSynUpdCardStatus_queue") + private void DListener1(String msg, Channel channel){ + ListeneCommonr(msg,channel,"dlx_admin_ApiSynUpdCardStatus_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ApiSynUpdCardStatus_queue") + private void DListener2(String msg, Channel channel){ + ListeneCommonr(msg,channel,"dlx_admin_ApiSynUpdCardStatus_queue"); + } + + + + /** + * 监听公用 + * @param msg + * @param channel + */ + private void ListeneCommonr(String msg, Channel channel,String ListenePrefix){ + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + String iccid = Pmap.get("iccid").toString(); + Double Use = Double.parseDouble(Pmap.get("Use").toString()); + String prefix = ListenePrefix; + //执行前判断 redis 是否存在 执行数据 存在时 不执行 + String recordKey = prefix+":"+ iccid; + Object isExecute = redisCache.getCacheObject(recordKey); + if(isExecute==null){ + redisCache.setCacheObject(recordKey, msg, 10, TimeUnit.SECONDS);// 10 秒 缓存 避免 重复消费 + try { + Syn(Pmap); + }catch (Exception e){ + log.error(">>{} Syn 消费者:{}<<", ListenePrefix,e.getMessage()); + redisCache.deleteObject(recordKey);//删除正在执行key + } + } + } catch (Exception e) { + log.error(">>错误 - {} {} 消费者:{}<<", ListenePrefix,msg,e.getMessage()); + } + } + + + + + + + private void Syn(Map Upd_Map) { + + String Is_Stop = Upd_Map.get("Is_Stop").toString(); + + Map Obj = yzCardMapper.findRoute(Upd_Map); + if(Obj!=null){ + String key = "status_id"; + String dict_type = "yunze_card_status_ShowId"; + String ctype = "1"; + String cbefore = "";//变更前 + String cafterward = "";//变更后 + String statusCode = "";//卡状态描述 + String value = Obj.get(key) != null && Obj.get(key).toString().length() > 0 ? Obj.get(key).toString() : "未知"; + if (!value.equals("未知")) { + cbefore = myDictionary.getdictLabel(dict_type, value); + } else { + cbefore = value; + } + Map Add_Map = new HashMap(); + + if(Is_Stop.equals("off")){ + cafterward ="停机"; + statusCode ="2"; + }else if(Is_Stop.equals("on")){ + cafterward ="复机"; + statusCode ="1"; + } + Add_Map.put("ctype", ctype); + Add_Map.put("cbefore", cbefore); + Add_Map.put("cafterward", cafterward); + Add_Map.put("remark", "执行成功!"); + Add_Map.put("source_type", "8");// 来源 类型 :8 Api变更 + Add_Map.put("execution_status", "1"); + + Upd_Map.put("status_id", statusCode); + Upd_Map.put("status_ShowId",getShowStatIdArr.GetShowStatId(statusCode)); + int updCount = yzCardMapper.updStatusId(Upd_Map); + int addChange = 0; + if(updCount>0){ + addChange = yzCardInfoChangeMapper.save(Add_Map); + } + log.info("Upd_Map {} updCount {} addChange {}",Upd_Map,updCount,addChange); + } + } + + + + +} + + + + + + diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/config/RbMQConfig.java b/yunze-consumption-car-api/src/main/java/com/yunze/config/RbMQConfig.java new file mode 100644 index 0000000..0efa4dc --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/config/RbMQConfig.java @@ -0,0 +1,27 @@ +package com.yunze.config; + +import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @Auther: zhang feng + * @Date: 2022/02/22/11:18 + * @Description: + */ +@Configuration +public class RbMQConfig { + //并发数量 + public static final int DEFAULT_CONCURRENT = 200; + @Bean("customContainerFactory") + public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer, + ConnectionFactory connectionFactory) { + SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); + factory.setConcurrentConsumers(DEFAULT_CONCURRENT); + factory.setMaxConcurrentConsumers(DEFAULT_CONCURRENT); + configurer.configure(factory, connectionFactory); + return factory; + } +} diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/iotapi/SynActivateDateQueue.java b/yunze-consumption-car-api/src/main/java/com/yunze/iotapi/SynActivateDateQueue.java new file mode 100644 index 0000000..c8ea2bd --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/iotapi/SynActivateDateQueue.java @@ -0,0 +1,138 @@ +package com.yunze.iotapi; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.apiCommon.utils.InternalApiRequest; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.YzCardMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * 激活时间补偿获取 + * @Auther: zhang feng + * @Date: 2022/01/27/22:37 + * @Description: + */ +@Slf4j +@Component +public class SynActivateDateQueue { + + + @Resource + private YzCardMapper yzCardMapper; + @Resource + private InternalApiRequest internalApiRequest; + @Resource + private RedisCache redisCache; + + @RabbitHandler + @RabbitListener(queues = "admin_getSynActivateDate_queue") + public void SynActivateDate(String msg, Channel channel) throws IOException { + ListeneCommonr(msg,channel,"admin_getSynActivateDate_queue"); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_getSynActivateDate_queue") + public void DelSynActivateDate(String msg, Channel channel) throws IOException { + ListeneCommonr(msg,channel,"dlx_admin_getSynActivateDate_queue"); + } + + + /** + * 监听公用 + * @param msg + * @param channel + */ + private void ListeneCommonr(String msg, Channel channel,String ListenePrefix){ + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + String iccid = Pmap.get("iccid")!=null?Pmap.get("iccid").toString():""; + String prefix = ListenePrefix+iccid; + //执行前判断 redis 是否存在 执行数据 存在时 不执行 + Object isExecute = redisCache.getCacheObject(prefix); + if(isExecute==null){ + redisCache.setCacheObject(prefix, msg,10 , TimeUnit.SECONDS);//10 秒缓存 避免 重复消费 + SynExAcd(Pmap); + } + }catch (Exception e){ + log.error(">> iotApi 激活时间补偿获取 消费者:{}<<", e.getMessage().toString()); + } + } + + + + + private void SynExAcd(Map Parammap) { + Map Route = yzCardMapper.findRoute(Parammap); + if(Route!=null ){ + String cd_status = Route.get("cd_status").toString(); + if(cd_status!=null && cd_status!="" && cd_status.equals("1")){ + String activate_date = Route.get("activate_date")!=null?Route.get("activate_date").toString():""; + if(activate_date.length()>0){ + log.info(" activate_date.length()>0 {} | Route {} ",JSON.toJSONString(Parammap),JSON.toJSONString(Route)); + }else{ + Map Rmap = internalApiRequest.queryCardActiveTime(Parammap,Route); + String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; + if(code.equals("200")){ + //获取 激活时间 + if(Rmap.get("activateDate")!=null && Rmap.get("activateDate")!="" && Rmap.get("activateDate").toString().trim().length()>0 || + Rmap.get("openDate")!=null && Rmap.get("openDate")!="" && Rmap.get("openDate").toString().trim().length()>0){ + Object activateDate_obj = Rmap.get("activateDate")!=null && Rmap.get("activateDate")!="" && Rmap.get("activateDate").toString().trim().length()>0? + Rmap.get("activateDate").toString().trim():""; + String activateDate = activateDate_obj.toString().trim(); + activateDate = activateDate.length()>10?activateDate.substring(0,10):activateDate; + Object openDate = Rmap.get("openDate")!=null && Rmap.get("openDate")!="" && Rmap.get("openDate").toString().trim().length()>0? + Rmap.get("openDate").toString().trim():null; + Map Upd_Map = new HashMap<>(); + if(activateDate!=null && activateDate.length()>0 ){ + Upd_Map.put("activate_date",activateDate); + } + if(openDate!=null){ + Upd_Map.put("open_date",openDate); + } + Upd_Map.put("iccid",Parammap.get("iccid").toString()); + try { + boolean bool = yzCardMapper.updActivate(Upd_Map)>0;//变更卡状态 + if(bool){ + log.info("已成功同步激活时间!"); + }else{ + log.error("保存激活时间异常:False!"); + } + }catch (Exception e){ + log.error("DB保存状态异常!"+e.getMessage().toString()); + } + }else{ + //System.out.println(Rmap); + log.error("上游接口返回数据异常,稍后重试!"); + } + }else{ + log.error("网络繁忙稍后重试!"+Rmap.get("Message").toString()); + } + } + }else{ + String statusVal = cd_status.equals("2")?"已停用":cd_status.equals("3")?"已删除":"状态未知"; + log.error("同步激活时间 异常!"+" 通道 ["+statusVal+"]"); + } + }else{ + log.error(" iccid ["+Parammap.get("iccid")+"] 未划分 API通道 !请划分通道后重试!"); + } + + } + + + + +} diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/polling/SynCardPollingError.java b/yunze-consumption-car-api/src/main/java/com/yunze/polling/SynCardPollingError.java new file mode 100644 index 0000000..a8d3f23 --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/polling/SynCardPollingError.java @@ -0,0 +1,80 @@ +package com.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.Map; + +/** + * @Auther: zhang feng + * @Date: 2022/05/10 17:09 + * @Description: 记录用量查询接口错误信息记录 【用来分析接口状态】 + */ +@Slf4j +@Component +public class SynCardPollingError { + + @Resource + private YzCardPollingErrorMapper yzCardPollingErrorMapper; + + @RabbitHandler + @RabbitListener(queues = "admin_sendQuerFlowError_queue",containerFactory = "customContainerFactory") + public void SynCardPollingError(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + CardSynEnforce(Pmap); + }catch (Exception e){ + log.error(">>错误 - SynCardPollingError 消费者:{}<<", e.getMessage().toString()); + } + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_sendQuerFlowError_queue",containerFactory = "customContainerFactory") + public void dlxSynCardPollingError(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + CardSynEnforce(Pmap); + }catch (Exception e){ + log.error(">>错误 - dlxSynCardPollingError 消费者:{}<<", e.getMessage().toString()); + } + } + + + + public void CardSynEnforce(Map Pmap){ + int saveCount = 0 ; + int updCount = 0 ; + try { + String id = yzCardPollingErrorMapper.findEx(Pmap); + if(id!=null && id.length()>0){ + Pmap.put("id",id); + updCount = yzCardPollingErrorMapper.upd(Pmap); + }else{ + saveCount = yzCardPollingErrorMapper.save(Pmap); + } + }catch (Exception e){ + log.info("Pmap {} : 新增 {} 修改 {} 异常信息 {} ",JSON.toJSONString(Pmap),saveCount,updCount,e.getMessage()); + } + log.info("iccid {} : 新增 {} 修改 {} ",Pmap.get("iccid"),saveCount,updCount); + + + } + + + + +} diff --git a/yunze-consumption-car-api/src/main/java/com/yunze/task/MonthFirstday.java b/yunze-consumption-car-api/src/main/java/com/yunze/task/MonthFirstday.java new file mode 100644 index 0000000..6fcb620 --- /dev/null +++ b/yunze-consumption-car-api/src/main/java/com/yunze/task/MonthFirstday.java @@ -0,0 +1,236 @@ +package com.yunze.task; +import com.yunze.apiCommon.utils.InternalApiRequest; +import com.yunze.common.config.MyDictionary; +import com.yunze.common.mapper.yunze.YzCardInfoChangeMapper; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.apiCommon.utils.InternalApiRequest; +import com.yunze.common.utils.yunze.GetShowStatIdArr; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.dao.DuplicateKeyException; +import org.springframework.stereotype.Component; +import javax.annotation.Resource; +import java.io.IOException; +import java.util.*; + +@Slf4j +@Component +public class MonthFirstday { + @Resource + private YzCardMapper yzCardMapper; + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private WriteCSV writeCSV; + @Resource + private InternalApiRequest internalApiRequest; + @Resource + private YzCardInfoChangeMapper yzCardInfoChangeMapper; + @Resource + private MyDictionary myDictionary; + @Resource + private GetShowStatIdArr getShowStatIdArr; + + private String Outcolumns[] = {"iccid","返回消息","执行描述","执行人","执行结果"}; + private String keys[] = {"iccid","Message","describe","agentName","result"}; + private int OutSize = 50;//每 50条数据输出一次 + + /** + 月初有订购期内流量卡 进行 复机 + */ + @RabbitHandler + @RabbitListener(queues = "admin_MonthFirstday_queue") + public void CardMonth(String msg) throws IOException { + try { + execution();//月初有订购期内流量卡 进行 复机 + } catch (Exception e) { + log.error(">>错误 - 月初有订购期内流量卡 进行 复机 消费者:{}<<", e.getMessage()); + } + } + + private void execution() { + String Message = ""; + HashMap map = new HashMap<>(); + List> list = yzCardMapper.StatusChange(map);//数据库 查询 + String create_by = " [总平台] - " + " [管理员] "; + //1.读取 上传文件 + String newName = UUID.randomUUID().toString().replace("-", "") + "_CardInfo";//这里 _CardInfo + String task_name = "-月初复机 [月初 复机] "; + String SaveUrl = "/getcsv/" + newName + ".csv"; + SaveUrl = "/getcsv/" + newName + ".csv"; + Map task_map = new HashMap(); + task_map.put("auth", create_by); + task_map.put("task_name", task_name); + task_map.put("url", SaveUrl); + task_map.put("agent_id", "100"); + task_map.put("type", "9"); //对应的任务类别 + + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + + map.put("card_arrs", list);//更新 list + + try { + + List> SuccessArr = new ArrayList<>(); + String describe = ""; + List> failArr = new ArrayList<>(); + String cafterward = "正常";//变更后状太 + String OPtionType = "";//操作类型 + for (int i = 0; i < list.size(); i++) { + + Map Obj = new HashMap<>(); + String iccid = list.get(i).get("iccid").toString(); + Obj.put("iccid", iccid); + Obj.put("Is_Stop", "on"); + + + + Map Rmap = internalApiRequest.changeCardStatus(Obj, list.get(i)); + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { + //复机操作 + Object status = Rmap.get("status"); + if (status != null && status != "" && status.toString().trim().length() > 0) { + Obj.put("status", status.toString().trim()); + String RMessage = Rmap.get("Message") != null ? Rmap.get("Message").toString() : "操作成功!"; + Obj.put("Message", RMessage); + Obj.put("describe", describe); + Obj.put("agentName", create_by); + Obj.put("result", "操作成功"); + SuccessArr.add(Obj); + log.info(">>API - 变更操作 成功 = 0 :{} | {}<<", iccid, Rmap); + } + } else { + Obj.put("result", "操作失败"); + Message = Rmap.get("Message") != null ? Rmap.get("Message").toString() : "API异常!"; + Obj.put("Message", Message); + failArr.add(Obj); + } + } + String ctype = ""; + String dict_type = ""; + String key = ""; + key = "status_id"; + dict_type = "yunze_card_status_ShowId"; + ctype = "1"; + + List> lmArr = yzCardMapper.addsel(map);//这里是 查询 出 数据库 操作 前 卡状态 + + List> AddArr = new ArrayList<>(); + + //2. 卡信息 变更表 插入数据 + if (SuccessArr.size() > 0) { + writeCSV.OutCSVObj(SuccessArr, newName, Outcolumns, keys, null, OutSize); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + SuccessArr = new ArrayList<>(); + //变更主表信息 + try { + updStatus(SuccessArr, "1");//下发变更 卡状态 队列 + } catch (Exception e) { + log.info(">>错误 - 变更主表信息 :{} | {}<<", e.getMessage()); + } + + for (int j = 0; j < lmArr.size(); j++) { + Map ObjMap = lmArr.get(j); + Map Add_Map = new HashMap<>(); + String value = ObjMap.get(key) != null && ObjMap.get(key).toString().length() > 0 ? ObjMap.get(key).toString() : "未知"; + String cbefore = "";//变更后 + if (!value.equals("未知")) { + cbefore = myDictionary.getdictLabel(dict_type, value); + } else { + cbefore = value; + } + Add_Map.put("iccid", ObjMap.get("iccid")); + Add_Map.put("ctype", ctype);//生命周期 + Add_Map.put("cbefore", cbefore); + Add_Map.put("cafterward", cafterward); + Add_Map.put("remark", "执行成功!"); + Add_Map.put("source_type", "6");// 来源 类型 :6 月初已订购复机 + Add_Map.put("execution_status", "1"); + AddArr.add(Add_Map); + } + Map map1 = new HashMap<>(); + map1.put("CardInfoMapList", AddArr); + map1.put("ctype", lmArr); + int addBool = yzCardInfoChangeMapper.addinfo(map1); + log.info("插入成功"); + log.info("Dlx - " + map.get("iccid") + " 卡信息变更表 插入 : " + OPtionType + " 新增卡信息变更记录 addBool :" + addBool); + + } + if (failArr.size() > 0) { + + writeCSV.OutCSVObj(failArr, newName, Outcolumns, keys, null, OutSize); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + failArr = new ArrayList<>(); + for (int j = 0; j < lmArr.size(); j++) { + Map ObjMap = lmArr.get(j); + Map Add_Map = new HashMap<>(); + String value = ObjMap.get(key) != null && ObjMap.get(key).toString().length() > 0 ? ObjMap.get(key).toString() : "未知"; + String cbefore = "";//变更后 + if (!value.equals("未知")) { + cbefore = myDictionary.getdictLabel(dict_type, value); + } else { + cbefore = value; + } + Add_Map.put("iccid", ObjMap.get("iccid")); + Add_Map.put("ctype", ctype);//生命周期 + Add_Map.put("cbefore", cbefore); + Add_Map.put("cafterward", cafterward); + Add_Map.put("describe", describe); + Add_Map.put("agentName", create_by); + Add_Map.put("remark", "执行失败!"); + Add_Map.put("source_type", "6");// 来源 类型 :6 月初已订购复机 + Add_Map.put("execution_status", "2"); + AddArr.add(Add_Map); + } + Map map2 = new HashMap<>(); + map2.put("CardInfoMapList", AddArr); + int addBool = yzCardInfoChangeMapper.addinfo(map2); + log.info("Dlx - " + map.get("iccid") + " 卡信息变更表 插入 : " + SuccessArr + " 新增卡信息变更记录 addBool :" + addBool); + + } + + }catch (DuplicateKeyException e) { + String[] solit = e.getCause().toString().split("'"); + Map defOutcolumns = new HashMap<>(); + defOutcolumns.put("describe",e.getCause().toString()); + defOutcolumns.put("agentName",create_by); + defOutcolumns.put("result","查询失败"); + writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + log.error(">> cardSet-消费者- 上传excel异常 [插入数据 DuplicateKeyException ] :{}<<", e.getMessage().toString()); + } catch (Exception e) { + Map defOutcolumns = new HashMap<>(); + defOutcolumns.put("describe",e.getCause().toString()); + defOutcolumns.put("agentName",create_by); + defOutcolumns.put("result","查询失败"); + writeCSV.OutCSVObj(list, newName,Outcolumns, keys,defOutcolumns,OutSize); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + log.error(">>cardSet-消费者- 批量查询消费者:{}<<", e.getMessage()); + } + } + /** + * 修改卡状态 + * @param SuccessArr + */ + public void updStatus(List> SuccessArr, String statusCode) { + //1. 修改卡状态 || 修改复机状态 + List iccidArr = new ArrayList(); + Map Upd_Map = new HashMap<>(); + for (int i = 0; i < SuccessArr.size(); i++) { + iccidArr.add(SuccessArr.get(i).get("iccid").toString()); + } + Upd_Map.put("iccidArr", iccidArr); + Upd_Map.put("status_id", statusCode); + Upd_Map.put("status_ShowId",getShowStatIdArr.GetShowStatId(statusCode)); + yzCardMapper.updStatusIdArr(Upd_Map); + } +} + + + + diff --git a/yunze-consumption-backup/src/main/resources/application.yml b/yunze-consumption-car-api/src/main/resources/application.yml similarity index 92% rename from yunze-consumption-backup/src/main/resources/application.yml rename to yunze-consumption-car-api/src/main/resources/application.yml index b335a30..254c84b 100644 --- a/yunze-consumption-backup/src/main/resources/application.yml +++ b/yunze-consumption-car-api/src/main/resources/application.yml @@ -10,6 +10,8 @@ spring: password: 20220107@yzIot ## 心跳 请求的心跳超时,以秒为单位; 零表示没有 requested-heartbeat: 40 + ####心跳开启 + keepalive: true ### 地址 virtual-host: /VirtualHosts listener: @@ -25,9 +27,8 @@ spring: acknowledge-mode: auto application: - name: backup + name: cardSynApi datasource: - url: jdbc:mysql://127.0.0.1/iotdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: iotdb password: www.5iot.com @@ -35,7 +36,7 @@ spring: # redis 配置 redis: # 地址 - host: 127.0.0.1 + host: r-uf6r62dtsyztnh3312pd.redis.rds.aliyuncs.com # 端口,默认为6379 port: 6379 # 数据库索引 @@ -71,5 +72,5 @@ logging: console: "'%p%m%n'" server: - port: 8062 + port: 8077 diff --git a/yunze-consumption-car-api/src/main/resources/logback.xml b/yunze-consumption-car-api/src/main/resources/logback.xml new file mode 100644 index 0000000..419705f --- /dev/null +++ b/yunze-consumption-car-api/src/main/resources/logback.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + INFO + + + ${LOG_PATTERN_CONSOLE} + + + + + + INFO + + + ${LOG_PATTERN_FILE} + + + ${LOG_PATH}/${LOG_FILE}/${LOG_FILE}.log + + + ${LOG_PATH}/${LOG_FILE}/${LOG_FILE}-%d{yyyy-MM-dd}.log + + 2 + + + + + + + + + \ No newline at end of file diff --git a/yunze-consumption-backup/src/main/resources/mybatis/mybatis-config.xml b/yunze-consumption-car-api/src/main/resources/mybatis/mybatis-config.xml similarity index 100% rename from yunze-consumption-backup/src/main/resources/mybatis/mybatis-config.xml rename to yunze-consumption-car-api/src/main/resources/mybatis/mybatis-config.xml diff --git a/yunze-consumption-car-disconnected/cardDisconnected.iml b/yunze-consumption-car-disconnected/cardDisconnected.iml index 15a7f67..89d0d8b 100644 --- a/yunze-consumption-car-disconnected/cardDisconnected.iml +++ b/yunze-consumption-car-disconnected/cardDisconnected.iml @@ -1,9 +1,6 @@ - - - @@ -13,6 +10,9 @@ + + + @@ -69,6 +69,13 @@ + + + + + + + @@ -130,8 +137,7 @@ - - + diff --git a/yunze-consumption-car-disconnected/pom.xml b/yunze-consumption-car-disconnected/pom.xml index 1b7f4dd..e41642e 100644 --- a/yunze-consumption-car-disconnected/pom.xml +++ b/yunze-consumption-car-disconnected/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-consumption-car-disconnected/src/main/java/com/yunze/config/RbMQConfig.java b/yunze-consumption-car-disconnected/src/main/java/com/yunze/config/RbMQConfig.java index 0efa4dc..b5e97c4 100644 --- a/yunze-consumption-car-disconnected/src/main/java/com/yunze/config/RbMQConfig.java +++ b/yunze-consumption-car-disconnected/src/main/java/com/yunze/config/RbMQConfig.java @@ -14,7 +14,7 @@ import org.springframework.context.annotation.Configuration; @Configuration public class RbMQConfig { //并发数量 - public static final int DEFAULT_CONCURRENT = 200; + public static final int DEFAULT_CONCURRENT = 300; @Bean("customContainerFactory") public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory connectionFactory) { diff --git a/yunze-consumption-car-disconnected/src/main/java/com/yunze/polling/card/CardBreakNetwork.java b/yunze-consumption-car-disconnected/src/main/java/com/yunze/polling/card/CardBreakNetwork.java new file mode 100644 index 0000000..33f24f9 --- /dev/null +++ b/yunze-consumption-car-disconnected/src/main/java/com/yunze/polling/card/CardBreakNetwork.java @@ -0,0 +1,230 @@ +package com.yunze.polling.card; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.apiCommon.utils.InternalApiRequest; +import com.yunze.common.config.MyDictionary; +import com.yunze.common.core.card.CardChange; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.utils.yunze.CardFlowSyn; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * 未订购资费 轮询断网 消费者 + */ +@Slf4j +@Component +public class CardBreakNetwork { + + @Resource + private InternalApiRequest internalApiRequest; + @Resource + private RedisCache redisCache; + @Resource + private CardFlowSyn cardFlowSyn; + @Resource + private MyDictionary myDictionary; + @Resource + private CardChange cardChange; + + + /** + * 监听器 + * @param msg + * @param channel + * @throws IOException + */ + @RabbitHandler + @RabbitListener(queues = "polling_cardCardBreakNetwork_queue") + public void pollingStart(String msg, Channel channel) throws IOException { + if (msg != null && msg.length() > 0) { + synCardBreakNetwork(msg, channel); + } + } + + /** + * 执行 未订购 断网 + * + * @param msg + * @param channel + * @throws IOException + */ + private void synCardBreakNetwork(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + Map map = JSON.parseObject(msg); + String iccid = map.get("iccid").toString(); + + String polling_id = map.get("polling_id").toString();//轮询任务编号 + + redisCache.setCacheObject(polling_id+":"+ iccid, msg, 1, TimeUnit.HOURS);//1 小时缓存 用来统计轮询进度 + + Map Parammap=new HashMap<>(); + Parammap.put("iccid",iccid); + Parammap.put("Is_Break","1"); + Map Rmap = internalApiRequest.queryFlow(Parammap,map); + String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; + if(code.equals("200")){ + //获取 卡用量 开卡日期 更新 card info + if(Rmap.get("Use")!=null && Rmap.get("Use")!="" && Rmap.get("Use").toString().trim().length()>0){ + Double Use = Double.parseDouble(Rmap.get("Use").toString()); + if(Use>=0){ + try { + Map cardFlowSynRMap = cardFlowSyn.CalculationFlow(iccid,Use); + log.info(">>cardFlowSyn - 未订购资费断网轮询-卡用量轮询消费者 同步卡用量返回:{} | {}<<",iccid,JSON.toJSON(cardFlowSynRMap)); + Double remaining = Double.parseDouble(cardFlowSynRMap.get("remaining").toString()); + if(remaining<=0 && remaining!=-1){ + String status_id = map.get("status_id")!=null && map.get("status_id")!="" && map.get("status_id").toString().length()>0?map.get("status_id").toString():"未知"; + log.info(">>Disconnected iccid:{} | cardFlowSynRMap {} | Parammap {} | map {} | status_id {}<<",iccid,JSON.toJSON(cardFlowSynRMap),Parammap,map,status_id); + BreakNetwork(iccid,Parammap,map,status_id); + } + }catch (Exception e){ + log.error(">>cardFlowSyn - 未订购资费断网轮询-卡用量轮询消费者 同步卡用量失败:{} | {}<<",iccid,e.getMessage()); + } + }else{ + log.info(">>API - 未获取到卡用量 Use>=0 esle :{} | {}<<",iccid,Rmap); + } + } + + }else { + log.info(">>API - 未订购资费断网轮询-卡用量轮询消费者 未获取到卡用量:{} | {}<<",iccid,Rmap); + } + } catch (Exception e) { + log.error(">>错误 - 未订购资费断网轮询轮询消费者:{}<<", e.getMessage().toString()); + } + + } + + + /** + * 断网 + * @param iccid + * @param Parammap + * @param map + */ + public void BreakNetwork (String iccid,Map Parammap,Map map,String status_id){ + String cbefore = ""; + if(!status_id.equals("未知")){ + cbefore = myDictionary.getdictLabel("yunze_card_status_ShowId",status_id); + }else{ + cbefore = status_id; + } + cbefore = cbefore !=null && cbefore != "" && cbefore.length()>0?cbefore:"未知"; + Map Add_Map = new HashMap<>(); + Add_Map.put("iccid",iccid); + Add_Map.put("ctype","2");//生命周期 + Add_Map.put("cbefore",cbefore); + Add_Map.put("cafterward","断网"); + Add_Map.put("source_type","10");// 来源类型 + + Map Upd_Map = new HashMap<>(); + Upd_Map.put("execution_status","1");//卡状态 + Upd_Map.put("iccid",iccid); + Upd_Map.put("connection_status","2");//断网 + cardChange.ChangeConnection(Parammap,map,Add_Map,Upd_Map); + } + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-consumption-car-disconnected/src/main/java/com/yunze/polling/card/CardDisconnected.java b/yunze-consumption-car-disconnected/src/main/java/com/yunze/polling/card/CardDisconnected.java index b131f82..ce6fadc 100644 --- a/yunze-consumption-car-disconnected/src/main/java/com/yunze/polling/card/CardDisconnected.java +++ b/yunze-consumption-car-disconnected/src/main/java/com/yunze/polling/card/CardDisconnected.java @@ -1,33 +1,22 @@ package com.yunze.polling.card; import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; import com.yunze.apiCommon.utils.InternalApiRequest; import com.yunze.common.config.MyDictionary; -import com.yunze.common.config.RabbitMQConfig; import com.yunze.common.core.card.CardChange; import com.yunze.common.core.redis.RedisCache; - import com.yunze.common.utils.yunze.CardFlowSyn; -import com.yunze.apiCommon.utils.VeDate; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.amqp.rabbit.connection.Connection; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; -import com.rabbitmq.client.AMQP; -import com.rabbitmq.client.Channel; -import com.rabbitmq.client.DefaultConsumer; -import com.rabbitmq.client.Envelope; + import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; -import java.util.List; import java.util.Map; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; /** @@ -65,6 +54,9 @@ public class CardDisconnected { } } + + + /** * 监听器 * @param msg @@ -80,6 +72,8 @@ public class CardDisconnected { } + + /** * 同步未订购资费停机轮询 * @param msg diff --git a/yunze-consumption-car-disconnected/src/main/java/com/yunze/polling/card/dlx/DlxCardDisconnected.java b/yunze-consumption-car-disconnected/src/main/java/com/yunze/polling/card/dlx/DlxCardDisconnected.java deleted file mode 100644 index 33baa8d..0000000 --- a/yunze-consumption-car-disconnected/src/main/java/com/yunze/polling/card/dlx/DlxCardDisconnected.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.yunze.polling.card.dlx; - -import com.alibaba.fastjson.JSON; -import com.yunze.apiCommon.utils.InternalApiRequest; -import com.yunze.common.config.MyDictionary; -import com.yunze.common.config.RabbitMQConfig; -import com.yunze.common.core.redis.RedisCache; -import com.yunze.common.mapper.yunze.YzCardInfoChangeMapper; -import com.yunze.common.mapper.yunze.YzCardMapper; - -import com.yunze.common.utils.yunze.CardFlowSyn; -import com.yunze.apiCommon.utils.VeDate; -import com.yunze.common.utils.yunze.GetShowStatIdArr; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.amqp.rabbit.annotation.RabbitHandler; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.amqp.rabbit.connection.Connection; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Component; -import com.rabbitmq.client.AMQP; -import com.rabbitmq.client.Channel; -import com.rabbitmq.client.DefaultConsumer; -import com.rabbitmq.client.Envelope; -import javax.annotation.Resource; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -/** - * 未订购资费停机轮询 轮询消费 者 - */ -@Slf4j -@Component -public class DlxCardDisconnected { - - - @Resource - private InternalApiRequest internalApiRequest; - @Resource - private YzCardMapper yzCardMapper; - @Resource - private RedisCache redisCache; - @Resource - private RabbitMQConfig rabbitMQConfig; - @Resource - private CardFlowSyn cardFlowSyn; - @Resource - private YzCardInfoChangeMapper yzCardInfoChangeMapper; - @Resource - private MyDictionary myDictionary; - @Resource - private GetShowStatIdArr getShowStatIdArr; - - /** - * 监听器 - * @param msg - * @param channel_1 - * @throws IOException - */ - @RabbitHandler - @RabbitListener(queues = "polling_dlxcardCardDisconnected_queue", containerFactory = "customContainerFactory") - public void pollingStart(String msg, Channel channel_1) throws IOException { - if (msg != null && msg.length() > 0) { - synCardDisconnected(msg, channel_1); - } - } - - - - /** - * 同步未订购资费停机轮询 - * - * @param msg - * @param channel - * @throws IOException - */ - public void synCardDisconnected(String msg, Channel channel) throws IOException { - try { - if (StringUtils.isEmpty(msg)) { - return; - } - - Map map = JSON.parseObject(msg); - String iccid = map.get("iccid").toString(); - - - String polling_id = map.get("polling_id").toString();//轮询任务编号 - String prefix = "polling_dlxcardCardDisconnected_queue"; - //执行前判断 redis 是否存在 执行数据 存在时 不执行 - //Object isExecute = redisCache.getCacheObject(prefix + ":" + iccid); - //if (isExecute == null) { - //System.out.println("SUCCESS"); - //redisCache.setCacheObject(prefix + ":" + iccid, msg, 3, TimeUnit.MINUTES);//3 分钟缓存 避免 重复消费 - redisCache.setCacheObject(polling_id + ":" + iccid, msg, 1, TimeUnit.HOURS);//1 小时缓存 用来统计轮询进度 - - Map Parammap = new HashMap<>(); - Parammap.put("iccid", iccid); - Parammap.put("Is_Stop", "off"); - Map Rmap = internalApiRequest.queryFlow(Parammap, map); - String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; - if (code.equals("200")) { - //获取 卡用量 开卡日期 更新 card info - if (Rmap.get("Use") != null && Rmap.get("Use") != "" && Rmap.get("Use").toString().trim().length() > 0) { - Double Use = Double.parseDouble(Rmap.get("Use").toString()); - if (Use >= 0) { - try { - Map cardFlowSynRMap = cardFlowSyn.CalculationFlow(iccid, Use); - log.info("Dlx - " + ">>cardFlowSyn - 未订购资费停机轮询-卡用量轮询消费者 同步卡用量返回:{} | {}<<", iccid, JSON.toJSON(cardFlowSynRMap)); - Double remaining = Double.parseDouble(cardFlowSynRMap.get("remaining").toString()); - if (remaining <= 0 && remaining != -1) { - String status_id = map.get("status_id") != null && map.get("status_id") != "" && map.get("status_id").toString().length() > 0 ? map.get("status_id").toString() : "未知"; - Disconnected(iccid, Parammap, map, status_id); - } else { - log.error("Dlx - >> 数据 同步卡用量失败:{} | {}<<", iccid, JSON.toJSON(cardFlowSynRMap)); - } - } catch (Exception e) { - log.error("Dlx - >>cardFlowSyn - 未订购资费停机轮询-卡用量轮询消费者 同步卡用量失败:{} | {}<<", iccid, e.getMessage().toString()); - } - } else { - log.info("Dlx - " + ">>API - 未订购资费停机轮询-卡用量轮询消费者 未获取到卡用量 statusCode = 0 :{} | {}<<", iccid, Rmap); - } - } - } else { - log.info("Dlx - " + ">>API - 未订购资费停机轮询-卡用量轮询消费者 未获取到卡用量:{} | {}<<", iccid, Rmap); - } - //} - } catch (Exception e) { - log.error("Dlx - >>错误 - 未订购资费停机轮询轮询消费者:{}<<", e.getMessage().toString()); - } - } - - - - - - - - /** - * 停机 - * @param iccid - * @param Parammap - * @param map - */ - public void Disconnected (String iccid,Map Parammap,Map map,String status_id){ - Map Rmap = internalApiRequest.changeCardStatus(Parammap,map); - String code = Rmap.get("code")!=null?Rmap.get("code").toString():"500"; - if(code.equals("200")){ - //获取 未订购资费停机轮询 开卡日期 更新 card info - Map Upd_Map = new HashMap<>(); - Upd_Map.put("status_id","2"); - Upd_Map.put("iccid",iccid); - String status_ShowId = getShowStatIdArr.GetShowStatId(status_id); - Upd_Map.put("status_ShowId",status_ShowId); - boolean bool = yzCardMapper.updStatusId(Upd_Map)>0;//变更未订购资费停机轮询 - if(bool){ - Map Add_Map = new HashMap<>(); - Add_Map.put("iccid",iccid); - Add_Map.put("ctype","1");//生命周期 - Add_Map.put("cbefore",myDictionary.getdictLabel("yunze_card_status_ShowId",status_id)); - Add_Map.put("cafterward","停机"); - Add_Map.put("remark",""); - Add_Map.put("source_type","2");// 来源 类型 :2 未订购轮询停机 - Add_Map.put("execution_status","1"); - boolean addBool = yzCardInfoChangeMapper.save(Add_Map)>0; - log.info("Dlx - "+map.get("iccid")+" 修改未订购资费停机轮询 bool : "+bool+" 新增卡信息变更记录 addBool :"+addBool); - }else{ - log.error("Dlx - >>DB - 未订购资费停机轮询轮询消费者 同步未订购资费停机轮询失败:{} | {}<<",iccid,Upd_Map); - } - }else{ - log.info("Dlx - "+">>API - 未订购资费停机轮询轮询消费者 未获取到未订购资费停机轮询:{} | {}<<",iccid,Rmap); - } - } - - - -} - - - - - diff --git a/yunze-consumption-car-disconnected/src/main/resources/application.yml b/yunze-consumption-car-disconnected/src/main/resources/application.yml index 951724b..013a8b8 100644 --- a/yunze-consumption-car-disconnected/src/main/resources/application.yml +++ b/yunze-consumption-car-disconnected/src/main/resources/application.yml @@ -10,6 +10,8 @@ spring: password: 20220107@yzIot ## 心跳 请求的心跳超时,以秒为单位; 零表示没有 requested-heartbeat: 40 + ####心跳开启 + keepalive: true ### 地址 virtual-host: /VirtualHosts listener: @@ -33,7 +35,7 @@ spring: # redis 配置 redis: # 地址 - host: 127.0.0.1 + host: r-uf6r62dtsyztnh3312pd.redis.rds.aliyuncs.com # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/yunze-consumption-car-disconnected/src/main/resources/logback.xml b/yunze-consumption-car-disconnected/src/main/resources/logback.xml index 98bc339..76a4e8f 100644 --- a/yunze-consumption-car-disconnected/src/main/resources/logback.xml +++ b/yunze-consumption-car-disconnected/src/main/resources/logback.xml @@ -30,8 +30,8 @@ ${LOG_PATH}/${LOG_FILE}/${LOG_FILE}-%d{yyyy-MM-dd}.log - - 7 + + 2 diff --git a/yunze-consumption-car-flow/cardFlow.iml b/yunze-consumption-car-flow/cardFlow.iml index 15a7f67..89d0d8b 100644 --- a/yunze-consumption-car-flow/cardFlow.iml +++ b/yunze-consumption-car-flow/cardFlow.iml @@ -1,9 +1,6 @@ - - - @@ -13,6 +10,9 @@ + + + @@ -69,6 +69,13 @@ + + + + + + + @@ -130,8 +137,7 @@ - - + diff --git a/yunze-consumption-car-flow/pom.xml b/yunze-consumption-car-flow/pom.xml index c8a951e..dd760f3 100644 --- a/yunze-consumption-car-flow/pom.xml +++ b/yunze-consumption-car-flow/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-consumption-car-flow/src/main/java/com/yunze/config/RbMQConfig.java b/yunze-consumption-car-flow/src/main/java/com/yunze/config/RbMQConfig.java index 0efa4dc..b5e97c4 100644 --- a/yunze-consumption-car-flow/src/main/java/com/yunze/config/RbMQConfig.java +++ b/yunze-consumption-car-flow/src/main/java/com/yunze/config/RbMQConfig.java @@ -14,7 +14,7 @@ import org.springframework.context.annotation.Configuration; @Configuration public class RbMQConfig { //并发数量 - public static final int DEFAULT_CONCURRENT = 200; + public static final int DEFAULT_CONCURRENT = 300; @Bean("customContainerFactory") public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory connectionFactory) { diff --git a/yunze-consumption-car-flow/src/main/java/com/yunze/polling/card/CardFlow.java b/yunze-consumption-car-flow/src/main/java/com/yunze/polling/card/CardFlow.java index f108aed..5384398 100644 --- a/yunze-consumption-car-flow/src/main/java/com/yunze/polling/card/CardFlow.java +++ b/yunze-consumption-car-flow/src/main/java/com/yunze/polling/card/CardFlow.java @@ -1,33 +1,20 @@ package com.yunze.polling.card; import com.alibaba.fastjson.JSON; -import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Channel; -import com.rabbitmq.client.DefaultConsumer; -import com.rabbitmq.client.Envelope; import com.yunze.apiCommon.utils.InternalApiRequest; -import com.yunze.common.config.RabbitMQConfig; import com.yunze.common.core.redis.RedisCache; -import com.yunze.apiCommon.mapper.YzCardRouteMapper; import com.yunze.common.utils.yunze.CardFlowSyn; -import com.yunze.apiCommon.utils.VeDate; -import com.yunze.common.utils.yunze.YzPollingUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.amqp.rabbit.connection.Connection; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; -import java.util.List; import java.util.Map; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; /** diff --git a/yunze-consumption-car-flow/src/main/resources/application.yml b/yunze-consumption-car-flow/src/main/resources/application.yml index a886823..d77727a 100644 --- a/yunze-consumption-car-flow/src/main/resources/application.yml +++ b/yunze-consumption-car-flow/src/main/resources/application.yml @@ -10,6 +10,8 @@ spring: password: 20220107@yzIot ## 心跳 请求的心跳超时,以秒为单位; 零表示没有 requested-heartbeat: 40 + ####心跳开启 + keepalive: true ### 地址 virtual-host: /VirtualHosts listener: @@ -35,7 +37,7 @@ spring: # redis 配置 redis: # 地址 - host: 127.0.0.1 + host: r-uf6r62dtsyztnh3312pd.redis.rds.aliyuncs.com # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/yunze-consumption-car-flow/src/main/resources/logback.xml b/yunze-consumption-car-flow/src/main/resources/logback.xml index 709293e..30967e9 100644 --- a/yunze-consumption-car-flow/src/main/resources/logback.xml +++ b/yunze-consumption-car-flow/src/main/resources/logback.xml @@ -30,8 +30,8 @@ ${LOG_PATH}/${LOG_FILE}/${LOG_FILE}-%d{yyyy-MM-dd}.log - - 7 + + 2 diff --git a/yunze-consumption-car-status/cardStatus.iml b/yunze-consumption-car-status/cardStatus.iml index 15a7f67..89d0d8b 100644 --- a/yunze-consumption-car-status/cardStatus.iml +++ b/yunze-consumption-car-status/cardStatus.iml @@ -1,9 +1,6 @@ - - - @@ -13,6 +10,9 @@ + + + @@ -69,6 +69,13 @@ + + + + + + + @@ -130,8 +137,7 @@ - - + diff --git a/yunze-consumption-car-status/pom.xml b/yunze-consumption-car-status/pom.xml index 1be2f69..10b3920 100644 --- a/yunze-consumption-car-status/pom.xml +++ b/yunze-consumption-car-status/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-consumption-car-status/src/main/java/com/yunze/config/DisposableBean.java b/yunze-consumption-car-status/src/main/java/com/yunze/config/DisposableBean.java deleted file mode 100644 index 543d515..0000000 --- a/yunze-consumption-car-status/src/main/java/com/yunze/config/DisposableBean.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.yunze.config; - -import com.yunze.common.core.redis.RedisCache; -import com.yunze.apiCommon.mapper.YzCardRouteMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import javax.annotation.PreDestroy; -import javax.annotation.Resource; -import java.util.List; -import java.util.Map; - -/** - * @Auther: zhang feng - * @Date: 2021/07/10/14:24 - * @Description: - */ -@Component -public class DisposableBean { - - - @Resource - private YzCardRouteMapper yzCardRouteMapper; - @Resource - private RedisCache redisCache; - - - - @PreDestroy - public void exit(){ - //防止程序意外终止后 redis 还有记录正在监听 记录 下次程序启动不在创建 消费者 - System.out.println("cardStatus 程序结束 执行删除redis Listener 记录key "); - //获取现在数据库中 开启轮询 状态正常的通道进行监听 - List IDArr = yzCardRouteMapper.findIDArr(); - if(IDArr!=null && IDArr.size()>0) { - //获取redis 中 记录的 已经在监听中的通道名称 避免重复监听 - for (int i = 0; i < IDArr.size(); i++) { - String cd_id = IDArr.get(i); - redisCache.redisTemplate.delete("polling-Listener-CardStatus-"+cd_id); - redisCache.redisTemplate.delete("polling-dxl-Listener-CardStatus-"+cd_id); - } - } - - } -} diff --git a/yunze-consumption-car-status/src/main/java/com/yunze/config/OneRunServiceImpl.java b/yunze-consumption-car-status/src/main/java/com/yunze/config/OneRunServiceImpl.java deleted file mode 100644 index f50c75e..0000000 --- a/yunze-consumption-car-status/src/main/java/com/yunze/config/OneRunServiceImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.yunze.config; - -import lombok.SneakyThrows; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.core.MessageListener; -import org.springframework.stereotype.Service; - -/** - * 业务执行类 - * @Auther: zhang feng - * @Date: 2021/11/11/9:02 - * @Description: - */ -@Service -public class OneRunServiceImpl implements MessageListener { - - - @SneakyThrows - @Override - public void onMessage(Message message) { - - byte[] body = message.getBody(); - String msg = new String(body, "UTF-8"); - System.out.println("======[接收到消息 One ]=============================="); - System.out.println(msg); - } -} diff --git a/yunze-consumption-car-status/src/main/java/com/yunze/config/RbMQConfig.java b/yunze-consumption-car-status/src/main/java/com/yunze/config/RbMQConfig.java index 0efa4dc..b5e97c4 100644 --- a/yunze-consumption-car-status/src/main/java/com/yunze/config/RbMQConfig.java +++ b/yunze-consumption-car-status/src/main/java/com/yunze/config/RbMQConfig.java @@ -14,7 +14,7 @@ import org.springframework.context.annotation.Configuration; @Configuration public class RbMQConfig { //并发数量 - public static final int DEFAULT_CONCURRENT = 200; + public static final int DEFAULT_CONCURRENT = 300; @Bean("customContainerFactory") public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory connectionFactory) { diff --git a/yunze-consumption-car-status/src/main/java/com/yunze/config/TowRunServiceImpl.java b/yunze-consumption-car-status/src/main/java/com/yunze/config/TowRunServiceImpl.java deleted file mode 100644 index 7805f33..0000000 --- a/yunze-consumption-car-status/src/main/java/com/yunze/config/TowRunServiceImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.yunze.config; - -import lombok.SneakyThrows; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.core.MessageListener; -import org.springframework.stereotype.Service; - -/** - * 业务执行类 - * @Auther: zhang feng - * @Date: 2021/11/11/9:02 - * @Description: - */ -@Service -public class TowRunServiceImpl implements MessageListener { - - - @SneakyThrows - @Override - public void onMessage(Message message) { - - byte[] body = message.getBody(); - String msg = new String(body, "UTF-8"); - System.out.println("======[接收到消息 Tow ]=============================="); - System.out.println(msg); - } -} diff --git a/yunze-consumption-car-status/src/main/java/com/yunze/polling/card/AutoListener.java b/yunze-consumption-car-status/src/main/java/com/yunze/polling/card/AutoListener.java deleted file mode 100644 index e6d8b85..0000000 --- a/yunze-consumption-car-status/src/main/java/com/yunze/polling/card/AutoListener.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.yunze.polling.card; - -import org.springframework.amqp.core.BindingBuilder; -import org.springframework.amqp.core.FanoutExchange; -import org.springframework.amqp.core.Queue; -import org.springframework.amqp.rabbit.core.RabbitAdmin; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; - -/** - * @Auther: zhang feng - * @Date: 2021/11/11/9:01 - * @Description: - */ -/*@Service*/ -public class AutoListener { - - /*@Resource - private SimpleMessageListenerContainer messageListenerContainer; - - public void A(){ - - // 删除已经创建的 名称与绑定 - *//*Queue queue = new Queue("polling_dlxcardCardStatus_queue_30"); - FanoutExchange exchange = new FanoutExchange("polling_cardCardStatus_exchange"); - - rabbitAdmin.declareQueue(queue); - rabbitAdmin.declareExchange(exchange); - rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange));*//* - //创建 监听 - messageListenerContainer.addQueueNames("polling_dlxcardCardStatus_queue_1"); - messageListenerContainer.addQueueNames("polling_dlxcardCardStatus_queue_12"); - messageListenerContainer.start(); - System.out.println("A===="); - } -*/ - - - - -} diff --git a/yunze-consumption-car-status/src/main/java/com/yunze/polling/card/CardStatus.java b/yunze-consumption-car-status/src/main/java/com/yunze/polling/card/CardStatus.java index a13c840..e9b61f9 100644 --- a/yunze-consumption-car-status/src/main/java/com/yunze/polling/card/CardStatus.java +++ b/yunze-consumption-car-status/src/main/java/com/yunze/polling/card/CardStatus.java @@ -1,11 +1,11 @@ package com.yunze.polling.card; import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; import com.yunze.apiCommon.utils.InternalApiRequest; import com.yunze.common.config.RabbitMQConfig; import com.yunze.common.core.redis.RedisCache; -import com.yunze.apiCommon.mapper.YzCardRouteMapper; -import com.yunze.apiCommon.utils.VeDate; import com.yunze.common.mapper.yunze.YzCardMapper; import com.yunze.common.utils.yunze.GetShowStatIdArr; import com.yunze.common.utils.yunze.YzPollingUtil; @@ -13,23 +13,13 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.amqp.rabbit.connection.Connection; import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; -import com.rabbitmq.client.AMQP; -import com.rabbitmq.client.Channel; -import com.rabbitmq.client.DefaultConsumer; -import com.rabbitmq.client.Envelope; + import javax.annotation.Resource; import java.io.IOException; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; /** @@ -79,6 +69,24 @@ public class CardStatus { } + @RabbitHandler + @RabbitListener(queues = "pollingOther_cardCardStatus_queue",containerFactory = "customContainerFactory") + public void pollingOther_cardCardStatus_queue(String msg, Channel channel_1) throws IOException { + if(msg!=null && msg.length()>0){ + synCardStatus(msg,channel_1); + } + } + + @RabbitHandler + @RabbitListener(queues = "dlx_pollingOther_cardCardStatus_queue",containerFactory = "customContainerFactory") + public void dlx_pollingOther_cardCardStatus_queue(String msg, Channel channel_1) throws IOException { + if(msg!=null && msg.length()>0){ + synCardStatus(msg,channel_1); + } + } + + + /** * 同步卡状态 * diff --git a/yunze-consumption-car-status/src/main/java/com/yunze/polling/card/dlx/DlxCardStatus.java b/yunze-consumption-car-status/src/main/java/com/yunze/polling/card/dlx/DlxCardStatus.java deleted file mode 100644 index 0f1df2e..0000000 --- a/yunze-consumption-car-status/src/main/java/com/yunze/polling/card/dlx/DlxCardStatus.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.yunze.polling.card.dlx; - -import com.alibaba.fastjson.JSON; -import com.yunze.apiCommon.utils.InternalApiRequest; -import com.yunze.common.config.RabbitMQConfig; -import com.yunze.common.core.redis.RedisCache; -import com.yunze.apiCommon.mapper.YzCardRouteMapper; -import com.yunze.apiCommon.utils.VeDate; -import com.yunze.common.mapper.yunze.YzCardMapper; -import com.yunze.common.utils.yunze.GetShowStatIdArr; -import com.yunze.common.utils.yunze.YzPollingUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.amqp.rabbit.annotation.RabbitHandler; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.amqp.rabbit.connection.Connection; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Component; -import com.rabbitmq.client.AMQP; -import com.rabbitmq.client.Channel; -import com.rabbitmq.client.DefaultConsumer; -import com.rabbitmq.client.Envelope; -import javax.annotation.Resource; -import java.io.IOException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -/** - * 卡状态轮询消费 者 - */ -@Slf4j -@Component -public class DlxCardStatus { - - - @Resource - private InternalApiRequest internalApiRequest; - @Resource - private RedisCache redisCache; - @Resource - private YzCardRouteMapper yzCardRouteMapper; - @Resource - private RabbitMQConfig rabbitMQConfig; - @Resource - private RabbitTemplate rabbitTemplate; - @Resource - private YzPollingUtil yzPollingUtil; - @Resource - private YzCardMapper yzCardMapper; - @Resource - private GetShowStatIdArr getShowStatIdArr; - - - - - @RabbitHandler - @RabbitListener(queues = "polling_dlxcardCardStatus_queue",containerFactory = "customContainerFactory") - public void dlxcardCardStatus_queue(String msg, Channel channel_1) throws IOException { - if(msg!=null && msg.length()>0){ - delStatus(msg,channel_1); - } - } - - - public void delStatus(String msg, Channel channel){ -/* Map map = JSON.parseObject(msg); - String FindCd_id = map.get("FindCd_id").toString(); - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id", FindCd_id); - List> ChannelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - RunEx(null,ChannelArr,false);//执行 公共部分*/ - - synCardStatus(msg, channel);//同步卡状态 - } - - - - /** - * 同步卡状态 - * - * @param msg - * @param channel - * @throws IOException - */ - public void synCardStatus(String msg, Channel channel) { - try { - if (StringUtils.isEmpty(msg)) { - return; - } - - Map map = JSON.parseObject(msg); - String iccid = map.get("iccid").toString(); - String polling_id = map.get("polling_id").toString();//轮询任务编号 - String prefix = "polling_cardCardStatus_queue"; - //执行前判断 redis 是否存在 执行数据 存在时 不执行 - //Object isExecute = redisCache.getCacheObject(prefix + ":" + iccid); - //if (isExecute == null) { - //System.out.println("SUCCESS"); - // redisCache.setCacheObject(prefix + ":" + iccid, msg, 3, TimeUnit.MINUTES);//3 分钟缓存 避免 重复消费 - redisCache.setCacheObject(polling_id + ":" + iccid, msg, 1, TimeUnit.HOURS);//1 小时缓存 用来统计轮询进度 - - Map Parammap = new HashMap<>(); - Parammap.put("iccid", iccid); - Map Rmap = internalApiRequest.queryCardStatus(Parammap, map); - String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; - if (code.equals("200")) { - //获取 卡状态 开卡日期 更新 card info - if (Rmap.get("statusCode") != null && Rmap.get("statusCode") != "" && Rmap.get("statusCode").toString().trim().length() > 0) { - String statusCode = Rmap.get("statusCode").toString().trim(); - if (!statusCode.equals("0")) { - Map Upd_Map = new HashMap<>(); - Upd_Map.put("status_id", statusCode); - Upd_Map.put("iccid", iccid); - //1.创建路由 绑定 生产队列 发送消息 - String card_exchangeName = "admin_card_exchange", card_queueName = "admin_CardUpd_queue", card_routingKey = "admin.CardUpd.queue", - card_del_exchangeName = "dlx_" + card_exchangeName, card_del_queueName = "dlx_" + card_queueName, card_del_routingKey = "dlx_" + card_routingKey; - try { - //rabbitMQConfig.creatExchangeQueue(card_exchangeName, card_queueName, card_routingKey, card_del_exchangeName, card_del_queueName, card_del_routingKey,null); - /*Upd_Map.put("queueTypeName", "admin_CardUpdStatusId_queue"); - rabbitTemplate.convertAndSend(card_exchangeName, card_routingKey, JSON.toJSONString(Upd_Map), message -> { - // 设置消息过期时间 30 分钟 过期 - message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); - return message; - });*/ - Object status_id = Upd_Map.get("status_id"); - String status_ShowId = getShowStatIdArr.GetShowStatId(status_id.toString()); - Upd_Map.put("status_ShowId",status_ShowId); - int upd = yzCardMapper.updStatusId(Upd_Map); - log.info(">>发送 admin_CardUpdStatusId_queue 指令成功 ! iccid:{} | upd:{} | Upd_Map {}<<", iccid,upd, Upd_Map); - } catch (Exception e) { - log.info(">>发送 admin_CardUpdStatusId_queue 失败 ! iccid:{} | Upd_Map {} e : {}<<", iccid, Upd_Map, e.getMessage()); - } - } else { - log.info(">>API - 卡状态轮询消费者 未获取到卡状态 statusCode = 0 :{} | {}<<", iccid, Rmap); - } - } - } else { - log.info(">>API - 卡状态轮询消费者 未获取到卡状态:{} | {}<<", iccid, Rmap); - // System.out.println(map.get("iccid")+" 未获取到卡状态 !"); - } - // } - } catch (Exception e) { -// // 记录该消息日志形式 存放数据库db中、后期通过定时任务实现消息补偿、人工实现补偿 - log.error(">>错误 - 卡状态轮询消费者:{}<<", e.getMessage().toString()); -// //将该消息存放到死信队列中,单独写一个死信消费者实现消费。 - } - } - - - - - -} diff --git a/yunze-consumption-car-status/src/main/resources/application.yml b/yunze-consumption-car-status/src/main/resources/application.yml index b10a57a..61a0d1b 100644 --- a/yunze-consumption-car-status/src/main/resources/application.yml +++ b/yunze-consumption-car-status/src/main/resources/application.yml @@ -8,6 +8,8 @@ spring: username: YunZeIotRabbitMq ## 心跳 请求的心跳超时,以秒为单位; 零表示没有 requested-heartbeat: 40 + ####心跳开启 + keepalive: true ####密码 password: 20220107@yzIot ### 地址 @@ -35,7 +37,7 @@ spring: # redis 配置 redis: # 地址 - host: 127.0.0.1 + host: r-uf6r62dtsyztnh3312pd.redis.rds.aliyuncs.com # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/yunze-consumption-car-status/src/main/resources/logback.xml b/yunze-consumption-car-status/src/main/resources/logback.xml index a9b72b1..6a40440 100644 --- a/yunze-consumption-car-status/src/main/resources/logback.xml +++ b/yunze-consumption-car-status/src/main/resources/logback.xml @@ -30,8 +30,8 @@ ${LOG_PATH}/${LOG_FILE}/${LOG_FILE}-%d{yyyy-MM-dd}.log - - 7 + + 2 diff --git a/yunze-consumption-car-stop/cardStop.iml b/yunze-consumption-car-stop/cardStop.iml index 15a7f67..89d0d8b 100644 --- a/yunze-consumption-car-stop/cardStop.iml +++ b/yunze-consumption-car-stop/cardStop.iml @@ -1,9 +1,6 @@ - - - @@ -13,6 +10,9 @@ + + + @@ -69,6 +69,13 @@ + + + + + + + @@ -130,8 +137,7 @@ - - + diff --git a/yunze-consumption-car-stop/pom.xml b/yunze-consumption-car-stop/pom.xml index 1941af6..94e8de2 100644 --- a/yunze-consumption-car-stop/pom.xml +++ b/yunze-consumption-car-stop/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-consumption-car-stop/src/main/java/com/yunze/config/RbMQConfig.java b/yunze-consumption-car-stop/src/main/java/com/yunze/config/RbMQConfig.java index 0efa4dc..b5e97c4 100644 --- a/yunze-consumption-car-stop/src/main/java/com/yunze/config/RbMQConfig.java +++ b/yunze-consumption-car-stop/src/main/java/com/yunze/config/RbMQConfig.java @@ -14,7 +14,7 @@ import org.springframework.context.annotation.Configuration; @Configuration public class RbMQConfig { //并发数量 - public static final int DEFAULT_CONCURRENT = 200; + public static final int DEFAULT_CONCURRENT = 300; @Bean("customContainerFactory") public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory connectionFactory) { diff --git a/yunze-consumption-car-stop/src/main/java/com/yunze/polling/card/CardStop.java b/yunze-consumption-car-stop/src/main/java/com/yunze/polling/card/CardStop.java index f03fc58..c84a04b 100644 --- a/yunze-consumption-car-stop/src/main/java/com/yunze/polling/card/CardStop.java +++ b/yunze-consumption-car-stop/src/main/java/com/yunze/polling/card/CardStop.java @@ -62,13 +62,7 @@ public class CardStop { } } - @RabbitHandler - @RabbitListener(queues = "polling_dlxcardCardStop_queue",containerFactory = "customContainerFactory") - public void dlxcardCardStop_queue(String msg, Channel channel_1) throws IOException { - if(msg!=null && msg.length()>0){ - synCardStop(msg,channel_1); - } - } + /** diff --git a/yunze-consumption-car-stop/src/main/java/com/yunze/polling/card/dlx/DlxCardStop.java b/yunze-consumption-car-stop/src/main/java/com/yunze/polling/card/dlx/DlxCardStop.java index 45399b2..f246123 100644 --- a/yunze-consumption-car-stop/src/main/java/com/yunze/polling/card/dlx/DlxCardStop.java +++ b/yunze-consumption-car-stop/src/main/java/com/yunze/polling/card/dlx/DlxCardStop.java @@ -1,37 +1,24 @@ package com.yunze.polling.card.dlx; import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; import com.yunze.apiCommon.utils.InternalApiRequest; import com.yunze.common.config.MyDictionary; -import com.yunze.common.config.RabbitMQConfig; import com.yunze.common.core.card.CardChange; import com.yunze.common.core.redis.RedisCache; import com.yunze.common.mapper.yunze.YzCardMapper; - import com.yunze.common.utils.yunze.CardFlowSyn; -import com.yunze.apiCommon.utils.VeDate; import com.yunze.common.utils.yunze.GetShowStatIdArr; -import com.yunze.polling.card.CardStop; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.amqp.rabbit.connection.Connection; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; -import com.rabbitmq.client.AMQP; -import com.rabbitmq.client.Channel; -import com.rabbitmq.client.DefaultConsumer; -import com.rabbitmq.client.Envelope; import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; -import java.util.List; import java.util.Map; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; /** diff --git a/yunze-consumption-car-stop/src/main/resources/application.yml b/yunze-consumption-car-stop/src/main/resources/application.yml index d26f294..6d2844d 100644 --- a/yunze-consumption-car-stop/src/main/resources/application.yml +++ b/yunze-consumption-car-stop/src/main/resources/application.yml @@ -10,6 +10,8 @@ spring: password: 20220107@yzIot ## 心跳 请求的心跳超时,以秒为单位; 零表示没有 requested-heartbeat: 40 + ####心跳开启 + keepalive: true ### 地址 virtual-host: /VirtualHosts listener: @@ -35,7 +37,7 @@ spring: # redis 配置 redis: # 地址 - host: 127.0.0.1 + host: r-uf6r62dtsyztnh3312pd.redis.rds.aliyuncs.com # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/yunze-consumption-car-stop/src/main/resources/logback.xml b/yunze-consumption-car-stop/src/main/resources/logback.xml index 11c37f1..e6edf7e 100644 --- a/yunze-consumption-car-stop/src/main/resources/logback.xml +++ b/yunze-consumption-car-stop/src/main/resources/logback.xml @@ -30,8 +30,8 @@ ${LOG_PATH}/${LOG_FILE}/${LOG_FILE}-%d{yyyy-MM-dd}.log - - 7 + + 2 diff --git a/yunze-consumption-order/cOrder.iml b/yunze-consumption-order/cOrder.iml index 15a7f67..89d0d8b 100644 --- a/yunze-consumption-order/cOrder.iml +++ b/yunze-consumption-order/cOrder.iml @@ -1,9 +1,6 @@ - - - @@ -13,6 +10,9 @@ + + + @@ -69,6 +69,13 @@ + + + + + + + @@ -130,8 +137,7 @@ - - + diff --git a/yunze-consumption-order/pom.xml b/yunze-consumption-order/pom.xml index 7208ccd..96e8f19 100644 --- a/yunze-consumption-order/pom.xml +++ b/yunze-consumption-order/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-consumption-order/src/main/java/com/yunze/config/DisposableBean.java b/yunze-consumption-order/src/main/java/com/yunze/config/DisposableBean.java index 475ff9b..eaf35ba 100644 --- a/yunze-consumption-order/src/main/java/com/yunze/config/DisposableBean.java +++ b/yunze-consumption-order/src/main/java/com/yunze/config/DisposableBean.java @@ -30,7 +30,7 @@ public class DisposableBean { public void exit(){ /*//防止程序意外终止后 redis 还有记录正在监听 记录 下次程序启动不在创建 消费者 System.out.println("cardStop 程序结束 执行删除redis Listener 记录key "); - //获取现在数据库中 开启轮序 状态正常的通道进行监听 + //获取现在数据库中 开启轮询 状态正常的通道进行监听 List IDArr = yzCardRouteMapper.findIDArr(); if(IDArr!=null && IDArr.size()>0) { //获取redis 中 记录的 已经在监听中的通道名称 避免重复监听 diff --git a/yunze-consumption-order/src/main/java/com/yunze/system/card/PaddPackage.java b/yunze-consumption-order/src/main/java/com/yunze/system/card/PaddPackage.java index a0ee37b..f4c1bdd 100644 --- a/yunze-consumption-order/src/main/java/com/yunze/system/card/PaddPackage.java +++ b/yunze-consumption-order/src/main/java/com/yunze/system/card/PaddPackage.java @@ -1,29 +1,18 @@ package com.yunze.system.card; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.rabbitmq.client.*; -import com.yunze.common.config.RabbitMQConfig; +import com.rabbitmq.client.Channel; import com.yunze.common.core.card.AddPacket; -import com.yunze.common.core.domain.entity.SysUser; import com.yunze.common.core.redis.RedisCache; -import com.yunze.common.mapper.yunze.YzCardMapper; -import com.yunze.apiCommon.mapper.YzCardRouteMapper; -import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; -import com.yunze.common.utils.yunze.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.IOException; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.*; +import java.util.Map; import java.util.concurrent.TimeUnit; /** @@ -33,8 +22,6 @@ import java.util.concurrent.TimeUnit; @Component public class PaddPackage { - @Resource - private YzCardMapper yzCardMapper; @Resource private RedisCache redisCache; @Resource @@ -55,19 +42,43 @@ public class PaddPackage { if (StringUtils.isEmpty(msg)) { return; } + addExecution(msg); + } catch (Exception e) { + log.error(">>错误 - 轮询批量加包 消费者:{}<<", e.getMessage().toString()); + } + } + + + /** + * 轮询批量加包 + * @param msg + * @param channel + * @throws IOException + */ + @RabbitHandler + @RabbitListener(queues = "dlx_p_addPackage_card") + public void dlxCreateListener(String msg, Channel channel) throws IOException { + try { + if (StringUtils.isEmpty(msg)) { + return; + } + addExecution(msg); + } catch (Exception e) { + log.error(">>错误 - 轮询批量加包 消费者:{}<<", e.getMessage().toString()); + } + } + + + private void addExecution(String msg){ Map map = JSON.parseObject(msg); - String oid = map.get("id").toString();//订单 id + //String oid = map.get("id").toString();//订单 id String ord_no = map.get("ord_no").toString();//订单 号 String iccid = map.get("iccid").toString();//iccid - String cid = map.get("Bid").toString();//card id + //String cid = map.get("Bid").toString();//card id String validate_type = map.get("validate_type").toString();//生效类型 String create_time = map.get("create_time").toString();//订单创建时间 String activate_date = map.get("activate_date")!=null&&map.get("activate_date").toString().trim().length()>6?map.get("activate_date").toString():null;//激活时间 - - - - Map add_parameter = JSON.parseObject(map.get("add_parameter").toString());//加包参数 String prefix = "p_addPackage_card"; @@ -78,11 +89,7 @@ public class PaddPackage { redisCache.setCacheObject(prefix+":"+ iccid+":"+ord_no, msg, 10, TimeUnit.SECONDS);//10 秒缓存 避免 重复消费 addPacket.addFlow(ord_no,iccid,add_parameter,validate_type,create_time,activate_date);//执行导入 } - } catch (Exception e) { - log.error(">>错误 - 轮询批量加包 消费者:{}<<", e.getMessage().toString()); } - } - diff --git a/yunze-consumption-order/src/main/java/com/yunze/system/card/addOrder.java b/yunze-consumption-order/src/main/java/com/yunze/system/card/addOrder.java index 232bdec..17bb8c7 100644 --- a/yunze-consumption-order/src/main/java/com/yunze/system/card/addOrder.java +++ b/yunze-consumption-order/src/main/java/com/yunze/system/card/addOrder.java @@ -2,27 +2,20 @@ package com.yunze.system.card; import com.alibaba.fastjson.JSON; import com.rabbitmq.client.Channel; -import com.yunze.common.core.card.AddPacket; import com.yunze.common.core.redis.RedisCache; -import com.yunze.common.mapper.yunze.YzCardFlowMapper; -import com.yunze.common.mapper.yunze.YzCardMapper; -import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; -import com.yunze.common.mapper.yunze.YzOrderMapper; -import com.yunze.common.utils.yunze.Different; -import com.yunze.common.utils.yunze.ExcelConfig; -import com.yunze.common.utils.yunze.WriteCSV; +import com.yunze.common.utils.yunze.BulkUtil; +import com.yunze.common.utils.yunze.PlOrder; +import com.yunze.common.utils.yunze.VeDate; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.IOException; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.*; +import java.util.List; +import java.util.Map; import java.util.concurrent.TimeUnit; /** @@ -32,16 +25,26 @@ import java.util.concurrent.TimeUnit; @Component public class addOrder { - @Resource - private YzCardMapper yzCardMapper; + @Resource private RedisCache redisCache; @Resource - private YzExecutionTaskMapper yzExecutionTaskMapper; + private PlOrder plOrder; @Resource - private WriteCSV writeCSV; - @Resource - private YzOrderMapper yzOrderMapper; + private BulkUtil bulkUtil; + + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_OrderImportRecharge_queue") + public void dlxCreateListener(String msg, Channel channel) { + try { + execution( msg); + } catch (Exception e) { + log.error(">>错误 - 轮询批量加包 消费者:{}<<", e.getMessage().toString()); + } + } + + /** @@ -52,129 +55,127 @@ public class addOrder { */ @RabbitHandler @RabbitListener(queues = "admin_OrderImportRecharge_queue") - public void createListener(String msg, Channel channel) throws IOException { + public void createListener(String msg, Channel channel) { try { - if (StringUtils.isEmpty(msg)) { - return; - } - Map map = JSON.parseObject(msg); - String filePath = map.get("filePath").toString();//项目根目录 - String ReadName = map.get("ReadName").toString();//上传新文件名 - String newName = map.get("newName").toString();//输出文件名 - Map Pmap = ( Map)map.get("map");//参数 - Map User = ( Map)Pmap.get("User");//登录用户信息 - Map OrderMap = ( Map)Pmap.get("OrderMap");//添加订单生成参数 - - - - String prefix = "admin_OrderImportRecharge_queue"; - //执行前判断 redis 是否存在 执行数据 存在时 不执行 - Object isExecute = redisCache.getCacheObject(prefix+":"+ newName); - if(isExecute==null){ - //System.out.println("SUCCESS"); - redisCache.setCacheObject(prefix+":"+ newName, msg, 30, TimeUnit.SECONDS);//30 秒缓存 避免 重复消费 - AddOrder(filePath,ReadName,newName,Pmap,User,OrderMap);//生成订单 - } + execution( msg); } catch (Exception e) { log.error(">>错误 - 轮询批量加包 消费者:{}<<", e.getMessage().toString()); } } + + /** - * 生成订单 - * @param filePath - * @param ReadName - * @param newName - * @param Pmap - * @param User - * @param OrderMap + * 平台批量充值 【文本域】 + * @param msg + * @param channel + * @throws IOException */ - public void AddOrder(String filePath,String ReadName,String newName,Map Pmap,Map User,Map OrderMap){ - - //1.读取 上传文件 - String path = filePath + "/upload/importRecharge/" + ReadName; - ExcelConfig excelConfig = new ExcelConfig(); - String columns[] = {"iccid"}; - - List> list = excelConfig.getExcelListMap(path,columns,OrderMap,"order"); - Map Dept = (Map)User.get("dept"); - String create_by = " [ "+Dept.get("deptName")+" ] - "+" [ "+User.get("userName")+" ] "; - String Outcolumns[] = {"iccid","操作描述","执行时间","执行结果","执行人"}; - String keys[] = {"iccid","description","time","result","agentName"}; - - if(list!=null && list.size()>0){ - //筛选出 iccid 卡号 重复项 - Map getNotRepeatingMap = Different.getNotRepeating(list,"iccid");//获取 筛选不重复的某列值 和 重复的 - list = (List>) getNotRepeatingMap.get("Rlist");//更新 充值数据 - List> Repeatlist = (List>) getNotRepeatingMap.get("Repeatlist"); - if(Repeatlist.size()>0){ - writeCSV.OutCSVObj(Repeatlist,newName,"ICCID重复充值失败!同一ICCID同批次,多次充值不允许!",create_by,"充值失败",Outcolumns,keys); - } - //查询数据库中 匹对iccid 是否存在 - HashMap map = new HashMap<>(); - map.put("order_arrs",list); - map.put("card_arrs",list); - map.put("type","3"); - List iccidarr = yzCardMapper.isExistence(map); - - String SaveUrl = "/getcsv/"+newName+".csv"; - String task_name ="平台批量充值 [充值] "; - Map task_map = new HashMap(); - task_map.put("auth",create_by); - task_map.put("task_name",task_name); - task_map.put("url",SaveUrl); - task_map.put("agent_id", Dept.get("deptId")); - task_map.put("type","5"); - yzExecutionTaskMapper.add(task_map);//添加执行 任务表 - //1.判断 充值卡号是否都在库里 - if(iccidarr.size()>0){ - //库中查询出卡号与上传卡号数量 不一致 说明有卡号不在数据库中 - if(!(iccidarr.size()==list.size())){ - //上传数据>数据库查询 赛选出 - List list1 = new ArrayList<>(); - for (int i = 0; i getNotRepeatingMap_DB = Different.getNotRepeating(list,iccidarr,"iccid");//获取 筛选不重复的某列值 和 重复的 - list = (List>) getNotRepeatingMap_DB.get("Rlist");//更新 充值数据 - List> Out_list_Different = (List>) getNotRepeatingMap_DB.get("Repeatlist");//更新 充值数据 - //找出与数据库已存在 相同 ICCID 去除 重复 iccid - if(Out_list_Different.size()>0){ - writeCSV.OutCSVObj(Out_list_Different,newName,"iccid 不在数据库中!请核对iccid卡号!",create_by,"充值失败",Outcolumns,keys); - } - } - map.put("order_arrs",list);//更新 list - map.put("create_by",create_by); - try { - if(list.size()>0){ - int sInt = yzOrderMapper.importOrder(map); - if(sInt>0){ - writeCSV.OutCSVObj(list,newName,"平台批量成功 充值 数据 ["+sInt+"] 条",create_by,"充值成功",Outcolumns,keys); - yzExecutionTaskMapper.set_end_time(task_map);//任务结束 - } - } - }catch (DuplicateKeyException e){ - String[] solit=e.getCause().toString().split("'"); - writeCSV.OutCSVObj(list,newName,e.getCause().toString(),create_by,"充值失败",Outcolumns,keys); - yzExecutionTaskMapper.set_end_time(task_map);//任务结束 - log.error(">> order-消费者- 上传excel异常 [插入数据 DuplicateKeyException ] :{}<<", e.getMessage().toString()); - }catch (Exception e){ - writeCSV.OutCSVObj(list,newName,e.getCause().toString(),create_by,"充值失败",Outcolumns,keys); - yzExecutionTaskMapper.set_end_time(task_map);//任务结束 - log.error(">>order-消费者- 批量充值消费者:{}<<", e.getMessage().toString()); - } - }else{ - //上传卡号不在数据库中 - writeCSV.OutCSVObj(list,newName,"充值iccid卡号平台中未找到!充值取消!",create_by,"充值失败",Outcolumns,keys); - } - }else{ - log.error( "admin-消费者 上传表格无数据!无需执行充值"); + @RabbitHandler + @RabbitListener(queues = "dlx_admin_OrderTextRecharge_queue") + public void OrderTextRechargeListener(String msg, Channel channel) { + try { + TextExecution( msg); + } catch (Exception e) { + log.error(">>错误 - dlx_ 平台批量充值 【文本域】 消费者:{}<<", e.getMessage().toString()); } } + /** + * 平台批量充值 【文本域】 + * @param msg + * @param channel + * @throws IOException + */ + @RabbitHandler + @RabbitListener(queues = "admin_OrderTextRecharge_queue") + public void DlxOrderTextRechargeListener(String msg, Channel channel) { + try { + TextExecution( msg); + } catch (Exception e) { + log.error(">>错误 - 平台批量充值 【文本域】 消费者:{}<<", e.getMessage().toString()); + } + } + + + /** + * 文本域充值 + * @param msg + */ + public void TextExecution(String msg){ + if (StringUtils.isEmpty(msg)) { + return; + } + Map map = JSON.parseObject(msg); + String filePath = map.get("filePath").toString();//项目根目录 + String newName = map.get("newName").toString();//输出文件名 + + Map Pmap = ( Map)map.get("map");//参数 + Map User = ( Map)Pmap.get("User");//登录用户信息 + Map OrderMap = ( Map)Pmap.get("OrderMap");//添加订单生成参数 + Map bulkMap = ( Map)map.get("bulkMap");//批量任务主表 信息 + List iccidArr = (List) Pmap.get("iccidArr");//文本域卡号 + + bulkMap.put("state_id","3");//状态 执行中 3 + bulkMap.put("start_time", VeDate.getStringDate());//赋值 开始时间 + bulkMap.put("url", "");//url + + bulkUtil.update(bulkMap);//消费者进入变更执行状态 执行中 + + String prefix = "admin_OrderTextRecharge_queue"; + //执行前判断 redis 是否存在 执行数据 存在时 不执行 + Object isExecute = redisCache.getCacheObject(prefix+":"+ newName); + if(isExecute==null){ + //System.out.println("SUCCESS"); + redisCache.setCacheObject(prefix+":"+ newName, msg, 30, TimeUnit.SECONDS);//30 秒缓存 避免 重复消费 + plOrder.TextAddOrder(iccidArr,filePath,"",newName,Pmap,User,OrderMap,bulkMap,"");//生成订单 + } + } + + + + + + + + + + + public void execution(String msg){ + if (StringUtils.isEmpty(msg)) { + return; + } + Map map = JSON.parseObject(msg); + String filePath = map.get("filePath").toString();//项目根目录 + String ReadName = map.get("ReadName").toString();//上传新文件名 + String newName = map.get("newName").toString();//输出文件名 + String SaveUrl = "/getOriginal"+ReadName; + + Map Pmap = ( Map)map.get("map");//参数 + Map User = ( Map)Pmap.get("User");//登录用户信息 + Map OrderMap = ( Map)Pmap.get("OrderMap");//添加订单生成参数 + Map bulkMap = ( Map)map.get("bulkMap");//批量任务主表 信息 + + bulkMap.put("state_id","3");//状态 执行中 3 + bulkMap.put("start_time", VeDate.getStringDate());//赋值 开始时间 + bulkMap.put("url", SaveUrl);//url 存储上传文件 原始地址 + + bulkUtil.update(bulkMap);//消费者进入变更执行状态 执行中 + + String prefix = "admin_OrderImportRecharge_queue"; + //执行前判断 redis 是否存在 执行数据 存在时 不执行 + Object isExecute = redisCache.getCacheObject(prefix+":"+ newName); + if(isExecute==null){ + //System.out.println("SUCCESS"); + redisCache.setCacheObject(prefix+":"+ newName, msg, 30, TimeUnit.SECONDS);//30 秒缓存 避免 重复消费 + plOrder.AddOrder(filePath,ReadName,newName,Pmap,User,OrderMap,bulkMap,SaveUrl);//生成订单 + } + } + + + diff --git a/yunze-consumption-order/src/main/resources/application.yml b/yunze-consumption-order/src/main/resources/application.yml index 9a7e445..1b29cfb 100644 --- a/yunze-consumption-order/src/main/resources/application.yml +++ b/yunze-consumption-order/src/main/resources/application.yml @@ -10,6 +10,8 @@ spring: password: 20220107@yzIot ## 心跳 请求的心跳超时,以秒为单位; 零表示没有 requested-heartbeat: 40 + ####心跳开启 + keepalive: true ### 地址 virtual-host: /VirtualHosts listener: @@ -35,7 +37,7 @@ spring: # redis 配置 redis: # 地址 - host: 127.0.0.1 + host: r-uf6r62dtsyztnh3312pd.redis.rds.aliyuncs.com # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/yunze-consumption-update/cUpdate.iml b/yunze-consumption-update/cUpdate.iml index 88f1183..c328789 100644 --- a/yunze-consumption-update/cUpdate.iml +++ b/yunze-consumption-update/cUpdate.iml @@ -1,14 +1,14 @@ - - - + + + @@ -64,6 +64,13 @@ + + + + + + + @@ -125,8 +132,7 @@ - - + diff --git a/yunze-consumption-update/pom.xml b/yunze-consumption-update/pom.xml index 46a8190..2714d54 100644 --- a/yunze-consumption-update/pom.xml +++ b/yunze-consumption-update/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-consumption-update/src/main/java/com/yunze/config/RbMQConfig.java b/yunze-consumption-update/src/main/java/com/yunze/config/RbMQConfig.java index 0efa4dc..b5e97c4 100644 --- a/yunze-consumption-update/src/main/java/com/yunze/config/RbMQConfig.java +++ b/yunze-consumption-update/src/main/java/com/yunze/config/RbMQConfig.java @@ -14,7 +14,7 @@ import org.springframework.context.annotation.Configuration; @Configuration public class RbMQConfig { //并发数量 - public static final int DEFAULT_CONCURRENT = 200; + public static final int DEFAULT_CONCURRENT = 300; @Bean("customContainerFactory") public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory connectionFactory) { diff --git a/yunze-consumption-update/src/main/java/com/yunze/system/card/CardUpd.java b/yunze-consumption-update/src/main/java/com/yunze/system/card/CardUpd.java index 5e29f3c..4b3b638 100644 --- a/yunze-consumption-update/src/main/java/com/yunze/system/card/CardUpd.java +++ b/yunze-consumption-update/src/main/java/com/yunze/system/card/CardUpd.java @@ -19,7 +19,7 @@ import java.util.Map; */ @Slf4j @Component -public class CardUpd { +public class CardUpd { @Resource private YzCardMapper yzCardMapper; diff --git a/yunze-consumption-update/src/main/java/com/yunze/system/card/dlx/DlxCardUpd.java b/yunze-consumption-update/src/main/java/com/yunze/system/card/dlx/DlxCardUpd.java deleted file mode 100644 index 689bbca..0000000 --- a/yunze-consumption-update/src/main/java/com/yunze/system/card/dlx/DlxCardUpd.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.yunze.system.card.dlx; - -import com.alibaba.fastjson.JSON; -import com.rabbitmq.client.Channel; -import com.yunze.common.core.redis.RedisCache; -import com.yunze.common.mapper.yunze.YzCardMapper; -import com.yunze.common.utils.yunze.GetShowStatIdArr; -import com.yunze.common.utils.yunze.WriteCSV; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.amqp.rabbit.annotation.RabbitHandler; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.io.IOException; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -/** - * 修改 卡 消费 者 [死信队列] - */ -@Slf4j -@Component -public class DlxCardUpd { - - @Resource - private RedisCache redisCache; - @Resource - private YzCardMapper yzCardMapper; - @Resource - private GetShowStatIdArr getShowStatIdArr; - - /** - * 修改 用量 - * @param msg - * @param channel - * @throws IOException - */ - @RabbitHandler - @RabbitListener(queues = "dlx_admin_CardUpd_queue") - public void CardUpd(String msg, Channel channel) throws IOException { - try { - if (StringUtils.isEmpty(msg)) { - return; - } - Map Pmap = JSON.parseObject(msg); - String queueTypeName = Pmap.get("queueTypeName").toString(); - String iccid = Pmap.get("iccid").toString(); - String prefix = queueTypeName+"_dlx"; - //执行前判断 redis 是否存在 执行数据 存在时 不执行 - Object isExecute = redisCache.getCacheObject(prefix + ":" + iccid); - if (isExecute == null) { - redisCache.setCacheObject(prefix + ":" + iccid, msg, 3, TimeUnit.SECONDS);//3 秒缓存 避免 重复消费 - int upd = 0; - if(queueTypeName.equals("admin_CardUpdUsed_queue")){ - upd = yzCardMapper.updUsed(Pmap); - }else if(queueTypeName.equals("admin_CardUpdActivate_queue")){ - upd = yzCardMapper.updActivate(Pmap); - }else if(queueTypeName.equals("admin_CardUpdStatusId_queue")){ - Object status_id = Pmap.get("status_id"); - String status_ShowId = getShowStatIdArr.GetShowStatId(status_id.toString()); - Pmap.put("status_ShowId",status_ShowId); - upd = yzCardMapper.updStatusId(Pmap); - }else if(queueTypeName.equals("admin_CardAddInfoRemaining_queue")){ - upd = yzCardMapper.addInfoRemaining(Pmap); - }else if(queueTypeName.equals("admin_CardUpdimei_queue")){ - upd = yzCardMapper.updimei(Pmap); - } - log.info(">> {} 执行结果 - delx 修改 {} 消费者:{}<<",iccid,queueTypeName,upd); - } - } catch (Exception e) { - log.error(">>错误 - 修改 dlx_admin_CardUpd_queue 消费者:{}<<", e.getMessage().toString()); - } - } - - - - - - - - - - - - - - - - - -} - - - diff --git a/yunze-consumption-update/src/main/resources/application.yml b/yunze-consumption-update/src/main/resources/application.yml index d31e9bb..6e918e8 100644 --- a/yunze-consumption-update/src/main/resources/application.yml +++ b/yunze-consumption-update/src/main/resources/application.yml @@ -10,6 +10,8 @@ spring: password: 20220107@yzIot ## 心跳 请求的心跳超时,以秒为单位; 零表示没有 requested-heartbeat: 40 + ####心跳开启 + keepalive: true ### 地址 virtual-host: /VirtualHosts listener: @@ -35,7 +37,7 @@ spring: # redis 配置 redis: # 地址 - host: 127.0.0.1 + host: r-uf6r62dtsyztnh3312pd.redis.rds.aliyuncs.com # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/yunze-consumption-update/src/main/resources/logback.xml b/yunze-consumption-update/src/main/resources/logback.xml index f0350e6..6c9ba71 100644 --- a/yunze-consumption-update/src/main/resources/logback.xml +++ b/yunze-consumption-update/src/main/resources/logback.xml @@ -30,8 +30,8 @@ ${LOG_PATH}/${LOG_FILE}/${LOG_FILE}-%d{yyyy-MM-dd}.log - - 60 + + 2 diff --git a/yunze-consumption-web-shopping/cWebShopping.iml b/yunze-consumption-web-shopping/cWebShopping.iml index 99c909a..c328789 100644 --- a/yunze-consumption-web-shopping/cWebShopping.iml +++ b/yunze-consumption-web-shopping/cWebShopping.iml @@ -1,14 +1,14 @@ - - - + + + @@ -18,7 +18,7 @@ - + @@ -64,6 +64,13 @@ + + + + + + + @@ -125,8 +132,7 @@ - - + diff --git a/yunze-consumption-web-shopping/pom.xml b/yunze-consumption-web-shopping/pom.xml index f5e5438..29ad52e 100644 --- a/yunze-consumption-web-shopping/pom.xml +++ b/yunze-consumption-web-shopping/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-consumption-web-shopping/src/main/java/com/yunze/system/card/ByShopping.java b/yunze-consumption-web-shopping/src/main/java/com/yunze/system/card/ByShopping.java index cc49531..0d43c36 100644 --- a/yunze-consumption-web-shopping/src/main/java/com/yunze/system/card/ByShopping.java +++ b/yunze-consumption-web-shopping/src/main/java/com/yunze/system/card/ByShopping.java @@ -1,11 +1,8 @@ package com.yunze.system.card; import com.alibaba.fastjson.JSON; -import com.rabbitmq.client.*; -import com.yunze.common.config.MyDictionary; -import com.yunze.common.core.card.CardChange; +import com.rabbitmq.client.Channel; import com.yunze.common.core.redis.RedisCache; -import com.yunze.common.mapper.yunze.YzCardMapper; import com.yunze.common.mapper.yunze.YzOrderMapper; import com.yunze.common.mapper.yunze.commodity.YzWxByOrderMapper; import lombok.extern.slf4j.Slf4j; @@ -16,7 +13,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Map; import java.util.concurrent.TimeUnit; /** diff --git a/yunze-consumption-web-shopping/src/main/java/com/yunze/system/card/ShoppingEmail.java b/yunze-consumption-web-shopping/src/main/java/com/yunze/system/card/ShoppingEmail.java index 157ffdc..9478e70 100644 --- a/yunze-consumption-web-shopping/src/main/java/com/yunze/system/card/ShoppingEmail.java +++ b/yunze-consumption-web-shopping/src/main/java/com/yunze/system/card/ShoppingEmail.java @@ -4,10 +4,9 @@ import com.alibaba.fastjson.JSON; import com.rabbitmq.client.Channel; import com.yunze.common.core.redis.RedisCache; import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; import com.yunze.common.mapper.yunze.commodity.YzWxByOrderMapper; -import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; - import com.yunze.common.utils.Email.EmailCc; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; diff --git a/yunze-consumption-web-shopping/src/main/resources/application.yml b/yunze-consumption-web-shopping/src/main/resources/application.yml index e42757c..b5528f0 100644 --- a/yunze-consumption-web-shopping/src/main/resources/application.yml +++ b/yunze-consumption-web-shopping/src/main/resources/application.yml @@ -10,6 +10,8 @@ spring: password: 20220107@yzIot ## 心跳 请求的心跳超时,以秒为单位; 零表示没有 requested-heartbeat: 40 + ####心跳开启 + keepalive: true ### 地址 virtual-host: /VirtualHosts listener: @@ -35,7 +37,7 @@ spring: # redis 配置 redis: # 地址 - host: 127.0.0.1 + host: r-uf6r62dtsyztnh3312pd.redis.rds.aliyuncs.com # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/yunze-consumption-web/cWeb.iml b/yunze-consumption-web/cWeb.iml index 88f1183..c328789 100644 --- a/yunze-consumption-web/cWeb.iml +++ b/yunze-consumption-web/cWeb.iml @@ -1,14 +1,14 @@ - - - + + + @@ -64,6 +64,13 @@ + + + + + + + @@ -125,8 +132,7 @@ - - + diff --git a/yunze-consumption-web/pom.xml b/yunze-consumption-web/pom.xml index 22cf1fb..72b6a45 100644 --- a/yunze-consumption-web/pom.xml +++ b/yunze-consumption-web/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-consumption-web/src/main/java/com/yunze/system/card/CardDiagnosis.java b/yunze-consumption-web/src/main/java/com/yunze/system/card/CardDiagnosis.java index 71fc2c6..f79f8d6 100644 --- a/yunze-consumption-web/src/main/java/com/yunze/system/card/CardDiagnosis.java +++ b/yunze-consumption-web/src/main/java/com/yunze/system/card/CardDiagnosis.java @@ -1,7 +1,7 @@ package com.yunze.system.card; import com.alibaba.fastjson.JSON; -import com.rabbitmq.client.*; +import com.rabbitmq.client.Channel; import com.yunze.common.config.MyDictionary; import com.yunze.common.core.card.CardChange; import com.yunze.common.core.redis.RedisCache; @@ -14,7 +14,9 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.TimeUnit; /** diff --git a/yunze-consumption-web/src/main/resources/application.yml b/yunze-consumption-web/src/main/resources/application.yml index fe5d012..e073351 100644 --- a/yunze-consumption-web/src/main/resources/application.yml +++ b/yunze-consumption-web/src/main/resources/application.yml @@ -10,6 +10,8 @@ spring: password: 20220107@yzIot ## 心跳 请求的心跳超时,以秒为单位; 零表示没有 requested-heartbeat: 40 + ####心跳开启 + keepalive: true ### 地址 virtual-host: /VirtualHosts listener: @@ -35,7 +37,7 @@ spring: # redis 配置 redis: # 地址 - host: 127.0.0.1 + host: r-uf6r62dtsyztnh3312pd.redis.rds.aliyuncs.com # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/yunze-eureka/pom.xml b/yunze-eureka/pom.xml index 0b5e26d..63ac38c 100644 --- a/yunze-eureka/pom.xml +++ b/yunze-eureka/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-eureka/yunze-eureka.iml b/yunze-eureka/yunze-eureka.iml deleted file mode 100644 index b5b8e8c..0000000 --- a/yunze-eureka/yunze-eureka.iml +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/yunze-framework/pom.xml b/yunze-framework/pom.xml index d6db821..965c9fb 100644 --- a/yunze-framework/pom.xml +++ b/yunze-framework/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-framework/ruoyi-framework.iml b/yunze-framework/ruoyi-framework.iml new file mode 100644 index 0000000..df09abb --- /dev/null +++ b/yunze-framework/ruoyi-framework.iml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yunze-framework/src/main/java/com/yunze/framework/aspectj/LogAspect.java b/yunze-framework/src/main/java/com/yunze/framework/aspectj/LogAspect.java index 3793fad..a58cf27 100644 --- a/yunze-framework/src/main/java/com/yunze/framework/aspectj/LogAspect.java +++ b/yunze-framework/src/main/java/com/yunze/framework/aspectj/LogAspect.java @@ -87,7 +87,7 @@ public class LogAspect // 获取当前的用户 LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); - // *========数据库日志=========*// + // *=数据库日志==*// SysOperLog operLog = new SysOperLog(); operLog.setStatus(BusinessStatus.SUCCESS.ordinal()); // 请求的地址 diff --git a/yunze-framework/src/main/java/com/yunze/framework/config/SecurityConfig.java b/yunze-framework/src/main/java/com/yunze/framework/config/SecurityConfig.java index 52c752d..cbc3c5b 100644 --- a/yunze-framework/src/main/java/com/yunze/framework/config/SecurityConfig.java +++ b/yunze-framework/src/main/java/com/yunze/framework/config/SecurityConfig.java @@ -1,5 +1,6 @@ package com.yunze.framework.config; +import com.yunze.framework.web.service.SmsCodeAuthenticationProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.http.HttpMethod; @@ -31,7 +32,13 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter */ @Autowired private UserDetailsService userDetailsService; - + + /** + * 自定义用户(手机号验证码)认证逻辑 + */ + @Autowired + private UserDetailsService userDetailsServiceByTelephone; + /** * 认证失败处理类 */ @@ -87,6 +94,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter @Override protected void configure(HttpSecurity httpSecurity) throws Exception { + SmsCodeAuthenticationProvider smsCodeAuthenticationProvider = new SmsCodeAuthenticationProvider(); + smsCodeAuthenticationProvider.setUserDetailsService(userDetailsServiceByTelephone); + httpSecurity // CSRF禁用,因为不使用session .csrf().disable() @@ -99,6 +109,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 对于登录login 验证码captchaImage 允许匿名访问 .antMatchers("/login", "/captchaImage").anonymous() .antMatchers("/yunze/ExecutionTask/download","/yunze/ExecutionTask/downloadConversion").anonymous()//放行下载 + .antMatchers("/yunze/card/selCardOpen").anonymous()//放行 公共查询卡信息 + .antMatchers( HttpMethod.GET, "/*.html", @@ -106,6 +118,10 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter "/**/*.css", "/**/*.js" ).permitAll() + .antMatchers("/send/**").anonymous() + .antMatchers( HttpMethod.POST,"/yunze/card/userPhone").anonymous() + .antMatchers( HttpMethod.POST,"/message").anonymous() + .antMatchers("/profile/**").anonymous() .antMatchers("/common/download**").anonymous() .antMatchers("/common/download/resource**").anonymous() @@ -114,7 +130,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter .antMatchers("/webjars/**").anonymous() .antMatchers("/*/api-docs").anonymous() .antMatchers("/druid/**").anonymous() - .antMatchers("/yunze/productPic/readImage").anonymous() + .antMatchers("/yunze/productPic/readImage").anonymous()//图片加载 + .antMatchers("/yunze/MySysDept/weChatNotify").anonymous()//微信支付回调 企业预存 // 除上面外的所有请求全部需要鉴权认证 ,"" .anyRequest().authenticated() .and() @@ -124,7 +141,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class); // 添加CORS filter httpSecurity.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class); - httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class); + httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class) + //手机验证码的provider + .authenticationProvider(smsCodeAuthenticationProvider); } diff --git a/yunze-framework/src/main/java/com/yunze/framework/manager/AsyncManager.java b/yunze-framework/src/main/java/com/yunze/framework/manager/AsyncManager.java index cc32f2b..787cccf 100644 --- a/yunze-framework/src/main/java/com/yunze/framework/manager/AsyncManager.java +++ b/yunze-framework/src/main/java/com/yunze/framework/manager/AsyncManager.java @@ -36,7 +36,7 @@ public class AsyncManager } /** - * 执行任务 + * 执行日志 * * @param task 任务 */ diff --git a/yunze-framework/src/main/java/com/yunze/framework/manager/ShutdownManager.java b/yunze-framework/src/main/java/com/yunze/framework/manager/ShutdownManager.java index 0c24c76..6ef2f8d 100644 --- a/yunze-framework/src/main/java/com/yunze/framework/manager/ShutdownManager.java +++ b/yunze-framework/src/main/java/com/yunze/framework/manager/ShutdownManager.java @@ -22,7 +22,7 @@ public class ShutdownManager } /** - * 停止异步执行任务 + * 停止异步执行日志 */ private void shutdownAsyncManager() { diff --git a/yunze-framework/src/main/java/com/yunze/framework/web/service/SmsCodeAuthenticationProvider.java b/yunze-framework/src/main/java/com/yunze/framework/web/service/SmsCodeAuthenticationProvider.java new file mode 100644 index 0000000..d74c904 --- /dev/null +++ b/yunze-framework/src/main/java/com/yunze/framework/web/service/SmsCodeAuthenticationProvider.java @@ -0,0 +1,48 @@ +package com.yunze.framework.web.service; + +import org.springframework.security.authentication.AuthenticationProvider; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; + +/** + * 短信登录鉴权 Provider,要求实现 AuthenticationProvider 接口 + * + * @author gmk + */ +public class SmsCodeAuthenticationProvider implements AuthenticationProvider { + + private UserDetailsService userDetailsService; + + @Override + public Authentication authenticate(Authentication authentication) throws AuthenticationException { + SmsCodeAuthenticationToken authenticationToken = (SmsCodeAuthenticationToken) authentication; + + String telephone = (String) authenticationToken.getPrincipal(); + System.out.println(telephone); + UserDetails userDetails = userDetailsService.loadUserByUsername(telephone); + + // 此时鉴权成功后,应当重新 new 一个拥有鉴权的 authenticationResult 返回 + SmsCodeAuthenticationToken authenticationResult = new SmsCodeAuthenticationToken(userDetails, userDetails.getAuthorities()); + + authenticationResult.setDetails(authenticationToken.getDetails()); + + return authenticationResult; + } + + + @Override + public boolean supports(Class authentication) { + // 判断 authentication 是不是 SmsCodeAuthenticationToken 的子类或子接口 + return SmsCodeAuthenticationToken.class.isAssignableFrom(authentication); + } + + public UserDetailsService getUserDetailsService() { + return userDetailsService; + } + + public void setUserDetailsService(UserDetailsService userDetailsService) { + this.userDetailsService = userDetailsService; + } +} diff --git a/yunze-framework/src/main/java/com/yunze/framework/web/service/SmsCodeAuthenticationToken.java b/yunze-framework/src/main/java/com/yunze/framework/web/service/SmsCodeAuthenticationToken.java new file mode 100644 index 0000000..8e81bf4 --- /dev/null +++ b/yunze-framework/src/main/java/com/yunze/framework/web/service/SmsCodeAuthenticationToken.java @@ -0,0 +1,67 @@ +package com.yunze.framework.web.service; + +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.SpringSecurityCoreVersion; + +import java.util.Collection; + +/** + * 短信登录 AuthenticationToken,模仿 UsernamePasswordAuthenticationToken 实现 + * + */ +public class SmsCodeAuthenticationToken extends AbstractAuthenticationToken { + + + private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID; + + /** + * 在 UsernamePasswordAuthenticationToken 中该字段代表登录的用户名, + * 在这里就代表登录的手机号码 + */ + private final Object principal; + + /** + * 构建一个没有鉴权的 SmsCodeAuthenticationToken + */ + public SmsCodeAuthenticationToken(Object principal) { + super(null); + this.principal = principal; + setAuthenticated(false); + } + + /** + * 构建拥有鉴权的 SmsCodeAuthenticationToken + */ + public SmsCodeAuthenticationToken(Object principal, Collection authorities) { + super(authorities); + this.principal = principal; + // must use super, as we override + super.setAuthenticated(true); + } + + @Override + public Object getCredentials() { + return null; + } + + @Override + public Object getPrincipal() { + return this.principal; + } + + @Override + public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException { + if (isAuthenticated) { + throw new IllegalArgumentException( + "Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead"); + } + + super.setAuthenticated(false); + } + + @Override + public void eraseCredentials() { + super.eraseCredentials(); + } +} diff --git a/yunze-framework/src/main/java/com/yunze/framework/web/service/SysLoginService.java b/yunze-framework/src/main/java/com/yunze/framework/web/service/SysLoginService.java index a899c59..1e6c228 100644 --- a/yunze-framework/src/main/java/com/yunze/framework/web/service/SysLoginService.java +++ b/yunze-framework/src/main/java/com/yunze/framework/web/service/SysLoginService.java @@ -6,6 +6,12 @@ import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.AuthorityUtils; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.web.context.HttpSessionSecurityContextRepository; import org.springframework.stereotype.Component; import com.yunze.common.constant.Constants; import com.yunze.common.core.domain.entity.SysUser; @@ -23,6 +29,9 @@ import com.yunze.framework.manager.AsyncManager; import com.yunze.framework.manager.factory.AsyncFactory; import com.yunze.system.service.ISysUserService; +import java.util.Collection; +import java.util.Set; + /** * 登录校验方法 * @@ -43,6 +52,11 @@ public class SysLoginService @Autowired private ISysUserService userService; + @Autowired + private SysPermissionService permissionService; + + + /** * 登录验证 * @@ -95,6 +109,44 @@ public class SysLoginService return tokenService.createToken(loginUser); } + /** + * 短信登录验证 + * @param telephone 用户名 + * @param password 密码 + * @param uuid 唯一标识 + * @return 结果 + */ + public String Massagelogin(String telephone, String password, String uuid) + { + // 用户验证 + Authentication authentication = null; + try { + // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername + authentication = authenticationManager + .authenticate(new SmsCodeAuthenticationToken(telephone)); + } catch (Exception e) { + if (e instanceof BadCredentialsException) { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(telephone, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); + throw new UserPasswordNotMatchException(); + } else { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(telephone, Constants.LOGIN_FAIL, e.getMessage())); + throw new CustomException(e.getMessage()); + } + } + AsyncManager.me().execute(AsyncFactory.recordLogininfor(telephone, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); + LoginUser loginUser = (LoginUser) authentication.getPrincipal(); + recordLoginInfo(loginUser.getUser()); + + String token = ""; + try { + token = tokenService.createToken(loginUser);// 生成token + redisCache.deleteObject("login_"+telephone);//登录成功时删除验证码信息 + }catch (Exception e){ + System.out.println("Massagelogin 》 token 生成错误!"+e.getMessage()); + } + return token; + } + /** * 记录登录信息 */ diff --git a/yunze-framework/src/main/java/com/yunze/framework/web/service/UserDetailsServiceImpl.java b/yunze-framework/src/main/java/com/yunze/framework/web/service/UserDetailsServiceImpl.java index 976bff6..3986bff 100644 --- a/yunze-framework/src/main/java/com/yunze/framework/web/service/UserDetailsServiceImpl.java +++ b/yunze-framework/src/main/java/com/yunze/framework/web/service/UserDetailsServiceImpl.java @@ -1,5 +1,11 @@ package com.yunze.framework.web.service; +import com.yunze.common.core.domain.entity.SysUser; +import com.yunze.common.core.domain.model.LoginUser; +import com.yunze.common.enums.UserStatus; +import com.yunze.common.exception.BaseException; +import com.yunze.common.utils.StringUtils; +import com.yunze.system.service.ISysUserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -7,21 +13,14 @@ import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; -import com.yunze.common.core.domain.entity.SysUser; -import com.yunze.common.core.domain.model.LoginUser; -import com.yunze.common.enums.UserStatus; -import com.yunze.common.exception.BaseException; -import com.yunze.common.utils.StringUtils; -import com.yunze.system.service.ISysUserService; /** * 用户验证处理 * - * @author yunze + * @author gmk */ -@Service -public class UserDetailsServiceImpl implements UserDetailsService -{ +@Service("userDetailsByTelephoneServiceImpl") +public class UserDetailsServiceImpl implements UserDetailsService { private static final Logger log = LoggerFactory.getLogger(UserDetailsServiceImpl.class); @Autowired @@ -31,30 +30,24 @@ public class UserDetailsServiceImpl implements UserDetailsService private SysPermissionService permissionService; @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException - { - SysUser user = userService.selectUserByUserName(username); - if (StringUtils.isNull(user)) - { - log.info("登录用户:{} 不存在.", username); - throw new UsernameNotFoundException("登录用户:" + username + " 不存在"); - } - else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) - { - log.info("登录用户:{} 已被删除.", username); - throw new BaseException("对不起,您的账号:" + username + " 已被删除"); - } - else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) - { - log.info("登录用户:{} 已被停用.", username); - throw new BaseException("对不起,您的账号:" + username + " 已停用"); + public UserDetails loadUserByUsername(String phone) throws UsernameNotFoundException { + System.out.println(phone); + SysUser user = userService.selectUserByPhonenumber(phone); + if (StringUtils.isNull(user)) { + log.info("登录用户:{} 不存在.", phone); + throw new UsernameNotFoundException("登录用户:" + phone + " 不存在"); + } else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { + log.info("登录用户:{} 已被删除.", phone); + throw new BaseException("对不起,您的账号:" + phone + " 已被删除"); + } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { + log.info("登录用户:{} 已被停用.", phone); + throw new BaseException("对不起,您的账号:" + phone + " 已停用"); } return createLoginUser(user); } - public UserDetails createLoginUser(SysUser user) - { + public UserDetails createLoginUser(SysUser user) { return new LoginUser(user, permissionService.getMenuPermission(user)); } } diff --git a/yunze-framework/yunze-framework.iml b/yunze-framework/yunze-framework.iml index 26bd2a4..45fd9f2 100644 --- a/yunze-framework/yunze-framework.iml +++ b/yunze-framework/yunze-framework.iml @@ -1,14 +1,14 @@ - - - + + + @@ -58,7 +58,6 @@ - @@ -68,6 +67,12 @@ + + + + + + @@ -131,11 +136,10 @@ - - - + + @@ -163,5 +167,8 @@ + + + \ No newline at end of file diff --git a/yunze-generator/pom.xml b/yunze-generator/pom.xml index 01cba15..57fb8ac 100644 --- a/yunze-generator/pom.xml +++ b/yunze-generator/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-generator/yunze-generator.iml b/yunze-generator/yunze-generator.iml index 2b1ed57..d7b94ac 100644 --- a/yunze-generator/yunze-generator.iml +++ b/yunze-generator/yunze-generator.iml @@ -19,6 +19,13 @@ + + + + + + + @@ -105,11 +112,10 @@ - - - + + diff --git a/yunze-quartz/pom.xml b/yunze-quartz/pom.xml index 6f04a7f..934810f 100644 --- a/yunze-quartz/pom.xml +++ b/yunze-quartz/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/mapper/SysJobLogMapper.java b/yunze-quartz/src/main/java/com/yunze/quartz/mapper/SysJobLogMapper.java index e4f8c19..db33f80 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/mapper/SysJobLogMapper.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/mapper/SysJobLogMapper.java @@ -1,6 +1,8 @@ package com.yunze.quartz.mapper; import java.util.List; +import java.util.Map; + import com.yunze.quartz.domain.SysJobLog; /** @@ -61,4 +63,6 @@ public interface SysJobLogMapper * 清空任务日志 */ public void cleanJobLog(); + + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/mapper/SysJobMapper.java b/yunze-quartz/src/main/java/com/yunze/quartz/mapper/SysJobMapper.java index e02ccd9..b936b5e 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/mapper/SysJobMapper.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/mapper/SysJobMapper.java @@ -1,6 +1,8 @@ package com.yunze.quartz.mapper; import java.util.List; +import java.util.Map; + import com.yunze.quartz.domain.SysJob; /** @@ -64,4 +66,10 @@ public interface SysJobMapper * @return 结果 */ public int insertJob(SysJob job); + + + + + + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmaiApiSynError.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmaiApiSynError.java new file mode 100644 index 0000000..7d86cf5 --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmaiApiSynError.java @@ -0,0 +1,77 @@ +package com.yunze.quartz.task.yunze.Automation; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorGroupMapper; +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorMapper; +import com.yunze.common.utils.Email.EmailCc; +import com.yunze.common.utils.yunze.VeDate; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; + +/** + * 定时任务 自动化 邮件抄送 [API同步数据错误抄送] + * @author zf + */ +@Slf4j +@Component("emaiApiSynError") +public class EmaiApiSynError { + + @Resource + private RabbitTemplate rabbitTemplate; + + public void Send(Integer Time){ + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_EmaiApiSynError_queue"; + String polling_routingKey = "admin.EmaiApiSynError.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 admin_EmaiApiSynError_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (Time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + + } + + public void RetryCC(Integer cc_count,String trigger_type){ + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_RetryCC_queue"; + String polling_routingKey = "admin.RetryCC.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("cc_count", cc_count);// + start_type.put("trigger_type", trigger_type);// + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (60 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + + } + + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCCCardAbnormalStatus.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCCCardAbnormalStatus.java index 67a6e88..87ff4fb 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCCCardAbnormalStatus.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCCCardAbnormalStatus.java @@ -2,6 +2,7 @@ package com.yunze.quartz.task.yunze.Automation; import com.alibaba.fastjson.JSON; import com.yunze.common.config.MyDictionary; +import com.yunze.common.config.RabbitMQConfig; import com.yunze.common.mapper.yunze.YzCardMapper; import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; @@ -11,6 +12,7 @@ import com.yunze.common.utils.Email.EmailCc; import com.yunze.common.utils.yunze.VeDate; import com.yunze.common.utils.yunze.WriteCSV; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -26,165 +28,58 @@ import java.util.*; public class EmailCCCardAbnormalStatus { @Resource - private YzAutomationCcHisMapper yzAutomationCcHisMapper; + private RabbitMQConfig rabbitMQConfig; @Resource - private EmailCc emailCc; - @Resource - private YzCardMapper yzCardMapper; - @Resource - private YzExecutionTaskMapper yzExecutionTaskMapper; - @Resource - private WriteCSV writeCSV; - @Resource - private MyDictionary myDictionary; - @Resource - private YzAutomationCcMapper yzAutomationCcMapper; - @Resource - private YzAutomationCcUrlMapper yzAutomationCcUrlMapper; + private RabbitTemplate rabbitTemplate; - String Outcolumns[] = {"MSISDN","ICCID","IMSI","IMEI","所属通道","卡状态","状态描述","通道状态","同步时间","已使用用量(MB)","剩余用量(MB)","到期时间","备注","分组","激活日期","发货日期"}; - String keys[] = {"msisdn","iccid","imsi","imei","cd_name","status_ShowId_value","status_Id_value","cd_status_value","syn_Time","used","remaining","due_expire_time","remarks","customize_grouping","activate_date","deliver_date"}; - - /** - * 邮件抄送 - */ - public void CCCardAbnormalStatus() { - Map findMap = new HashMap<>(); - findMap.put("trigger_type","4"); - - List> out_list = new ArrayList<>(); - Map findStatusAbnormal_map = new HashMap(); - - Map CcMessage_Map = new HashMap<>(); - String taskId = ""; - - List> cardList = yzCardMapper.findStatusAbnormal(findStatusAbnormal_map);//查询已订购用量状态异常卡号 - if(cardList!=null){ - String create_by = " [平台] - " + " [自动化] "; - String newName = UUID.randomUUID().toString().replace("-", "") + "_AbnormalStatus"; - String task_name = "- 已订购用量状态已停机 抄送 [" + VeDate.getStringDateSSS() + "] "; - String SaveUrl = "/getcsv/" + newName + ".csv"; - SaveUrl = "/getcsv/" + newName + ".csv"; - Map task_map = new HashMap(); - task_map.put("auth", create_by); - task_map.put("task_name", task_name); - task_map.put("url", SaveUrl); - task_map.put("agent_id", "100"); - task_map.put("type", "14"); //对应 字典表的 执行日志类别 - yzExecutionTaskMapper.add(task_map);//添加执行 任务表 - - for (int j = 0; j < cardList.size(); j++) { - Map CarMap = new HashMap(); - CarMap.putAll(cardList.get(j)); - CarMap.put("status_Id_value",myDictionary.getdictLabel("yunze_card_status_type",CarMap.get("status_Id").toString())); - CarMap.put("cd_status_value",myDictionary.getdictLabel("channel_status",CarMap.get("cd_status").toString())); - out_list.add(CarMap); - } - writeCSV.Write(newName,out_list,Outcolumns,null,keys); - yzExecutionTaskMapper.set_end_time(task_map);//任务结束 - taskId = ""+task_map.get("id"); - CcMessage_Map.put("taskId",taskId); - CcMessage_Map.put("Count",""+out_list.size()); - - }else { - log.info("CCCardAbnormalStatus 已订购用量状态已停机未获取到 数据 抄送取消"); + public void CCCardAbnormalStatus(){ + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_CCCardAbnormalStatus_queue"; + String polling_routingKey = "admin.CCCardAbnormalStatus.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 CCCardAbnormalStatus_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } - if(out_list.size()>0){ - List> AutomationCcArr = yzAutomationCcMapper.findConcise(findMap);//获取自动化 抄送 组 - if (AutomationCcArr != null && AutomationCcArr.size() > 0) { - for (int i = 0; i < AutomationCcArr.size(); i++) { - Map CCObj = AutomationCcArr.get(i); - List> AutomationCcUrlArr = yzAutomationCcUrlMapper.findConcise(CCObj);//获取自动化 抄送 邮箱 - - if (AutomationCcUrlArr != null && AutomationCcUrlArr.size() > 0) { - String execution_template = CCObj.get("execution_template").toString(); - CCObj.put("taskId",taskId); - CCObj.put("Count",out_list.size()); - if (execution_template.equals("1")) { - for (int j = 0; j < AutomationCcUrlArr.size(); j++) { - Object eM = AutomationCcUrlArr.get(j).get("email"); - if (eM != null && eM.toString().length() > 0) { - String SendEmail = eM.toString(); - Map saveHisMap = new HashMap<>(); - saveHisMap.put("cc_id", CCObj.get("id")); - saveHisMap.put("cc_url", ""); - saveHisMap.put("cc_email", SendEmail); - saveHisMap.put("cc_state", "1");//已抄送 - - String cc_parameter = JSON.toJSONString(CCObj); - cc_parameter = cc_parameter.length() > 500 ? cc_parameter.substring(0, 500) : cc_parameter; - saveHisMap.put("cc_parameter", cc_parameter); - Map Rmap = null; - Boolean bool = false; - String remark = "", cc_result = "0"; - try { - Rmap = emailCc.CardStatusAbnormal_default(CcMessage_Map, SendEmail); - bool = (Boolean) Rmap.get("bool"); - if (bool) { - cc_result = "1"; - } - } catch (Exception e) { - remark = e.getMessage(); - remark = remark.length() > 240 ? remark.substring(0, 240) : remark; - } - saveHisMap.put("remark", remark); - saveHisMap.put("cc_result", cc_result); - boolean saveHis = yzAutomationCcHisMapper.save(saveHisMap) > 0; - log.info(">>自动化 [CCCardAbnormalStatus] 已抄送邮箱{} - 插入抄送记录 bool {} <<", SendEmail, saveHis); - } else { - log.error(">>自动化 [CCCardAbnormalStatus] 抄送邮箱未获取到 - 抄送取消 {} <<", eM); - } - } - } else { - log.error(">>自动化 [CCCardAbnormalStatus] 抄送模板不批对 - 抄送取消 {} <<"); - } - } else { - log.error(">>自动化 [CCCardAbnormalStatus] 获取自动化 抄送 邮箱 未找到数据 - 抄送取消 {} <<"); - } - } - } - } } - /** - * 邮件抄送 重试 - * @param cc_count 重试次数 - */ - public void RetryCC(Integer cc_count) { - Map findNotPerformed_Map = new HashMap<>(); - findNotPerformed_Map.put("trigger_type","4"); - findNotPerformed_Map.put("cc_count",cc_count);//重试次数 - List> CcArr = yzAutomationCcHisMapper.findNotPerformed(findNotPerformed_Map); // 获取未抄送成功的数据进行抄送 - if (CcArr != null && CcArr.size() > 0) { - //2.获取 - for (int i = 0; i < CcArr.size(); i++) { - Map Cc_Map = CcArr.get(i); - Map MsgMap = JSON.parseObject(Cc_Map.get("cc_parameter").toString()); - String SendEmail = Cc_Map.get("cc_email").toString(); - Map updHisMap = new HashMap<>(); - updHisMap.put("id",Cc_Map.get("id")); - Map Rmap = null; - Boolean bool = false; - String remark = "",cc_result = "0"; - try { - Rmap = emailCc.CardStatusAbnormal_default(MsgMap,SendEmail); - bool = (Boolean) Rmap.get("bool"); - if(bool){ - cc_result = "1"; - } - }catch (Exception e){ - remark = e.getMessage(); - remark = remark.length()>240?remark.substring(0,240):remark; - } - updHisMap.put("remark",remark); - updHisMap.put("cc_result",cc_result); - boolean updHis = yzAutomationCcHisMapper.updCcCount(updHisMap)>0; - System.out.println(">>自动化 [CCCardAbnormalStatus] 已抄送邮箱"+SendEmail+" - 抄送 bool {"+bool+"} 修改 bool {"+updHis+"}<<"); - } + public void RetryCC(Integer cc_count){ + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_RetryCCStatus_queue"; + String polling_routingKey = "admin.RetryCCStatus.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("cc_count",cc_count); + start_type.put("Masage", "备份 执行 RetryCCStatus_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } + } + + + + + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCCRenewal.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCCRenewal.java new file mode 100644 index 0000000..b9bc9e3 --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCCRenewal.java @@ -0,0 +1,78 @@ +package com.yunze.quartz.task.yunze.Automation; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalPrimaryMapper; +import com.yunze.common.mapper.yunze.commodity.YzWxByOrderMapper; +import com.yunze.common.utils.Email.EmailCc; +import com.yunze.common.utils.yunze.VeDate; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; + +/** + * 定时任务 自动化 邮件抄送 [续费申请] + * + * @author userzf + */ +@Slf4j +@Component("emailCCRenewal") +public class EmailCCRenewal { + + @Resource + private RabbitTemplate rabbitTemplate; + + public void CCExecution(Integer cc_count) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_emailCCRenewal_queue"; + String polling_routingKey = "admin.emailCCRenewal.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("cc_count",cc_count); + start_type.put("type","CCExecution"); + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + + + + + public void RetryCC(Integer cc_count) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_CCShopping_queue"; + String polling_routingKey = "admin.CCShopping.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("cc_count",cc_count); + start_type.put("type","RetryCC"); + + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + + + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCCShopping.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCCShopping.java index 3b8c88f..66aa46d 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCCShopping.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCCShopping.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; import com.yunze.common.mapper.yunze.commodity.YzWxByOrderMapper; import com.yunze.common.utils.Email.EmailCc; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -20,55 +21,28 @@ import java.util.Map; public class EmailCCShopping { @Resource - private YzAutomationCcHisMapper yzAutomationCcHisMapper; - @Resource - private EmailCc emailCc; - @Resource - private YzWxByOrderMapper yzWxByOrderMapper; + private RabbitTemplate rabbitTemplate; - /** - * 邮件抄送 - * @param cc_count 重试次数 - */ public void CCShopping(Integer cc_count) { - Map findNotPerformed_Map = new HashMap<>(); - findNotPerformed_Map.put("trigger_type","99"); - findNotPerformed_Map.put("cc_count",cc_count);//重试次数 - List> CcArr = yzAutomationCcHisMapper.findNotPerformed(findNotPerformed_Map); - if (CcArr != null && CcArr.size() > 0) { - //2.获取 通道下卡号 - for (int i = 0; i < CcArr.size(); i++) { - Map Cc_Map = CcArr.get(i); - Map MsgMap = JSON.parseObject(Cc_Map.get("cc_parameter").toString()); - MsgMap.put("Aid",MsgMap.get("ord_no")); - Map OrderMap = yzWxByOrderMapper.findConcise(MsgMap); - if(OrderMap!=null){ - String SendEmail = Cc_Map.get("cc_email").toString(); - Map updHisMap = new HashMap<>(); - updHisMap.put("id",Cc_Map.get("id")); - Map Rmap = null; - Boolean bool = false; - String remark = "",cc_result = "0"; - try { - Rmap = emailCc.ShoppingDelivery_default(OrderMap,SendEmail); - bool = (Boolean) Rmap.get("bool"); - if(bool){ - cc_result = "1"; - } - }catch (Exception e){ - remark = e.getMessage(); - remark = remark.length()>240?remark.substring(0,240):remark; - } - updHisMap.put("remark",remark); - updHisMap.put("cc_result",cc_result); - boolean updHis = yzAutomationCcHisMapper.updCcCount(updHisMap)>0; - System.out.println(">>自动化 已抄送邮箱"+SendEmail+" - 抄送 bool {"+bool+"} 修改 bool {"+updHis+"}<<"); - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_CCShopping_queue"; + String polling_routingKey = "admin.CCShopping.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("cc_count",cc_count); + start_type.put("Masage", "备份 执行 CCShopping_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - - } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCardConsumption.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCardConsumption.java index 0f7a8e1..1ab3c3e 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCardConsumption.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailCardConsumption.java @@ -1,16 +1,14 @@ package com.yunze.quartz.task.yunze.Automation; import com.alibaba.fastjson.JSON; -import com.yunze.common.mapper.yunze.YzCardMapper; -import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; -import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; -import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; -import com.yunze.common.utils.Email.EmailCc; +import com.yunze.common.config.RabbitMQConfig; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.*; +import java.util.HashMap; +import java.util.Map; /** @@ -23,143 +21,31 @@ import java.util.*; @Component("emailCardConsumption") public class EmailCardConsumption { + @Resource - private YzAutomationCcHisMapper yzAutomationCcHisMapper; + private RabbitMQConfig rabbitMQConfig; @Resource - private EmailCc emailCc; - @Resource - private YzCardMapper yzCardMapper; - @Resource - private YzAutomationCcMapper yzAutomationCcMapper; - @Resource - private YzAutomationCcUrlMapper yzAutomationCcUrlMapper; + private RabbitTemplate rabbitTemplate; - /** - * 邮件抄送 - */ - public void CardConsumption() { - Map findMap = new HashMap<>(); - findMap.put("trigger_type", "7"); //自动化触发类型 未划分资费组 - Map CcMessage_Map = new HashMap<>(); - - Map findCardMap = new HashMap<>(); - List agent_idArr = new ArrayList<>(); - agent_idArr.add("100"); - //findCardMap.put("agent_id",agent_idArr);//公司所属 - - findCardMap.put("dimensionField", "1"); // - findCardMap.put("dimensionType", "2"); // - findCardMap.put("dimensionValue", "0.0"); // - - List> AutomationCcArr = yzAutomationCcMapper.findConcise(findMap);//获取自动化 抄送 组 - if (AutomationCcArr != null && AutomationCcArr.size() > 0) { - - - for (int i = 0; i < AutomationCcArr.size(); i++) { - Map CCObj = AutomationCcArr.get(i); - - - if (CCObj.get("dep_id") != null) { - String dep_id = CCObj.get("dep_id").toString(); - if (!dep_id.equals("100")) { - agent_idArr.add(dep_id); - } - } - List operationArr = new ArrayList<>(); - if (CCObj.get("operation_type") != null) { - String arr[] = CCObj.get("operation_type").toString().split(","); - for (int j = 0; j < arr.length; j++) {//java string数组 添加到list - String obj = arr[j]; - if (obj.length() > 0) { - operationArr.add(obj); - } - } - } - - List channelArr = new ArrayList<>(); - if (CCObj.get("channel_id") != null) { - String lst[] = CCObj.get("channel_id").toString().split(","); - for (int j = 0; j < lst.length; j++) {//java string数组 添加到list - String obj = lst[j]; - if (obj.length() > 0) { - channelArr.add(obj); - } - } - } - if (operationArr.size() > 0) { - findCardMap.put("operation_type", operationArr); - findCardMap.put("cd_operator_type", operationArr); - } - if (channelArr.size() > 0) { - findCardMap.put("channel_id", channelArr); - findCardMap.put("cArr", channelArr); - } - findCardMap.put("agent_id", agent_idArr); - - //删除 发送用不到的 key 赋值 前端 选中树控件key - findCardMap.remove("operation_type"); - //findCardMap.remove("agent_id"); - - findCardMap.put("trreAgent_id", agent_idArr); - - - Integer Count = yzCardMapper.selMapCount(findCardMap);//查询总数 - - if (Count != null && Count > 0) { - List> AutomationCcUrlArr = yzAutomationCcUrlMapper.findConcise(CCObj);//获取自动化 抄送 邮箱 - if (AutomationCcUrlArr != null && AutomationCcUrlArr.size() > 0) { - String execution_template = CCObj.get("execution_template").toString(); - - CcMessage_Map.put("Count", Count); - if (execution_template.equals("1")) { - for (int j = 0; j < AutomationCcUrlArr.size(); j++) { - Object eM = AutomationCcUrlArr.get(j).get("email"); - if (eM != null && eM.toString().length() > 0) { - String SendEmail = eM.toString(); - Map saveHisMap = new HashMap<>(); - saveHisMap.put("cc_id", CCObj.get("id")); - saveHisMap.put("cc_url", ""); - saveHisMap.put("cc_email", SendEmail); - saveHisMap.put("cc_state", "1");//已抄送 - - String cc_parameter = JSON.toJSONString(CCObj); - cc_parameter = cc_parameter.length() > 500 ? cc_parameter.substring(0, 500) : cc_parameter; - saveHisMap.put("cc_parameter", cc_parameter); - Map Rmap = null; - Boolean bool = false; - String remark = "", cc_result = "0"; - try { - CcMessage_Map.put("findCardMap", findCardMap); - Rmap = emailCc.CardConsumption_default(CcMessage_Map, SendEmail); - bool = (Boolean) Rmap.get("bool"); - if (bool) { - cc_result = "1"; - } - } catch (Exception e) { - remark = e.getMessage(); - remark = remark.length() > 240 ? remark.substring(0, 240) : remark; - } - saveHisMap.put("remark", remark); - saveHisMap.put("cc_result", cc_result); - boolean saveHis = yzAutomationCcHisMapper.save(saveHisMap) > 0; - log.info(">>自动化 [CardConsumption] 已抄送邮箱{} - 插入抄送记录 bool {} <<", SendEmail, saveHis); - } else { - log.error(">>自动化 [CardConsumption] 抄送邮箱未获取到 - 抄送取消 {} <<", eM); - } - } - } else { - log.error(">>自动化 [CardConsumption] 抄送模板不批对 - 抄送取消 {} <<"); - } - } else { - log.error(">>自动化 [CardConsumption] 获取自动化 抄送 邮箱 未找到数据 - 抄送取消 {} <<"); - } - - - } - } + public void CardConsumption(){ + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_CardConsumption_queue"; + String polling_routingKey = "admin.CardConsumption.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 admin_CardConsumption_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } - } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailPassageway.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailPassageway.java index 57dc755..bb0599d 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailPassageway.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailPassageway.java @@ -7,6 +7,7 @@ import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; import com.yunze.common.utils.Email.EmailCc; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -22,132 +23,51 @@ import java.util.*; public class EmailPassageway { @Resource - private YzAutomationCcHisMapper yzAutomationCcHisMapper; - @Resource - private EmailCc emailCc; - @Resource - private YzCardMapper yzCardMapper; - @Resource - private YzAutomationCcMapper yzAutomationCcMapper; - @Resource - private YzAutomationCcUrlMapper yzAutomationCcUrlMapper; + private RabbitTemplate rabbitTemplate; - /** - * 邮件抄送 - */ public void Passageway() { - - Map findMap = new HashMap<>(); - findMap.put("trigger_type", "6"); //自动化触发类型 未划分通道 - - Map channel_idMap = new HashMap<>(); - - List channel_id = new ArrayList(); - channel_id.add("IsNull"); - channel_idMap.put("channel_id", channel_id); - - Map CcMessage_Map = new HashMap<>(); - - Integer Count = yzCardMapper.selMapCount(channel_idMap);//查询总数 - - System.out.println(Count); - - if (Count != null && Count > 0) { - List> AutomationCcArr = yzAutomationCcMapper.findConcise(findMap);//获取自动化 抄送 组 - if (AutomationCcArr != null && AutomationCcArr.size() > 0) { - for (int i = 0; i < AutomationCcArr.size(); i++) { - Map CCObj = AutomationCcArr.get(i); - List> AutomationCcUrlArr = yzAutomationCcUrlMapper.findConcise(CCObj);//获取自动化 抄送 邮箱 - - if (AutomationCcUrlArr != null && AutomationCcUrlArr.size() > 0) { - String execution_template = CCObj.get("execution_template").toString(); - CcMessage_Map.put("Count", Count); - if (execution_template.equals("1")) { - for (int j = 0; j < AutomationCcUrlArr.size(); j++) { - Object eM = AutomationCcUrlArr.get(j).get("email"); - if (eM != null && eM.toString().length() > 0) { - String SendEmail = eM.toString(); - Map saveHisMap = new HashMap<>(); - saveHisMap.put("cc_id", CCObj.get("id")); - saveHisMap.put("cc_url", ""); - saveHisMap.put("cc_email", SendEmail); - saveHisMap.put("cc_state", "1");//已抄送 - - String cc_parameter = JSON.toJSONString(CCObj); - cc_parameter = cc_parameter.length() > 500 ? cc_parameter.substring(0, 500) : cc_parameter; - saveHisMap.put("cc_parameter", cc_parameter); - Map Rmap = null; - Boolean bool = false; - String remark = "", cc_result = "0"; - try { -// emailMap.put("channel_id", "IsNull");//new 一个map 把String放入 - bool = (Boolean) Rmap.get("bool"); - if (bool) { - cc_result = "1"; - } - } catch (Exception e) { - remark = e.getMessage(); - remark = remark.length() > 240 ? remark.substring(0, 240) : remark; - } - saveHisMap.put("remark", remark); - saveHisMap.put("cc_result", cc_result); - boolean saveHis = yzAutomationCcHisMapper.save(saveHisMap) > 0; - log.info(">>自动化 [EmailPassageway] 已抄送邮箱{} - 插入抄送记录 bool {} <<", SendEmail, saveHis); - } else { - log.error(">>自动化 [EmailPassageway] 抄送邮箱未获取到 - 抄送取消 {} <<", eM); - } - } - } else { - log.error(">>自动化 [EmailPassageway] 抄送模板不批对 - 抄送取消 {} <<"); - } - } else { - log.error(">>自动化 [EmailPassageway] 获取自动化 抄送 邮箱 未找到数据 - 抄送取消 {} <<"); - } - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_Passageway_queue"; + String polling_routingKey = "admin.Passageway.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 Passageway_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } - } - /** - * 邮件抄送 重试 - * - * @param cc_count 重试次数 - */ + public void RetryCC(Integer cc_count) { - Map findNotPerformed_Map = new HashMap<>(); - findNotPerformed_Map.put("trigger_type", "6"); - findNotPerformed_Map.put("cc_count", cc_count);//重试次数 - List> CcArr = yzAutomationCcHisMapper.findNotPerformed(findNotPerformed_Map); - if (CcArr != null && CcArr.size() > 0) { - //2.获取 - for (int i = 0; i < CcArr.size(); i++) { - Map Cc_Map = CcArr.get(i); - Map MsgMap = JSON.parseObject(Cc_Map.get("cc_parameter").toString()); - - String SendEmail = Cc_Map.get("cc_email").toString(); - Map updHisMap = new HashMap<>(); - updHisMap.put("id", Cc_Map.get("id")); - Map Rmap = null; - Boolean bool = false; - String remark = "", cc_result = "0"; - try { - Rmap = emailCc.UndividedChannel_default(MsgMap, SendEmail); - bool = (Boolean) Rmap.get("bool"); - if (bool) { - cc_result = "1"; - } - } catch (Exception e) { - remark = e.getMessage(); - remark = remark.length() > 240 ? remark.substring(0, 240) : remark; - } - updHisMap.put("remark", remark); - updHisMap.put("cc_result", cc_result); - boolean updHis = yzAutomationCcHisMapper.updCcCount(updHisMap) > 0; - System.out.println(">>自动化 [EmailPassageway] 已抄送邮箱" + SendEmail + " - 抄送 bool {" + bool + "} 修改 bool {" + updHis + "}<<"); - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_PassagewayCount_queue"; + String polling_routingKey = "admin.PassagewayCount.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("cc_count",cc_count); + start_type.put("Masage", "备份 执行 PassagewayCount_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } + + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailPayGroup.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailPayGroup.java index a6111ee..930c48a 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailPayGroup.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailPayGroup.java @@ -7,6 +7,7 @@ import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; import com.yunze.common.utils.Email.EmailCc; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -22,129 +23,49 @@ import java.util.*; public class EmailPayGroup { @Resource - private YzAutomationCcHisMapper yzAutomationCcHisMapper; - @Resource - private EmailCc emailCc; - @Resource - private YzCardMapper yzCardMapper; - @Resource - private YzAutomationCcMapper yzAutomationCcMapper; - @Resource - private YzAutomationCcUrlMapper yzAutomationCcUrlMapper; + private RabbitTemplate rabbitTemplate; - /** - * 邮件抄送 - */ public void PayGroup() { - Map findMap = new HashMap<>(); - findMap.put("trigger_type", "5"); //自动化触发类型 未划分资费组 - - Map findStatusAbnormal_map = new HashMap(); - - List package_id = new ArrayList<>(); - package_id.add("IsNull"); - findStatusAbnormal_map.put("package_id", package_id); //资费组 - - Map CcMessage_Map = new HashMap<>(); - - Integer Count = yzCardMapper.selMapCount(findStatusAbnormal_map);//查询总数 - - if (Count != null && Count > 0) { - List> AutomationCcArr = yzAutomationCcMapper.findConcise(findMap);//获取自动化 抄送 组 - if (AutomationCcArr != null && AutomationCcArr.size() > 0) { - for (int i = 0; i < AutomationCcArr.size(); i++) { - Map CCObj = AutomationCcArr.get(i); - List> AutomationCcUrlArr = yzAutomationCcUrlMapper.findConcise(CCObj);//获取自动化 抄送 邮箱 - - if (AutomationCcUrlArr != null && AutomationCcUrlArr.size() > 0) { - String execution_template = CCObj.get("execution_template").toString(); - CcMessage_Map.put("Count", Count); - CcMessage_Map.put("emailMap", findStatusAbnormal_map); - - if (execution_template.equals("1")) { - for (int j = 0; j < AutomationCcUrlArr.size(); j++) { - Object eM = AutomationCcUrlArr.get(j).get("email"); - if (eM != null && eM.toString().length() > 0) { - String SendEmail = eM.toString(); - Map saveHisMap = new HashMap<>(); - saveHisMap.put("cc_id", CCObj.get("id")); - saveHisMap.put("cc_url", ""); - saveHisMap.put("cc_email", SendEmail); - saveHisMap.put("cc_state", "1");//已抄送 - - String cc_parameter = JSON.toJSONString(CCObj); - cc_parameter = cc_parameter.length() > 500 ? cc_parameter.substring(0, 500) : cc_parameter; - saveHisMap.put("cc_parameter", cc_parameter); - Map Rmap = null; - Boolean bool = false; - String remark = "", cc_result = "0"; - try { - Rmap = emailCc.NotDividedIntoTariffGroups_default(CcMessage_Map, SendEmail); - bool = (Boolean) Rmap.get("bool"); - if (bool) { - cc_result = "1"; - } - } catch (Exception e) { - remark = e.getMessage(); - remark = remark.length() > 240 ? remark.substring(0, 240) : remark; - } - saveHisMap.put("remark", remark); - saveHisMap.put("cc_result", cc_result); - boolean saveHis = yzAutomationCcHisMapper.save(saveHisMap) > 0; - log.info(">>自动化 [NoTariffGroup] 已抄送邮箱{} - 插入抄送记录 bool {} <<", SendEmail, saveHis); - } else { - log.error(">>自动化 [NoTariffGroup] 抄送邮箱未获取到 - 抄送取消 {} <<", eM); - } - } - } else { - log.error(">>自动化 [NoTariffGroup] 抄送模板不批对 - 抄送取消 {} <<"); - } - } else { - log.error(">>自动化 [NoTariffGroup] 获取自动化 抄送 邮箱 未找到数据 - 抄送取消 {} <<"); - } - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_PayGroup_queue"; + String polling_routingKey = "admin.PayGroup.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 PayGroup_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - /** - * 邮件抄送 重试 - * - * @param cc_count 重试次数 - */ + public void RetryCC(Integer cc_count) { - Map findNotPerformed_Map = new HashMap<>(); - findNotPerformed_Map.put("trigger_type", "5"); - findNotPerformed_Map.put("cc_count", cc_count);//重试次数 - List> CcArr = yzAutomationCcHisMapper.findNotPerformed(findNotPerformed_Map); - if (CcArr != null && CcArr.size() > 0) { - //2.获取 - for (int i = 0; i < CcArr.size(); i++) { - Map Cc_Map = CcArr.get(i); - Map MsgMap = JSON.parseObject(Cc_Map.get("cc_parameter").toString()); - - String SendEmail = Cc_Map.get("cc_email").toString(); - Map updHisMap = new HashMap<>(); - updHisMap.put("id", Cc_Map.get("id")); - Map Rmap = null; - Boolean bool = false; - String remark = "", cc_result = "0"; - try { - Rmap = emailCc.NotDividedIntoTariffGroups_default(MsgMap, SendEmail); - bool = (Boolean) Rmap.get("bool"); - if (bool) { - cc_result = "1"; - } - } catch (Exception e) { - remark = e.getMessage(); - remark = remark.length() > 240 ? remark.substring(0, 240) : remark; - } - updHisMap.put("remark", remark); - updHisMap.put("cc_result", cc_result); - boolean updHis = yzAutomationCcHisMapper.updCcCount(updHisMap) > 0; - System.out.println(">>自动化 [NoTariffGroup] 已抄送邮箱" + SendEmail + " - 抄送 bool {" + bool + "} 修改 bool {" + updHis + "}<<"); - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_PayGroupCount_queue"; + String polling_routingKey = "admin.PayGroupCount.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("cc_count",cc_count); + start_type.put("Masage", "备份 执行 PayGroupCount_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailServiceOperation.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailServiceOperation.java new file mode 100644 index 0000000..9f338bf --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/EmailServiceOperation.java @@ -0,0 +1,70 @@ +package com.yunze.quartz.task.yunze.Automation; + +import com.alibaba.fastjson.JSON; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/**2022年8月15日14:43:56 + * 定时任务 自动化 邮件抄送 [服务快到期] + *发送邮件给运维 + * @author root + */ +@Slf4j +@Component("emailServiceOperation") +public class EmailServiceOperation { + + @Resource + private RabbitTemplate rabbitTemplate; + + public void ServiceOperation() { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + log.info("发送队列:emailServiceOperation"); + String polling_queueName = "admin_emailServiceOperation_queue"; + String polling_routingKey = "admin.emailServiceOperation.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 emailServiceOperation_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + + + public void RetryCC(Integer cc_count) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_emailServiceOperationCount_queue"; + String polling_routingKey = "admin.emailServiceOperationCount.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("cc_count",cc_count); + start_type.put("Masage", "备份 执行emailServiceOperationCount_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + + + + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/Reminder.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/Reminder.java new file mode 100644 index 0000000..4f5c273 --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/Automation/Reminder.java @@ -0,0 +1,105 @@ +package com.yunze.quartz.task.yunze.Automation; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; +import com.yunze.common.mapper.yunze.card.YzCardUsageReminderMapper; +import com.yunze.common.utils.Email.EmailCc; +import com.yunze.common.utils.yunze.VeDate; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; + +/** + * 定时任务 【邮件抄送】 自动化任务邮件抄送 上游套餐超过百分比 + */ +@Slf4j +@Component("reminder") +public class Reminder { + + @Resource + private RabbitTemplate rabbitTemplate; + + public void Reminder(Integer parameter) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_Reminder_queue"; + String polling_routingKey = "admin.Reminder.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("parameter",parameter); + start_type.put("Masage", "备份 执行 PassagewayCount_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + + + public void RetryCC(Integer cc_count) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_ReminderCount_queue"; + String polling_routingKey = "admin.ReminderCount.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("cc_count",cc_count); + start_type.put("Masage", "备份 执行 ReminderCount_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/InitMQ.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/InitMQ.java index 00d124a..c33e52d 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/InitMQ.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/InitMQ.java @@ -107,8 +107,104 @@ public class InitMQ { Map Obj_75 = new HashMap(); Map Obj_76 = new HashMap(); Map Obj_77 = new HashMap(); - Map Obj_78 = new HashMap(); - Map Obj_79 = new HashMap(); + Map Obj_78 = new HashMap<>(); + Map Obj_79 = new HashMap<>(); + Map Obj_80 = new HashMap(); + Map Obj_81 = new HashMap(); + Map Obj_82 = new HashMap(); + Map Obj_83 = new HashMap(); + Map Obj_84 = new HashMap(); + Map Obj_85 = new HashMap(); + Map Obj_86 = new HashMap(); + Map Obj_87 = new HashMap(); + Map Obj_88 = new HashMap<>(); + Map Obj_89 = new HashMap<>(); + + + + + + Map Obj_90 = new HashMap<>(); + Map Obj_91 = new HashMap<>(); + Map Obj_92 = new HashMap<>(); + Map Obj_93 = new HashMap<>(); + Map Obj_94 = new HashMap<>(); + Map Obj_95 = new HashMap<>(); + Map Obj_96 = new HashMap<>(); + Map Obj_97 = new HashMap<>(); + Map Obj_98 = new HashMap<>(); + Map Obj_99 = new HashMap<>(); + Map Obj_100 = new HashMap<>(); + Map Obj_101 = new HashMap<>(); + Map Obj_102 = new HashMap<>(); + Map Obj_103 = new HashMap<>(); + Map Obj_104 = new HashMap<>(); + Map Obj_105 = new HashMap<>(); + Map Obj_106 = new HashMap<>(); + Map Obj_107 = new HashMap<>(); + Map Obj_108 = new HashMap<>(); + Map Obj_109 = new HashMap<>(); + Map Obj_110 = new HashMap<>(); + Map Obj_111 = new HashMap<>(); + Map Obj_112 = new HashMap<>(); + Map Obj_113 = new HashMap<>(); + Map Obj_114 = new HashMap<>(); + Map Obj_115 = new HashMap<>(); + Map Obj_116 = new HashMap<>(); + Map Obj_117 = new HashMap<>(); + Map Obj_118 = new HashMap<>(); + Map Obj_119 = new HashMap<>(); + Map Obj_120 = new HashMap<>(); + Map Obj_121 = new HashMap<>(); + Map Obj_122 = new HashMap<>(); + Map Obj_123 = new HashMap<>(); + Map Obj_124 = new HashMap<>(); + Map Obj_125 = new HashMap<>(); + Map Obj_126 = new HashMap<>(); + Map Obj_127 = new HashMap<>(); + Map Obj_128 = new HashMap<>(); + Map Obj_129 = new HashMap<>(); + Map Obj_130 = new HashMap<>(); + Map Obj_131 = new HashMap<>(); + Map Obj_132 = new HashMap<>(); + Map Obj_133 = new HashMap<>(); + Map Obj_134 = new HashMap<>(); + Map Obj_135 = new HashMap<>(); + Map Obj_136 = new HashMap<>(); + Map Obj_137 = new HashMap<>(); + Map Obj_138 = new HashMap<>(); + Map Obj_139 = new HashMap<>(); + Map Obj_140 = new HashMap<>(); + Map Obj_141 = new HashMap<>(); + Map Obj_142 = new HashMap<>(); + Map Obj_143 = new HashMap<>(); + Map Obj_144 = new HashMap<>(); + Map Obj_145 = new HashMap<>(); + Map Obj_146 = new HashMap<>(); + Map Obj_147 = new HashMap<>(); + Map Obj_148 = new HashMap<>(); + Map Obj_149 = new HashMap<>(); + Map Obj_150 = new HashMap<>(); + Map Obj_151 = new HashMap<>(); + Map Obj_152 = new HashMap<>(); + Map Obj_153 = new HashMap<>(); + Map Obj_154 = new HashMap<>(); + Map Obj_155 = new HashMap<>(); + Map Obj_156 = new HashMap<>(); + Map Obj_157 = new HashMap<>(); + Map Obj_158 = new HashMap<>(); + Map Obj_159 = new HashMap<>(); + Map Obj_160 = new HashMap<>(); + Map Obj_161 = new HashMap<>(); + Map Obj_162 = new HashMap<>(); + + + + + + + + Obj_1.put("card_exchangeName","admin_exchange"); @@ -508,22 +604,357 @@ public class InitMQ { + Obj_79.put("card_exchangeName","admin_exchange"); + Obj_79.put("card_queueName","admin_DivideInventorydetails_queue"); + Obj_79.put("card_routingKey","admin.DivideInventorydetails.queue"); + + + Obj_80.put("card_exchangeName","admin_exchange"); + Obj_80.put("card_queueName","admin_usageMail_queue"); + Obj_80.put("card_routingKey","admin.usageMail.queue"); + + Obj_81.put("card_exchangeName","admin_exchange"); + Obj_81.put("card_queueName","admin_CardGetOpenDate_queue"); + Obj_81.put("card_routingKey","admin.CardGetOpenDate.queue"); + + Obj_82.put("card_exchangeName","admin_exchange"); + Obj_82.put("card_queueName","admin_sendQuerFlowError_queue"); + Obj_82.put("card_routingKey","admin.sendQuerFlowError.queue"); + + + Obj_83.put("card_exchangeName","admin_exchange"); + Obj_83.put("card_queueName","polling_cardCardBreakNetwork_queue"); + Obj_83.put("card_routingKey","polling.cardCardBreakNetwork.queue"); + + Obj_84.put("card_exchangeName","admin_exchange"); + Obj_84.put("card_queueName","admin_ExportaBusiness_queue"); + Obj_84.put("card_routingKey","admin.ExportaBusiness.queue"); + + Obj_85.put("card_exchangeName","admin_exchange"); + Obj_85.put("card_queueName","admin_ExportaAge_queue"); + Obj_85.put("card_routingKey","admin.ExportaAge.queue"); + + Obj_86.put("card_exchangeName","admin_exchange"); + Obj_86.put("card_queueName","admin_ExportPlatform_queue"); + Obj_86.put("card_routingKey","admin.ExportPlatform.queue"); + + Obj_87.put("card_exchangeName","admin_exchange"); + Obj_87.put("card_queueName","admin_Unsubscribe_queue"); + Obj_87.put("card_routingKey","admin.Unsubscribe.queue"); + Obj_90.put("card_exchangeName","admin_exchange"); + Obj_90.put("card_queueName","admin_EmaiApiSynError_queue"); + Obj_90.put("card_routingKey","admin.EmaiApiSynError.queue"); + + Obj_91.put("card_exchangeName","admin_exchange"); + Obj_91.put("card_queueName","admin_RetryCC_queue"); + Obj_91.put("card_routingKey","admin.RetryCC.queue"); + + Obj_92.put("card_exchangeName","admin_exchange"); + Obj_92.put("card_queueName","admin_CardConsumption_queue"); + Obj_92.put("card_routingKey","admin.CardConsumption.queue"); + + Obj_93.put("card_exchangeName","admin_exchange"); + Obj_93.put("card_queueName","admin_CCCardAbnormalStatus_queue"); + Obj_93.put("card_routingKey","admin.CCCardAbnormalStatus.queue"); + + Obj_94.put("card_exchangeName","admin_exchange"); + Obj_94.put("card_queueName","admin_RetryCCStatus_queue"); + Obj_94.put("card_routingKey","admin.RetryCCStatus.queue"); + + Obj_95.put("card_exchangeName","admin_exchange"); + Obj_95.put("card_queueName","admin_CCShopping_queue"); + Obj_95.put("card_routingKey","admin.CCShopping.queue"); + + Obj_96.put("card_exchangeName","admin_exchange"); + Obj_96.put("card_queueName","admin_Passageway_queue"); + Obj_96.put("card_routingKey","admin.Passageway.queue"); + + Obj_97.put("card_exchangeName","admin_exchange"); + Obj_97.put("card_queueName","admin_PassagewayCount_queue"); + Obj_97.put("card_routingKey","admin.PassagewayCount.queue"); + + Obj_98.put("card_exchangeName","admin_exchange"); + Obj_98.put("card_queueName","admin_PayGroup_queue"); + Obj_98.put("card_routingKey","admin.PayGroup.queue"); + + Obj_99.put("card_exchangeName","admin_exchange"); + Obj_99.put("card_queueName","admin_PayGroupCount_queue"); + Obj_99.put("card_routingKey","admin.PayGroupCount.queue"); + + Obj_100.put("card_exchangeName","admin_exchange"); + Obj_100.put("card_queueName","admin_Reminder_queue"); + Obj_100.put("card_routingKey","admin.Reminder.queue"); + + Obj_101.put("card_exchangeName","admin_exchange"); + Obj_101.put("card_queueName","admin_ReminderCount_queue"); + Obj_101.put("card_routingKey","admin.ReminderCount.queue"); + + Obj_102.put("card_exchangeName","admin_exchange"); + Obj_102.put("card_queueName","admin_rollbackError_queue"); + Obj_102.put("card_routingKey","admin.rollbackError.queue"); + + Obj_103.put("card_exchangeName","admin_exchange"); + Obj_103.put("card_queueName","admin_synchronization_queue"); + Obj_103.put("card_routingKey","admin.synchronization.queue"); + + Obj_104.put("card_exchangeName","admin_exchange"); + Obj_104.put("card_queueName","admin_synchronizationP_queue"); + Obj_104.put("card_routingKey","admin.synchronizationP.queue"); + + Obj_105.put("card_exchangeName","admin_exchange"); + Obj_105.put("card_queueName","admin_CleanUp_queue"); + Obj_105.put("card_routingKey","admin.CleanUp.queue"); + + Obj_106.put("card_exchangeName","admin_exchange"); + Obj_106.put("card_queueName","admin_pollingActivateDateIntelligent_queue"); + Obj_106.put("card_routingKey","admin.pollingActivateDateIntelligent.queue"); + + Obj_107.put("card_exchangeName","admin_exchange"); + Obj_107.put("card_queueName","admin_pollingActivateDate_queue"); + Obj_107.put("card_routingKey","admin.pollingActivateDate.queue"); + + Obj_108.put("card_exchangeName","admin_exchange"); + Obj_108.put("card_queueName","admin_pollingActivateDateCompensate_queue"); + Obj_108.put("card_routingKey","admin.pollingActivateDateCompensate.queue"); + + Obj_109.put("card_exchangeName","admin_exchange"); + Obj_109.put("card_queueName","admin_pollingCardFlow_queue"); + Obj_109.put("card_routingKey","admin.pollingCardFlow.queue"); + + Obj_110.put("card_exchangeName","admin_exchange"); + Obj_110.put("card_queueName","admin_pollingCardFlowSilencePeriod_queue"); + Obj_110.put("card_routingKey","admin.pollingCardFlowSilencePeriod.queue"); + + Obj_111.put("card_exchangeName","admin_exchange"); + Obj_111.put("card_queueName","admin_pollingCardFlowNotRecord_queue"); + Obj_111.put("card_routingKey","admin.pollingCardFlowNotRecord.queue"); + + Obj_112.put("card_exchangeName","admin_exchange"); + Obj_112.put("card_queueName","admin_pollingCardStatus_queue"); + Obj_112.put("card_routingKey","admin.pollingCardStatus.queue"); + + Obj_113.put("card_exchangeName","admin_exchange"); + Obj_113.put("card_queueName","admin_pollingCardTask_queue"); + Obj_113.put("card_routingKey","admin.pollingCardTask.queue"); + + Obj_114.put("card_exchangeName","admin_exchange"); + Obj_114.put("card_queueName","admin_pollingCardStatusNull_queue"); + Obj_114.put("card_routingKey","admin.pollingCardStatusNull.queue"); + + Obj_115.put("card_exchangeName","admin_exchange"); + Obj_115.put("card_queueName","admin_CardActivate_queue"); + Obj_115.put("card_routingKey","admin.CardActivate.queue"); + + Obj_116.put("card_exchangeName","admin_exchange"); + Obj_116.put("card_queueName","admin_pollingActivateTime_queue"); + Obj_116.put("card_routingKey","admin.pollingActivateTime.queue"); + + Obj_117.put("card_exchangeName","admin_exchange"); + Obj_117.put("card_queueName","admin_pollingCardBreakNetwork_queue"); + Obj_117.put("card_routingKey","admin.pollingCardBreakNetwork.queue"); + + Obj_118.put("card_exchangeName","admin_exchange"); + Obj_118.put("card_queueName","admin_pollingCardDisconnected_queue"); + Obj_118.put("card_routingKey","admin.pollingCardDisconnected.queue"); + + Obj_119.put("card_exchangeName","admin_exchange"); + Obj_119.put("card_queueName","admin_CardDisconnectedTest_queue"); + Obj_119.put("card_routingKey","admin.CardDisconnectedTest.queue"); + + Obj_120.put("card_exchangeName","admin_exchange"); + Obj_120.put("card_queueName","admin_pollingCardFlowLessThanZero_queue"); + Obj_120.put("card_routingKey","admin.pollingCardFlowLessThanZero.queue"); + + Obj_121.put("card_exchangeName","admin_exchange"); + Obj_121.put("card_queueName","admin_pollingCardFlowTest_queue"); + Obj_121.put("card_routingKey","admin.pollingCardFlowTest.queue"); + + Obj_122.put("card_exchangeName","admin_exchange"); + Obj_122.put("card_queueName","admin_pollingCardStatusTest_queue"); + Obj_122.put("card_routingKey","admin.pollingCardStatusTest.queue"); + + Obj_123.put("card_exchangeName","admin_exchange"); + Obj_123.put("card_queueName","admin_CardStop_queue"); + Obj_123.put("card_routingKey","admin.CardStop.queue"); + + Obj_124.put("card_exchangeName","admin_exchange"); + Obj_124.put("card_queueName","admin_channelType_queue"); + Obj_124.put("card_routingKey","admin.channelType.queue"); + + Obj_125.put("card_exchangeName","admin_exchange"); + Obj_125.put("card_queueName","admin_pollingActivateDateTest_queue"); + Obj_125.put("card_routingKey","admin.pollingActivateDateTest.queue"); + + Obj_126.put("card_exchangeName","admin_exchange"); + Obj_126.put("card_queueName","admin_pollingCardStatusTime_queue"); + Obj_126.put("card_routingKey","admin.pollingCardStatusTime.queue"); + + Obj_127.put("card_exchangeName","admin_exchange"); + Obj_127.put("card_queueName","admin_channelTime_queue"); + Obj_127.put("card_routingKey","admin.channelTime.queue"); + + Obj_128.put("card_exchangeName","admin_exchange"); + Obj_128.put("card_queueName","admin_channelFindPercentage_queue"); + Obj_128.put("card_routingKey","admin.channelFindPercentage.queue"); + + Obj_129.put("card_exchangeName","admin_exchange"); + Obj_129.put("card_queueName","admin_CardStatusTest_queue"); + Obj_129.put("card_routingKey","admin.CardStatusTest.queue"); + + Obj_130.put("card_exchangeName","admin_exchange"); + Obj_130.put("card_queueName","admin_SynChannel_queue"); + Obj_130.put("card_routingKey","admin.SynChannel.queue"); + + Obj_131.put("card_exchangeName","admin_exchange"); + Obj_131.put("card_queueName","admin_cleanRedisChannel_queue"); + Obj_131.put("card_routingKey","admin.cleanRedisChannel.queue"); + + Obj_132.put("card_exchangeName","admin_exchange"); + Obj_132.put("card_queueName","admin_RebootFlowPolling_queue"); + Obj_132.put("card_routingKey","admin.RebootFlowPolling.queue"); + + Obj_133.put("card_exchangeName","admin_exchange"); + Obj_133.put("card_queueName","admin_RebootCardStop_queue"); + Obj_133.put("card_routingKey","admin.RebootCardStop.queue"); + + Obj_134.put("card_exchangeName","admin_exchange"); + Obj_134.put("card_queueName","admin_RebootCardDisconnected_queue"); + Obj_134.put("card_routingKey","admin.RebootCardDisconnected.queue"); + + Obj_135.put("card_exchangeName","admin_exchange"); + Obj_135.put("card_queueName","admin_SynOfferinginfo_queue"); + Obj_135.put("card_routingKey","admin.SynOfferinginfo.queue"); + + Obj_136.put("card_exchangeName","admin_exchange"); + Obj_136.put("card_queueName","admin_SynOfferinginfoTest_queue"); + Obj_136.put("card_routingKey","admin.SynOfferinginfoTest.queue"); + + Obj_137.put("card_exchangeName","admin_exchange"); + Obj_137.put("card_queueName","admin_SynOfferinginfoMQ_queue"); + Obj_137.put("card_routingKey","admin.SynOfferinginfoMQ.queue"); + + Obj_140.put("card_exchangeName","admin_exchange"); + Obj_140.put("card_queueName","admin_updStatusShowId_queue"); + Obj_140.put("card_routingKey","admin.updStatusShowId.queue"); + + + Obj_138.put("card_exchangeName","admin_exchange"); + Obj_138.put("card_queueName","admin_addPackageProduction_queue"); + Obj_138.put("card_routingKey","admin.addPackageProduction.queue"); + + Obj_139.put("card_exchangeName","admin_exchange"); + Obj_139.put("card_queueName","admin_activationAddPackageProductionAndActivateDate_queue"); + Obj_139.put("card_routingKey","admin.activationAddPackageProductionAndActivateDate.queue"); + + Obj_141.put("card_exchangeName","admin_exchange"); + Obj_141.put("card_queueName","admin_activationAddPackageProduction_queue"); + Obj_141.put("card_routingKey","admin.activationAddPackageProduction.queue"); + + Obj_142.put("card_exchangeName","admin_exchange"); + Obj_142.put("card_queueName","admin_CreateExchange_queue"); + Obj_142.put("card_routingKey","admin.CreateExchange.queue"); + + Obj_143.put("card_exchangeName","admin_exchange"); + Obj_143.put("card_queueName","admin_pollingCardStop_queue"); + Obj_143.put("card_routingKey","admin.pollingCardStop.queue"); + + Obj_144.put("card_exchangeName","admin_exchange"); + Obj_144.put("card_queueName","admin_BatchByBatchAdd_queue"); + Obj_144.put("card_routingKey","admin.BatchByBatchAdd.queue"); + + Obj_145.put("card_exchangeName","admin_exchange"); + Obj_145.put("card_queueName","admin_cleanExecutionTaskFlie_queue"); + Obj_145.put("card_routingKey","admin.cleanExecutionTaskFlie.queue"); + + Obj_146.put("card_exchangeName","admin_exchange"); + Obj_146.put("card_queueName","admin_RenewalToGenerateOrder_queue"); + Obj_146.put("card_routingKey","admin.RenewalToGenerateOrder.queue"); + + Obj_147.put("card_exchangeName","admin_exchange"); + Obj_147.put("card_queueName","admin_UpdOrderStatus_queue"); + Obj_147.put("card_routingKey","admin.UpdOrderStatus.queue"); + + + Obj_148.put("card_exchangeName","admin_exchange"); + Obj_148.put("card_queueName","admin_emailCCRenewal_queue"); + Obj_148.put("card_routingKey","admin.emailCCRenewal.queue"); + + + Obj_149.put("card_exchangeName","admin_exchange"); + Obj_149.put("card_queueName","admin_synchronizationCount_queue"); + Obj_149.put("card_routingKey","admin.synchronizationCount.queue"); + + Obj_150.put("card_exchangeName","admin_exchange"); + Obj_150.put("card_queueName","admin_AssetDetails_queue"); + Obj_150.put("card_routingKey","admin.AssetDetails.queue"); + + + Obj_151.put("card_exchangeName","admin_exchange"); + Obj_151.put("card_queueName","admin_cardInfoChange_queue"); + Obj_151.put("card_routingKey","admin.cardInfoChange.queue"); + + + Obj_152.put("card_exchangeName","polling_cardCardStatus_exchange"); + Obj_152.put("card_queueName","pollingOther_cardCardStatus_queue"); + Obj_152.put("card_routingKey","pollingOther.cardCardStatus.queue"); + + + Obj_153.put("card_exchangeName","polling_cardCardActivateDate_exchange"); + Obj_153.put("card_queueName","pollingOther_cardCardActivateDate_queue"); + Obj_153.put("card_routingKey","pollingOther.cardCardActivateDate.queue"); + + + Obj_154.put("card_exchangeName","admin_exchange"); + Obj_154.put("card_queueName","admin_AgentAssetDetails_queue"); + Obj_154.put("card_routingKey","admin.AgentAssetDetails.queue"); + + + Obj_155.put("card_exchangeName","admin_exchange"); + Obj_155.put("card_queueName","admin_LogClear_queue"); + Obj_155.put("card_routingKey","admin.LogClear.queue"); + + + Obj_156.put("card_exchangeName","admin_exchange"); + Obj_156.put("card_queueName","admin_cardPacketCount_queue"); + Obj_156.put("card_routingKey","admin.cardPacketCount.queue"); + + Obj_157.put("card_exchangeName","admin_exchange"); + Obj_157.put("card_queueName","admin_ExportPacket_queue"); + Obj_157.put("card_routingKey","admin.ExportPacket.queue"); + + + Obj_158.put("card_exchangeName","admin_exchange"); + Obj_158.put("card_queueName","admin_OrderTextRecharge_queue"); + Obj_158.put("card_routingKey","admin.OrderTextRecharge.queue"); + /**2022年8月8日14:29:21 + * 添加cardDueSoon:定时任务:查询服务即将到期的企业并抄送邮件* + */ + Obj_159.put("card_exchangeName","admin_exchange"); + Obj_159.put("card_queueName","admin_CardDueSoon_queue"); + Obj_159.put("card_routingKey","admin_CardDueSoon_queue"); + Obj_160.put("card_exchangeName","admin_exchange"); + Obj_160.put("card_queueName","admin_smsCC_queue"); + Obj_160.put("card_routingKey","admin.smsCC.queue"); + Obj_161.put("card_exchangeName","admin_exchange"); + Obj_161.put("card_queueName","admin_cardSmsExecution_queue"); + Obj_161.put("card_routingKey","admin.cardSmsExecution.queue"); + @@ -616,6 +1047,107 @@ public class InitMQ { MqinitArr.add(Obj_77); MqinitArr.add(Obj_78); + MqinitArr.add(Obj_79); + MqinitArr.add(Obj_80); + + MqinitArr.add(Obj_81); + MqinitArr.add(Obj_82); + MqinitArr.add(Obj_83); + + MqinitArr.add(Obj_84); + + MqinitArr.add(Obj_85); + MqinitArr.add(Obj_86); + MqinitArr.add(Obj_87); + + + + MqinitArr.add(Obj_90); + MqinitArr.add(Obj_91); + MqinitArr.add(Obj_92); + MqinitArr.add(Obj_93); + MqinitArr.add(Obj_94); + MqinitArr.add(Obj_95); + MqinitArr.add(Obj_96); + MqinitArr.add(Obj_97); + MqinitArr.add(Obj_98); + MqinitArr.add(Obj_99); + MqinitArr.add(Obj_100); + MqinitArr.add(Obj_101); + MqinitArr.add(Obj_102); + MqinitArr.add(Obj_103); + MqinitArr.add(Obj_104); + MqinitArr.add(Obj_105); + MqinitArr.add(Obj_106); + MqinitArr.add(Obj_107); + MqinitArr.add(Obj_108); + MqinitArr.add(Obj_109); + MqinitArr.add(Obj_110); + MqinitArr.add(Obj_111); + MqinitArr.add(Obj_112); + MqinitArr.add(Obj_113); + MqinitArr.add(Obj_114); + MqinitArr.add(Obj_115); + MqinitArr.add(Obj_116); + MqinitArr.add(Obj_117); + MqinitArr.add(Obj_118); + + MqinitArr.add(Obj_119); + MqinitArr.add(Obj_120); + MqinitArr.add(Obj_121); + MqinitArr.add(Obj_122); + MqinitArr.add(Obj_123); + MqinitArr.add(Obj_124); + MqinitArr.add(Obj_125); + MqinitArr.add(Obj_126); + MqinitArr.add(Obj_127); + MqinitArr.add(Obj_128); + MqinitArr.add(Obj_129); + MqinitArr.add(Obj_130); + MqinitArr.add(Obj_131); + MqinitArr.add(Obj_132); + MqinitArr.add(Obj_133); + MqinitArr.add(Obj_134); + MqinitArr.add(Obj_135); + MqinitArr.add(Obj_136); + MqinitArr.add(Obj_137); + MqinitArr.add(Obj_138); + MqinitArr.add(Obj_139); + MqinitArr.add(Obj_140); + MqinitArr.add(Obj_141); + MqinitArr.add(Obj_142); + MqinitArr.add(Obj_143); + MqinitArr.add(Obj_144); + MqinitArr.add(Obj_145); + MqinitArr.add(Obj_146); + MqinitArr.add(Obj_147); + MqinitArr.add(Obj_148); + MqinitArr.add(Obj_149); + MqinitArr.add(Obj_150); + MqinitArr.add(Obj_151); + MqinitArr.add(Obj_152); + MqinitArr.add(Obj_153); + MqinitArr.add(Obj_154); + MqinitArr.add(Obj_155); + MqinitArr.add(Obj_156); + MqinitArr.add(Obj_157); + MqinitArr.add(Obj_158); + /** + *2022年8月8日14:28:43 + * 放入 + */ + MqinitArr.add(Obj_159); + MqinitArr.add(Obj_160); + MqinitArr.add(Obj_161); + + + + + + + + + List> MqinitOhthArr = new ArrayList>(); @@ -639,9 +1171,9 @@ public class InitMQ { try { if(Obj.get("is_noDxl")!=null){ - rabbitMQConfig.creatExchangeQueue(card_exchangeName, card_queueName, card_routingKey, null, null, null,null); + rabbitMQConfig.creatExchangeQueue(card_exchangeName, card_queueName, card_routingKey, null, null, null,null); }else{ - rabbitMQConfig.creatExchangeQueue(card_exchangeName, card_queueName, card_routingKey, card_del_exchangeName, card_del_queueName, card_del_routingKey,null); + rabbitMQConfig.creatExchangeQueue(card_exchangeName, card_queueName, card_routingKey, card_del_exchangeName, card_del_queueName, card_del_routingKey,null); } }catch (Exception e){ System.out.println("exchangeName "+card_exchangeName+" Mqinit 初始化失败 ……"+e.getMessage()); diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/OrderAddPackageProductionTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/OrderAddPackageProductionTask.java index 646d421..47ff3e8 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/OrderAddPackageProductionTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/OrderAddPackageProductionTask.java @@ -26,10 +26,6 @@ public class OrderAddPackageProductionTask @Resource private YzOrderMapper yzOrderMapper; - @Resource - private InternalApiRequest internalApiRequest; - @Resource - private ApiParamMap apiParamMap; @Autowired private RabbitMQConfig mQConfig; @Autowired @@ -44,47 +40,53 @@ public class OrderAddPackageProductionTask // 除 生效类型为 [激活生效] 外 所有加包 增加到生产任务中去 - public void addPackageProduction(Integer time) - { - - //0.自动 修改已经加包的订单加包状态 [防止重复加包] + public void addPackageProduction(Integer time) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_addPackageProduction_queue"; + String polling_routingKey = "admin.addPackageProduction.queue"; + String polling_exchangeName = "admin_exchange";//路由 try { - yzOrderMapper.updAutomatic(); - }catch (Exception e){ - System.out.println("无 修改已经加包的订单加包状态"); + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 addPackageProduction_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } - - //1.获取 支付成功 > 用量充值 > 未执行加包的 订单 - Map findAddPackage_Map = new HashMap<>(); - findAddPackage_Map.put("validate_type","4"); - findAddPackage_Map.put("type","notin"); - List> AddPackageArr = yzOrderMapper.findAddPackage(findAddPackage_Map); - AddPackag(AddPackageArr,time); } // 生效类型为 [激活生效] 且 已有生效时间 增加到生产任务中去 - public void activationAddPackageProductionAndActivateDate(Integer time) - { - - //0.自动 修改已经加包的订单加包状态 [防止重复加包] + public void activationAddPackageProductionAndActivateDate(Integer time) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_activationAddPackageProductionAndActivateDate_queue"; + String polling_routingKey = "admin.activationAddPackageProductionAndActivateDate.queue"; + String polling_exchangeName = "admin_exchange";//路由 try { - yzOrderMapper.updAutomatic(); - }catch (Exception e){ - System.out.println("无 修改已经加包的订单加包状态"); + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 activationAddPackageProductionAndActivateDate_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } - - //1.获取 支付成功 > 用量充值 > 未执行加包的 [激活生效] 订单 - Map findAddPackage_Map = new HashMap<>(); - findAddPackage_Map.put("validate_type","4"); - findAddPackage_Map.put("type","in"); - findAddPackage_Map.put("activate_date","notnull"); - List> AddPackageArr = yzOrderMapper.findAddPackage(findAddPackage_Map); - AddPackag(AddPackageArr,time); } + public void AddPackag(List> AddPackageArr,int time){ if(AddPackageArr!=null && AddPackageArr.size()>0){ //卡号放入路由 @@ -113,55 +115,23 @@ public class OrderAddPackageProductionTask // 生效类型为 [激活生效] 且 无生效时间 API更新激活时间 【不生产】让 activationAddPackageProductionAndActivateDate 去生产 - public void activationAddPackageProduction() - { - - //0.自动 修改已经加包的订单加包状态 [防止重复加包] + public void activationAddPackageProduction() { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_activationAddPackageProduction_queue"; + String polling_routingKey = "admin.activationAddPackageProduction.queue"; + String polling_exchangeName = "admin_exchange";//路由 try { - yzOrderMapper.updAutomatic(); - }catch (Exception e){ - System.out.println("无 修改已经加包的订单加包状态"); - } - - - //1.获取 支付成功 > 用量充值 > 未执行加包的 [激活生效] 订单 - Map findAddPackage_Map = new HashMap<>(); - findAddPackage_Map.put("validate_type","4"); - findAddPackage_Map.put("type","in"); - findAddPackage_Map.put("activate_date","null"); - findAddPackage_Map.put("channel_id","notnull"); - - - List> AddPackageArr = yzOrderMapper.findAddPackage(findAddPackage_Map); - - if(AddPackageArr!=null && AddPackageArr.size()>0){ - //2.筛选出 无 激活日期的卡信息 调用API接口请求 获取 激活信息 - for (int i = 0; i < AddPackageArr.size(); i++) { - Map map = AddPackageArr.get(i); - Map Parammap=new HashMap<>(); - Parammap.put("iccid",map.get("iccid")); - Map apiMapNet=apiParamMap.getApiParams(Parammap); - Map Rmap = null;//apiUtil.queryCardActiveTime(apiMapNet,); - String statusCode = Rmap.get("statusCode")!=null?Rmap.get("statusCode").toString():"500"; - if(statusCode.equals("200")){ - //获取 激活日期 开卡日期 更新 card info - if(Rmap.get("activateDate")!=null && Rmap.get("activateDate")!="" && Rmap.get("activateDate").toString().trim().length()>0){ - String activateDate = Rmap.get("activateDate").toString().trim(); - Object openDate = Rmap.get("openDate")!=null && Rmap.get("openDate")!="" && Rmap.get("openDate").toString().trim().length()>0? - Rmap.get("openDate").toString().trim():null; - Map Upd_Map = new HashMap<>(); - Upd_Map.put("activate_date",activateDate); - if(openDate!=null){ - Upd_Map.put("open_date",openDate); - } - Upd_Map.put("id",map.get("Bid")); - boolean bool = yzOrderMapper.updActivate(Upd_Map)>0;//变更激活时间 - System.out.println(map.get("iccid")+" 修改激活时间 bool : "+bool); - } - }else{ - System.out.println(map.get("iccid")+" 未获取到激活日期 !"); - } - } + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 activationAddPackageProduction_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/backups/RollbackCardagent.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/backups/RollbackCardagent.java index 5c801ec..95f6fda 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/backups/RollbackCardagent.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/backups/RollbackCardagent.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.yunze.common.mapper.yunze.YzCardMapper; import com.yunze.common.utils.yunze.VeDate; import com.yunze.common.utils.yunze.WriteCSV; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -17,50 +18,35 @@ import java.util.stream.Collectors; */ @Component("rollbackCardagent") public class RollbackCardagent { + @Resource - private YzCardMapper yzCardMapper; - @Resource - private WriteCSV writeCSV; + private RabbitTemplate rabbitTemplate; - - /** - * 读取 划卡备份 回滚 属性 - * @param Url 文件地址 - * @param error_agent_id 错误的 agent_id - * @param error_user_id 错误的 user_id - */ - public void rollbackError(String Url,Integer error_agent_id,Integer error_user_id){ - - List> dataList = WriteCSV.readCSV(Url,null); - - //分组 更具 dept_id-user_id - Map>> collect = dataList.stream().collect(Collectors.groupingBy(scope->scope.get("dept_id").toString()+'-'+scope.get("user_id").toString())); - System.out.println(JSON.toJSONString(collect)); - System.out.println("====="); - int UpdCpunt = 0 ; - for(Map.Entry>> entry:collect.entrySet()){ - String Keys[] = entry.getKey().split("-"); - List> idArr = entry.getValue(); - String dept_id = Keys[0]; - String user_id = Keys[1]; - Map setMap = new HashMap<>(); - setMap.put("dept_id",dept_id); - setMap.put("user_id",user_id); - setMap.put("error_agent_id",error_agent_id); - setMap.put("error_user_id",error_user_id); - setMap.put("idArr",idArr); - int CUpdCpunt = yzCardMapper.dividCardBk(setMap); - UpdCpunt += CUpdCpunt; - System.out.println(" 总修改 :"+UpdCpunt+" ,本次 【"+ VeDate.getStringDateSSS()+"】 ["+entry.getKey()+"] 修改 "+CUpdCpunt+" idArr.size() "+idArr.size()); + public void rollbackError(String Url,Integer error_agent_id,Integer error_user_id) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_rollbackError_queue"; + String polling_routingKey = "admin.rollbackError.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Url",Url); + start_type.put("error_agent_id",error_agent_id); + start_type.put("error_user_id",error_user_id); + start_type.put("Masage", "备份 执行 rollbackError_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } - - System.out.println(" 修改完成 "+VeDate.getStringDateSSS()+" UpdCpunt "+UpdCpunt); } - public static void main(String[] args) { - RollbackCardagent init = new RollbackCardagent(); - //init.initMQConfig(); - } + + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardBrief.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardBrief.java new file mode 100644 index 0000000..c4f08a2 --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardBrief.java @@ -0,0 +1,41 @@ +package com.yunze.quartz.task.yunze.card; + +import com.alibaba.fastjson.JSON; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 定时任务 yz_card_brief 表初始化 任务(从yz_card_info 表 分批次查询数据插入到该表中) + */ +@Component("cardBrief") +public class CardBrief { + + + @Resource + private RabbitTemplate rabbitTemplate; + + public void BatchByBatchAdd() { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_BatchByBatchAdd_queue"; + String polling_routingKey = "admin.BatchByBatchAdd.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 BatchByBatchAdd_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardDueSoon.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardDueSoon.java new file mode 100644 index 0000000..51c270e --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardDueSoon.java @@ -0,0 +1,42 @@ +package com.yunze.quartz.task.yunze.card; + +import com.alibaba.fastjson.JSON; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 2022年8月8日14:29:33 + * todo 这个用来写定时任务:检查所有即将到期的服务,并抄送邮件 + */ +@Component("cardDueSoon") +public class CardDueSoon { + + + @Resource + private RabbitTemplate rabbitTemplate; + + public void CardDueSoon() { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_CardDueSoon_queue"; + String polling_routingKey = "admin.CardDueSoon.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 admin_CardDueSoon_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + +} +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardInfoChangeTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardInfoChangeTask.java new file mode 100644 index 0000000..083bfd3 --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardInfoChangeTask.java @@ -0,0 +1,40 @@ +package com.yunze.quartz.task.yunze.card; + +import com.alibaba.fastjson.JSON; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 定时任务 yz_card_info_change 删除 系统参数配置下 数据 + */ +@Component("cardInfoChange") +public class CardInfoChangeTask { + + + @Resource + private RabbitTemplate rabbitTemplate; + + public void ClearUp() { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_cardInfoChange_queue"; + String polling_routingKey = "admin.cardInfoChange.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("定时删除 yz_card_info_change 表数据 失败 " + e.getMessage().toString()); + } + } + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardPacketCountTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardPacketCountTask.java new file mode 100644 index 0000000..e4dbcea --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardPacketCountTask.java @@ -0,0 +1,40 @@ +package com.yunze.quartz.task.yunze.card; + +import com.alibaba.fastjson.JSON; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 定时任务 资费计划 卡数量同步 + */ +@Component("cardPacketCountTask") +public class CardPacketCountTask { + + + @Resource + private RabbitTemplate rabbitTemplate; + + public void SynPacketCount() { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_cardPacketCount_queue"; + String polling_routingKey = "admin.cardPacketCount.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(" 资费计划 卡数量同步 表数据 失败 " + e.getMessage().toString()); + } + } + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardPostageConsumption.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardPostageConsumption.java new file mode 100644 index 0000000..1ca815d --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardPostageConsumption.java @@ -0,0 +1,40 @@ +package com.yunze.quartz.task.yunze.card; + +import com.alibaba.fastjson.JSON; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 定时任务 一键同步 用量总和 、已用流量 、剩余流量 、已用百分比 卡总数 + * */ +@Component("cardPostageConsumption") +public class CardPostageConsumption { + + @Resource + private RabbitTemplate rabbitTemplate; + + public void synchronization() { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_synchronizationCount_queue"; + String polling_routingKey = "admin.synchronizationCount.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 synchronizationConsumption_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardSmsTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardSmsTask.java new file mode 100644 index 0000000..9cdb1b6 --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/card/CardSmsTask.java @@ -0,0 +1,47 @@ +package com.yunze.quartz.task.yunze.card; + +import com.alibaba.fastjson.JSON; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * @Auther: zhang feng + * @Date: 2022/08/17/13:59 + * @Description: 短信任务下发队列 + */ +@Component("cardSmsTask") +public class CardSmsTask { + + @Resource + private RabbitTemplate rabbitTemplate; + + + /** + * 短信抄送下发 + * @param type + */ + public void SynPacketCount(String type) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_cardSmsExecution_queue"; + String polling_routingKey = "admin.cardSmsExecution.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + Map start_type = new HashMap<>(); + start_type.put("type",type);//启动抄送类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(" 短信任务下发队列 失败 " + e.getMessage().toString()); + } + } + + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/cardflow/CardCount.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/cardflow/CardCount.java index b4ea0b5..bfbb2ca 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/cardflow/CardCount.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/cardflow/CardCount.java @@ -1,8 +1,11 @@ package com.yunze.quartz.task.yunze.cardflow; +import com.alibaba.fastjson.JSON; import com.yunze.apiCommon.mapper.YzCardRouteMapper; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.HashMap; @@ -17,26 +20,28 @@ import java.util.Map; public class CardCount { @Resource - private YzCardRouteMapper yzCardRouteMapper; + private RabbitTemplate rabbitTemplate; public void synchronization() { - - Map Rmap = new HashMap<>(); - - List> list = yzCardRouteMapper.countId(Rmap);//查询 通道卡总数 - if (list != null) { - try { - for (int i = 0; i < list.size(); i++) { - Map obj = list.get(i); - if (obj.get("channel_id") != null) { - Integer integer = yzCardRouteMapper.upCount(obj); //进行修改 通道表 卡总数 - log.info(integer +"数据操作成功"); - } - } - } catch (Exception e) { - System.out.println("操作异常" + e.getMessage()); - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_synchronization_queue"; + String polling_routingKey = "admin.synchronization.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 synchronization_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } + + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/cardflow/CardPostageCount.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/cardflow/CardPostageCount.java index d11453a..76f29fc 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/cardflow/CardPostageCount.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/cardflow/CardPostageCount.java @@ -1,9 +1,13 @@ package com.yunze.quartz.task.yunze.cardflow; +import com.alibaba.fastjson.JSON; +import com.yunze.common.config.RabbitMQConfig; import com.yunze.common.mapper.yunze.YzAgentPackageMapper; import com.yunze.common.mapper.yunze.YzCardPackageMapper; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.HashMap; @@ -18,38 +22,31 @@ import java.util.Map; public class CardPostageCount { @Resource - private YzCardPackageMapper yzCardPackageMapper; + private RabbitMQConfig rabbitMQConfig; @Resource - private YzAgentPackageMapper yzAgentPackageMapper; + private RabbitTemplate rabbitTemplate; - - public void synchronization() { - Map Rmap = new HashMap<>(); - - List> Cardlist = yzCardPackageMapper.cardCount(Rmap);//平台资费组 - List> AgentList = yzAgentPackageMapper.agentCount(Rmap);//代理资费组 - - if (Cardlist != null && AgentList != null) { - try { - for (int i = 0; i < Cardlist.size(); i++) { - Map obj = Cardlist.get(i); - if (obj.get("package_id") != null) { - Integer integer = yzCardPackageMapper.upCountC(obj); //进行修改 平台资费组 卡总数 - log.info(integer + "平台资费组--->数据操作成功"); - } - } - for (int i = 0; i < AgentList.size(); i++) { - Map obj = AgentList.get(i); - if (obj.get("package_id") != null) { - Integer integer = yzAgentPackageMapper.upCountA(obj); //进行修改 代理资费组 卡总数 - log.info(integer + "代理资费组--->数据操作成功"); - } - } - } catch (Exception e) { - System.out.println("操作异常" + e.getMessage()); - } + public void synchronization(Integer Time){ + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_synchronizationP_queue"; + String polling_routingKey = "admin.synchronizationP.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 synchronizationP_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (Time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } + } + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/cardflow/CleanUpCardFliwHis.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/cardflow/CleanUpCardFliwHis.java index 3031f68..e5e5277 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/cardflow/CleanUpCardFliwHis.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/cardflow/CleanUpCardFliwHis.java @@ -1,5 +1,6 @@ package com.yunze.quartz.task.yunze.cardflow; +import com.alibaba.fastjson.JSON; import com.yunze.common.mapper.yunze.YrootlowHisMapper; import com.yunze.common.utils.yunze.VeDate; import org.springframework.amqp.rabbit.core.RabbitTemplate; @@ -20,36 +21,27 @@ import java.util.Map; public class CleanUpCardFliwHis { @Resource - private YrootlowHisMapper yrootlowHisMapper; + private RabbitTemplate rabbitTemplate; - public void CleanUp(String day){ - - if(day!=null && day.length()>0){ - Integer datint = Integer.parseInt(day); - if(datint>=31){ - Map map = new HashMap<>(); - String yyyy_MM_dd_HH_mm_ss = VeDate.getStringDate(); - String create_time = VeDate.getNextDay(yyyy_MM_dd_HH_mm_ss.split(" ")[0],"-"+day); - map.put("create_time", create_time); - List delArr = yrootlowHisMapper.getOneThousand(map); - if(delArr!=null){ - del(map,delArr); - } - }else{ - System.out.println("day "+day+" <31 不允许进行删除!记录" ); - } + public void CleanUp(String day) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_CleanUp_queue"; + String polling_routingKey = "admin.CleanUp.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("day",day); + start_type.put("Masage", "备份 执行 CleanUp_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - public void del(Map map,List delArr){ - Map delMap = new HashMap<>(); - delMap.put("idArr", delArr); - int delCount = yrootlowHisMapper.delFlow(delMap); - System.out.println("已删除 delArr[0] "+delArr.get(0)+" 至 delArr.get(delArr.size()-1) "+delArr.get(delArr.size()-1)+" "+delCount+"条"); - List delArr_1 = yrootlowHisMapper.getOneThousand(map); - if(delArr_1!=null){ - del(map,delArr_1); - } - } - } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardActivateDateTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardActivateDateTask.java index c0059db..f4c0c48 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardActivateDateTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardActivateDateTask.java @@ -24,210 +24,51 @@ import java.util.Map; @Component("cardActivateDateTask") public class CardActivateDateTask { - @Resource - private YzCardRouteMapper yzCardRouteMapper; - @Resource - private YzCardMapper yzCardMapper; @Resource private RabbitTemplate rabbitTemplate; - @Resource - private YzPassagewayPollingMapper yzPassagewayPollingMapper; - - @Resource - private RabbitMQConfig rabbitMQConfig; - - - String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, - ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; - - - - - - /** - * 轮询 激活时间 - * type Slight .还没有用量的数据; 2.超出用量的 Serious - * @param type - * @param time 多少 分钟 后失效 - */ public void pollingActivateDate(String type, Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - findMap.put("type", type); - List> cardArr = yzCardMapper.channelCardSeriousAndSlight(findMap); - if (cardArr != null && cardArr.size() > 0) { - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - //激活时间 任务生产 - findMap.put("Arr", cardArr); - List> ActivateArr = yzCardMapper.activate_dateNull(findMap);// 获取激活时间为空 iccid - if (ActivateArr != null && ActivateArr.size() > 0) { - String polling_id = VeDate.getNo(4); - //创建 路由 新增轮询详情 生产启动类型消息 - ActivateDateRun(ActivateArr,channel_obj,polling_id,cd_id,time,pollingPublic_Map); - } - - } - } - } - } - - - /** - * 轮询 激活时间 - * @param time - */ - public void pollingActivateDateIntelligent(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - findRouteID_Map.put("cd_algorithm", "1");//高频轮询 - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - findMap.put("activate_date", "Null");//激活时间 为空时才获取 - - List> cardArr = yzCardMapper.findChannelIdCar(findMap); - if (cardArr != null && cardArr.size() > 0) { - String polling_id = VeDate.getNo(4); - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - //创建 路由 新增轮询详情 生产启动类型消息 - ActivateDateRun(cardArr,channel_obj,polling_id,cd_id,time,pollingPublic_Map); - } - - } - } - } - - - - - - - - - - - - - - - - - - - - - - - - - /** - * 激活时间 任务发送消息 - * @param ActivateArr - * @param channel_obj - * @param polling_id - * @param cd_id - * @param time - */ - public void ActivateDateRun(List> ActivateArr, Map channel_obj, String polling_id,String cd_id,int time,Map pollingPublic_Map) { - + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_CardActivate_queue"; + String polling_routingKey = "admin.CardActivate.queue"; + String polling_exchangeName = "admin_exchange";//路由 try { - //设置任务 路由器 名称 与队列 名称 - ad_exchangeName = "polling_cardActivateDate_exchange"; - ad_queueName = "polling_cardActivateDate_queue"; - ad_routingKey = "polling.cardActivateDate.routingKey"; - ad_del_exchangeName = "polling_dlxcardActivateDate_exchange"; - ad_del_queueName = "polling_dlxcardActivateDate_queue" ; - ad_del_routingKey = "polling.dlxcardActivateDate.routingKey"; - // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, ad_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); - - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - - pollingPublic_Map.put("polling_type", "1"); - pollingPublic_Map.put("cd_count", ActivateArr.size()); - pollingPublic_Map.put("polling_id", polling_id); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - - - for (int j = 0; j < ActivateArr.size(); j++) { - Map card = ActivateArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("polling_id", polling_id);//轮询任务详情编号 - String msg = JSON.toJSONString(Card); - //1. 更新激活时间 [生产任务] - try { - rabbitTemplate.convertAndSend(ad_exchangeName, ad_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - } - } - - - - - /** - * 创建 激活时间 轮询 生产者路由队列 及 数据库 插入 轮询信息 - * @param time - * @param size - * @param polling_id - * @param pollingPublic_Map - * @return - */ - /*public boolean ActivateDate(int time, int size, String polling_id,Map pollingPublic_Map) { - boolean bool = true; - try { - //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.FANOUT); + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); Map start_type = new HashMap<>(); - start_type.put("type", "ActivateDate"); + start_type.put("type",type); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 CardActivate_queue ");//启动类型 rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); return message; }); - pollingPublic_Map.put("polling_type", "1"); - pollingPublic_Map.put("cd_count", size); - pollingPublic_Map.put("polling_id", polling_id); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 } catch (Exception e) { - System.out.println("生产 轮询 [ActivateDate] 启动类型 失败 " + e.getMessage().toString()); + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } - return bool; - }*/ - - + } + public void pollingActivateDateIntelligent(Integer time) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingActivateTime_queue"; + String polling_routingKey = "admin.pollingActivateTime.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingActivateTime_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardBreakNetworkTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardBreakNetworkTask.java new file mode 100644 index 0000000..a03cf8f --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardBreakNetworkTask.java @@ -0,0 +1,51 @@ +package com.yunze.quartz.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 定时任务 通道轮询 未订购断网 + * + * @author root + */ +@Component("cardBreakNetworkTask") +public class CardBreakNetworkTask { + + @Resource + private RabbitTemplate rabbitTemplate; + + public void pollingCardBreakNetwork(Integer time) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardBreakNetwork_queue"; + String polling_routingKey = "admin.pollingCardBreakNetwork.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingCardBreakNetwork_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardDisconnectedTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardDisconnectedTask.java index 94dc21f..ea49927 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardDisconnectedTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardDisconnectedTask.java @@ -25,150 +25,56 @@ import java.util.Map; @Component("cardDisconnectedTask") public class CardDisconnectedTask { - @Resource - private YzCardRouteMapper yzCardRouteMapper; - @Resource - private YzCardMapper yzCardMapper; + @Resource private RabbitTemplate rabbitTemplate; - @Resource - private YzPassagewayPollingMapper yzPassagewayPollingMapper; - - @Resource - private RabbitMQConfig rabbitMQConfig; - @Resource - private RedisCache redisCache; - //卡轮询 路由队列 - String polling_queueName = "polling_card_disconnected"; - String polling_routingKey = "polling.card.disconnected"; - String polling_exchangeName = "polling_card"; - - // - String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, - ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; - - - - - - /** - * 轮询 卡状态 - * @param time 多少 分钟 后失效 - */ public void pollingCardDisconnected(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - String CardDisconnected_routingKey = ""; - try { - ad_exchangeName = "polling_cardCardDisconnected_exchange"; - ad_queueName = "polling_cardCardDisconnected_queue"; - CardDisconnected_routingKey = "polling.cardCardDisconnected.routingKey"; - ad_del_exchangeName = "polling_dlxcardCardDisconnected_exchange"; - ad_del_queueName = "polling_dlxcardCardDisconnected_queue"; - ad_del_routingKey = "polling.dlxcardCardDisconnected.routingKey"; - // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardDisconnected_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); - - } catch (Exception e) { - System.out.println(e.getMessage()); - } - - - - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - List> cardArr = yzCardMapper.findChannelIdDisconnected(findMap); - if (cardArr != null && cardArr.size() > 0) { - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - - //卡状态 用量 轮询 - String polling_id_CardDisconnected = VeDate.getNo(4); - - pollingPublic_Map.put("polling_type", "5"); - pollingPublic_Map.put("cd_count", cardArr.size()); - pollingPublic_Map.put("polling_id", polling_id_CardDisconnected); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - //创建 路由 新增轮询详情 生产启动类型消息 - Map start_type = new HashMap(); - start_type.put("Listener","polling_cardCardDisconnected_queue"); - start_type.put("cd_id", cd_id); - - //2.卡状态 - //卡号放入路由 - for (int j = 0; j < cardArr.size(); j++) { - Map card = cardArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("status_id", card.get("status_id")); - Card.put("polling_id", polling_id_CardDisconnected);//轮询任务详情编号 - - String msg = JSON.toJSONString(Card); - //生产任务 - try { - rabbitTemplate.convertAndSend("polling_cardCardDisconnected_exchange", CardDisconnected_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - } catch (Exception e) { - System.out.println(e.getMessage()); - } - } - } - } - } - } - - - /** - * 创建 卡状态 轮询 生产者路由队列 及 数据库 插入 轮询信息 - * @param time - * @param size - * @param polling_id - * @param pollingPublic_Map - * @param start_type - * @return - */ - public boolean CardDisconnected(int time, int size, String polling_id,Map pollingPublic_Map,Map start_type) { - boolean bool = true; - //卡状态 轮询 + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardDisconnected_queue"; + String polling_routingKey = "admin.pollingCardDisconnected.queue"; + String polling_exchangeName = "admin_exchange";//路由 try { - //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.FANOUT); - start_type.put("type", "CardDisconnected"); + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingCardDisconnected_queue ");//启动类型 rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); return message; }); - pollingPublic_Map.put("polling_type", "5"); - pollingPublic_Map.put("cd_count", size); - pollingPublic_Map.put("polling_id", polling_id); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - } catch (Exception e) { - bool = false; - System.out.println("生产 轮询 [CardDisconnected] 启动类型 失败 " + e.getMessage().toString()); + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } - return bool; } - - - - + public void CardDisconnected(int time, int size, String polling_id,Map pollingPublic_Map,Map start_type) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_CardDisconnectedTest_queue"; + String polling_routingKey = "admin.CardDisconnectedTest.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type2 = new HashMap<>(); + start_type2.put("time",time); + start_type2.put("size",size); + start_type2.put("polling_id",polling_id); + start_type2.put("pollingPublic_Map",pollingPublic_Map); + start_type2.put("start_type",start_type); + start_type2.put("Masage", "备份 执行 CardDisconnectedTest_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type2), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardFlowLessThanZeroTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardFlowLessThanZeroTask.java index 976602f..5f7cbc7 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardFlowLessThanZeroTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardFlowLessThanZeroTask.java @@ -21,67 +21,27 @@ import java.util.Map; public class CardFlowLessThanZeroTask { - @Resource - private YzCardRouteMapper yzCardRouteMapper; @Resource private RabbitTemplate rabbitTemplate; - @Resource - private YrootlowHisMapper yrootlowHisMapper; - public void pollingCardFlowLessThanZero(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - List lArr = yrootlowHisMapper.lessThanZeroChannelId(null); - if(lArr!=null && lArr.size()>0){ - findRouteID_Map.put("Cd_idArr", lArr); - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - String CardFlow_routingKey = "polling.cardCardFlowLessThanZero.routingKey"; - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - - List> cardArr = yrootlowHisMapper.findChannelIdLessThanZero(findMap); - if (cardArr != null && cardArr.size() > 0) { - pollingExecute(cardArr,channel_obj,CardFlow_routingKey,time); - } - } - } - } - } - - - /** - * 公共执行 - * @param cardArr - * @param channel_obj - * @param CardFlow_routingKey - * @param time - */ - public void pollingExecute(List> cardArr,Map channel_obj,String CardFlow_routingKey,Integer time){ - //卡号放入路由 - for (int j = 0; j < cardArr.size(); j++) { - Map card = cardArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("network_type", card.get("network_type")); - String msg = JSON.toJSONString(Card); - //生产任务 - try { - rabbitTemplate.convertAndSend("polling_cardCardFlow_exchange", CardFlow_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardFlowLessThanZero_queue"; + String polling_routingKey = "admin.pollingCardFlowLessThanZero.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingCardFlowLessThanZero_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardFlowTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardFlowTask.java index ebc68c1..7dc2a27 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardFlowTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardFlowTask.java @@ -24,253 +24,31 @@ import java.util.Map; @Component("cardFlowTask") public class CardFlowTask { - @Resource - private YzCardRouteMapper yzCardRouteMapper; - @Resource - private YzCardMapper yzCardMapper; @Resource private RabbitTemplate rabbitTemplate; - @Resource - private YzPassagewayPollingMapper yzPassagewayPollingMapper; - - @Resource - private RabbitMQConfig rabbitMQConfig; - - //卡轮询 路由队列 - String polling_queueName = "polling_card_flow"; - String polling_routingKey = "polling.card.flow"; - String polling_exchangeName = "polling_card"; - - // - String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, - ad_del_exchangeName = null, ad_del_queueName = null, ad_del_routingKey = null; - - - /** - * 轮询 用量 指定单个通道创建 消费者 【用来补救 消费者灵活监听时 没有创建 成功 消费者 进行 手动 补救创建 消费者】 - * @param time 多少 分钟 后失效 - */ - /*public void CardFlowCreateListener(Integer time, String cd_id) { - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id", cd_id); - //生产任务 - try { - rabbitTemplate.convertAndSend("polling_cardCardFlow_exchange", "admin.CardFlow.queue.One", JSON.toJSONString(findRouteID_Map), message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - }*/ - - - - /** - * 轮询 用量 指定单个通道轮询 - * - * @param time 多少 分钟 后失效 - */ - /* public void pollingCardFlowOne(Integer time, String cd_id) { - - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id", cd_id); - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - - Map findMap = new HashMap<>(); - findMap.put("channel_id", cd_id); - List> cardArr = yzCardMapper.findChannelIdCar(findMap); - if (cardArr != null && cardArr.size() > 0) { - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - - //卡状态 用量 轮询 - String polling_id_CardFlow = VeDate.getNo(4); - //创建 路由 新增轮询详情 生产启动类型消息 - pollingPublic_Map.put("polling_type", "3"); - pollingPublic_Map.put("cd_count", cardArr.size()); - pollingPublic_Map.put("polling_id", polling_id_CardFlow); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - //2.卡状态 - //卡号放入路由 - //设置任务 路由器 名称 与队列 名称 - String card_exchangeName = "", card_queueName = "", card_routingKey = "", - card_del_exchangeName = "", card_del_queueName = "" , card_del_routingKey = ""; - - try { - card_exchangeName = "polling_cardCardFlow_exchange"; - card_queueName = "polling_cardCardFlow_queue"; - card_routingKey = "polling.cardCardFlow.routingKey"; - card_del_exchangeName = "polling_dlxcardCardFlow_exchange"; - card_del_queueName = "polling_dlxcardCardFlow_queue"; - card_del_routingKey = "polling.dlxcardCardFlow.routingKey"; - //rabbitMQConfig.creatExchangeQueue(card_exchangeName, card_queueName, card_routingKey, card_del_exchangeName, card_del_queueName, card_del_routingKey, null); - System.out.println("pollingCardFlowOne 创建 【" + channelArr.get(0) + "】 成功 !"); - } catch (Exception e) { - System.out.println("pollingCardFlowOne 队列 创建 【" + channelArr.get(0) + "】 失败 " + e.getMessage()); - } - - - for (int j = 0; j < cardArr.size(); j++) { - Map card = cardArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channelArr.get(0)); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("network_type", card.get("network_type")); - Card.put("polling_id", polling_id_CardFlow);//轮询任务详情编号 - String msg = JSON.toJSONString(Card); - //生产任务 - try { - rabbitTemplate.convertAndSend(card_exchangeName, card_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - } - } - } -*/ - - /** - * 轮询 卡状态 - * - * @param time 多少 分钟 后失效 - */ public void pollingCardFlow(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id", null); - findRouteID_Map.put("cd_algorithm", "1");//高频轮询 - - - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - String CardFlow_routingKey = ""; - try { - //设置任务 路由器 名称 与队列 名称 - ad_exchangeName = "polling_cardCardFlow_exchange"; - ad_queueName = "polling_cardCardFlow_queue"; - CardFlow_routingKey = "polling.cardCardFlow.routingKey"; - ad_del_exchangeName = "polling_dlxcardCardFlow_exchange"; - ad_del_queueName = "polling_dlxcardCardFlow_queue"; - ad_del_routingKey = "polling.dlxcardCardFlow.routingKey"; - // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardFlow_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey, null); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - List> cardArr = yzCardMapper.findChannelIdCar(findMap); - if (cardArr != null && cardArr.size() > 0) { - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - //卡状态 用量 轮询 - String polling_id = VeDate.getNo(4); - - pollingPublic_Map.put("polling_type", "3"); - pollingPublic_Map.put("cd_count", cardArr.size()); - pollingPublic_Map.put("polling_id", polling_id); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - //2.卡状态 - //卡号放入路由 - for (int j = 0; j < cardArr.size(); j++) { - Map card = cardArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("network_type", card.get("network_type")); - Card.put("polling_id", polling_id);//轮询任务详情编号 - String msg = JSON.toJSONString(Card); - //生产任务 - try { - rabbitTemplate.convertAndSend("polling_cardCardFlow_exchange", CardFlow_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - } - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardFlowTest_queue"; + String polling_routingKey = "admin.pollingCardFlowTest.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingCardFlowTest_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - /** - * 创建 卡状态 轮询 生产者路由队列 及 数据库 插入 轮询信息 - * - * @param time - * @param size - * @param polling_id - * @param pollingPublic_Map - * @return - */ - /*public boolean CardFlow(Integer time, Integer size, String polling_id, Map pollingPublic_Map) { - boolean bool = true; - //卡状态 轮询 - try { - //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.FANOUT); - Map start_type = new HashMap<>(); - start_type.put("type", "CardFlow"); - rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - pollingPublic_Map.put("polling_type", "3"); - pollingPublic_Map.put("cd_count", size); - pollingPublic_Map.put("polling_id", polling_id); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - } catch (Exception e) { - bool = false; - System.out.println("生产 轮询 [CardFlow] 启动类型 失败 " + e.getMessage().toString()); - } - return bool; - }*/ - - - /** - * 直接再次启动 - * - * @param time - * @return - */ - /*public boolean StartCardFlow(Integer time) { - boolean bool = true; - //卡状态 轮询 - try { - //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.FANOUT); - Map start_type = new HashMap<>(); - start_type.put("type", "CardFlow"); - rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - } catch (Exception e) { - bool = false; - System.out.println("生产 轮询 [StartCardFlow] 启动类型 失败 " + e.getMessage().toString()); - } - return bool; - }*/ } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardOtherStatusTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardOtherStatusTask.java new file mode 100644 index 0000000..580f711 --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardOtherStatusTask.java @@ -0,0 +1,126 @@ +package com.yunze.quartz.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 定时任务 卡状态类型为 字典 指定类型 pollingOther_cardCardStatus_queue 下数据时 + * + * @author root + */ +@Component("cardOtherStatusTask") +public class CardOtherStatusTask { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + + String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null; + + + /** + * 轮询 卡状态 + * @param time 多少 分钟 后失效 + */ + public void pollingCardStatus(Integer time) { + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + + try { + //设置任务 路由器 名称 与队列 名称 + ad_exchangeName = "polling_cardCardStatus_exchange"; + ad_queueName = "pollingOther_cardCardStatus_queue" ; + ad_routingKey = "pollingOther.cardCardStatus.queue"; + }catch (Exception e){ + System.out.println(e.getMessage()); + } + + + List status_ShowIdArr = new ArrayList<>();//需要轮询的 卡状态 + Map findDict = new HashMap<>(); + findDict.put("dict_type", "pollingOther_cardCardStatus"); + List> dict_dataArr = yzCardMapper.findDict(findDict); + if(dict_dataArr!=null && dict_dataArr.size()>0){ + for (int i = 0; i < dict_dataArr.size(); i++) { + Map dict = dict_dataArr.get(i); + status_ShowIdArr.add(dict.get("dict_value").toString()); + } + } + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + findMap.put("status_ShowIdArr", status_ShowIdArr); + List> cardArr = yzCardMapper.findChannelIdCar(findMap); + if (cardArr != null && cardArr.size() > 0) { + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + //卡状态 用量 轮询 + String polling_id_CardStatus = VeDate.getNo(4); + pollingPublic_Map.put("polling_type", "20"); + pollingPublic_Map.put("cd_count", cardArr.size()); + pollingPublic_Map.put("polling_id", polling_id_CardStatus); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + //创建 路由 新增轮询详情 生产启动类型消息 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("polling_id", polling_id_CardStatus);//轮询任务详情编号 + String msg = JSON.toJSONString(Card); + //生产任务 + try { + rabbitTemplate.convertAndSend(ad_exchangeName, ad_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } + } + } + } + } + + + + + + + + + + + + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardStatusTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardStatusTask.java index 8586895..f6cbe58 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardStatusTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardStatusTask.java @@ -24,112 +24,31 @@ import java.util.Map; @Component("cardStatusTask") public class CardStatusTask { - @Resource - private YzCardRouteMapper yzCardRouteMapper; - @Resource - private YzCardMapper yzCardMapper; @Resource private RabbitTemplate rabbitTemplate; - @Resource - private YzPassagewayPollingMapper yzPassagewayPollingMapper; - - @Resource - private RabbitMQConfig rabbitMQConfig; - - //卡轮询 路由队列 - String polling_queueName = "polling_card_status"; - String polling_routingKey = "polling.card.status"; - String polling_exchangeName = "polling_card"; - - // - String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, - ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; - - - - - - /** - * 轮询 卡状态 - * @param time 多少 分钟 后失效 - */ public void pollingCardStatus(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - findRouteID_Map.put("cd_algorithm", "1");//高频轮询 - - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - String CardStatus_routingKey = ""; - - try { - //设置任务 路由器 名称 与队列 名称 - ad_exchangeName = "polling_cardCardStatus_exchange"; - ad_queueName = "polling_cardCardStatus_queue" ; - CardStatus_routingKey = "polling.cardCardStatus.routingKey"; - ad_del_exchangeName = "polling_dlxcardCardStatus_exchange"; - ad_del_queueName = "polling_dlxcardCardStatus_queue"; - ad_del_routingKey = "polling.dlxcardCardStatus.routingKey"; - //rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardStatus_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); - }catch (Exception e){ - System.out.println(e.getMessage().toString()); - } - - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - List> cardArr = yzCardMapper.findChannelIdCar(findMap); - if (cardArr != null && cardArr.size() > 0) { - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - - //卡状态 用量 轮询 - String polling_id_CardStatus = VeDate.getNo(4); - - - pollingPublic_Map.put("polling_type", "2"); - pollingPublic_Map.put("cd_count", cardArr.size()); - pollingPublic_Map.put("polling_id", polling_id_CardStatus); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - - //创建 路由 新增轮询详情 生产启动类型消息 - - //2.卡状态 - //卡号放入路由 - for (int j = 0; j < cardArr.size(); j++) { - Map card = cardArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("polling_id", polling_id_CardStatus);//轮询任务详情编号 - String msg = JSON.toJSONString(Card); - //生产任务 - try { - rabbitTemplate.convertAndSend("polling_cardCardStatus_exchange", CardStatus_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - //rabbitMQConfig.send(exchangeName,queueName,routingKey,"direct",msg); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - } - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardStatusTest_queue"; + String polling_routingKey = "admin.pollingCardStatusTest.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingCardStatusTest_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - /* *//** * 创建 卡状态 轮询 生产者路由队列 及 数据库 插入 轮询信息 * @param time diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardStopTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardStopTask.java index 4f07b0a..9c8dca6 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardStopTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/CardStopTask.java @@ -25,182 +25,55 @@ import java.util.Map; @Component("cardStopTask") public class CardStopTask { - @Resource - private YzCardRouteMapper yzCardRouteMapper; - @Resource - private YzCardMapper yzCardMapper; @Resource private RabbitTemplate rabbitTemplate; - @Resource - private YzPassagewayPollingMapper yzPassagewayPollingMapper; - - @Resource - private RabbitMQConfig rabbitMQConfig; - @Resource - private RedisCache redisCache; - //卡轮询 路由队列 - String polling_queueName = "polling_card_stop"; - String polling_routingKey = "polling.card.stop"; - String polling_exchangeName = "polling_card"; - - // - String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, - ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; - - - - - - /** - * 轮询 卡状态 - * @param time 多少 分钟 后失效 - */ public void pollingCardStop(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - - - String CardStop_routingKey = ""; - - try { - //设置任务 路由器 名称 与队列 名称 - ad_exchangeName = "polling_cardCardStop_exchange"; - ad_queueName = "polling_cardCardStop_queue"; - CardStop_routingKey = "polling.cardCardStop.routingKey"; - ad_del_exchangeName = "polling_dlxcardCardStop_exchange"; - ad_del_queueName = "polling_dlxcardCardStop_queue"; - ad_del_routingKey = "polling.dlxcardCardStop.routingKey"; - // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardStop_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); - - } catch (Exception e) { - System.out.println(e.getMessage()); - } - - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - List> cardArr = yzCardMapper.findChannelIdCarStop(findMap); - if (cardArr != null && cardArr.size() > 0) { - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - - //卡状态 用量 轮询 - String polling_id_CardStop = VeDate.getNo(4); - - - pollingPublic_Map.put("polling_type", "4"); - pollingPublic_Map.put("cd_count", cardArr.size()); - pollingPublic_Map.put("polling_id", polling_id_CardStop); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - - //创建 路由 新增轮询详情 生产启动类型消息 - Map start_type = new HashMap(); - start_type.put("Listener","polling_cardCardStop_queue"); - start_type.put("cd_id", cd_id); - - - //2.卡状态 - //卡号放入路由 - for (int j = 0; j < cardArr.size(); j++) { - Map card = cardArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("network_type", card.get("network_type")); - Card.put("status_id", card.get("status_id")); - - Card.put("polling_id", polling_id_CardStop);//轮询任务详情编号 - Object remind_ratio = card.get("remind_ratio"); - Object used = card.get("used"); - boolean is_sel = true;//是否需要查询 - String YyyyAndMm[] = VeDate.getYyyyAndMm(); - String day = YyyyAndMm[2]; - //默认赋值停机值 - if(remind_ratio!=null && remind_ratio.toString().length()>0){ - Card.put("Max", card.get("remind_ratio")); - } - //月初一号 或 27号 通用出账日 、 联通出账日 需要更新最新用量 - if(Integer.parseInt(day)!=1 && Integer.parseInt(day)!=27){ - //并且同步时间等于今天 - Object syn_Time = card.get("syn_Time"); - if(syn_Time!=null){ - String Ymd = YyyyAndMm[0]+"-"+YyyyAndMm[1]+"-"+YyyyAndMm[2]; - if(syn_Time.toString().equals(Ymd)){ - if(remind_ratio!=null && used!=null && remind_ratio.toString().trim().length()>0 && used.toString().trim().length()>0){ - Double d_Max = Double.parseDouble(remind_ratio.toString().trim()); - Double d_used = Double.parseDouble(used.toString().trim()); - is_sel = d_used>d_Max?false:true;//用量大于 最大值 时 不需要查询直接停机 - Card.put("Max", d_Max); - } - } - } - } - Card.put("is_sel", is_sel);//是否需要接口同步用量 - String msg = JSON.toJSONString(Card); - //生产任务 - try { - rabbitTemplate.convertAndSend("polling_cardCardStop_exchange", CardStop_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - } catch (Exception e) { - System.out.println(e.getMessage()); - } - } - } - } - } - } - - - /** - * 创建 卡状态 轮询 生产者路由队列 及 数据库 插入 轮询信息 - * @param time - * @param size - * @param polling_id - * @param pollingPublic_Map - * @param start_type - * @return - */ - public boolean CardStop(int time, int size, String polling_id,Map pollingPublic_Map,Map start_type) { - boolean bool = true; - //卡状态 轮询 + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardStop_queue"; + String polling_routingKey = "admin.pollingCardStop.queue"; + String polling_exchangeName = "admin_exchange";//路由 try { - //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.FANOUT); - start_type.put("type", "CardStop"); + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingCardStop_queue ");//启动类型 rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); return message; }); - pollingPublic_Map.put("polling_type", "4"); - pollingPublic_Map.put("cd_count", size); - pollingPublic_Map.put("polling_id", polling_id); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - } catch (Exception e) { - bool = false; - System.out.println("生产 轮询 [CardStop] 启动类型 失败 " + e.getMessage().toString()); + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } - return bool; } - - - - + public void CardStop(int time, int size, String polling_id,Map pollingPublic_Map,Map start_type) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_CardStop_queue"; + String polling_routingKey = "admin.CardStop.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type2 = new HashMap<>(); + start_type2.put("time",time); + start_type2.put("size",size); + start_type2.put("polling_id",polling_id); + start_type2.put("pollingPublic_Map",pollingPublic_Map); + start_type2.put("start_type",start_type); + start_type2.put("Masage", "备份 执行 CardStop_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type2), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/ChannelTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/ChannelTask.java index d7024b0..91cd4d7 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/ChannelTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/ChannelTask.java @@ -25,433 +25,141 @@ import java.util.Map; @Component("channelTask") public class ChannelTask { - @Resource - private YzCardRouteMapper yzCardRouteMapper; - @Resource - private YzCardMapper yzCardMapper; - @Resource private RabbitTemplate rabbitTemplate; - @Resource - private YzPassagewayPollingMapper yzPassagewayPollingMapper; - - - @Resource - private RabbitMQConfig rabbitMQConfig; - - //卡轮询 路由队列 - String polling_queueName = "polling_start_type"; - String polling_routingKey = "polling.start.type"; - String polling_exchangeName = "polling_card"; - - // - String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, - ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; - - - /** - * 轮询 还没有用量的数据 超出用量的 的生产者 - * type Slight .还没有用量的数据; 2.超出用量的 Serious - * - * @param type - * @param time 多少 分钟 后失效 - */ public void channelType(String type, Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - - if (channelArr != null && channelArr.size() > 0) { - //2.获取 通道下卡号 - boolean bool = false; - bool = type.equalsIgnoreCase("Slight") ? true : false;// 轮询 还没有用量的数据 是 开启 激活时间 任务生产 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - findMap.put("type", type); - List> cardArr = yzCardMapper.channelCardSeriousAndSlight(findMap); - if (cardArr != null && cardArr.size() > 0) { - - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - - //激活时间 任务生产 - if (bool) { - findMap.put("Arr", cardArr); - List> ActivateArr = yzCardMapper.activate_dateNull(findMap);// 获取激活时间为空 iccid - if (ActivateArr != null && ActivateArr.size() > 0) { - String polling_id = VeDate.getNo(4); - //创建 路由 新增轮询详情 生产启动类型消息 - if(ActivateDate(time,ActivateArr.size(),polling_id,pollingPublic_Map)){ - ActivateDateRun(ActivateArr,channel_obj,polling_id,cd_id,time); - } - } - } - - - - - } - - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_channelType_queue"; + String polling_routingKey = "admin.channelType.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("type",type); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 channelType_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - - - - - /** - * 轮询 激活时间 - * type Slight .还没有用量的数据; 2.超出用量的 Serious - * @param type - * @param time 多少 分钟 后失效 - */ public void pollingActivateDate(String type, Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - //2.获取 通道下卡号 - boolean bool = false; - bool = type.equalsIgnoreCase("Slight") ? true : false;// 轮询 还没有用量的数据 是 开启 激活时间 任务生产 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - findMap.put("type", type); - List> cardArr = yzCardMapper.channelCardSeriousAndSlight(findMap); - if (cardArr != null && cardArr.size() > 0) { - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - //激活时间 任务生产 - // if (bool) { - findMap.put("Arr", cardArr); - List> ActivateArr = yzCardMapper.activate_dateNull(findMap);// 获取激活时间为空 iccid - if (ActivateArr != null && ActivateArr.size() > 0) { - String polling_id = VeDate.getNo(4); - //创建 路由 新增轮询详情 生产启动类型消息 - if(ActivateDate(time,ActivateArr.size(),polling_id,pollingPublic_Map)){ - ActivateDateRun(ActivateArr,channel_obj,polling_id,cd_id,time); - } - } - // } - - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingActivateDateTest_queue"; + String polling_routingKey = "admin.pollingActivateDateTest.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("type",type); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingActivateDateTest_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - - - /** - * 轮询 卡状态 - * @param time 多少 分钟 后失效 - */ public void pollingCardStatus(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - String CardStatus_routingKey = ""; - try { - //设置任务 路由器 名称 与队列 名称 - ad_exchangeName = "polling_cardCardStatus_exchange"; - ad_queueName = "polling_cardCardStatus_queue" ; - CardStatus_routingKey = "polling.cardCardStatus.routingKey"; - ad_del_exchangeName = "polling_dlxcardCardStatus_exchange"; - ad_del_queueName = "polling_dlxcardCardStatus_queue"; - ad_del_routingKey = "polling.dlxcardCardStatus.routingKey"; - // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardStatus_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - List> cardArr = yzCardMapper.findChannelIdCar(findMap); - if (cardArr != null && cardArr.size() > 0) { - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - - //卡状态 用量 轮询 - String polling_id_CardStatus = VeDate.getNo(4); - //创建 路由 新增轮询详情 生产启动类型消息 - - //2.卡状态 - //卡号放入路由 - for (int j = 0; j < cardArr.size(); j++) { - Map card = cardArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("polling_id", polling_id_CardStatus);//轮询任务详情编号 - String msg = JSON.toJSONString(Card); - //生产任务 - try { - rabbitTemplate.convertAndSend("polling_cardCardStatus_exchange", CardStatus_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - } - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardStatusTime_queue"; + String polling_routingKey = "admin.pollingCardStatusTime.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingCardStatusTime_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - - - - - - - - - - - - - - - - - - - - // 通道 轮询 3.正常使用的卡号数据 public void channel(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - - if (channelArr != null && channelArr.size() > 0) { - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - findMap.put("channel_id", channel_obj.get("cd_id")); - String cd_id = channel_obj.get("cd_id").toString(); - - List> cardArr = yzCardMapper.channelCardCommonly(findMap); - if (cardArr != null && cardArr.size() > 0) { - - - - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - - //卡状态 用量 轮询 - String polling_id_CardStatus = VeDate.getNo(4); - //创建 路由 新增轮询详情 生产启动类型消息 - //boolean CardStatusBool = CardStatus(time, cardArr.size(), polling_id_CardStatus,pollingPublic_Map); - - String CardStatus_routingKey = ""; - String CardFlow_routingKey = ""; - - try { - ad_exchangeName = "polling_cardCardStatus_exchange"; - ad_queueName = "polling_cardCardStatus_queue"; - CardStatus_routingKey = "polling.cardCardStatus.routingKey"; - ad_del_exchangeName = "polling_dlxcardCardStatus_exchange"; - ad_del_queueName = "polling_dlxcardCardStatus_queue"; - ad_del_routingKey = "polling.dlxcardCardStatus.routingKey"; - // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardStatus_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey, null); - }catch (Exception e) { - System.out.println(e.getMessage()); - } - - //卡号放入路由 - for (int j = 0; j < cardArr.size(); j++) { - Map card = cardArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - String msg = JSON.toJSONString(Card); - //生产任务 - //2.卡状态 - try { - rabbitTemplate.convertAndSend("polling_cardCardStatus_exchange", CardStatus_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - //rabbitMQConfig.send(exchangeName,queueName,routingKey,"direct",msg); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - - } - } - - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_channelTime_queue"; + String polling_routingKey = "admin.channelTime.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 channelTime_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - - // 通道 轮询 2.超过百分之多少的数据进行轮询生产 public void channelFindPercentage(String percentage) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - - if (channelArr != null && channelArr.size() > 0) { - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - findMap.put("channel_id", channel_obj.get("cd_id")); - findMap.put("percentage", percentage); - List> cardArr = yzCardMapper.findPercentage(findMap); - if (cardArr != null && cardArr.size() > 0) { - //卡号放入路由 - for (int j = 0; j < cardArr.size(); j++) { - Map card = cardArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("network_type", card.get("network_type")); - String msg = JSON.toJSONString(Card); - - - } - } - - } - } - } - - - /** - * 创建 卡状态 轮询 生产者路由队列 及 数据库 插入 轮询信息 - * @param time - * @param size - * @param polling_id - * @param pollingPublic_Map - * @return - */ - public boolean CardStatus(int time, int size, String polling_id,Map pollingPublic_Map) { - boolean bool = true; - //卡状态 轮询 + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_channelFindPercentage_queue"; + String polling_routingKey = "admin.channelFindPercentage.queue"; + String polling_exchangeName = "admin_exchange";//路由 try { - //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.FANOUT); + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); Map start_type = new HashMap<>(); - start_type.put("type", "CardStatus"); + start_type.put("percentage",percentage); + start_type.put("Masage", "备份 执行 channelFindPercentage_queue ");//启动类型 rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); return message; }); - pollingPublic_Map.put("polling_type", "2"); - pollingPublic_Map.put("cd_count", size); - pollingPublic_Map.put("polling_id", polling_id); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - } catch (Exception e) { - bool = false; - System.out.println("生产 轮询 [CardStatus] 启动类型 失败 " + e.getMessage().toString()); + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } - return bool; } - /** - * 创建 激活时间 轮询 生产者路由队列 及 数据库 插入 轮询信息 - * @param time - * @param size - * @param polling_id - * @param pollingPublic_Map - * @return - */ - public boolean ActivateDate(int time, int size, String polling_id,Map pollingPublic_Map) { - boolean bool = true; + public void CardStatus(int time, int size, String polling_id,Map pollingPublic_Map) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_CardStatusTest_queue"; + String polling_routingKey = "admin.CardStatusTest.queue"; + String polling_exchangeName = "admin_exchange";//路由 try { - // rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null,BuiltinExchangeType.FANOUT); + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); Map start_type = new HashMap<>(); - start_type.put("type", "ActivateDate"); + start_type.put("time",time); + start_type.put("size",size); + start_type.put("polling_id",polling_id); + start_type.put("pollingPublic_Map",pollingPublic_Map); + start_type.put("Masage", "备份 执行 CardStatusTest_queue ");//启动类型 rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); return message; }); - pollingPublic_Map.put("polling_type", "1"); - pollingPublic_Map.put("cd_count", size); - pollingPublic_Map.put("polling_id", polling_id); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 } catch (Exception e) { - System.out.println("生产 轮询 [ActivateDate] 启动类型 失败 " + e.getMessage().toString()); - } - return bool; - } - - - /** - * 激活时间 任务发送消息 - * @param ActivateArr - * @param channel_obj - * @param polling_id - * @param cd_id - * @param time - */ - public void ActivateDateRun(List> ActivateArr, Map channel_obj, String polling_id,String cd_id,int time) { - for (int j = 0; j < ActivateArr.size(); j++) { - Map card = ActivateArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("polling_id", polling_id);//轮询任务详情编号 - String msg = JSON.toJSONString(Card); - //1. 更新激活时间 [生产任务] - try { - if (j == 0) { - //设置任务 路由器 名称 与队列 名称 - ad_exchangeName = "polling_cardActivateDate_exchange"; - ad_queueName = "polling_cardActivateDate_queue"; - ad_routingKey = "polling.cardActivateDate.routingKey"; - ad_del_exchangeName = "polling_dlxcardActivateDate_exchange"; - ad_del_queueName = "polling_dlxcardActivateDate_queue"; - ad_del_routingKey = "polling.dlxcardActivateDate.routingKey"; - // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, ad_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); - } - //rabbitMQConfig.send(exchangeName,queueName,routingKey,"direct",msg); - rabbitTemplate.convertAndSend(ad_exchangeName, ad_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/PassagewayPollingTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/PassagewayPollingTask.java index 071bbbc..2d13acb 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/PassagewayPollingTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/PassagewayPollingTask.java @@ -1,9 +1,11 @@ package com.yunze.quartz.task.yunze.polling; +import com.alibaba.fastjson.JSON; import com.yunze.common.core.redis.RedisCache; import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -18,84 +20,51 @@ public class PassagewayPollingTask { @Resource - private YzPassagewayPollingMapper yzPassagewayPollingMapper; - @Resource - private RedisCache redisCache; + private RabbitTemplate rabbitTemplate; + public void SynChannel() { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_SynChannel_queue"; + String polling_routingKey = "admin.SynChannel.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行SynChannel_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } - - /** - * 获取正在执行的轮询任务进度获取 通过 redis 模糊key 查询 获取 轮询任务编号下的卡号 - */ - public void SynChannel() - { - //1. 查询 一天内 正在执行的轮询任务 并且 当前执行日志数 小于 任务总数 (三天以上的可能读取数据误差或其他原因不在同步数据了) - List> channelArr = yzPassagewayPollingMapper.find_execute(); - if(channelArr!=null && channelArr.size()>0){ - - for (int i = 0; i < channelArr.size(); i++) { - Map obj = channelArr.get(i); - String polling_id = obj.get("polling_id").toString(); - Integer cd_current = Integer.parseInt(obj.get("cd_current").toString()); - Integer cd_count = Integer.parseInt(obj.get("cd_count").toString()); - - Collection keys = redisCache.scanKeys(polling_id); - if(keys!=null && keys.size()>0){ - //redis 缓存数据大于数据库当前轮询数量时 修改 - if(keys.size()>cd_current){ - Map updMap = new HashMap(); - updMap.put("polling_id",polling_id); - updMap.put("cd_current",keys.size()); - yzPassagewayPollingMapper.update_cd_current(updMap); - } - if(keys.size()==cd_count){ - try { - redisCache.deleteObject(keys); - System.out.println("删除redis 记录成功!"); - }catch (Exception e){ - System.out.println("删除redis 记录异常"); - } - } - } - } - + public void cleanRedisChannel() { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_cleanRedisChannel_queue"; + String polling_routingKey = "admin.cleanRedisChannel.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行cleanRedisChannel_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - /** - * 清除 今天 已经完成的 通道进度 - */ - public void cleanRedisChannel() - { - //1. 查询 一天内 正在执行的轮询任务 并且 当前执行日志数 小于 任务总数 (三天以上的可能读取数据误差或其他原因不在同步数据了) - List> channelArr = yzPassagewayPollingMapper.find_completed(); - if(channelArr!=null && channelArr.size()>0){ - for (int i = 0; i < channelArr.size(); i++) { - Map obj = channelArr.get(i); - String polling_id = obj.get("polling_id").toString(); - Collection keys = redisCache.scanKeys(polling_id); - if(keys!=null && keys.size()>0) { - int delCount = 0; - Object [] Objkey = keys.toArray(); - for (int j = 0; j < Objkey.length; j++) { - try { - boolean del = redisCache.deleteObject(Objkey[j].toString()); - if(del){ - delCount+=1; - } - } catch (Exception e) { - System.out.println("删除redis 记录异常"); - } - } - System.out.println("polling_id "+polling_id+" delCount "+delCount); - } - } - - } - } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/RebootTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/RebootTask.java index 77fad2d..9b49b3c 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/RebootTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/RebootTask.java @@ -23,18 +23,9 @@ import java.util.concurrent.TimeUnit; @Component("rebootTask") public class RebootTask { - @Resource - private YzCardRouteMapper yzCardRouteMapper; @Resource private RabbitTemplate rabbitTemplate; - @Resource - private RedisCache redisCache; - @Resource - private RabbitMQConfig rabbitMQConfig; - @Resource - private YzWxByProductAgentMapper yzWxByProductAgentMapper; - /** * 轮询 用量 指定单个通道创建 消费者 【用来补救 消费者灵活监听时 没有创建 成功 消费者 进行 手动 补救创建 消费者】 * @@ -56,377 +47,70 @@ public class RebootTask { } - /** - * 重新启动 没有在Redis 记录 的轮询 通道 创建 消费者 轮询 - * @param time - */ public void RebootFlowPolling(Integer time) { - Map findRouteID_Map = new HashMap<>(); - - List Cd_idArr = yzCardRouteMapper.findCardChannelID(); - Cd_idArr = Cd_idArr != null && Cd_idArr.size() > 0 ? Cd_idArr : null; - findRouteID_Map.put("FindCd_id", null); - findRouteID_Map.put("Cd_idArr", Cd_idArr); - List> ChannelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - - Map rebootStandardMap = new HashMap<>(); - - Object rebootStandard = redisCache.getCacheObject("polling.rebootStandard"); - Integer rebootStandardint = null; - if (rebootStandard != null && rebootStandard.toString().length() > 0) { - rebootStandard = rebootStandard != null ? rebootStandard : "1000";//默认 1K - } else { - rebootStandardMap.put("config_key", "polling.rebootStandard"); - rebootStandard = yzWxByProductAgentMapper.findConfig(rebootStandardMap); - rebootStandard = rebootStandard != null ? rebootStandard : "1000";//默认 1K - redisCache.setCacheObject("polling.rebootStandard", rebootStandard, 6, TimeUnit.HOURS);//6 小时 缓存 - } - - rebootStandardint = Integer.parseInt(rebootStandard.toString()); - String Type = "direct"; - if (ChannelArr != null && ChannelArr.size() > 0) { - for (int i = 0; i < ChannelArr.size(); i++) { - Map ChannelObj = ChannelArr.get(i); - Map msg_Map = new HashMap<>(); - String cd_id = ChannelObj.get("cd_id").toString(); - msg_Map.put("FindCd_id", ChannelObj.get("cd_id")); - - RebootFlow(cd_id,time,rebootStandardint,msg_Map,Type); - RebootStatus(cd_id,time,rebootStandardint,msg_Map,Type); - RebootActivateDate(cd_id,time,rebootStandardint,msg_Map,Type); - - } - } - } - - - - - - /** - * 重新启动 没有在Redis 记录 的轮询 通道 创建 消费者 轮询 - * @param time - */ - public void RebootCardStop(Integer time) { - Map findRouteID_Map = new HashMap<>(); - - List Cd_idArr = yzCardRouteMapper.findRemindRatioChannelID(); - Cd_idArr = Cd_idArr != null && Cd_idArr.size() > 0 ? Cd_idArr : null; - findRouteID_Map.put("FindCd_id", null); - findRouteID_Map.put("Cd_idArr", Cd_idArr); - List> ChannelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - - Map rebootStandardMap = new HashMap<>(); - - Object rebootStandard = redisCache.getCacheObject("polling.rebootCardStop"); - Integer rebootStandardint = null; - if (rebootStandard != null && rebootStandard.toString().length() > 0) { - rebootStandard = rebootStandard != null ? rebootStandard : "100";//默认 100 - } else { - rebootStandardMap.put("config_key", "polling.rebootCardStop"); - rebootStandard = yzWxByProductAgentMapper.findConfig(rebootStandardMap); - rebootStandard = rebootStandard != null ? rebootStandard : "100";//默认 100 - redisCache.setCacheObject("polling.rebootStandard", rebootStandard, 6, TimeUnit.HOURS);//6 小时 缓存 - } - - rebootStandardint = Integer.parseInt(rebootStandard.toString()); - String Type = "direct"; - if (ChannelArr != null && ChannelArr.size() > 0) { - for (int i = 0; i < ChannelArr.size(); i++) { - Map ChannelObj = ChannelArr.get(i); - Map msg_Map = new HashMap<>(); - String cd_id = ChannelObj.get("cd_id").toString(); - msg_Map.put("cd_id", ChannelObj.get("cd_id")); - - RebootCardStop(cd_id,time,rebootStandardint,msg_Map,Type); - - - } - } - } - - /** - * 重新启动 没有在Redis 记录 的轮询 通道 创建 消费者 轮询 - * @param time - */ - public void RebootCardDisconnected(Integer time) { - Map findRouteID_Map = new HashMap<>(); - - List Cd_idArr = yzCardRouteMapper.findIsDisconnectedChannelID(); - Cd_idArr = Cd_idArr != null && Cd_idArr.size() > 0 ? Cd_idArr : null; - findRouteID_Map.put("FindCd_id", null); - findRouteID_Map.put("Cd_idArr", Cd_idArr); - List> ChannelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - - Map rebootStandardMap = new HashMap<>(); - - Object rebootStandard = redisCache.getCacheObject("polling.rebootCardDisconnected"); - Integer rebootStandardint = null; - if (rebootStandard != null && rebootStandard.toString().length() > 0) { - rebootStandard = rebootStandard != null ? rebootStandard : "100";//默认 100 - } else { - rebootStandardMap.put("config_key", "polling.rebootCardDisconnected"); - rebootStandard = yzWxByProductAgentMapper.findConfig(rebootStandardMap); - rebootStandard = rebootStandard != null ? rebootStandard : "100";//默认 100 - redisCache.setCacheObject("polling.rebootStandard", rebootStandard, 6, TimeUnit.HOURS);//6 小时 缓存 - } - rebootStandardint = Integer.parseInt(rebootStandard.toString()); - String Type = "direct"; - if (ChannelArr != null && ChannelArr.size() > 0) { - for (int i = 0; i < ChannelArr.size(); i++) { - Map ChannelObj = ChannelArr.get(i); - Map msg_Map = new HashMap<>(); - String cd_id = ChannelObj.get("cd_id").toString(); - msg_Map.put("cd_id", ChannelObj.get("cd_id")); - RebootCardDisconnected(cd_id,time,rebootStandardint,msg_Map,Type); - } - } - } - - - - - - - - /** - * 重启 轮询 超停阈值 - * @param cd_id - * @param time - * @param rebootStandardint - * @param msg_Map - * @param Type - */ - public void RebootCardStop(String cd_id,Integer time,Integer rebootStandardint,Map msg_Map,String Type){ - String QFlowName = "polling_cardCardStop_queue" ; - String dlxQFlowName = QFlowName;//死信 redis - - String card_exchangeName = "polling_cardCardStop_exchange"; - String card_queueName = "polling_cardCardStop_queue_"+cd_id; - String card_routingKey = "polling.cardCardStop.routingKey."+cd_id; - String OneKey = "admin.CardStop.queue.One"; - - String card_del_exchangeName = "polling_dlxcardCardStop_exchange"; - String card_del_queueName = "polling_dlxcardCardStop_queue"; - String card_del_routingKey = "polling.dlxcardCardStop.routingKey"; - String TowKey = "admin.CardStop.queue.Tow"; - msg_Map.put("Listener",QFlowName); - RebootCommon( time, rebootStandardint, msg_Map, Type, QFlowName, dlxQFlowName, - card_exchangeName, card_queueName, card_routingKey, OneKey, TowKey, - card_del_exchangeName, card_del_queueName, card_del_routingKey, "超停阈值"); - } - - - - - /** - * 重启 轮询 未订购轮询停机 - * @param cd_id - * @param time - * @param rebootStandardint - * @param msg_Map - * @param Type - */ - public void RebootCardDisconnected(String cd_id,Integer time,Integer rebootStandardint,Map msg_Map,String Type){ - String QFlowName = "polling_cardCardDisconnected_queue" ; - String dlxQFlowName = QFlowName;//死信 redis - - String card_exchangeName = "polling_cardCardDisconnected_exchange"; - String card_queueName = "polling_cardCardDisconnected_queue"; - String card_routingKey = "polling.cardCardDisconnected.routingKey"; - String OneKey = "admin.CardDisconnected.queue.One"; - - String card_del_exchangeName = "polling_dlxcardCardDisconnected_exchange"; - String card_del_queueName = "polling_dlxcardCardDisconnected_queue"; - String card_del_routingKey = "polling.dlxcardCardDisconnected.routingKey"; - String TowKey = "admin.CardDisconnected.queue.Tow"; - - msg_Map.put("Listener",QFlowName); - RebootCommon( time, rebootStandardint, msg_Map, Type, QFlowName, dlxQFlowName, - card_exchangeName, card_queueName, card_routingKey, OneKey, TowKey, - card_del_exchangeName, card_del_queueName, card_del_routingKey, "未订购停机"); - } - - - - - - - /** - * 重启 轮询用量 - * @param cd_id - * @param time - * @param rebootStandardint - * @param msg_Map - * @param Type - */ - public void RebootFlow(String cd_id,Integer time,Integer rebootStandardint,Map msg_Map,String Type){ - String QFlowName = "polling-Listener-CardFlow-" + cd_id; - String dlxQFlowName = "polling-dex-Listener-CardFlow-" + cd_id;//死信 redis - - String card_exchangeName = "polling_cardCardFlow_exchange"; - String card_queueName = "polling_cardCardFlow_queue"; - String card_routingKey = "polling.cardCardFlow.routingKey"; - String OneKey = "admin.CardFlow.queue.One"; - - String card_del_exchangeName = "polling_dlxcardCardFlow_exchange"; - String card_del_queueName = "polling_dlxcardCardFlow_queue"; - String card_del_routingKey = "polling.dlxcardCardFlow.routingKey"; - String TowKey = "admin.CardFlow.queue.Tow"; - - RebootCommon( time, rebootStandardint, msg_Map, Type, QFlowName, dlxQFlowName, - card_exchangeName, card_queueName, card_routingKey, OneKey, TowKey, - card_del_exchangeName, card_del_queueName, card_del_routingKey, "卡用量"); - } - - - - - /** - * 重启 轮询 状态 - * @param cd_id - * @param time - * @param rebootStandardint - * @param msg_Map - * @param Type - */ - public void RebootStatus(String cd_id,Integer time,Integer rebootStandardint,Map msg_Map,String Type){ - String QFlowName = "polling-Listener-CardStatus-" + cd_id; - String dlxQFlowName = "polling-dxl-Listener-CardStatus-" + cd_id;//死信队列 名称 - - String card_exchangeName = "polling_cardCardStatus_exchange"; - String card_queueName = "polling_cardCardStatus_queue" ; - String card_routingKey = "polling.cardCardStatus.routingKey"; - String OneKey = "admin.CardStatus.queue.One"; - - String card_del_exchangeName = "polling_dlxcardCardStatus_exchange"; - String card_del_queueName = "polling_dlxcardCardStatus_queue"; - String card_del_routingKey = "polling.dlxcardCardStatus.routingKey"; - String TowKey = "admin.CardStatus.queue.Tow"; - - RebootCommon( time, rebootStandardint, msg_Map, Type, QFlowName, dlxQFlowName, - card_exchangeName, card_queueName, card_routingKey, OneKey, TowKey, - card_del_exchangeName, card_del_queueName, card_del_routingKey, "卡状态"); - } - - - - - /** - * 重启 轮询 激活时间 - * @param cd_id - * @param time - * @param rebootStandardint - * @param msg_Map - * @param Type - */ - public void RebootActivateDate(String cd_id,Integer time,Integer rebootStandardint,Map msg_Map,String Type){ - String QFlowName = "polling-Listener-ActivateDate-" + cd_id; - String dlxQFlowName = "polling-Listener-dlxActivateDate-" + cd_id;//死信队列 名称 - - String card_exchangeName = "polling_cardActivateDate_exchange"; - String card_queueName = "polling_cardActivateDate_queue_"+cd_id; - String card_routingKey = "polling.cardActivateDate.routingKey."+cd_id; - String OneKey = "admin.CardActivateDate.queue.One"; - - String card_del_exchangeName = "polling_dlxcardActivateDate_exchange"; - String card_del_queueName = "polling_dlxcardActivateDate_queue"; - String card_del_routingKey = "polling.dlxcardActivateDate.routingKey"; - - String TowKey = "admin.CardActivateDate.queue.Tow"; - - RebootCommon( time, rebootStandardint, msg_Map, Type, QFlowName, dlxQFlowName, - card_exchangeName, card_queueName, card_routingKey, OneKey, TowKey, - card_del_exchangeName, card_del_queueName, card_del_routingKey, "激活时间"); - } - - - - /** - * 重启 轮询 公共部分 - * @param time 消息进入死信时间 - * @param rebootStandardint 待销费数量大于多少时再次开启一个消费者 - * @param msg_Map 通道查询参数 - * @param Type RabbitMq type - * @param QFlowName Redis 记录轮询类型前缀名称 - * @param dlxQFlowName Redis 记录轮询类型前缀名称 【死信】 - * @param card_exchangeName 队列路由名称 - * @param card_queueName 队列名称 - * @param card_routingKey 队列key - * @param OneKey 重启队列key - * @param TowKey 重启队列key 【死信】 - * @param card_del_exchangeName 队列路由名称【死信】 - * @param card_del_queueName 队列名称【死信】 - * @param card_del_routingKey 队列key【死信】 - * @param LogoTypeName sout 输出 重启类型名字 - */ - public void RebootCommon(Integer time,Integer rebootStandardint,Map msg_Map,String Type,String QFlowName,String dlxQFlowName, - String card_exchangeName,String card_queueName,String card_routingKey,String OneKey,String TowKey, - String card_del_exchangeName,String card_del_queueName,String card_del_routingKey,String LogoTypeName){ - - Collection keys = redisCache.scanKeys(QFlowName); - //没有检测到消费者直接创建 消费者 - if(keys!=null && keys.size()>0){ - System.out.println("重启 "+LogoTypeName+" 轮询消费者 " + QFlowName); - //生产任务 - Send(time,card_exchangeName,OneKey,JSON.toJSONString(msg_Map), QFlowName ); - }else{ - //有消费查询 队列 待销费数量 是否大于 系统参数 - try { - Integer Count = rabbitMQConfig.getCount(card_exchangeName,card_queueName,card_routingKey,Type); - System.out.println(card_exchangeName+" "+card_queueName+" "+Count+" : "+rebootStandardint); - if(Count!=null && rebootStandardint!=null){ - //待销费 >= 设定值时 创建 发送重启消费者指令 - if(Count>=rebootStandardint){ - Send(time,card_exchangeName,OneKey,JSON.toJSONString(msg_Map), QFlowName );//生产任务 - } - } - }catch (Exception e){ - System.out.println(" getCount 获取 Exception "+card_exchangeName+" "+card_queueName+" "+e.getMessage()); - } - } - Collection delkeys = redisCache.scanKeys(dlxQFlowName); - //没有检测到消费者直接创建 消费者 - if(delkeys!=null && delkeys.size()>0){ - System.out.println("重启 "+LogoTypeName+" 轮询消费者 " + dlxQFlowName); - //生产任务 - Send(time,card_exchangeName,TowKey,JSON.toJSONString(msg_Map), QFlowName ); - }else{ - //有消费查询 队列 待销费数量 是否大于 系统参数 - try { - Integer Count = rabbitMQConfig.getCount(card_del_exchangeName,card_del_queueName,card_del_routingKey,Type); - System.out.println(card_del_exchangeName+" "+card_del_queueName+" "+Count+" : "+rebootStandardint); - if(Count!=null && rebootStandardint!=null){ - //待销费 >= 设定值时 创建 发送重启消费者指令 - if(Count>=rebootStandardint){ - Send(time,card_exchangeName,TowKey,JSON.toJSONString(msg_Map), QFlowName ); - } - } - }catch (Exception e){ - System.out.println(" getCount 获取 Exception "+card_del_exchangeName+" "+card_del_queueName+" "+e.getMessage()); - } - } - } - - - - - public void Send(Integer time,String exchange, String routingKey, Object Obj,String quenName){ - //生产任务 + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_RebootFlowPolling_queue"; + String polling_routingKey = "admin.RebootFlowPolling.queue"; + String polling_exchangeName = "admin_exchange";//路由 try { - rabbitTemplate.convertAndSend(exchange, routingKey, Obj, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 RebootFlowPolling_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); return message; }); } catch (Exception e) { - System.out.println("重启 用量轮询消费者 失败 === " +quenName); - System.out.println(e.getMessage()); + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } - } + public void RebootCardStop(Integer time) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_RebootCardStop_queue"; + String polling_routingKey = "admin.RebootCardStop.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 RebootCardStop_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + + public void RebootCardDisconnected(Integer time) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_RebootCardDisconnected_queue"; + String polling_routingKey = "admin.RebootCardDisconnected.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 RebootCardDisconnected_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/SynPollingErrorGroupTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/SynPollingErrorGroupTask.java new file mode 100644 index 0000000..80a3973 --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/SynPollingErrorGroupTask.java @@ -0,0 +1,48 @@ +package com.yunze.quartz.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.card.YzCardApiOfferinginfoMapper; +import com.yunze.common.mapper.yunze.card.YzCardApiOfferinginfolistMapper; +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorGroupMapper; +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorMapper; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 同步 卡用量接口查询时错误记录-分类 + */ +@Component("synPollingErrorGroupTask") +public class SynPollingErrorGroupTask { + + + @Resource + private RabbitTemplate rabbitTemplate; + + public void SynOfferinginfo() { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_SynOfferinginfo_queue"; + String polling_routingKey = "admin.SynOfferinginfo.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 SynOfferinginfo_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/cardOtherActivateDateTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/cardOtherActivateDateTask.java new file mode 100644 index 0000000..5bd8268 --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/cardOtherActivateDateTask.java @@ -0,0 +1,126 @@ +package com.yunze.quartz.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 定时任务 卡状态类型为 字典 指定类型 pollingOther_cardCardActivateDate_queue 下数据时 同步激活时间 + * + * @author root + */ +@Component("cardOtherActivateDateTask") +public class cardOtherActivateDateTask { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + + String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null; + + + /** + * 轮询 卡状态 + * @param time 多少 分钟 后失效 + */ + public void pollingCardActivateDate(Integer time) { + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + + try { + //设置任务 路由器 名称 与队列 名称 + ad_exchangeName = "polling_cardCardActivateDate_exchange"; + ad_queueName = "pollingOther_cardCardActivateDate_queue" ; + ad_routingKey = "pollingOther.cardCardActivateDate.queue"; + }catch (Exception e){ + System.out.println(e.getMessage()); + } + + + List status_ShowIdArr = new ArrayList<>();//需要轮询的 卡状态 + Map findDict = new HashMap<>(); + findDict.put("dict_type", "pollingOther_cardCardActivateDate"); + List> dict_dataArr = yzCardMapper.findDict(findDict); + if(dict_dataArr!=null && dict_dataArr.size()>0){ + for (int i = 0; i < dict_dataArr.size(); i++) { + Map dict = dict_dataArr.get(i); + status_ShowIdArr.add(dict.get("dict_value").toString()); + } + } + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + findMap.put("status_ShowIdArr", status_ShowIdArr); + findMap.put("activate_date", "Null");//没有激活时间的 + List> cardArr = yzCardMapper.findChannelIdCar(findMap); + if (cardArr != null && cardArr.size() > 0) { + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + //卡状态 用量 轮询 + String polling_id_CardActivateDate = VeDate.getNo(4); + pollingPublic_Map.put("polling_type", "21"); + pollingPublic_Map.put("cd_count", cardArr.size()); + pollingPublic_Map.put("polling_id", polling_id_CardActivateDate); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + //创建 路由 新增轮询详情 生产启动类型消息 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("polling_id", polling_id_CardActivateDate);//轮询任务详情编号 + String msg = JSON.toJSONString(Card); + //生产任务 + try { + rabbitTemplate.convertAndSend(ad_exchangeName, ad_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } + } + } + } + } + + + + + + + + + + + + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/intelligent/CardActivateDateAiTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/intelligent/CardActivateDateAiTask.java index 422b129..bfc7086 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/intelligent/CardActivateDateAiTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/intelligent/CardActivateDateAiTask.java @@ -23,213 +23,74 @@ import java.util.Map; @Component("cardActivateDateAiTask") public class CardActivateDateAiTask { - @Resource - private YzCardRouteMapper yzCardRouteMapper; - @Resource - private YzCardMapper yzCardMapper; @Resource private RabbitTemplate rabbitTemplate; - @Resource - private YzPassagewayPollingMapper yzPassagewayPollingMapper; - - @Resource - private RabbitMQConfig rabbitMQConfig; - - - String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, - ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; - - - - - - - - /** - * 轮询 激活时间 - * @param time - * @param polling_type 轮询类型 【激活时间-智能-有用量 14 】【激活时间-智能-已发货 15 】 - * @param usedIsNull 用量是否大于 0 - * @param deliver_dateIsNull 发货时间是否为空 - */ public void pollingActivateDateIntelligent(Integer time,String polling_type,String usedIsNull,String deliver_dateIsNull) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - findRouteID_Map.put("cd_algorithm", "2");//智能 - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - findMap.put("activate_date", "Null");//激活时间 为空时才获取 - findMap.put("used", usedIsNull);//用量 - findMap.put("deliver_date", deliver_dateIsNull);//发货时间 - - List> cardArr = yzCardMapper.findChannelIdCar(findMap); - if (cardArr != null && cardArr.size() > 0) { - String polling_id = VeDate.getNo(4); - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - pollingPublic_Map.put("polling_type", polling_type); - //创建 路由 新增轮询详情 生产启动类型消息 - ActivateDateRun(cardArr,channel_obj,polling_id,cd_id,time,pollingPublic_Map); - } - - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingActivateDateIntelligent_queue"; + String polling_routingKey = "admin.pollingActivateDateIntelligent.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("polling_type",polling_type); + start_type.put("usedIsNull",usedIsNull); + start_type.put("deliver_dateIsNull",deliver_dateIsNull); + start_type.put("Masage", "备份 执行 pollingActivateDateIntelligent_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - - - - /** - * 轮询 激活时间 [激活时间-智能-未发货-已到沉默期] - * @param time - */ public void pollingActivateDateIntelligent(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - findRouteID_Map.put("cd_algorithm", "2");//高频轮询 - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - - List> cardArr = yzCardMapper.findChannelIdCarSilencePeriod(findMap); - if (cardArr != null && cardArr.size() > 0) { - String polling_id = VeDate.getNo(4); - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - pollingPublic_Map.put("polling_type", "16"); - //创建 路由 新增轮询详情 生产启动类型消息 - ActivateDateRun(cardArr,channel_obj,polling_id,cd_id,time,pollingPublic_Map); - } - - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingActivateDate_queue"; + String polling_routingKey = "admin.pollingActivateDate.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingActivateDate_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - - - - /** - * 轮询 激活时间 [补偿 状态 已激活 and 用量 = 0 | 有用量 没有激活时间 同步激活时间] - * @param time - */ public void pollingActivateDateCompensate(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - List> cardArr = new ArrayList<>(); - //1.查询通道下 状态正常没有激活时间 且用量 =0 卡号 - List> cardArr_1 = yzCardMapper.findNormalNotActivateDate(findMap); - //2.查询通道下 没有激活时间 且用量>0 卡号 (不包含测试期卡号) - List> cardArr_2 = yzCardMapper.findUsedNotActivateDate(findMap); - - if (cardArr_1 != null && cardArr_1.size() > 0) { - cardArr.addAll(cardArr.size(),cardArr_1); - } - if (cardArr_2 != null && cardArr_2.size() > 0) { - cardArr.addAll(cardArr.size(),cardArr_2); - } - - if (cardArr != null && cardArr.size() > 0) { - String polling_id = VeDate.getNo(4); - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - pollingPublic_Map.put("polling_type", "19"); - //创建 路由 新增轮询详情 生产启动类型消息 - ActivateDateRun(cardArr,channel_obj,polling_id,cd_id,time,pollingPublic_Map); - } - - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingActivateDateCompensate_queue"; + String polling_routingKey = "admin.pollingActivateDateCompensate.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingActivateDateCompensate_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - - - - - - /** - * 激活时间 任务发送消息 - * @param ActivateArr - * @param channel_obj - * @param polling_id - * @param cd_id - * @param time - */ - public void ActivateDateRun(List> ActivateArr, Map channel_obj, String polling_id,String cd_id,int time,Map pollingPublic_Map) { - - try { - //设置任务 路由器 名称 与队列 名称 - ad_exchangeName = "polling_cardActivateDate_exchange"; - ad_queueName = "polling_cardActivateDate_queue"; - ad_routingKey = "polling.cardActivateDate.routingKey"; - ad_del_exchangeName = "polling_dlxcardActivateDate_exchange"; - ad_del_queueName = "polling_dlxcardActivateDate_queue" ; - ad_del_routingKey = "polling.dlxcardActivateDate.routingKey"; - //rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, ad_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); - - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - - pollingPublic_Map.put("cd_count", ActivateArr.size()); - pollingPublic_Map.put("polling_id", polling_id); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - - - for (int j = 0; j < ActivateArr.size(); j++) { - Map card = ActivateArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("polling_id", polling_id);//轮询任务详情编号 - String msg = JSON.toJSONString(Card); - //1. 更新激活时间 [生产任务] - try { - rabbitTemplate.convertAndSend(ad_exchangeName, ad_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - } - } - - - - - - - } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/intelligent/CardFlowAiTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/intelligent/CardFlowAiTask.java index 2bea7de..a086012 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/intelligent/CardFlowAiTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/intelligent/CardFlowAiTask.java @@ -23,198 +23,78 @@ import java.util.Map; @Component("cardFlowAiTask") public class CardFlowAiTask { - @Resource - private YzCardRouteMapper yzCardRouteMapper; - @Resource - private YzCardMapper yzCardMapper; @Resource private RabbitTemplate rabbitTemplate; - @Resource - private YzPassagewayPollingMapper yzPassagewayPollingMapper; - - @Resource - private RabbitMQConfig rabbitMQConfig; - - - String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, - ad_del_exchangeName = null, ad_del_queueName = null, ad_del_routingKey = null; - - - - - - - - - /** - * 轮询 用量 [用量轮询-智能-已激活 ][用量轮询-智能-未激活-有用量] [用量轮询-智能-未激活-已发货] - * @param time 多少 分钟 后失效 - * @param activate_dateIsNull 激活时间是否为空 - * @param polling_type 轮询类型 【用量轮询-智能-有激活时间 6 】【用量轮询-智能-无激活时间-有用量 7 】 - * @param usedIsNull 用量是否大于 0 - * @param deliver_dateIsNull 发货时间是否为空 - * - */ public void pollingCardFlow(Integer time,String activate_dateIsNull,String polling_type,String usedIsNull,String deliver_dateIsNull) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id", null); - findRouteID_Map.put("cd_algorithm", "2");//智能轮询 - - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - String CardFlow_routingKey = "polling.cardCardFlow.routingKey"; - /* try { - //设置任务 路由器 名称 与队列 名称 - ad_exchangeName = "polling_cardCardFlow_exchange"; - ad_queueName = "polling_cardCardFlow_queue"; - - ad_del_exchangeName = "polling_dlxcardCardFlow_exchange"; - ad_del_queueName = "polling_dlxcardCardFlow_queue"; - ad_del_routingKey = "polling.dlxcardCardFlow.routingKey"; - // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardFlow_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey, null); - } catch (Exception e) { - System.out.println(e.getMessage()); - }*/ - - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - findMap.put("activate_date", activate_dateIsNull);//激活时间 - findMap.put("used", usedIsNull);//用量 - findMap.put("deliver_date", deliver_dateIsNull);//发货时间 - - List> cardArr = yzCardMapper.findChannelIdCar(findMap); - if (cardArr != null && cardArr.size() > 0) { - pollingExecute(cd_id,cardArr,channel_obj,CardFlow_routingKey,time,polling_type); - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardFlow_queue"; + String polling_routingKey = "admin.pollingCardFlow.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("activate_dateIsNull",activate_dateIsNull); + start_type.put("polling_type",polling_type); + start_type.put("usedIsNull",usedIsNull); + start_type.put("deliver_dateIsNull",deliver_dateIsNull); + start_type.put("Masage", "备份 执行 pollingCardFlow_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - - - - /** - * 轮询 用量 [用量轮询-智能-未激活-未发货-已到沉默期] - * @param time 多少 分钟 后失效 - */ public void pollingCardFlowSilencePeriod(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id", null); - findRouteID_Map.put("cd_algorithm", "2");//智能轮询 - - - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - String CardFlow_routingKey = "polling.cardCardFlow.routingKey"; - - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - - List> cardArr = yzCardMapper.findChannelIdCarSilencePeriod(findMap); - if (cardArr != null && cardArr.size() > 0) { - pollingExecute(cd_id,cardArr,channel_obj,CardFlow_routingKey,time,"8"); - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardFlowSilencePeriod_queue"; + String polling_routingKey = "admin.pollingCardFlowSilencePeriod.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingCardFlowSilencePeriod_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - - - - /** - * 轮询 用量 用量记录无记录 - */ public void pollingCardFlowNotRecord(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id", null); - - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - String CardFlow_routingKey = "polling.cardCardFlow.routingKey"; - - String YyyyAndMmArr[] = VeDate.getYyyyAndMm(); - String year = YyyyAndMmArr[0]; - String month = YyyyAndMmArr[1]; - String day = YyyyAndMmArr[2]; - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - findMap.put("year", year); - findMap.put("month", month); - findMap.put("day", day); - - List> cardArr = yzCardMapper.findChannelIdCarNotRecord(findMap); - if (cardArr != null && cardArr.size() > 0) { - pollingExecute(cd_id,cardArr,channel_obj,CardFlow_routingKey,time,"18"); - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardFlowNotRecord_queue"; + String polling_routingKey = "admin.pollingCardFlowNotRecord.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingCardFlowNotRecord_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - /** - * 公共执行 - * @param cd_id - * @param cardArr - * @param channel_obj - * @param CardFlow_routingKey - * @param time - * @param polling_type - */ - public void pollingExecute(String cd_id,List> cardArr,Map channel_obj,String CardFlow_routingKey,Integer time,String polling_type){ - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - //卡状态 用量 轮询 - String polling_id = VeDate.getNo(4); - pollingPublic_Map.put("polling_type",polling_type );//轮询类型 - pollingPublic_Map.put("cd_count", cardArr.size()); - pollingPublic_Map.put("polling_id", polling_id); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - //2.卡状态 - //卡号放入路由 - for (int j = 0; j < cardArr.size(); j++) { - Map card = cardArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("network_type", card.get("network_type")); - Card.put("polling_id", polling_id);//轮询任务详情编号 - String msg = JSON.toJSONString(Card); - //生产任务 - try { - rabbitTemplate.convertAndSend("polling_cardCardFlow_exchange", CardFlow_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - } - - } - - - } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/intelligent/CardStatusAiTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/intelligent/CardStatusAiTask.java index bd3944c..b552329 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/intelligent/CardStatusAiTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/polling/intelligent/CardStatusAiTask.java @@ -22,221 +22,78 @@ import java.util.Map; @Component("cardStatusAiTask") public class CardStatusAiTask { - @Resource - private YzCardRouteMapper yzCardRouteMapper; - @Resource - private YzCardMapper yzCardMapper; @Resource private RabbitTemplate rabbitTemplate; - @Resource - private YzPassagewayPollingMapper yzPassagewayPollingMapper; - - - - - // - String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, - ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; - - - - - - - /** - * 轮询 卡状态 [卡状态-智能-已激活 ][卡状态-智能-未激活-有用量] [卡状态-智能-未激活-已发货] - * @param time 多少 分钟 后失效 - * @param activate_dateIsNull 激活时间是否为空 - * @param polling_type 轮询类型 【卡状态-智能-已激活 10 】【卡状态-智能-未激活-有用量 11 】【卡状态-智能-未激活-已发货 13】 - * @param usedIsNull 用量是否大于 0 - * @param deliver_dateIsNull 发货时间是否为空 - */ public void pollingCardStatus(Integer time,String activate_dateIsNull,String polling_type,String usedIsNull,String deliver_dateIsNull) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - findRouteID_Map.put("cd_algorithm", "2");//智能轮询 - - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - String CardStatus_routingKey = "polling.cardCardStatus.routingKey"; - - /* try { - //设置任务 路由器 名称 与队列 名称 - ad_exchangeName = "polling_cardCardStatus_exchange"; - ad_queueName = "polling_cardCardStatus_queue" ; - - ad_del_exchangeName = "polling_dlxcardCardStatus_exchange"; - ad_del_queueName = "polling_dlxcardCardStatus_queue"; - ad_del_routingKey = "polling.dlxcardCardStatus.routingKey"; - // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardStatus_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); - }catch (Exception e){ - System.out.println(e.getMessage().toString()); - }*/ - - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - findMap.put("activate_date", activate_dateIsNull);//激活时间 - findMap.put("used", usedIsNull);//用量 - findMap.put("deliver_date", deliver_dateIsNull);//发货时间 - - List> cardArr = yzCardMapper.findChannelIdCar(findMap); - if (cardArr != null && cardArr.size() > 0) { - pollingExecute(cd_id,cardArr,channel_obj,CardStatus_routingKey,time,polling_type); - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardStatus_queue"; + String polling_routingKey = "admin.pollingCardStatus.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("activate_dateIsNull",activate_dateIsNull); + start_type.put("polling_type",polling_type); + start_type.put("usedIsNull",usedIsNull); + start_type.put("deliver_dateIsNull",deliver_dateIsNull); + start_type.put("Masage", "备份 执行 pollingCardStatus_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - - - - - /** - * 轮询 卡状态 [卡状态-智能-未激活-未发货-已到沉默期] - * @param time 多少 分钟 后失效 - */ public void pollingCardStatus(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - findRouteID_Map.put("cd_algorithm", "2");//智能轮询 - - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - String CardStatus_routingKey = "polling.cardCardStatus.routingKey"; - - - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - - - List> cardArr = yzCardMapper.findChannelIdCarSilencePeriod(findMap); - if (cardArr != null && cardArr.size() > 0) { - pollingExecute(cd_id,cardArr,channel_obj,CardStatus_routingKey,time,"12"); - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardTask_queue"; + String polling_routingKey = "admin.pollingCardTask.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingCardTask_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - /** - * 轮询 卡状态 状态未知获取 数据 - * @param time - */ public void pollingCardStatusNull(Integer time) { - //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 - Map findRouteID_Map = new HashMap<>(); - findRouteID_Map.put("FindCd_id",null); - - List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); - if (channelArr != null && channelArr.size() > 0) { - String CardStatus_routingKey = "polling.cardCardStatus.routingKey"; - - - //2.获取 通道下卡号 - for (int i = 0; i < channelArr.size(); i++) { - Map channel_obj = channelArr.get(i); - Map findMap = new HashMap<>(); - String cd_id = channel_obj.get("cd_id").toString(); - findMap.put("channel_id", cd_id); - findMap.put("status_ShowId", "8");// 状态 未知 - List> cardArr = yzCardMapper.findChannelIdCarStatusShowId(findMap); - if (cardArr != null && cardArr.size() > 0) { - pollingExecute(cd_id,cardArr,channel_obj,CardStatus_routingKey,time,"17"); - } - findMap.put("status_ShowId", "Null");// 状态 为空 - List> cardArr_1 = yzCardMapper.findChannelIdCarStatusShowId(findMap); - if (cardArr_1 != null && cardArr_1.size() > 0) { - pollingExecute(cd_id,cardArr_1,channel_obj,CardStatus_routingKey,time,"17"); - } - } + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_pollingCardStatusNull_queue"; + String polling_routingKey = "admin.pollingCardStatusNull.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("time",time); + start_type.put("Masage", "备份 执行 pollingCardStatusNull_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); } } - - - - - - - - - - - - - - - - - - - - - - /** - * 公共执行 - * @param cd_id - * @param cardArr - * @param channel_obj - * @param CardStatus_routingKey - * @param time - * @param polling_type - */ - public void pollingExecute(String cd_id,List> cardArr,Map channel_obj,String CardStatus_routingKey,Integer time,String polling_type){ - //插入 通道轮询详情表 - Map pollingPublic_Map = new HashMap<>(); - pollingPublic_Map.put("cd_id", cd_id); - pollingPublic_Map.put("cd_current", 0); - - //卡状态 用量 轮询 - String polling_id_CardStatus = VeDate.getNo(4); - - pollingPublic_Map.put("polling_type", polling_type); - pollingPublic_Map.put("cd_count", cardArr.size()); - pollingPublic_Map.put("polling_id", polling_id_CardStatus); - yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 - - //创建 路由 新增轮询详情 生产启动类型消息 - - //2.卡状态 - //卡号放入路由 - for (int j = 0; j < cardArr.size(); j++) { - Map card = cardArr.get(j); - Map Card = new HashMap<>(); - Card.putAll(channel_obj); - Card.put("iccid", card.get("iccid")); - Card.put("card_no", card.get("card_no")); - Card.put("polling_id", polling_id_CardStatus);//轮询任务详情编号 - String msg = JSON.toJSONString(Card); - //生产任务 - try { - rabbitTemplate.convertAndSend("polling_cardCardStatus_exchange", CardStatus_routingKey, msg, message -> { - // 设置消息过期时间 time 分钟 过期 - message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); - return message; - }); - //rabbitMQConfig.send(exchangeName,queueName,routingKey,"direct",msg); - } catch (Exception e) { - System.out.println(e.getMessage().toString()); - } - } - } - - - - } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/CardStatisticalTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/CardStatisticalTask.java new file mode 100644 index 0000000..ccf67be --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/CardStatisticalTask.java @@ -0,0 +1,44 @@ +package com.yunze.quartz.task.yunze.sys; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.utils.VeDate; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +@Component("cardStatisticalTask") +public class CardStatisticalTask { + + @Resource + private RabbitTemplate rabbitTemplate; + + + /** + * 资产明细数据生成 + * */ + public void Generate(Integer Time,String dept_id){ + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_AssetDetails_queue"; + String polling_routingKey = "admin.AssetDetails.queue"; + String polling_exchangeName = "admin_exchange";//路由 + + try { + Map start_Map = new HashMap<>(); + start_Map.put("dept_id", dept_id);//生成企业ID + start_Map.put("record_date", VeDate.getNextDay(VeDate.getStringDateShort(),"-1") );//获取前一天的数据 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_Map), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (Time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(" 资产明细数据生成 指令发送失败 " + e.getMessage().toString()); + } + + } + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/CardSynOfferinginfoTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/CardSynOfferinginfoTask.java new file mode 100644 index 0000000..b081edf --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/CardSynOfferinginfoTask.java @@ -0,0 +1,47 @@ +package com.yunze.quartz.task.yunze.sys; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.card.YzCardApiOfferinginfoMapper; +import com.yunze.common.mapper.yunze.card.YzCardApiOfferinginfolistMapper; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 同步上游套餐 + */ +@Component("cardSynOfferinginfoTask") +public class CardSynOfferinginfoTask { + + @Resource + private RabbitTemplate rabbitTemplate; + + public void SynOfferinginfo() { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_SynOfferinginfoMQ_queue"; + String polling_routingKey = "admin.SynOfferinginfoMQ.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 SynOfferinginfoMQ_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + + + + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/CardSynOfferinginfolistTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/CardSynOfferinginfolistTask.java new file mode 100644 index 0000000..3f37884 --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/CardSynOfferinginfolistTask.java @@ -0,0 +1,47 @@ +package com.yunze.quartz.task.yunze.sys; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.mapper.yunze.YzCardMapper; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 同步卡号上游套餐 + */ +@Component("cardSynOfferinginfolistTask") +public class CardSynOfferinginfolistTask { + + @Resource + private RabbitTemplate rabbitTemplate; + + public void SynOfferinginfo() { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_SynOfferinginfoTest_queue"; + String polling_routingKey = "admin.SynOfferinginfoTest.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "备份 执行 SynOfferinginfoTest_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("同步主表到期日期 失败 " + e.getMessage().toString()); + } + } + + + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/CleanUpExecutionTaskFlieTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/CleanUpExecutionTaskFlieTask.java new file mode 100644 index 0000000..d898238 --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/CleanUpExecutionTaskFlieTask.java @@ -0,0 +1,58 @@ +package com.yunze.quartz.task.yunze.sys; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.core.redis.FindSysConfig; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.mapper.yunze.commodity.YzWxByProductAgentMapper; +import com.yunze.common.utils.yunze.VeDate; +import lombok.extern.log4j.Log4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 清理文件 释放系统硬盘 + */ +@Component("cleanUpExecutionTaskFlieTask") +public class CleanUpExecutionTaskFlieTask { + + + @Resource + private RabbitTemplate rabbitTemplate; + + /** + * 清理执行任务 生成文件 释放系统硬盘 + * */ + public void ExecutionTaskFlie() { + //1.创建路由 绑定 生产队列 发送消息 + String polling_queueName = "admin_cleanExecutionTaskFlie_queue"; + String polling_routingKey = "admin.cleanExecutionTaskFlie.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "清理执行任务 admin_cleanExecutionTaskFlie_queue ");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("清理执行任务 失败 " + e.getMessage().toString()); + } + + } + + + + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/IndexpageGenerateTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/IndexpageGenerateTask.java index cbf138e..d0ac805 100644 --- a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/IndexpageGenerateTask.java +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/IndexpageGenerateTask.java @@ -43,4 +43,29 @@ public class IndexpageGenerateTask { System.out.println(" 首页数据生成 指令发送失败 " + e.getMessage().toString()); } } + + + public void GenerateAssetDetails(Integer Time,String dept_id) { + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_IndexDataGenerate_queue"; + String polling_routingKey = "admin.IndexDataGenerate.queue"; + String polling_exchangeName = "admin_exchange";//路由 + + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_Map = new HashMap<>(); + start_Map.put("dept_id", dept_id);//生成企业ID + start_Map.put("record_date",VeDate.getNextDay(VeDate.getStringDateShort(),"-1") );//获取前一天的数据 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_Map), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (Time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(" 首页数据生成 指令发送失败 " + e.getMessage().toString()); + } + } + + } diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/OrderRenewalGeneration.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/OrderRenewalGeneration.java new file mode 100644 index 0000000..62d76fe --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/OrderRenewalGeneration.java @@ -0,0 +1,47 @@ +package com.yunze.quartz.task.yunze.sys; + +import com.alibaba.fastjson.JSON; + +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 企业续费 审核成功之后触发 订单生成 + */ +@Component("orderRenewalGeneration") +public class OrderRenewalGeneration { + + + + @Resource + private RabbitTemplate rabbitTemplate; + + /** + * 企业续费 审核成功之后触发 订单生成 + * */ + public void RenewalToGenerateOrder(Integer day) { + //1.创建路由 绑定 生产队列 发送消息 + String polling_queueName = "admin_RenewalToGenerateOrder_queue"; + String polling_routingKey = "admin.RenewalToGenerateOrder.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("day", day); + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("企业续费 审核成功之后触发 订单生成 失败 " + e.getMessage().toString()); + } + + } + + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/SysLogClearTask.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/SysLogClearTask.java new file mode 100644 index 0000000..302bbbe --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/SysLogClearTask.java @@ -0,0 +1,43 @@ +package com.yunze.quartz.task.yunze.sys; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.utils.VeDate; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 日志清理 + */ +@Component("sysLogClearTask") +public class SysLogClearTask { + + @Resource + private RabbitTemplate rabbitTemplate; + + /** + * 日志清理 + * */ + public void Generate(Integer Time){ + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = "admin_LogClear_queue"; + String polling_routingKey = "admin.LogClear.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + Map start_Map = new HashMap<>(); + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_Map), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (Time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(" 日志清理 指令发送失败 " + e.getMessage().toString()); + } + + } + +} diff --git a/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/SysOrder.java b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/SysOrder.java new file mode 100644 index 0000000..2499f5a --- /dev/null +++ b/yunze-quartz/src/main/java/com/yunze/quartz/task/yunze/sys/SysOrder.java @@ -0,0 +1,53 @@ +package com.yunze.quartz.task.yunze.sys; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzOrderMapper; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 系统订单 + * @Auther: zhang feng + * @Date: 2022/06/15/10:30 + * @Description: + */ +@Component("sysOrder") +public class SysOrder { + + @Resource + private YzOrderMapper yzOrderMapper; + + + + @Resource + private RabbitTemplate rabbitTemplate; + + /** + * 修改 info LIKE '未找到加%' and add_package = '1' 订单 (未找到加包数据订单修改状态)【可能是未给客户划分资费】【激活生效未获取到激活时间】等! + * */ + public void UpdOrderStatus() { + //1.创建路由 绑定 生产队列 发送消息 + String polling_queueName = "admin_UpdOrderStatus_queue"; + String polling_routingKey = "admin.UpdOrderStatus.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("Masage", "重置订单状态");//启动类型 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("重置订单状态 失败 " + e.getMessage().toString()); + } + + } + + +} diff --git a/yunze-quartz/yunze-quartz.iml b/yunze-quartz/yunze-quartz.iml index 36febc0..8e06946 100644 --- a/yunze-quartz/yunze-quartz.iml +++ b/yunze-quartz/yunze-quartz.iml @@ -19,6 +19,13 @@ + + + + + + + @@ -105,11 +112,10 @@ - - - + + diff --git a/yunze-system/pom.xml b/yunze-system/pom.xml index 6c4a276..a4f857c 100644 --- a/yunze-system/pom.xml +++ b/yunze-system/pom.xml @@ -5,7 +5,7 @@ yunze com.yunze - 0.8.0 + 1.0.0 4.0.0 @@ -28,6 +28,10 @@ 3.9.6.B compile + + com.yunze + yunze-quartz + diff --git a/yunze-system/src/main/java/com/yunze/system/mapper/SysUserMapper.java b/yunze-system/src/main/java/com/yunze/system/mapper/SysUserMapper.java index 5ea04c0..ddf534b 100644 --- a/yunze-system/src/main/java/com/yunze/system/mapper/SysUserMapper.java +++ b/yunze-system/src/main/java/com/yunze/system/mapper/SysUserMapper.java @@ -15,7 +15,7 @@ public interface SysUserMapper { /** * 根据条件分页查询用户列表 - * + * * @param sysUser 用户信息 * @return 用户信息集合信息 */ @@ -23,7 +23,7 @@ public interface SysUserMapper /** * 通过用户名查询用户 - * + * * @param userName 用户名 * @return 用户对象信息 */ @@ -31,7 +31,7 @@ public interface SysUserMapper /** * 通过用户ID查询用户 - * + * * @param userId 用户ID * @return 用户对象信息 */ @@ -39,7 +39,7 @@ public interface SysUserMapper /** * 新增用户信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -47,7 +47,7 @@ public interface SysUserMapper /** * 修改用户信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -55,7 +55,7 @@ public interface SysUserMapper /** * 修改用户头像 - * + * * @param userName 用户名 * @param avatar 头像地址 * @return 结果 @@ -64,7 +64,7 @@ public interface SysUserMapper /** * 重置用户密码 - * + * * @param userName 用户名 * @param password 密码 * @return 结果 @@ -73,7 +73,7 @@ public interface SysUserMapper /** * 通过用户ID删除用户 - * + * * @param userId 用户ID * @return 结果 */ @@ -81,7 +81,7 @@ public interface SysUserMapper /** * 批量删除用户信息 - * + * * @param userIds 需要删除的用户ID * @return 结果 */ @@ -89,7 +89,7 @@ public interface SysUserMapper /** * 校验用户名称是否唯一 - * + * * @param userName 用户名称 * @return 结果 */ @@ -132,5 +132,11 @@ public interface SysUserMapper public List> findDeptUser(Map map); + public List> userPhone(Map map); + + /** + * 通过用户名查询手机号 + */ + public SysUser userByPhonenumber(String phone); } diff --git a/yunze-system/src/main/java/com/yunze/system/service/ISysUserService.java b/yunze-system/src/main/java/com/yunze/system/service/ISysUserService.java index 7a008d2..2536d88 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/ISysUserService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/ISysUserService.java @@ -176,4 +176,7 @@ public interface ISysUserService public List> findDeptUser(Map map); + public boolean userPhone(Map map); + + SysUser selectUserByPhonenumber(String phone); } diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/SysUserServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/SysUserServiceImpl.java index dde010f..12038da 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/SysUserServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/SysUserServiceImpl.java @@ -1,6 +1,7 @@ package com.yunze.system.service.impl; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -29,12 +30,11 @@ import com.yunze.system.service.ISysUserService; /** * 用户 业务层处理 - * + * * @author yunze */ @Service -public class SysUserServiceImpl implements ISysUserService -{ +public class SysUserServiceImpl implements ISysUserService { private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); @Autowired @@ -57,58 +57,52 @@ public class SysUserServiceImpl implements ISysUserService /** * 根据条件分页查询用户列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List selectUserList(SysUser user) - { + public List selectUserList(SysUser user) { return userMapper.selectUserList(user); } /** * 通过用户名查询用户 - * + * * @param userName 用户名 * @return 用户对象信息 */ @Override - public SysUser selectUserByUserName(String userName) - { + public SysUser selectUserByUserName(String userName) { return userMapper.selectUserByUserName(userName); } /** * 通过用户ID查询用户 - * + * * @param userId 用户ID * @return 用户对象信息 */ @Override - public SysUser selectUserById(Long userId) - { + public SysUser selectUserById(Long userId) { return userMapper.selectUserById(userId); } /** * 查询用户所属角色组 - * + * * @param userName 用户名 * @return 结果 */ @Override - public String selectUserRoleGroup(String userName) - { + public String selectUserRoleGroup(String userName) { List list = roleMapper.selectRolesByUserName(userName); StringBuffer idsStr = new StringBuffer(); - for (SysRole role : list) - { + for (SysRole role : list) { idsStr.append(role.getRoleName()).append(","); } - if (StringUtils.isNotEmpty(idsStr.toString())) - { + if (StringUtils.isNotEmpty(idsStr.toString())) { return idsStr.substring(0, idsStr.length() - 1); } return idsStr.toString(); @@ -116,21 +110,18 @@ public class SysUserServiceImpl implements ISysUserService /** * 查询用户所属岗位组 - * + * * @param userName 用户名 * @return 结果 */ @Override - public String selectUserPostGroup(String userName) - { + public String selectUserPostGroup(String userName) { List list = postMapper.selectPostsByUserName(userName); StringBuffer idsStr = new StringBuffer(); - for (SysPost post : list) - { + for (SysPost post : list) { idsStr.append(post.getPostName()).append(","); } - if (StringUtils.isNotEmpty(idsStr.toString())) - { + if (StringUtils.isNotEmpty(idsStr.toString())) { return idsStr.substring(0, idsStr.length() - 1); } return idsStr.toString(); @@ -138,16 +129,14 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户名称是否唯一 - * + * * @param userName 用户名称 * @return 结果 */ @Override - public String checkUserNameUnique(String userName) - { + public String checkUserNameUnique(String userName) { int count = userMapper.checkUserNameUnique(userName); - if (count > 0) - { + if (count > 0) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -160,12 +149,10 @@ public class SysUserServiceImpl implements ISysUserService * @return */ @Override - public String checkPhoneUnique(SysUser user) - { + public String checkPhoneUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -178,12 +165,10 @@ public class SysUserServiceImpl implements ISysUserService * @return */ @Override - public String checkEmailUnique(SysUser user) - { + public String checkEmailUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkEmailUnique(user.getEmail()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -191,28 +176,25 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户是否允许操作 - * + * * @param user 用户信息 */ @Override - public void checkUserAllowed(SysUser user) - { - if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) - { + public void checkUserAllowed(SysUser user) { + if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) { throw new CustomException("不允许操作超级管理员用户"); } } /** * 新增保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @Override @Transactional - public int insertUser(SysUser user) - { + public int insertUser(SysUser user) { // 新增用户信息 int rows = userMapper.insertUser(user); // 新增用户岗位关联 @@ -224,14 +206,13 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @Override @Transactional - public int updateUser(SysUser user) - { + public int updateUser(SysUser user) { Long userId = user.getUserId(); // 删除用户与角色关联 userRoleMapper.deleteUserRoleByUserId(userId); @@ -246,87 +227,78 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改用户状态 - * + * * @param user 用户信息 * @return 结果 */ @Override - public int updateUserStatus(SysUser user) - { + public int updateUserStatus(SysUser user) { return userMapper.updateUser(user); } /** * 修改用户基本信息 - * + * * @param user 用户信息 * @return 结果 */ @Override - public int updateUserProfile(SysUser user) - { + public int updateUserProfile(SysUser user) { return userMapper.updateUser(user); } /** * 修改用户头像 - * + * * @param userName 用户名 - * @param avatar 头像地址 + * @param avatar 头像地址 * @return 结果 */ @Override - public boolean updateUserAvatar(String userName, String avatar) - { + public boolean updateUserAvatar(String userName, String avatar) { return userMapper.updateUserAvatar(userName, avatar) > 0; } /** * 重置用户密码 - * + * * @param user 用户信息 * @return 结果 */ @Override - public int resetPwd(SysUser user) - { + public int resetPwd(SysUser user) { return userMapper.updateUser(user); } /** * 重置用户密码 - * + * * @param userName 用户名 * @param password 密码 * @return 结果 */ @Override - public int resetUserPwd(String userName, String password) - { + public int resetUserPwd(String userName, String password) { return userMapper.resetUserPwd(userName, password); } /** * 新增用户角色信息 - * + * * @param user 用户对象 */ - public void insertUserRole(SysUser user) - { + public void insertUserRole(SysUser user) { Long[] roles = user.getRoleIds(); - if (StringUtils.isNotNull(roles)) - { + if (StringUtils.isNotNull(roles)) { // 新增用户与角色管理 List list = new ArrayList(); - for (Long roleId : roles) - { + for (Long roleId : roles) { SysUserRole ur = new SysUserRole(); ur.setUserId(user.getUserId()); ur.setRoleId(roleId); list.add(ur); } - if (list.size() > 0) - { + if (list.size() > 0) { userRoleMapper.batchUserRole(list); } } @@ -334,25 +306,21 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增用户岗位信息 - * + * * @param user 用户对象 */ - public void insertUserPost(SysUser user) - { + public void insertUserPost(SysUser user) { Long[] posts = user.getPostIds(); - if (StringUtils.isNotNull(posts)) - { + if (StringUtils.isNotNull(posts)) { // 新增用户与岗位管理 List list = new ArrayList(); - for (Long postId : posts) - { + for (Long postId : posts) { SysUserPost up = new SysUserPost(); up.setUserId(user.getUserId()); up.setPostId(postId); list.add(up); } - if (list.size() > 0) - { + if (list.size() > 0) { userPostMapper.batchUserPost(list); } } @@ -360,14 +328,13 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户ID删除用户 - * + * * @param userId 用户ID * @return 结果 */ @Override @Transactional - public int deleteUserById(Long userId) - { + public int deleteUserById(Long userId) { // 删除用户与角色关联 userRoleMapper.deleteUserRoleByUserId(userId); // 删除用户与岗位表 @@ -377,16 +344,14 @@ public class SysUserServiceImpl implements ISysUserService /** * 批量删除用户信息 - * + * * @param userIds 需要删除的用户ID * @return 结果 */ @Override @Transactional - public int deleteUserByIds(Long[] userIds) - { - for (Long userId : userIds) - { + public int deleteUserByIds(Long[] userIds) { + for (Long userId : userIds) { checkUserAllowed(new SysUser(userId)); } // 删除用户与角色关联 @@ -398,17 +363,15 @@ public class SysUserServiceImpl implements ISysUserService /** * 导入用户数据 - * - * @param userList 用户数据列表 + * + * @param userList 用户数据列表 * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 - * @param operName 操作用户 + * @param operName 操作用户 * @return 结果 */ @Override - public String importUser(List userList, Boolean isUpdateSupport, String operName) - { - if (StringUtils.isNull(userList) || userList.size() == 0) - { + public String importUser(List userList, Boolean isUpdateSupport, String operName) { + if (StringUtils.isNull(userList) || userList.size() == 0) { throw new CustomException("导入用户数据不能为空!"); } int successNum = 0; @@ -416,48 +379,36 @@ public class SysUserServiceImpl implements ISysUserService StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); String password = configService.selectConfigByKey("sys.user.initPassword"); - for (SysUser user : userList) - { - try - { + for (SysUser user : userList) { + try { // 验证是否存在这个用户 SysUser u = userMapper.selectUserByUserName(user.getUserName()); - if (StringUtils.isNull(u)) - { + if (StringUtils.isNull(u)) { user.setPassword(SecurityUtils.encryptPassword(password)); user.setCreateBy(operName); this.insertUser(user); successNum++; successMsg.append("
    " + successNum + "、账号 " + user.getUserName() + " 导入成功"); - } - else if (isUpdateSupport) - { + } else if (isUpdateSupport) { user.setUpdateBy(operName); this.updateUser(user); successNum++; successMsg.append("
    " + successNum + "、账号 " + user.getUserName() + " 更新成功"); - } - else - { + } else { failureNum++; failureMsg.append("
    " + failureNum + "、账号 " + user.getUserName() + " 已存在"); } - } - catch (Exception e) - { + } catch (Exception e) { failureNum++; String msg = "
    " + failureNum + "、账号 " + user.getUserName() + " 导入失败:"; failureMsg.append(msg + e.getMessage()); log.error(msg, e); } } - if (failureNum > 0) - { + if (failureNum > 0) { failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); throw new CustomException(failureMsg.toString()); - } - else - { + } else { successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); } return successMsg.toString(); @@ -468,5 +419,28 @@ public class SysUserServiceImpl implements ISysUserService return userMapper.findDeptUser(map); } + @Override + public boolean userPhone(Map map) { + String Str = map.get("username").toString(); + boolean bool = false; + List> list = userMapper.userPhone(map); + for (Map Rmap : list) { + String phone = Rmap.get("phonenumber").toString(); + if (phone.equals(Str)) { + bool = true; + break; + } else { + bool = false; + } + } + return bool; + } + + @Override + public SysUser selectUserByPhonenumber(String phone) { + + return userMapper.userByPhonenumber(phone); + } + } diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzAgentPackageServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzAgentPackageServiceImpl.java index 4657be1..05c6556 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzAgentPackageServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzAgentPackageServiceImpl.java @@ -1,21 +1,25 @@ package com.yunze.system.service.impl.yunze; +import com.alibaba.fastjson.JSON; import com.yunze.common.annotation.DataScope; +import com.yunze.common.core.domain.entity.SysDictData; +import com.yunze.common.core.domain.entity.SysUser; import com.yunze.common.mapper.yunze.YzAgentPackageMapper; import com.yunze.common.mapper.yunze.YzAgentPacketMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; import com.yunze.common.utils.yunze.Different; import com.yunze.common.utils.yunze.PageUtil; import com.yunze.common.utils.yunze.VeDate; +import com.yunze.system.mapper.SysDictDataMapper; import com.yunze.system.service.yunze.IYzAgentPackageService; +import com.yunze.system.service.yunze.IYzUserService; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 资费组 业务实现类 @@ -31,6 +35,16 @@ public class YzAgentPackageServiceImpl implements IYzAgentPackageService private YzAgentPackageMapper yzAgentPackageMapper; @Resource private YzAgentPacketMapper yzAgentPacketMapper; + @Resource + private IYzUserService iYzUserService; + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private RabbitTemplate rabbitTemplate; + @Resource + private SysDictDataMapper sysDictDataMapper; + + @Override @DataScope(deptAlias = "d" , userAlias = "a" , isMap=true) @@ -136,4 +150,185 @@ public class YzAgentPackageServiceImpl implements IYzAgentPackageService public boolean update(Map map) { return yzAgentPackageMapper.update(map)>0; } + + @Override + public String exportallorders(Map map, SysUser User) { + Object MapAgent_id = map.get("agent_id"); + //导出时 未选中 当前 企业编号时 且登录 部门不是 总平台 赋值部门 + if(MapAgent_id==null && User.getDeptId()!=100){ + List agent_idArr = new ArrayList(); + agent_idArr.add(""+User.getDeptId()); + map.put("agent_id",agent_idArr); + } + map.remove("pageNum"); + map.remove("pageSize"); + List> outCardIccidArr = null; + //权限过滤 + if(map.get("agent_id")!=null){ + List agent_id = (List) map.get("agent_id"); + if(!Different.Is_existence(agent_id,100)){ + List user_id = iYzUserService.getUserID(map); + map.put("user_id",user_id); + } + } + outCardIccidArr = yzAgentPackageMapper.exportallorders(map); + + if(outCardIccidArr!=null && outCardIccidArr.size()>0){ + String create_by = " [ "+User.getDept().getDeptName()+" ] - "+" [ "+User.getUserName()+" ] "; + String newName = UUID.randomUUID().toString().replace("-","")+"_ExportAge";//执行任务导出类别 + String agent_id = User.getDept().getDeptId().toString(); + String task_name = "客户资费导出 [导出]"; + + + String SaveUrl = "/getcsv/"+newName+".csv"; + Map task_map = new HashMap(); + task_map.put("auth",create_by); + task_map.put("task_name",task_name); + task_map.put("url",SaveUrl); + task_map.put("agent_id", agent_id); + task_map.put("type", "36");//执行任务类别 + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + //获取字典信息 + + String polling_queueName = "admin_ExportaAge_queue"; + String polling_routingKey = "admin.ExportaAge.queue"; + String polling_exchangeName = "admin_exchange";//路由 + + try { + Map start_type = new HashMap<>(); + start_type.put("type", "importCardData");//启动类型 + start_type.put("newName", newName);//输出文件名 + start_type.put("task_map", task_map);// + start_type.put("create_by", create_by);// + start_type.put("User", User); + start_type.put("outCardIccidArr",outCardIccidArr); + start_type.put("map",map); + + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + }catch (Exception e){ + System.out.println("导入 卡号 失败 " + e.getMessage().toString()); + return "客户资费导出 导入 操作失败!"; + } + }else { + return "您当前的筛选的查询条件 未找到数据!导出任务取消!"; + } + return "已下发执行日志可在【系统管理】》【日志管理】》【执行日志】查看"; + } + + + + + @Override + public String exportPacket(Map map, SysUser User) { + Object MapAgent_id = map.get("agent_id"); + //导出时 未选中 当前 企业编号时 且登录 部门不是 总平台 赋值部门 + String dept_id = User.getDeptId().toString(); + if(MapAgent_id==null && User.getDeptId()!=100){ + List agent_idArr = new ArrayList(); + agent_idArr.add(""+dept_id); + map.put("agent_id",agent_idArr); + } + map.remove("pageNum"); + map.remove("pageSize"); + List> outCardIccidArr = null; + //权限过滤 + if(map.get("agent_id")!=null){ + List agent_id = (List) map.get("agent_id"); + if(!Different.Is_existence(agent_id,100)){ + List user_id = iYzUserService.getUserID(map); + map.put("user_id",user_id); + } + } + + outCardIccidArr = yzAgentPacketMapper.exportPacket(map); + + if(outCardIccidArr!=null && outCardIccidArr.size()>0){ + String create_by = " [ "+User.getDept().getDeptName()+" ] - "+" [ "+User.getUserName()+" ] "; + String newName = UUID.randomUUID().toString().replace("-","")+"_ExportPacket";//执行任务导出类别 + String agent_id = User.getDept().getDeptId().toString(); + String task_name = "企业资费计划导出 [导出]"; + + String SaveUrl = "/getcsv/"+newName+".csv"; + Map task_map = new HashMap(); + task_map.put("auth",create_by); + task_map.put("task_name",task_name); + task_map.put("url",SaveUrl); + task_map.put("agent_id", agent_id); + task_map.put("type", "40");//资费计划导出 + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + List customize_whether = sysDictDataMapper.selectDictDataByType("yunze_customize_whether");//系统是否 + + String polling_queueName = "admin_ExportPacket_queue"; + String polling_routingKey = "admin.ExportPacket.queue"; + String polling_exchangeName = "admin_exchange";//路由 + + try { + Map start_type = new HashMap<>(); + start_type.put("newName", newName);//输出文件名 + start_type.put("task_map", task_map);// + start_type.put("create_by", create_by);// + start_type.put("User", User); + start_type.put("outDataArr",outCardIccidArr); + start_type.put("map",map); + start_type.put("customize_whether",customize_whether); + + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + }catch (Exception e){ + System.out.println("导出 资费组 失败 " + e.getMessage().toString()); + return "导出 资费组 操作失败!"; + } + }else { + return "您当前的筛选的查询条件 未找到数据!导出任务取消!"; + } + return "已下发执行日志可在【系统管理】》【日志管理】》【执行日志】查看"; + } + + + + + + + + + + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardApiOfferinginfoServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardApiOfferinginfoServiceImpl.java index 72f5867..4a1b28d 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardApiOfferinginfoServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardApiOfferinginfoServiceImpl.java @@ -2,7 +2,7 @@ package com.yunze.system.service.impl.yunze; import com.yunze.common.mapper.yunze.card.YzCardApiOfferinginfoMapper; import com.yunze.common.utils.yunze.PageUtil; -import com.yunze.system.service.yunze.YzCardApiOfferinginfoService; +import com.yunze.system.service.yunze.IYzCardApiOfferinginfoService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -10,7 +10,7 @@ import java.util.HashMap; import java.util.Map; @Service -public class YzCardApiOfferinginfoServiceImpl implements YzCardApiOfferinginfoService { +public class YzCardApiOfferinginfoServiceImpl implements IYzCardApiOfferinginfoService { @Resource private YzCardApiOfferinginfoMapper yzCardApiOfferinginfoMapper; diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardApiOfferinginfolistServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardApiOfferinginfolistServiceImpl.java index b8d4ec9..ab9b29e 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardApiOfferinginfolistServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardApiOfferinginfolistServiceImpl.java @@ -2,14 +2,14 @@ package com.yunze.system.service.impl.yunze; import com.yunze.common.mapper.yunze.card.YzCardApiOfferinginfolistMapper; import com.yunze.common.utils.yunze.PageUtil; -import com.yunze.system.service.yunze.YzCardApiOfferinginfolistService; +import com.yunze.system.service.yunze.IYzCardApiOfferinginfolistService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; @Service -public class YzCardApiOfferinginfolistServiceImpl implements YzCardApiOfferinginfolistService { +public class YzCardApiOfferinginfolistServiceImpl implements IYzCardApiOfferinginfolistService { @Resource private YzCardApiOfferinginfolistMapper yzCardApiOfferinginfolistMapper; diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPackageServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPackageServiceImpl.java index 419a454..df63831 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPackageServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPackageServiceImpl.java @@ -1,24 +1,25 @@ package com.yunze.system.service.impl.yunze; +import com.alibaba.fastjson.JSON; import com.yunze.common.annotation.DataScope; -import com.yunze.common.mapper.yunze.YzAgentPackageMapper; -import com.yunze.common.mapper.yunze.YzAgentPacketMapper; -import com.yunze.common.mapper.yunze.YzCardPackageMapper; -import com.yunze.common.mapper.yunze.YzCardPacketMapper; +import com.yunze.common.core.domain.entity.SysDictData; +import com.yunze.common.core.domain.entity.SysUser; +import com.yunze.common.mapper.yunze.*; import com.yunze.common.utils.yunze.Different; import com.yunze.common.utils.yunze.PageUtil; import com.yunze.common.utils.yunze.VeDate; +import com.yunze.system.mapper.SysDictDataMapper; import com.yunze.system.service.yunze.IYzCardPackageService; +import com.yunze.system.service.yunze.IYzUserService; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import javax.annotation.Resource; +import java.util.*; /** * 资费组 业务实现类 @@ -36,6 +37,14 @@ public class YzCardPackageServiceImpl implements IYzCardPackageService { private YzCardPacketMapper cardPacketMapper; @Autowired private YzAgentPacketMapper agentPacketMapper; + @Resource + private IYzUserService iYzUserService; + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private RabbitTemplate rabbitTemplate; + @Resource + private SysDictDataMapper sysDictDataMapper; @Override @@ -305,4 +314,150 @@ public class YzCardPackageServiceImpl implements IYzCardPackageService { return cardPackageMapper.channelName(map); } + @Override + public String exportallorders(Map map, SysUser User) { + Object MapAgent_id = map.get("agent_id"); + //导出时 未选中 当前 企业编号时 且登录 部门不是 总平台 赋值部门 + if(MapAgent_id==null && User.getDeptId()!=100){ + List agent_idArr = new ArrayList(); + agent_idArr.add(""+User.getDeptId()); + map.put("agent_id",agent_idArr); + } + map.remove("pageNum"); + map.remove("pageSize"); + List> outCardIccidArr = null; + //权限过滤 + if(map.get("agent_id")!=null){ + List agent_id = (List) map.get("agent_id"); + if(!Different.Is_existence(agent_id,100)){ + List user_id = iYzUserService.getUserID(map); + map.put("user_id",user_id); + } + } + + outCardIccidArr = cardPackageMapper.exportallorders(map); + + if(outCardIccidArr!=null && outCardIccidArr.size()>0){ + String create_by = " [ "+User.getDept().getDeptName()+" ] - "+" [ "+User.getUserName()+" ] "; + String newName = UUID.randomUUID().toString().replace("-","")+"_ExportPlatform";//执行任务导出类别 + String agent_id = User.getDept().getDeptId().toString(); + String task_name = "平台资费导出 [导出]"; + + String SaveUrl = "/getcsv/"+newName+".csv"; + Map task_map = new HashMap(); + task_map.put("auth",create_by); + task_map.put("task_name",task_name); + task_map.put("url",SaveUrl); + task_map.put("agent_id", agent_id); + task_map.put("type", "37");//执行任务类别 + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + //获取字典信息 + + String polling_queueName = "admin_ExportPlatform_queue"; + String polling_routingKey = "admin.ExportPlatform.queue"; + String polling_exchangeName = "admin_exchange";//路由 + + try { + Map start_type = new HashMap<>(); + start_type.put("type", "importCardData");//启动类型 + start_type.put("newName", newName);//输出文件名 + start_type.put("task_map", task_map);// + start_type.put("create_by", create_by);// + start_type.put("User", User); + start_type.put("outCardIccidArr",outCardIccidArr); + start_type.put("map",map); + + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + }catch (Exception e){ + System.out.println("导入 卡号 失败 " + e.getMessage().toString()); + return "平台资费导出 导入 操作失败!"; + } + }else { + return "您当前的筛选的查询条件 未找到数据!导出任务取消!"; + } + return "已下发执行日志可在【系统管理】》【日志管理】》【执行日志】查看"; + } + + + + @Override + public String exportPacket(Map map, SysUser User) { + Object MapAgent_id = map.get("agent_id"); + //导出时 未选中 当前 企业编号时 且登录 部门不是 总平台 赋值部门 + String dept_id = User.getDeptId().toString(); + if(MapAgent_id==null && User.getDeptId()!=100){ + List agent_idArr = new ArrayList(); + agent_idArr.add(""+dept_id); + map.put("agent_id",agent_idArr); + } + map.remove("pageNum"); + map.remove("pageSize"); + List> outCardIccidArr = null; + //权限过滤 + if(map.get("agent_id")!=null){ + List agent_id = (List) map.get("agent_id"); + if(!Different.Is_existence(agent_id,100)){ + List user_id = iYzUserService.getUserID(map); + map.put("user_id",user_id); + } + } + if(dept_id.equals("100")){ + outCardIccidArr = cardPacketMapper.exportPacket(map); + }else{ + outCardIccidArr = agentPacketMapper.exportPacket(map); + } + + + if(outCardIccidArr!=null && outCardIccidArr.size()>0){ + String create_by = " [ "+User.getDept().getDeptName()+" ] - "+" [ "+User.getUserName()+" ] "; + String newName = UUID.randomUUID().toString().replace("-","")+"_ExportPacket";//执行任务导出类别 + String agent_id = User.getDept().getDeptId().toString(); + String task_name = "资费计划导出 [导出]"; + + String SaveUrl = "/getcsv/"+newName+".csv"; + Map task_map = new HashMap(); + task_map.put("auth",create_by); + task_map.put("task_name",task_name); + task_map.put("url",SaveUrl); + task_map.put("agent_id", agent_id); + task_map.put("type", "40");//资费计划导出 + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + List customize_whether = sysDictDataMapper.selectDictDataByType("yunze_customize_whether");//系统是否 + + String polling_queueName = "admin_ExportPacket_queue"; + String polling_routingKey = "admin.ExportPacket.queue"; + String polling_exchangeName = "admin_exchange";//路由 + + try { + Map start_type = new HashMap<>(); + start_type.put("newName", newName);//输出文件名 + start_type.put("task_map", task_map);// + start_type.put("create_by", create_by);// + start_type.put("User", User); + start_type.put("outDataArr",outCardIccidArr); + start_type.put("map",map); + start_type.put("customize_whether",customize_whether); + + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + }catch (Exception e){ + System.out.println("导出 资费组 失败 " + e.getMessage().toString()); + return "导出 资费组 操作失败!"; + } + }else { + return "您当前的筛选的查询条件 未找到数据!导出任务取消!"; + } + return "已下发执行日志可在【系统管理】》【日志管理】》【执行日志】查看"; + } + + } diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPacketServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPacketServiceImpl.java index bc87fa0..cad7de0 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPacketServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPacketServiceImpl.java @@ -8,6 +8,7 @@ import com.yunze.system.service.yunze.IYzCardPacketService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -22,9 +23,9 @@ import java.util.Map; public class YzCardPacketServiceImpl implements IYzCardPacketService { - @Autowired + @Resource private YzCardPacketMapper cardPacketMapper; - @Autowired + @Resource private YzAgentPacketMapper agentPacketMapper; @@ -67,4 +68,30 @@ public class YzCardPacketServiceImpl implements IYzCardPacketService } return Rmap; } + + @Override + public Map findToBR(Map map) { + Map Rmap = new HashMap(); + String login_dept_id = map.get("login_dept_id").toString(); + List> packetArr = null; + if(login_dept_id.equals("100")){ + packetArr = cardPacketMapper.findToBR(map); + }else{ + packetArr = agentPacketMapper.findToBR(map); + } + Rmap.put("packetArr",packetArr); + Map packetCardCount = new HashMap<>(); + if(packetArr!=null && packetArr.size()>0){ + for (int i = 0; i < packetArr.size(); i++) { + Map Packe = packetArr.get(i); + String packet_id = Packe.get("packet_id").toString(); + map.put("packet_id",packet_id); + List> cardcount = cardPacketMapper.getPacketIdCard(map); + cardcount = cardcount!=null?cardcount:new ArrayList<>(); + packetCardCount.put(""+packet_id,cardcount); + } + } + Rmap.put("packetCardCount",packetCardCount);//存储对应资费组卡总数 + return Rmap; + } } diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPollingErrorGroupServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPollingErrorGroupServiceImpl.java new file mode 100644 index 0000000..6573ca5 --- /dev/null +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPollingErrorGroupServiceImpl.java @@ -0,0 +1,52 @@ +package com.yunze.system.service.impl.yunze; + +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorGroupMapper; +import com.yunze.common.utils.yunze.PageUtil; +import com.yunze.system.service.yunze.IYzCardPollingErrorGroupService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; +@Service +public class YzCardPollingErrorGroupServiceImpl implements IYzCardPollingErrorGroupService { + + @Resource + private YzCardPollingErrorGroupMapper yzCardPollingErrorGroupMapper; + + @Override + public Map listGroup(Map map) { + Map omp=new HashMap(); + Integer currenPage=map.get("pageNum")!=null?Integer.parseInt(map.get("pageNum").toString()):0; + Integer pageSize=map.get("pageSize")!=null?Integer.parseInt(map.get("pageSize").toString()):10; + Integer rowCount = yzCardPollingErrorGroupMapper.selMapCount(map); + rowCount=rowCount!=null?rowCount:0; + PageUtil pu=new PageUtil(rowCount,currenPage , pageSize);//初始化分页工具类 + //数据打包 + map.put("StarRow", pu.getStarRow()); + map.put("PageSize", pu.getPageSize()); + omp.put("Pu", pu); + omp.put("Data", yzCardPollingErrorGroupMapper.selMap(map)); + return omp; + } + + @Override + public boolean del(Map map) { + return yzCardPollingErrorGroupMapper.del(map)>0; + } + + @Override + public boolean upd(Map map) { + return yzCardPollingErrorGroupMapper.updObj(map)>0; + } + + @Override + public boolean delArr(Map map) { + return yzCardPollingErrorGroupMapper.delArr(map)>0; + } + + @Override + public boolean updArr(Map map) { + return yzCardPollingErrorGroupMapper.updArr(map)>0; + } +} diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPollingErrorServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPollingErrorServiceImpl.java new file mode 100644 index 0000000..2e037fb --- /dev/null +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardPollingErrorServiceImpl.java @@ -0,0 +1,55 @@ +package com.yunze.system.service.impl.yunze; + +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorMapper; +import com.yunze.common.utils.yunze.PageUtil; +import com.yunze.system.service.yunze.IYzCardPollingErrorService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; +@Service +public class YzCardPollingErrorServiceImpl implements IYzCardPollingErrorService { + + @Resource + private YzCardPollingErrorMapper yzCardPollingErrorMapper; + + @Override + public Map listError(Map map) { + Map omp=new HashMap(); + Integer currenPage=map.get("pageNum")!=null?Integer.parseInt(map.get("pageNum").toString()):0; + Integer pageSize=map.get("pageSize")!=null?Integer.parseInt(map.get("pageSize").toString()):10; + Integer rowCount = yzCardPollingErrorMapper.selMapCount(map); + rowCount=rowCount!=null?rowCount:0; + PageUtil pu=new PageUtil(rowCount,currenPage , pageSize);//初始化分页工具类 + //数据打包 + map.put("StarRow", pu.getStarRow()); + map.put("PageSize", pu.getPageSize()); + omp.put("Pu", pu); + omp.put("Data", yzCardPollingErrorMapper.selMap(map)); + return omp; + } + + @Override + public boolean upd(Map map) { + return yzCardPollingErrorMapper.updObj(map)>0; + } + + @Override + public boolean del(Map map) { + return yzCardPollingErrorMapper.del(map)>0; + } + + @Override + public boolean delArr(Map map) { + return yzCardPollingErrorMapper.delArr(map)>0; + } + + @Override + public boolean updArr(Map map) { + + return yzCardPollingErrorMapper.updArr(map)>0; + } + + +} diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardRouteService_Impl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardRouteService_Impl.java index 01e0bb5..221e0bf 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardRouteService_Impl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardRouteService_Impl.java @@ -193,6 +193,14 @@ public class YzCardRouteService_Impl implements IYzCardRouteService { return yzCardRouteMapper.ruepkeFz(map); } + + @Override + public List> operatorName(Map map) { + return yzCardRouteMapper.operatorName(map); + } + + + /*public boolean updateCardIndex(Map map){ Map ParMap = new HashMap(); int cd_control_type = Integer.parseInt(map.get("cd_control_type").toString());//控制类型 diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardServiceImpl.java index f1c18c3..d4b012c 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardServiceImpl.java @@ -2,18 +2,22 @@ package com.yunze.system.service.impl.yunze; import com.alibaba.fastjson.JSON; -import com.rabbitmq.client.BuiltinExchangeType; +import com.yunze.apiCommon.utils.InternalApiRequest; import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.core.domain.entity.SysDept; import com.yunze.common.core.domain.entity.SysDictData; import com.yunze.common.core.domain.entity.SysUser; import com.yunze.common.core.redis.RedisCache; -import com.yunze.common.mapper.yunze.YzCardFlowMapper; import com.yunze.common.mapper.yunze.YzCardMapper; import com.yunze.apiCommon.mapper.YzCardRouteMapper; import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.mapper.yunze.YzOrderMapper; +import com.yunze.common.mapper.yunze.bulk.YzBulkBusinessMapper; import com.yunze.common.mapper.yunze.card.YzCardApiOfferinginfolistMapper; import com.yunze.common.mapper.yunze.card.YzCardUsageReminderMapper; import com.yunze.common.mapper.yunze.commodity.YzWxByProductAgentMapper; +import com.yunze.common.utils.ServletUtils; +import com.yunze.common.utils.ip.IpUtils; import com.yunze.common.utils.yunze.*; import com.yunze.system.mapper.SysDeptMapper; import com.yunze.system.mapper.SysDictDataMapper; @@ -30,8 +34,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; import java.io.IOException; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.TimeUnit; @@ -49,10 +51,6 @@ public class YzCardServiceImpl implements IYzCardService { @Autowired private SysDeptMapper deptMapper; @Autowired - private YzExecutionTaskMapper executionTaskMapper; - @Autowired - private YzCardFlowMapper cardFlowMapper; - @Autowired private SysDictDataMapper dictDataMapper; @Autowired private SysUserMapper userMapper; @@ -72,6 +70,18 @@ public class YzCardServiceImpl implements IYzCardService { private YzCardApiOfferinginfolistMapper yzCardApiOfferinginfolistMapper; @Resource private YzCardUsageReminderMapper yzCardUsageReminderMapper; + @Resource + private YzOrderMapper yzOrderMapper; + @Resource + private InternalApiRequest internalApiRequest; + @Resource + private CardFlowSyn cardFlowSyn; + @Resource + private GetShowStatIdArr getShowStatIdArr; + @Resource + private YzBulkBusinessMapper yzBulkBusinessMapper; + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; @Override public Map selMap(Map map) { @@ -163,18 +173,24 @@ public class YzCardServiceImpl implements IYzCardService { String filename = file.getOriginalFilename(); String ReadName = UUID.randomUUID().toString().replace("-", "") + filename; String newName = UUID.randomUUID().toString().replace("-", "") + "_CardImport"; - + String flieUrlRx = "/upload/uploadCard/"; + ReadName = flieUrlRx + ReadName; try { /** * 获取当前项目的工作路径 */ File file2 = new File(""); String filePath = file2.getCanonicalPath(); - File newFile = new File(filePath + "/upload/uploadCard/" + ReadName); - File Url = new File(filePath + "/upload/uploadCard/1.txt");//tomcat 生成路径 + File newFile = new File(filePath + ReadName ); + File Url = new File(filePath + flieUrlRx +"1.txt");//tomcat 生成路径 Upload.mkdirsmy(Url); file.transferTo(newFile); + + + + + //1.创建路由 绑定 生产队列 发送消息 //导卡 路由队列 String polling_queueName = "admin_saveCard_queue"; @@ -195,11 +211,11 @@ public class YzCardServiceImpl implements IYzCardService { }); } catch (Exception e) { System.out.println("导入 卡号 失败 " + e.getMessage().toString()); - return ("连接管理 导入 操作失败!"); + return ("物联卡管理 导入 操作失败!"); } - /*String path = filePath + "/upload/uploadCard/" + ReadName; + /*String path = filePath + ReadName; ExcelConfig excelConfig = new ExcelConfig(); String columns[] = {"msisdn","iccid","imsi","open_date","activate_date","agent_id","channel_id","is_pool","batch_date","remarks","status_id","package_id","imei","type","network_type","is_sms","sms_number","gprs","user_id"}; String maxVid = yzCardMapper.findMaxVid(); @@ -276,7 +292,7 @@ public class YzCardServiceImpl implements IYzCardService { return "上传excel异常"; } - return "连接管理 导入指令 已发送,详细信息请在 【执行日志管理】查询!"; + return "物联卡管理 导入指令 已发送,详细信息请在 【执行日志管理】查询!"; } @Override @@ -322,7 +338,7 @@ public class YzCardServiceImpl implements IYzCardService { String newName = UUID.randomUUID().toString().replace("-", "") + "_CardOut"; String agent_id = User.getDept().getDeptId().toString(); - String task_name = "-连接管理 [导出] "; + String task_name = "-物联卡管理 [导出] "; String SaveUrl = "/getcsv/" + newName + ".csv"; Map task_map = new HashMap(); @@ -369,7 +385,7 @@ public class YzCardServiceImpl implements IYzCardService { }); } catch (Exception e) { System.out.println("导入 卡号 失败 " + e.getMessage().toString()); - return "连接管理 导入 操作失败!"; + return "物联卡管理 导入 操作失败!"; } } else { return "您当前的筛选的查询条件 未找到数据!导出任务取消!"; @@ -449,7 +465,7 @@ public class YzCardServiceImpl implements IYzCardService { }); } catch (Exception e) { System.out.println("划卡 失败 " + e.getMessage().toString()); - return ("连接管理 划卡 操作失败!"); + return ("物联卡管理 划卡 操作失败!"); } Message = "当前筛选条件下需要划分的数据 [ " + dividIdArr.size() + " ] 条 至 [ " + map.get("set_dept_name") + " ] [ " + map.get("set_user_name") + " ] 指令已下发详情查看 【执行日志管理】 !"; } else { @@ -511,6 +527,10 @@ public class YzCardServiceImpl implements IYzCardService { if (StartAndEndtype != null && StartAndEndtype.equals("3") && StartValue != null && EndValue != null) { map.put("selLianTong", true); } + List> UpArr = (List>) map.get("UpArr");//导入查询 + if (UpArr != null && UpArr.size()>0) { + map.put("selLianTong", true); + } } } } @@ -522,12 +542,14 @@ public class YzCardServiceImpl implements IYzCardService { public String importSet(MultipartFile file, Map map) throws IOException { String filename = file.getOriginalFilename(); String ReadName = UUID.randomUUID().toString().replace("-", "") + filename; + String flieUrlRx = "/upload/importSet/"; + ReadName = flieUrlRx + ReadName; try { // 获取当前项目的工作路径 File file2 = new File(""); String filePath = file2.getCanonicalPath(); - File newFile = new File(filePath + "/upload/importSet/" + ReadName); - File Url = new File(filePath + "/upload/importSet/1.txt");//tomcat 生成路径 + File newFile = new File(filePath + ReadName); + File Url = new File(filePath + flieUrlRx +"1.txt");//tomcat 生成路径 Upload.mkdirsmy(Url); file.transferTo(newFile); //1.创建路由 绑定 生产队列 发送消息 @@ -560,14 +582,36 @@ public class YzCardServiceImpl implements IYzCardService { public String importSelImei(MultipartFile file, Map map) throws IOException { String filename = file.getOriginalFilename(); String ReadName = UUID.randomUUID().toString().replace("-", "") + filename; + String flieUrlRx = "/upload/importSelImei/"; + ReadName = flieUrlRx + ReadName; try { // 获取当前项目的工作路径 File file2 = new File(""); String filePath = file2.getCanonicalPath(); - File newFile = new File(filePath + "/upload/importSelImei/" + ReadName); - File Url = new File(filePath + "/upload/importSelImei/1.txt");//tomcat 生成路径 + File newFile = new File(filePath + ReadName); + File Url = new File(filePath + flieUrlRx +"1.txt");//tomcat 生成路径 Upload.mkdirsmy(Url); file.transferTo(newFile); + + + String agent_id = map.get("agent_id").toString(); + //新增批量执行表 + Map bulkMap = new HashMap<>(); + String task_name = "【查询IMEI】"; + String code = VeDate.getNo(8); + SysUser User = (SysUser)map.get("User");//登录用户信息 + SysDept Dept =User.getDept(); + String create_by = " [ "+Dept.getDeptName()+" ] - "+" [ "+User.getUserName()+" ] "; + bulkMap.put("code", code); + bulkMap.put("task_name",task_name); + bulkMap.put("auth",create_by); + bulkMap.put("agent_id",agent_id); + bulkMap.put("type","9");//查询IMEI 9 + yzBulkBusinessMapper.add(bulkMap); + + + + //1.创建路由 绑定 生产队列 发送消息 String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_CardImportSelImei_queue", addOrder_routingKey = "admin.CardImportSelImei.queue", addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; @@ -576,6 +620,7 @@ public class YzCardServiceImpl implements IYzCardService { Map start_type = new HashMap<>(); start_type.put("filePath", filePath);//项目根目录 start_type.put("ReadName", ReadName);//上传新文件名 + start_type.put("bulkMap", bulkMap);//批量任务主表 信息 start_type.put("map", map);//参数 rabbitTemplate.convertAndSend(addOrder_exchangeName, addOrder_routingKey, JSON.toJSONString(start_type), message -> { // 设置消息过期时间 60 分钟 过期 @@ -590,22 +635,66 @@ public class YzCardServiceImpl implements IYzCardService { System.out.println(e); return "上传excel异常"; } - return "特殊操作查询IMEI 指令 已发送,连接设置详细信息请在 【执行日志管理】查询!"; + return "特殊操作查询IMEI 指令 已发送,连接设置详细信息请在 【批量业务受理】查询!"; } @Override public String status(MultipartFile file, Map map) throws IOException { - { String filename = file.getOriginalFilename(); String ReadName = UUID.randomUUID().toString().replace("-", "") + filename; + String flieUrlRx = "/upload/importSelImei/"; + ReadName = flieUrlRx + ReadName; try { // 获取当前项目的工作路径 File file2 = new File(""); String filePath = file2.getCanonicalPath(); - File newFile = new File(filePath + "/upload/importSelImei/" + ReadName); - File Url = new File(filePath + "/upload/importSelImei/1.txt");//tomcat 生成路径 + File newFile = new File(filePath + ReadName); + File Url = new File(filePath + flieUrlRx + "/1.txt");//tomcat 生成路径 Upload.mkdirsmy(Url); file.transferTo(newFile); + + String agent_id = map.get("agent_id").toString(); + + + + + String type = ""; + String task_name = ""; + String Is_remind_ratio = map.get("Is_remind_ratio").toString(); + + String Switch_network = map.get("Switch_network").toString(); + + if (Is_remind_ratio.equals("3")) {//批量复机 1 + type = "1"; + task_name = "【批量复机】"; + }else if (Is_remind_ratio.equals("2")) {//批量停机 2 + type = "2"; + task_name = "【批量停机】"; + }else if (Switch_network.equals("3") ) {//批量开网 4 + type = "4"; + task_name = "【批量开网】"; + }else if (Switch_network.equals("2")) {//批量断网 3 + type = "3"; + task_name = "【批量断网】"; + } + + + //新增批量执行表 + Map bulkMap = new HashMap<>(); + + String code = VeDate.getNo(8); + SysUser User = (SysUser)map.get("User");//登录用户信息 + SysDept Dept =User.getDept(); + String create_by = " [ "+Dept.getDeptName()+" ] - "+" [ "+User.getUserName()+" ] "; + bulkMap.put("code", code); + bulkMap.put("task_name",task_name); + bulkMap.put("auth",create_by); + bulkMap.put("agent_id",agent_id); + bulkMap.put("type",type); + yzBulkBusinessMapper.add(bulkMap); + + + //1.创建路由 绑定 生产队列 发送消息 String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_CardImportBatch_queue", addOrder_routingKey = "admin.CardImportBatch.queue", addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; @@ -614,6 +703,7 @@ public class YzCardServiceImpl implements IYzCardService { Map start_type = new HashMap<>(); start_type.put("filePath", filePath);//项目根目录 start_type.put("ReadName", ReadName);//上传新文件名 + start_type.put("bulkMap", bulkMap);//批量任务主表 信息 start_type.put("map", map);//参数 rabbitTemplate.convertAndSend(addOrder_exchangeName, addOrder_routingKey, JSON.toJSONString(start_type), message -> { // 设置消息过期时间 60 分钟 过期 @@ -628,8 +718,7 @@ public class YzCardServiceImpl implements IYzCardService { System.out.println(e); return "上传excel异常"; } - return "批量停复机、断开网 指令 已发送,连接设置详细信息请在 【执行日志管理】查询!"; - } + return "批量停复机、断开网 指令 已发送,连接设置详细信息请在 【批量业务受理】查询!"; } @@ -637,17 +726,19 @@ public class YzCardServiceImpl implements IYzCardService { public Map CardNumberImport(MultipartFile file, Map map) throws IOException { String filename = file.getOriginalFilename(); String ReadName = UUID.randomUUID().toString().replace("-", "") + filename; + String flieUrlRx = "/upload/cardNumber/"; + ReadName = flieUrlRx + ReadName; try { // 获取当前项目的工作路径 File file2 = new File(""); String filePath = file2.getCanonicalPath(); - File newFile = new File(filePath + "/upload/cardNumber/" + ReadName); - File Url = new File(filePath + "/upload/cardNumber/1.txt");//tomcat 生成路径 + File newFile = new File(filePath + ReadName); + File Url = new File(filePath + flieUrlRx +"1.txt");//tomcat 生成路径 Upload.mkdirsmy(Url); file.transferTo(newFile); ExcelConfig excelConfig = new ExcelConfig(); String columns[] = {"cardNumber"}; - List> list = excelConfig.getExcelListMap(filePath + "/upload/cardNumber/" + ReadName, columns); + List> list = excelConfig.getExcelListMap(filePath + ReadName, columns); //System.out.println(list.toString()); //System.out.println(list); map.put("UpArr", list); @@ -662,12 +753,14 @@ public class YzCardServiceImpl implements IYzCardService { public String importSetCardInfo(MultipartFile file, Map map) throws IOException { String filename = file.getOriginalFilename(); String ReadName = UUID.randomUUID().toString().replace("-", "") + filename; + String flieUrlRx = "/upload/importSetCardInfo/"; + ReadName = flieUrlRx + ReadName; try { // 获取当前项目的工作路径 File file2 = new File(""); String filePath = file2.getCanonicalPath(); - File newFile = new File(filePath + "/upload/importSetCardInfo/" + ReadName); - File Url = new File(filePath + "/upload/importSetCardInfo/1.txt");//tomcat 生成路径 + File newFile = new File(filePath+ ReadName); + File Url = new File(filePath + flieUrlRx+"1.txt");//tomcat 生成路径 Upload.mkdirsmy(Url); file.transferTo(newFile); //1.创建路由 绑定 生产队列 发送消息 @@ -719,7 +812,6 @@ public class YzCardServiceImpl implements IYzCardService { /***停机*/ @Override public String stoppedarr(Map map) { - { //1.创建路由 绑定 生产队列 发送消息 String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_Stopped_queue", addOrder_routingKey = "admin.Stopped.queue", addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; @@ -737,13 +829,11 @@ public class YzCardServiceImpl implements IYzCardService { } return "批量 【停机】 指令 已发送,连接设置详细信息请在 【执行日志管理】查询!"; - } } /***复机*/ @Override public String machinearr(Map map) { - { //1.创建路由 绑定 生产队列 发送消息 String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_Machine_queue", addOrder_routingKey = "admin.Machine.queue", addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; @@ -761,13 +851,11 @@ public class YzCardServiceImpl implements IYzCardService { } return "批量 【复机】 指令 已发送,连接设置详细信息请在 【执行日志管理】查询!"; - } } /***断网*/ @Override public String disconnectNetworkarr(Map map) { - { //1.创建路由 绑定 生产队列 发送消息 String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_DisconnectNetwork_queue", addOrder_routingKey = "admin.DisconnectNetwork.queue", addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; @@ -785,13 +873,11 @@ public class YzCardServiceImpl implements IYzCardService { } return "批量 【断网】 指令 已发送,连接设置详细信息请在 【执行日志管理】查询!"; - } } /***开网*/ @Override public String openNetworkarr(Map map) { - { //1.创建路由 绑定 生产队列 发送消息 String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_OpenNetwork_queue", addOrder_routingKey = "admin.OpenNetwork.queue", addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; @@ -809,7 +895,6 @@ public class YzCardServiceImpl implements IYzCardService { } return "批量 【开网】 指令 已发送,连接设置详细信息请在 【执行日志管理】查询!"; - } } /** @@ -817,7 +902,6 @@ public class YzCardServiceImpl implements IYzCardService { */ @Override public String consumptionarr(Map map) { - { //1.创建路由 绑定 生产队列 发送消息 String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_Consumption_queue", addOrder_routingKey = "admin.Consumption.queue", addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; @@ -835,7 +919,6 @@ public class YzCardServiceImpl implements IYzCardService { } return "批量 【同步用量】 指令 已发送,连接设置详细信息请在 【执行日志管理】查询!"; - } } /** @@ -843,7 +926,6 @@ public class YzCardServiceImpl implements IYzCardService { */ @Override public String publicmethodarr(Map map) { - { //1.创建路由 绑定 生产队列 发送消息 String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_PublicMethod_queue", addOrder_routingKey = "admin.PublicMethod.queue", addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; @@ -861,9 +943,6 @@ public class YzCardServiceImpl implements IYzCardService { } return "批量 【同步状态】 指令 已发送,连接设置详细信息请在 【执行日志管理】查询!"; - } - - } /** @@ -871,7 +950,6 @@ public class YzCardServiceImpl implements IYzCardService { */ @Override public String consumptionandstatearr(Map map) { - { //1.创建路由 绑定 生产队列 发送消息 String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_ConsumptionAndState_queue", addOrder_routingKey = "admin.ConsumptionAndState.queue", addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; @@ -889,7 +967,6 @@ public class YzCardServiceImpl implements IYzCardService { } return "批量 【同步状态和用量】 指令 已发送,连接设置详细信息请在 【执行日志管理】查询!"; - } } @Override @@ -918,14 +995,33 @@ public class YzCardServiceImpl implements IYzCardService { public String cancelrealname(MultipartFile file, Map map) throws IOException { String filename = file.getOriginalFilename(); String ReadName = UUID.randomUUID().toString().replace("-", "") + filename; + String flieUrlRx = "/upload/cancelrealname/"; + ReadName = flieUrlRx +ReadName; + try { // 获取当前项目的工作路径 File file2 = new File(""); String filePath = file2.getCanonicalPath(); - File newFile = new File(filePath + "/upload/cancelrealname/" + ReadName); - File Url = new File(filePath + "/upload/cancelrealname/1.txt");//tomcat 生成路径 + File newFile = new File(filePath + ReadName); + File Url = new File(filePath + flieUrlRx+"1.txt");//tomcat 生成路径 Upload.mkdirsmy(Url); file.transferTo(newFile); + + //新增批量执行表 + String agent_id = map.get("agent_id").toString(); + Map bulkMap = new HashMap<>(); + String task_name = "【取消实名】"; + String code = VeDate.getNo(8); + SysUser User = (SysUser)map.get("User");//登录用户信息 + SysDept Dept =User.getDept(); + String create_by = " [ "+Dept.getDeptName()+" ] - "+" [ "+User.getUserName()+" ] "; + bulkMap.put("code", code); + bulkMap.put("task_name",task_name); + bulkMap.put("auth",create_by); + bulkMap.put("agent_id",agent_id); + bulkMap.put("type","8");//取消实名 8 + yzBulkBusinessMapper.add(bulkMap); + //1.创建路由 绑定 生产队列 发送消息 String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_CardCancelrealname_queue", addOrder_routingKey = "admin.CardCancelrealname.queue", addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; @@ -934,6 +1030,7 @@ public class YzCardServiceImpl implements IYzCardService { Map start_type = new HashMap<>(); start_type.put("filePath", filePath);//项目根目录 start_type.put("ReadName", ReadName);//上传新文件名 + start_type.put("bulkMap", bulkMap);//批量任务主表 信息 start_type.put("map", map);//参数 rabbitTemplate.convertAndSend(addOrder_exchangeName, addOrder_routingKey, JSON.toJSONString(start_type), message -> { // 设置消息过期时间 60 分钟 过期 @@ -948,7 +1045,7 @@ public class YzCardServiceImpl implements IYzCardService { System.out.println(e); return "上传excel异常"; } - return "批量取消实名 指令 已发送,连接设置详细信息请在 【执行任务管理】查询!"; + return "批量取消实名 指令 已发送,连接设置详细信息请在 【批量业务受理】查询!"; } @@ -1007,12 +1104,33 @@ public class YzCardServiceImpl implements IYzCardService { public String importCardReplace(MultipartFile file, Map map) { String filename = file.getOriginalFilename(); String ReadName = UUID.randomUUID().toString().replace("-", "") + filename; + String flieUrlRx = "/upload/importCardReplace/"; + ReadName = flieUrlRx +ReadName; + SysUser User = (SysUser)map.get("User");//登录用户信息 + SysDept Dept =User.getDept(); + String create_by = " [ "+Dept.getDeptName()+" ] - "+" [ "+User.getUserName()+" ] "; + String task_name = "特殊操作 [批量变更卡信息] "; + String newName = UUID.randomUUID().toString().replace("-","")+"_CardInfoReplace"; + String UpdBackupName = UUID.randomUUID().toString().replace("-","")+"__CardInfoReplaceBackup";//设置分组备注前信息备份名称 + + String SaveUrl = "/getcsv/"+newName+".csv"; + SaveUrl += ",/getcsv/"+UpdBackupName+".csv"; + + Map task_map = new HashMap(); + task_map.put("auth",create_by); + task_map.put("task_name",task_name); + task_map.put("url",SaveUrl); + task_map.put("agent_id",User.getDeptId() ); + task_map.put("type", "15"); + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + try { // 获取当前项目的工作路径 File file2 = new File(""); String filePath = file2.getCanonicalPath(); - File newFile = new File(filePath + "/upload/importCardReplace/" + ReadName); - File Url = new File(filePath + "/upload/importCardReplace/1.txt");//tomcat 生成路径 + File newFile = new File(filePath + ReadName); + File Url = new File(filePath + flieUrlRx +"/1.txt");//tomcat 生成路径 Upload.mkdirsmy(Url); file.transferTo(newFile); //1.创建路由 绑定 生产队列 发送消息 @@ -1022,6 +1140,11 @@ public class YzCardServiceImpl implements IYzCardService { start_type.put("filePath", filePath);//项目根目录 start_type.put("ReadName", ReadName);//上传新文件名 start_type.put("map", map);//参数 + start_type.put("task_map", task_map);//参数 + start_type.put("newName", newName);//参数 + start_type.put("UpdBackupName", UpdBackupName);//参数 + + rabbitTemplate.convertAndSend(addOrder_exchangeName, addOrder_routingKey, JSON.toJSONString(start_type), message -> { // 设置消息过期时间 60 分钟 过期 message.getMessageProperties().setExpiration("" + (60 * 1000 * 60)); @@ -1040,11 +1163,44 @@ public class YzCardServiceImpl implements IYzCardService { @Override public String ChangeF(Map map, SysUser User) { - return null; + String agent_id = ""+User.getDeptId(); + + //新增批量执行表 + Map bulkMap = new HashMap<>(); + String task_name = "勾选 -【灵活变更状态】"; + String code = VeDate.getNo(8); + SysDept Dept = User.getDept(); + String create_by = " [ "+Dept.getDeptName()+" ] - "+" [ "+User.getUserName()+" ] "; + bulkMap.put("code", code); + bulkMap.put("task_name",task_name); + bulkMap.put("auth",create_by); + bulkMap.put("agent_id",agent_id); + bulkMap.put("type","10");//灵活变更状态 10 + yzBulkBusinessMapper.add(bulkMap); + + + //1.创建路由 绑定 生产队列 发送消息 + String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_fileFlexible_queue", addOrder_routingKey = "admin.fileFlexible.queue", + addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; + try { + Map start_type = new HashMap<>(); + start_type.put("bulkMap", bulkMap);//批量任务主表 信息 + start_type.put("map", map);//参数 + rabbitTemplate.convertAndSend(addOrder_exchangeName, addOrder_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 60 分钟 过期 + message.getMessageProperties().setExpiration("" + (60 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("批量 【灵活变更状态】 生产指令 失败 " + e.getMessage().toString()); + return ("批量 【灵活变更状态】 生产指令 操作失败!"); + } + + return "批量 【灵活变更状态】 指令 已发送,连接设置详细信息请在 【批量业务受理】查询!"; } @Override - public Map selCardOpen(String ip,Map map) { + public Map selCardOpen(String ip, Map map) { Map retMap = new HashMap<>(); List> rList = new ArrayList<>(); List dList = new ArrayList<>(); @@ -1072,6 +1228,18 @@ public class YzCardServiceImpl implements IYzCardService { mCount = Integer.parseInt(isExecute.toString()); } + String rKey = "maxTestPeriodDays"; + Object testPeriodDaysIsExecute = redisCache.getCacheObject(rKey); + String maxTestPeriodDays = "180";//默认 180 天 + if(testPeriodDaysIsExecute==null){ + HashMap configMap = new HashMap<>(); + configMap.put("config_key", rKey); + maxTestPeriodDays = yzWxByProductAgentMapper.findConfig(configMap);// 最大测试期天数 + redisCache.setCacheObject(rKey, maxTestPeriodDays, 3*60*60, TimeUnit.SECONDS);// 3 小时 【缓存 系统参数】 + }else{ + maxTestPeriodDays = redisCache.getCacheObject(rKey).toString(); + } + boolean flag = isClose(ip,"selCardOpen",openSelCardMaxInt); if(!flag){ List pList = (List) map.get("cardArr"); @@ -1081,6 +1249,20 @@ public class YzCardServiceImpl implements IYzCardService { pMap.put("value",cardNo); Map rMap = yzCardMapper.selCardOpen(pMap); if(rMap!=null && rMap.get("iccid")!=null){ + String dict_label = rMap.get("dict_label").toString();//卡状态 + String MaxActivate_date = ""; + if(dict_label.equals("可测试")){//判断是否有开卡日期 推演 开卡日期 + if(rMap.get("open_date")!=null && rMap.get("open_date").toString().length()>0){ + String open_date = rMap.get("open_date").toString();//开卡日期 + MaxActivate_date = VeDate.getBeforeAfterDate(open_date,Integer.parseInt(maxTestPeriodDays)); + }else{//卡状态 ‘可测试’ 但是 没有开卡日期的 发送获取开卡日期指令 + Map sendMap = new HashMap<>(); + sendMap.put("iccid",rMap.get("iccid")); + sendMap.put("opType","open"); + sendGetOpenDate(sendMap); + } + } + rMap.put("MaxActivate_date",MaxActivate_date); rList.add(rMap); }else{ dList.add(cardNo); @@ -1121,6 +1303,162 @@ public class YzCardServiceImpl implements IYzCardService { return yzCardUsageReminderMapper.reminderId(map); } + @Override + public String CardInfoFlow(Map map) { + try { + Map Route = yzCardMapper.findRoute(map); + if (Route != null) { + String cd_status = Route.get("cd_status").toString(); + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { + Map Rmap = internalApiRequest.queryFlow(map, Route); + String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500"; + if (code.equals("200")) { + //获取 卡用量 开卡日期 更新 card info + if (Rmap.get("Use") != null && Rmap.get("Use") != "" && Rmap.get("Use").toString().trim().length() > 0) { + Double Use = Double.parseDouble(Rmap.get("Use").toString()); + if (Use >= 0) { + try { + cardFlowSyn.CalculationFlow(map.get("iccid").toString(), Use); + } catch (Exception e) { + return ("用量内部计算错误!" + e.getMessage().toString()); + } + } else { + return ("接口超频返回暂无数据返回,请稍后重试!"); + } + } + } else { + return ("网络繁忙稍后重试!" + Rmap.get("Message").toString()); + } + Map newRmap = internalApiRequest.queryCardStatus(map, Route); + String newcode = newRmap.get("code") != null ? newRmap.get("code").toString() : "500"; + if (newcode.equals("200")) { + //获取 卡状态 开卡日期 更新 card info + if (newRmap.get("statusCode") != null && newRmap.get("statusCode") != "" && newRmap.get("statusCode").toString().trim().length() > 0) { + String statusCode = newRmap.get("statusCode").toString().trim(); + if (!statusCode.equals("0")) { + Map Upd_Map = new HashMap<>(); + Upd_Map.put("status_id", statusCode); + Upd_Map.put("status_ShowId", getShowStatIdArr.GetShowStatId(statusCode)); + Upd_Map.put("iccid", map.get("iccid").toString()); + try { + yzCardMapper.updStatusId(Upd_Map);//变更卡状态 + } catch (Exception e) { + return ("DB保存状态操作失败!" + e.getMessage().toString()); + } + } else { + return ("接口超频返回暂无数据返回,请稍后重试!"); + } + } + } else { + return ("网络繁忙稍后重试!" + newRmap.get("Message").toString()); + } + return "同步用量和状态 操作成功"; + } else { + String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知"; + return ("同步用量 操作失败!" + " 通道 [" + statusVal + "]"); + } + } else { + return (" iccid [" + map.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + System.out.println("
    yunze:card:SynFlow " + "
    ip = " + ip + "
    " + e.getCause().toString()); + } + return ("单卡同步用量和状态 操作失败!"); + } + + + + + @Override + public boolean UpdateSingle(Map map) { + return yzCardMapper.UpdateSingle(map) > 0; + } + + + + @Override + public String singleState(Map map) { + try { + Map Route = yzCardMapper.findRoute(map); + if (Route != null) { + String cd_status = Route.get("cd_status").toString(); + String iccid = Route.get("iccid").toString(); + Map Obj = new HashMap<>(); + Object ShowId = map.get("status_ShowId"); + Obj.put("operType", ShowId);//API 状态 + Obj.put("iccid", iccid); + if (cd_status != null && cd_status != "" && cd_status.equals("1")) { + Map CsFble = internalApiRequest.changeCardStatusFlexible(Obj, Route); + String code = CsFble.get("code") != null ? CsFble.get("code").toString() : "500"; + if (code.equals("200")) { + String statusCode = map.get("status_ShowId").toString(); + Map Upd_Map = new HashMap<>(); + Upd_Map.put("status_id", statusCode); + Upd_Map.put("status_ShowId", getShowStatIdArr.GetShowStatId(statusCode)); + Upd_Map.put("iccid", map.get("iccid").toString()); + try { + yzCardMapper.updStatusId(Upd_Map);//变更卡状态 + } catch (Exception e) { + return ("DB保存状态操作失败!" + e.getMessage().toString()); + } + } else { + return ("网络繁忙稍后重试!" + map.get("Message").toString()); + } + } else { + System.out.println("未知状态"); + } + } else { + return (" iccid [" + map.get("iccid") + "] 未划分 API通道 !请划分通道后重试!"); + } + } catch (Exception e) { + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + System.out.println("
    yunze:card:singleState " + "
    ip = " + ip + "
    " + e.getCause().toString()); + } + return "单卡灵活变更状态 操作失败"; + } + + @Override + public List> getOrderCard(Map map) { + return yzOrderMapper.getOrderCard(map); + } + + + + + + + @Override + public String smsCC(MultipartFile file, Map map) { + + return "批量-短信下发 指令 已发送,详细信息请在【短信业务受理】查询!"; + + } + + + + + + + + + + private void sendGetOpenDate(Map map){ + //1.创建路由 绑定 生产队列 发送消息 + String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_CardGetOpenDate_queue", addOrder_routingKey = "admin.CardGetOpenDate.queue"; + try { + Map start_type = new HashMap<>(); + start_type.putAll(map);//参数 + rabbitTemplate.convertAndSend(addOrder_exchangeName, addOrder_routingKey, JSON.toJSONString(map), message -> { + // 设置消息过期时间 60 分钟 过期 + message.getMessageProperties().setExpiration("" + (60 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("开放接口发送 ‘获取开卡日期’ 指令 发送 失败 " + e.getMessage().toString()); + } + } + } diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardUsageReminderServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardUsageReminderServiceImpl.java index 629574f..14d82c4 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardUsageReminderServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCardUsageReminderServiceImpl.java @@ -2,14 +2,14 @@ package com.yunze.system.service.impl.yunze; import com.yunze.common.mapper.yunze.card.YzCardUsageReminderMapper; import com.yunze.common.utils.yunze.PageUtil; -import com.yunze.system.service.yunze.YzCardUsageReminderService; +import com.yunze.system.service.yunze.IYzCardUsageReminderService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; @Service -public class YzCardUsageReminderServiceImpl implements YzCardUsageReminderService { +public class YzCardUsageReminderServiceImpl implements IYzCardUsageReminderService { @Resource private YzCardUsageReminderMapper yzCardUsageReminderMapper; diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCategoryServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCategoryServiceImpl.java index ddb2520..f5c4824 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCategoryServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCategoryServiceImpl.java @@ -2,13 +2,13 @@ package com.yunze.system.service.impl.yunze; import com.yunze.common.mapper.yunze.YzCategoryMapper; import com.yunze.common.utils.yunze.PageUtil; -import com.yunze.system.service.yunze.YzCategoryService; +import com.yunze.system.service.yunze.IYzCategoryService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; @Service -public class YzCategoryServiceImpl implements YzCategoryService { +public class YzCategoryServiceImpl implements IYzCategoryService { @Resource private YzCategoryMapper yzCategoryMapper; diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCcHisServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCcHisServiceImpl.java index 2b31b51..c1cc26a 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCcHisServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCcHisServiceImpl.java @@ -2,7 +2,7 @@ package com.yunze.system.service.impl.yunze; import com.yunze.common.mapper.yunze.YzCcHisMapper; import com.yunze.common.utils.yunze.PageUtil; -import com.yunze.system.service.yunze.YzCcHisService; +import com.yunze.system.service.yunze.IYzCcHisService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -10,7 +10,7 @@ import java.util.HashMap; import java.util.Map; @Service -public class YzCcHisServiceImpl implements YzCcHisService { +public class YzCcHisServiceImpl implements IYzCcHisService { @Resource private YzCcHisMapper yzCcHisMapper; diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCcServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCcServiceImpl.java index f11da06..c6c490a 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCcServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCcServiceImpl.java @@ -2,7 +2,7 @@ package com.yunze.system.service.impl.yunze; import com.yunze.common.mapper.yunze.YzCcMapper; import com.yunze.common.utils.yunze.PageUtil; -import com.yunze.system.service.yunze.YzCcService; +import com.yunze.system.service.yunze.IYzCcService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -10,7 +10,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; @Service -public class YzCcServiceImpl implements YzCcService { +public class YzCcServiceImpl implements IYzCcService { @Resource private YzCcMapper yzCcMapper; diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCcUrlServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCcUrlServiceImpl.java index eefe4fb..80016ed 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCcUrlServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCcUrlServiceImpl.java @@ -1,7 +1,7 @@ package com.yunze.system.service.impl.yunze; import com.yunze.common.mapper.yunze.YzCcUrlMapper; import com.yunze.common.utils.yunze.PageUtil; -import com.yunze.system.service.yunze.YzCcUrlService; +import com.yunze.system.service.yunze.IYzCcUrlService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -9,7 +9,7 @@ import java.util.HashMap; import java.util.Map; @Service -public class YzCcUrlServiceImpl implements YzCcUrlService { +public class YzCcUrlServiceImpl implements IYzCcUrlService { @Resource private YzCcUrlMapper yzCcUrlMapper; diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCradFlowHisServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCradFlowHisServiceImpl.java index b6dfcf8..7463b75 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCradFlowHisServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzCradFlowHisServiceImpl.java @@ -1,22 +1,16 @@ package com.yunze.system.service.impl.yunze; import com.alibaba.fastjson.JSON; -import com.rabbitmq.client.BuiltinExchangeType; import com.yunze.common.config.RabbitMQConfig; import com.yunze.common.core.domain.entity.SysUser; -import com.yunze.common.core.domain.model.LoginUser; import com.yunze.common.mapper.yunze.YzCardFlowHisMapper; import com.yunze.common.mapper.yunze.YzCardMapper; import com.yunze.common.mapper.yunze.YrootlowHisMapper; -import com.yunze.common.utils.ServletUtils; -import com.yunze.common.utils.spring.SpringUtils; import com.yunze.common.utils.yunze.Different; import com.yunze.common.utils.yunze.PageUtil; -import com.yunze.system.mapper.SysUserMapper; import com.yunze.system.service.yunze.IYzUserService; -import com.yunze.system.service.yunze.YzCardFlowHisService; +import com.yunze.system.service.yunze.IYzCardFlowHisService; import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -24,7 +18,7 @@ import java.util.*; @Service -public class YzCradFlowHisServiceImpl implements YzCardFlowHisService { +public class YzCradFlowHisServiceImpl implements IYzCardFlowHisService { @Resource private YrootlowHisMapper yrootlowHisMapper; @Resource diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzOrderServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzOrderServiceImpl.java index 1f8b1f0..48a7e31 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzOrderServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzOrderServiceImpl.java @@ -3,13 +3,15 @@ package com.yunze.system.service.impl.yunze; import com.alibaba.fastjson.JSON; import com.rabbitmq.client.BuiltinExchangeType; +import com.yunze.apiCommon.utils.Arith; import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.core.domain.entity.SysDept; import com.yunze.common.core.domain.entity.SysDictData; import com.yunze.common.core.domain.entity.SysUser; import com.yunze.common.mapper.yunze.*; -import com.yunze.common.utils.yunze.Different; -import com.yunze.common.utils.yunze.PageUtil; -import com.yunze.common.utils.yunze.Upload; +import com.yunze.common.mapper.yunze.bulk.YzBulkBusinessMapper; +import com.yunze.common.utils.yunze.*; +import com.yunze.quartz.task.yunze.OrderAddPackageProductionTask; import com.yunze.system.mapper.SysDictDataMapper; import com.yunze.system.mapper.SysUserMapper; import com.yunze.system.service.yunze.IYzOrderService; @@ -45,13 +47,27 @@ public class YzOrderServiceImpl implements IYzOrderService @Autowired private RabbitMQConfig mQConfig; @Resource - private YzCardFlowMapper cardFlowMapper; - @Resource private SysDictDataMapper dictDataMapper; - @Autowired - private SysUserMapper userMapper; + @Resource + private SysUserMapper sysUserMapper; @Resource private RabbitMQConfig rabbitMQConfig; + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private PlOrder plOrder; + @Resource + private OrderAddPackageProductionTask orderAddPackageProductionTask; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private YzBulkBusinessMapper yzBulkBusinessMapper; + @Resource + private YzCardPacketMapper yzCardPacketMapper; + @Resource + private YzAgentPacketMapper yzAgentPacketMapper; + @Resource + private YzUserMapper yzUserMapper; @Override public Map selMap(Map map) { @@ -75,6 +91,7 @@ public class YzOrderServiceImpl implements IYzOrderService map.put("PageSize", pu.getPageSize()); Rlist = yzOrderMapper.selMap(map); omp.put("Pu", pu); + omp.put("Pmap", map); omp.put("Data",Rlist ); return omp; } @@ -98,82 +115,68 @@ public class YzOrderServiceImpl implements IYzOrderService @Override - public String importRecharge(MultipartFile file,Map map) throws IOException { - String filename=file.getOriginalFilename(); - String ReadName = UUID.randomUUID().toString().replace("-","")+filename; - String newName = UUID.randomUUID().toString().replace("-","")+"_importRecharge"; + public String importRecharge(MultipartFile file, Map map) throws IOException { + String filename = file.getOriginalFilename(); + String ReadName = UUID.randomUUID().toString().replace("-", "") + filename; + String newName = UUID.randomUUID().toString().replace("-", "") + "_repeat"; + String flieUrlRx = "/upload/importRecharge/"; + ReadName = flieUrlRx + ReadName; try { // 获取当前项目的工作路径 File file2 = new File(""); String filePath = file2.getCanonicalPath(); - File newFile = new File(filePath+"/upload/importRecharge/"+ReadName); - File Url=new File(filePath+"/upload/importRecharge/1.txt");//tomcat 生成路径 + File newFile = new File(filePath + ReadName); + File Url = new File(filePath + flieUrlRx + "1.txt");//tomcat 生成路径 Upload.mkdirsmy(Url); file.transferTo(newFile); - //或充值 资费计划信息 + map.put("OrderMap", plOrder.orderOpen(map)); String agent_id = map.get("agent_id").toString(); - Map PacketMap = null; - if(agent_id.equals("100")){ - PacketMap = cardFlowMapper.FindPacket(map); - }else{ - PacketMap = cardFlowMapper.FindPacketAgent(map); + + Map bulkMap = new HashMap<>(); + String task_name = "平台批量充值 [充值] "; + String code = VeDate.getNo(8); + SysUser User = (SysUser) map.get("User");//登录用户信息 + SysDept Dept = User.getDept(); + String create_by = " [ " + Dept.getDeptName() + " ] - " + " [ " + User.getUserName() + " ] "; + bulkMap.put("code", code); + bulkMap.put("task_name", task_name); + bulkMap.put("auth", create_by); + bulkMap.put("agent_id", agent_id); + bulkMap.put("type", "5");//批量订购 5 + yzBulkBusinessMapper.add(bulkMap); + + + //1.创建路由 绑定 生产队列 发送消息 + //路由队列 + String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_OrderImportRecharge_queue", addOrder_routingKey = "admin.OrderImportRecharge.queue", + addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; + try { + mQConfig.creatExchangeQueue(addOrder_exchangeName, addOrder_queueName, addOrder_routingKey, addOrder_del_exchangeName, addOrder_del_queueName, addOrder_del_routingKey, null); + Map start_type = new HashMap<>(); + start_type.put("filePath", filePath);//项目根目录 + start_type.put("ReadName", ReadName);//上传新文件名 + start_type.put("newName", newName);//输出文件名 + start_type.put("bulkMap", bulkMap);//批量任务主表 信息 + start_type.put("map", map);//参数 + rabbitTemplate.convertAndSend(addOrder_exchangeName, addOrder_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 60 分钟 过期 + message.getMessageProperties().setExpiration("" + (60 * 1000 * 60)); + return message; + }); + + + } catch (Exception e) { + System.out.println("平台导入充值生产指令 失败 " + e.getMessage().toString()); + return ("平台导入充值生产指令 操作失败!"); } - if(PacketMap!=null){ - String ord_type = "2"; - //添加订单生成参数 - Map OrderMap = new HashMap<>(); - PacketMap.put("validate_type",map.get("validate_type"));//生效类型 - PacketMap.put("ord_type",ord_type);//订单类型 - - OrderMap.put("add_parameter",JSON.toJSONString(PacketMap));//加包参数 - OrderMap.put("ord_type",ord_type);//订单类型 用量充值 - OrderMap.put("ord_name","平台批量充值");//交易名称 用量充值 - OrderMap.put("wx_ord_no",null);//微信订单号 - OrderMap.put("status","1");//支付状态 支付成功 - OrderMap.put("price",PacketMap.get("packet_price"));//交易金额 - OrderMap.put("account","0");//交易后金额 - OrderMap.put("pay_type","s");//支付方式 平台记录 - OrderMap.put("is_profit","0");//是否需要分润 0否-1是 - OrderMap.put("add_package","0");//是否已经执行过加包 0否 1 是 - OrderMap.put("show_status","0");//是否显示交易记录:0否-1显示 - OrderMap.put("packet_id",map.get("packet_id"));//资费计划 ID - OrderMap.put("validate_type",map.get("validate_type"));//生效类型 - OrderMap.put("open_id",null);//openid 微信支付记录操作人 - OrderMap.put("agent_id",agent_id);// 所属记录企业id - OrderMap.put("profit_type","0");//分润类型 - OrderMap.put("info",null);//备注 - OrderMap.put("cre_type","sys");//生成方式 系统 sys 人工 ai - - map.put("OrderMap",OrderMap); - - //1.创建路由 绑定 生产队列 发送消息 - //路由队列 - String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_OrderImportRecharge_queue", addOrder_routingKey = "admin.OrderImportRecharge.queue", - addOrder_del_exchangeName = "dlx_"+addOrder_exchangeName,addOrder_del_queueName = "dlx_"+addOrder_queueName, addOrder_del_routingKey = "dlx_"+addOrder_routingKey; - try { - mQConfig.creatExchangeQueue(addOrder_exchangeName, addOrder_queueName, addOrder_routingKey, addOrder_del_exchangeName, addOrder_del_queueName, addOrder_del_routingKey,null); - Map start_type = new HashMap<>(); - start_type.put("filePath", filePath);//项目根目录 - start_type.put("ReadName", ReadName);//上传新文件名 - start_type.put("newName", newName);//输出文件名 - start_type.put("map", map);//参数 - rabbitTemplate.convertAndSend(addOrder_exchangeName, addOrder_routingKey, JSON.toJSONString(start_type), message -> { - // 设置消息过期时间 60 分钟 过期 - message.getMessageProperties().setExpiration("" + (60 * 1000 * 60)); - return message; - }); - } catch (Exception e) { - System.out.println("平台导入充值生产指令 失败 " + e.getMessage().toString()); - return ("平台导入充值生产指令 操作失败!"); - } - }else{ - return ("未找到 您的名下 资费计划ID 【"+map.get("packet_id")+"】 充值取消! "); - } - }catch (Exception e){ +// }else{ +// return ("未找到 您的名下 资费计划ID 【"+map.get("packet_id")+"】 充值取消! "); +// } + } catch (Exception e) { System.out.println(e); return "上传excel异常"; } - return "资费订购 平台导入充值指令 已发送,充值详细信息请在 【执行日志管理】查询!"; + return "资费订购 平台导入充值指令 已发送,充值详细信息请在 【批量业务受理】查询!"; } @Override @@ -221,7 +224,7 @@ public class YzOrderServiceImpl implements IYzOrderService //获取 企业信息 List> arrorders = yzOrderMapper.arrorders(map); - List> deptArr = userMapper.find_flow(); + List> deptArr = sysUserMapper.find_flow(); //1.创建路由 绑定 生产队列 发送消息 //导卡 路由队列 @@ -260,6 +263,366 @@ public class YzOrderServiceImpl implements IYzOrderService return "已下发执行日志可在【系统管理】》【日志管理】》【执行日志】查看"; } + @Override + public Map CardNumberImport(MultipartFile file, Map map) throws IOException { + String filename = file.getOriginalFilename(); + String ReadName = UUID.randomUUID().toString().replace("-", "") + filename; + try { + // 获取当前项目的工作路径 + File file2 = new File(""); + String filePath = file2.getCanonicalPath(); + File newFile = new File(filePath + "/upload/cardNumberAge/" + ReadName); + File Url = new File(filePath + "/upload/cardNumberAge/1.txt");//tomcat 生成路径 + Upload.mkdirsmy(Url); + file.transferTo(newFile); + ExcelConfig excelConfig = new ExcelConfig(); + String columns[] = {"cardNumberAge"}; + List> list = excelConfig.getExcelListMap(filePath + "/upload/cardNumberAge/" + ReadName, columns); + map.put("UpArrList", list); + } catch (Exception e) { + System.out.println(e); + } + return selMap(map);//是返回的查询列表的数据 + } + + @Override + public String NoTbscribe(Map map,SysUser User) { + String Message = ""; + map.remove("pageNum"); + map.remove("pageSize"); + //权限过滤 + if (map.get("agent_id") != null) { + List agent_id = (List) map.get("agent_id"); + if (!Different.Is_existence(agent_id, 100)) { + List user_id = iYzUserService.getUserID(map); + map.put("user_id", user_id); + } + } + List> Unsubscribe = yzOrderMapper.exportallorders(map); + if(Unsubscribe != null){ + + String create_by = " [ "+User.getDept().getDeptName()+" ] - "+" [ "+User.getUserName()+" ] "; + String task_name = ""; + String newUpdte = UUID.randomUUID().toString().replace("-","")+"_newUpdte"; + String newDelete = UUID.randomUUID().toString().replace("-","")+"_newDelete"; + String newOrder = UUID.randomUUID().toString().replace("-","")+"_newName"; + String agent_id = User.getDept().getDeptId().toString(); + String obj = map.get("radio").toString(); + switch (obj){ + case "update": + task_name ="订单状态[退款]并删除资费计划"; + break; + case "delete": + task_name ="删除订单并删除资费计划"; + break; + } + String SaveUrl = "/getcsv/"+newUpdte+".csv"; + SaveUrl += ",/getcsv/"+newDelete+".csv"; + String value = map.get("valueIs").toString(); + if(value.equals("true")) { + SaveUrl += ",/getcsv/" + newOrder + ".csv"; + } + Map task_map = new HashMap(); + task_map.put("auth",create_by); + task_map.put("task_name",task_name); + task_map.put("url",SaveUrl); + task_map.put("agent_id", agent_id); + task_map.put("type", "38"); + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + map.put("agent_id",agent_id); + Map OrderMap = plOrder.orderOpen(map); + + + //1.创建路由 绑定 生产队列 发送消息 + String polling_queueName = "admin_Unsubscribe_queue"; + String polling_routingKey = "admin.Unsubscribe.queue"; + String polling_exchangeName = "admin_exchange";//路由 + + try { + rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.putAll(map); + start_type.put("Unsubscribe", Unsubscribe);//启动类型 + start_type.put("task_map", task_map);// + start_type.put("create_by", create_by);// + + start_type.put("newUpdte", newUpdte);// + start_type.put("newDelete", newDelete);// + start_type.put("newOrder", newOrder);// + start_type.put("OrderMap", OrderMap);// + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("划分 失败 " + e.getMessage().toString()); + return ("物联卡管理 划分 操作失败!"); + } + Message = "当前筛选条件下需要的数据 [ " + Unsubscribe.size() + " ] 条 指令已下发详情查看 【执行日志管理】 !"; + }else { + Message = "当前筛选条件下未找到需要划分的数据!请核对后重试!"; + } + return Message; + } + + @Override + public String getPackage(Map map) { + + Integer time = 60; + List UpdaArr = (List) map.get("UpdaArr"); + //0.自动 修改已经加包的订单加包状态 [防止重复加包] + try { + Map objectMap = new HashMap<>(); + objectMap.put("UpdaArr",UpdaArr); + yzOrderMapper.updBatch(objectMap); + }catch (Exception e){ + System.out.println("加包执行失败"); + } + + //1.获取 支付成功 > 用量充值 > 未执行加包的 订单 + Map findAddPackage_Map = new HashMap<>(); + findAddPackage_Map.put("UpdaArr", UpdaArr); + List> AddPackageArr = yzOrderMapper.findAddPackageNoAddPackage(findAddPackage_Map); + + List list = new ArrayList<>(); + for (Map Map1 : AddPackageArr){ + String Str = Map1.get("iccid").toString(); + list.add(Str); + } + int a = 0; + int b = 0; + String message = ""; + Map objectMap = new HashMap<>(); + objectMap.put("valueList",list); + List> stringList = yzCardMapper.itemIccid(objectMap); + for (Map obj : stringList){ + + String activate_date = obj.get("activate_date")+""; + if(!activate_date.equals("isNull")){ + try { + orderAddPackageProductionTask.AddPackag(AddPackageArr, time); + message = "执行加包!"; + a++; + }catch (Exception e){ + return "发送加包指令失败……"; + } + }else { + message = "执行加包!"; + b++; + } + } + return message+"["+"发送加包指令成功"+a+"条"+"]"+"=========="+"["+"发送加包指令失败"+b+"条"+"]"; + } + + @Override + public String TextRecharge(Map map) throws IOException { + + String newName = UUID.randomUUID().toString().replace("-", "") + "_repeat"; + String flieUrlRx = "/upload/importRecharge/"; + try { + // 获取当前项目的工作路径 + File file2 = new File(""); + String filePath = file2.getCanonicalPath(); + File Url = new File(filePath + flieUrlRx + "1.txt");//tomcat 生成路径 + Upload.mkdirsmy(Url); + + map.put("OrderMap", plOrder.orderOpen(map)); + String agent_id = map.get("agent_id").toString(); + + Map bulkMap = new HashMap<>(); + String task_name = "平台批量充值 [充值] "; + String code = VeDate.getNo(8); + SysUser User = (SysUser) map.get("User");//登录用户信息 + SysDept Dept = User.getDept(); + String create_by = " [ " + Dept.getDeptName() + " ] - " + " [ " + User.getUserName() + " ] "; + bulkMap.put("code", code); + bulkMap.put("task_name", task_name); + bulkMap.put("auth", create_by); + bulkMap.put("agent_id", agent_id); + bulkMap.put("type", "5");//批量订购 5 + yzBulkBusinessMapper.add(bulkMap); + + + //1.创建路由 绑定 生产队列 发送消息 + //路由队列 + String addOrder_exchangeName = "admin_exchange", addOrder_queueName = "admin_OrderTextRecharge_queue", addOrder_routingKey = "admin.OrderTextRecharge.queue", + addOrder_del_exchangeName = "dlx_" + addOrder_exchangeName, addOrder_del_queueName = "dlx_" + addOrder_queueName, addOrder_del_routingKey = "dlx_" + addOrder_routingKey; + try { + //mQConfig.creatExchangeQueue(addOrder_exchangeName, addOrder_queueName, addOrder_routingKey, addOrder_del_exchangeName, addOrder_del_queueName, addOrder_del_routingKey, null); + Map start_type = new HashMap<>(); + start_type.put("filePath", filePath);//项目根目录 + start_type.put("newName", newName);//输出文件名 + start_type.put("bulkMap", bulkMap);//批量任务主表 信息 + start_type.put("map", map);//参数 + rabbitTemplate.convertAndSend(addOrder_exchangeName, addOrder_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 60 分钟 过期 + message.getMessageProperties().setExpiration("" + (60 * 1000 * 60)); + return message; + }); + + + } catch (Exception e) { + System.out.println("平台文本域充值指令 失败 " + e.getMessage().toString()); + return ("平台文本域充值指令 操作失败!"); + } +// }else{ +// return ("未找到 您的名下 资费计划ID 【"+map.get("packet_id")+"】 充值取消! "); +// } + } catch (Exception e) { + System.out.println(e); + return "上传excel异常"; + } + return "资费订购 平台文本域充值指令 已发送,充值详细信息请在 【批量业务受理】查询!"; + } + + @Override + public Map DeptTextRecharge(Map map, SysUser operateMap) throws IOException { + String newName = UUID.randomUUID().toString().replace("-", "") + "_repeat"; + String flieUrlRx = "/upload/importRecharge/"; + + // 获取当前项目的工作路径 + File file2 = new File(""); + String filePath = file2.getCanonicalPath(); + File Url = new File(filePath + flieUrlRx + "1.txt");//tomcat 生成路径 + Upload.mkdirsmy(Url); + + map.put("OrderMap", plOrder.orderOpen(map)); + String agent_id = map.get("agent_id").toString(); + + Map Rmap = new HashMap(); + String Message = "操作失败!"; + boolean bool = false; + List> subBRCardArr = (List>) map.get("subBRCardArr"); + List packetIdArr = (List) map.get("packetIdArr"); + Map BRpacketCardCount = (Map) map.get("BRpacketCardCount"); + List iccidArr = (List) map.get("iccidArr"); + + + + if(subBRCardArr!=null && subBRCardArr.size()>0){//充值资费计划数组不能为空 + String login_dept_id = map.get("login_dept_id").toString(); + + //0. 充值资费组获取成本价 + Map findPacketMap = new HashMap<>(); + findPacketMap.put("login_dept_id",login_dept_id); + findPacketMap.put("packetIdArr",packetIdArr); + List> packetArr = new ArrayList<>(); + if(login_dept_id.equals("100")){ + packetArr = yzCardPacketMapper.findPacketSingleTable(findPacketMap); + }else{ + packetArr = yzAgentPacketMapper.findPacketSingleTable(findPacketMap); + } + + Double amount = 0.0;//总计金额 + int card_sumCount = 0;//续费卡总数 + for (int i = 0; i < packetArr.size(); i++) { + Map packe = packetArr.get(i); + Double packet_cost = Double.parseDouble(packe.get("packet_cost").toString());//成本 + String packet_id = packe.get("packet_id").toString(); + List> cardObj = (List>) BRpacketCardCount.get(""+packet_id); + int packetCardCount = cardObj.size();//数量 + card_sumCount = (int) Arith.add(card_sumCount,packetCardCount); + amount = Arith.add(amount,Arith.mul(packetCardCount,packet_cost)); + } + + //1.判断企业金额信息是或否支持续费操作 + Map FindDeptAmountMap = new HashMap<>(); + FindDeptAmountMap.put("dept_id",login_dept_id); + Map DeptAmountMap = yzUserMapper.findDeptAmount(FindDeptAmountMap); + Double deposit_amount = DeptAmountMap.get("deposit_amount")!=null&&DeptAmountMap.get("deposit_amount").toString().length()>0?Double.parseDouble(DeptAmountMap.get("deposit_amount").toString()):0.0;//预存金额 + Double be_usable_line_of_credit = DeptAmountMap.get("be_usable_line_of_credit")!=null&&DeptAmountMap.get("be_usable_line_of_credit").toString().length()>0?Double.parseDouble(DeptAmountMap.get("be_usable_line_of_credit").toString()):0.0;//可使用授信额度 + + double forecast_deposit_amount = 0.0;//预计剩余可用预存金额 + double forecast_be_usable_line_of_credit = 0.0;//预计剩余 可用授信 [默认 0 ] + forecast_deposit_amount = Arith.sub(deposit_amount,amount);//预计剩余可用预存金额 = 可用预存金额 - 总扣款 + boolean is_NeedToRecharge = false;//判断扣款是否不足以支付该次 操作进行提示 + + if(forecast_deposit_amount<=0 && be_usable_line_of_credit==0){//如 预计剩余可用预存金额 <0 且 可用授信额度 == 0 + is_NeedToRecharge = true; + }else if(forecast_deposit_amount<0 && be_usable_line_of_credit>0){//如 预计剩余可用预存金额 <0 且 可用授信额度》0 》》 继续判断可用授信是否足够扣款 + forecast_be_usable_line_of_credit = Arith.add(be_usable_line_of_credit,forecast_deposit_amount);//预计剩余 可用授信 = 剩余可用授信 - 预计剩余可用预存金额 + forecast_deposit_amount = 0; + if(forecast_be_usable_line_of_credit>=0) {//如 预计剩余 可用授信 >=0 变更 预计剩余可用预存金额 = 0 + + }else{ + is_NeedToRecharge = true; + } + }else{ + forecast_be_usable_line_of_credit = be_usable_line_of_credit; + } + + if(is_NeedToRecharge){ //不足以扣款时 + double stillNeeded = Arith.add(forecast_deposit_amount,forecast_be_usable_line_of_credit);//还需充值金额 + stillNeeded = Math.abs(stillNeeded); + Message = "本次操作需扣款 [ "+amount+" ] 还需 [ "+stillNeeded+" ] ,您的账户目前可用预存/授信不足,请点击['去预存']!"; + }else{ + //续费扣款指令发送 + Map primaryMap = new HashMap<>(); + primaryMap.put("amount",amount); + primaryMap.put("card_sumCount",card_sumCount); + primaryMap.put("user_id",operateMap.getUserId()); + map.put("primaryMap",primaryMap); + map.put("agent_id",login_dept_id); + map.put("deptName",operateMap.getDept().getDeptName()); + map.put("packetArr",packetArr); + + Map bulkMap = new HashMap<>(); + String task_name = "企业批量充值 [充值] "; + String code = VeDate.getNo(8); + SysUser User = (SysUser) map.get("User");//登录用户信息 + SysDept Dept = User.getDept(); + String create_by = " [ " + Dept.getDeptName() + " ] - " + " [ " + User.getUserName() + " ] "; + bulkMap.put("code", code); + bulkMap.put("task_name", task_name); + bulkMap.put("auth", create_by); + bulkMap.put("agent_id", agent_id); + bulkMap.put("type", "5");//批量订购 5 + yzBulkBusinessMapper.add(bulkMap); + + //修改企业金额信息 路由队列 + String polling_queueName = "admin_updDeptAmount_queue"; + String polling_routingKey = "admin.updDeptAmount.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + Map start_type = new HashMap<>(); + start_type.put("type", "Recharge");//启动类型 批量充值 + start_type.put("Pmap", map);//请求参数 + start_type.put("operateMap", operateMap);//操作人信息. + start_type.put("filePath", filePath);//项目根目录 + start_type.put("newName", newName);//输出文件名 + start_type.put("bulkMap", bulkMap);//批量任务主表 信息 + start_type.put("iccidArr", iccidArr); + + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + bool = true; + Message = " 充值资费 指令发送成功!请稍后刷新查看"; + } catch (Exception e) { + System.out.println("充值资费 指令发送 " + e.getMessage()); + Message = "充值资费 指令发送 失败!"; + } + + + } + }else { + Message = "充值资费计划不能为空!"; + } + + Rmap.put("bool",bool); + Rmap.put("Message",Message); + return Rmap; + } + + @Override + public List findRecharged(Map map) { + return yzOrderMapper.findRecharged(map); + } + } diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzPollingServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzPollingServiceImpl.java index 0e37ef6..ab97660 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzPollingServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzPollingServiceImpl.java @@ -1,6 +1,6 @@ package com.yunze.system.service.impl.yunze; -import com.yunze.common.mapper.yunze.PollingMapper; +import com.yunze.common.mapper.yunze.polling.PollingMapper; import com.yunze.common.utils.yunze.PageUtil; import com.yunze.system.service.yunze.IYPollingService; import org.springframework.stereotype.Service; diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/bulk/YzBulkBusinessDtailsServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/bulk/YzBulkBusinessDtailsServiceImpl.java new file mode 100644 index 0000000..50cf62e --- /dev/null +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/bulk/YzBulkBusinessDtailsServiceImpl.java @@ -0,0 +1,179 @@ +package com.yunze.system.service.impl.yunze.bulk; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.core.domain.entity.SysDictData; +import com.yunze.common.core.domain.entity.SysUser; +import com.yunze.common.mapper.yunze.bulk.YzBulkBusinessDtailsMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.mapper.yunze.bulk.YzBulkBusinessMapper; +import com.yunze.common.utils.yunze.Different; +import com.yunze.common.utils.yunze.PageUtil; +import com.yunze.system.mapper.SysDictDataMapper; +import com.yunze.system.service.yunze.bulk.IYzBulkBusinessDtailsService; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +@Service +public class YzBulkBusinessDtailsServiceImpl implements IYzBulkBusinessDtailsService { + + @Resource + private YzBulkBusinessDtailsMapper yzBulkBusinessDtailsMapper; + @Resource + private YzBulkBusinessMapper yzBulkBusinessMapper; + @Resource + private SysDictDataMapper dictDataMapper; + @Autowired + private RabbitTemplate rabbitTemplate; + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + + + @Override + public Map getList(Map map) { + Map omp = new HashMap(); + Integer currenPage = map.get("pageNum") != null ? Integer.parseInt(map.get("pageNum").toString()) : 0; + Integer pageSize = map.get("pageSize") != null ? Integer.parseInt(map.get("pageSize").toString()) : 10; + Integer rowCount = yzBulkBusinessDtailsMapper.selMapCount(map); + rowCount = rowCount != null ? rowCount : 0; + PageUtil pu = new PageUtil(rowCount, currenPage, pageSize);//初始化分页工具类 + //数据打包 + map.put("StarRow", pu.getStarRow()); + map.put("PageSize", pu.getPageSize()); + omp.put("Pu", pu); + omp.put("Data", yzBulkBusinessDtailsMapper.selMap(map)); + return omp; + } + + @Override + public Map successArr(Map map) { + Map omp = new HashMap(); + Integer currenPage = map.get("pageNum") != null ? Integer.parseInt(map.get("pageNum").toString()) : 0; + Integer pageSize = map.get("pageSize") != null ? Integer.parseInt(map.get("pageSize").toString()) : 10; + Integer rowCount = yzBulkBusinessDtailsMapper.publicCount(map); + rowCount = rowCount != null ? rowCount : 0; + PageUtil pu = new PageUtil(rowCount, currenPage, pageSize);//初始化分页工具类 + //数据打包 + map.put("StarRow", pu.getStarRow()); + map.put("PageSize", pu.getPageSize()); + omp.put("Pu", pu); + omp.put("Data", yzBulkBusinessDtailsMapper.successArr(map)); + return omp; + } + + @Override + public String exportallorders(Map map, SysUser User) { + Object MapAgent_id = map.get("agent_id"); + //导出时 未选中 当前 企业编号时 且登录 部门不是 总平台 赋值部门 + if(MapAgent_id==null && User.getDeptId()!=100){ + List agent_idArr = new ArrayList(); + agent_idArr.add(""+User.getDeptId()); + map.put("agent_id",agent_idArr); + } + map.remove("pageNum"); + map.remove("pageSize"); + List> outCardIccidArr = null; + //权限过滤 + if(map.get("agent_id")!=null){ + List agent_id = (List) map.get("agent_id"); + if(!Different.Is_existence(agent_id,100)){ + List bIdArr = yzBulkBusinessMapper.findIdArr(map); + //map.put("bIdArr",bIdArr); + if(bIdArr!=null && bIdArr.size()>0){ + //判断 下载 bid 是否在其中 + if(!Different.Is_existence(bIdArr,map.get("b_id").toString())){ + return "导出任务编号数据不在您名下!导出任务取消!"; + } + } + } + } + outCardIccidArr = yzBulkBusinessDtailsMapper.exportallorders(map); + + if(outCardIccidArr!=null && outCardIccidArr.size()>0){ + String create_by = " [ "+User.getDept().getDeptName()+" ] - "+" [ "+User.getUserName()+" ] "; + String newName = ""; + + String agent_id = User.getDept().getDeptId().toString(); + String task_name = ""; + + String obj = map.get("type").toString().trim(); + + switch (obj){ + case "success": + task_name="成功状态导出 [导出] "; + newName = UUID.randomUUID().toString().replace("-","")+"_ExportScs"; + break; + case "fail": + task_name="失败状态导出 [导出] "; + newName = UUID.randomUUID().toString().replace("-","")+"_ExportFai"; + break; + case "Pending": + task_name="待处理状态导出 [导出] "; + newName = UUID.randomUUID().toString().replace("-","")+"_ExportRend"; + break; + } + String SaveUrl = "/getcsv/"+newName+".csv"; + Map task_map = new HashMap(); + task_map.put("auth",create_by); + task_map.put("task_name",task_name); + task_map.put("url",SaveUrl); + task_map.put("agent_id", agent_id); + task_map.put("type", "35"); + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + //获取字典信息 + List state_id = dictDataMapper.selectDictDataByType("yz_bulk_businessDtails_state_id");//状态 + + //导卡 路由队列 + String polling_queueName = "admin_ExportaBusiness_queue"; + String polling_routingKey = "admin.ExportaBusiness.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + Map start_type = new HashMap<>(); + start_type.put("type", "importCardData");//启动类型 + start_type.put("newName", newName);//输出文件名 + start_type.put("task_map", task_map);// + start_type.put("create_by", create_by);// + start_type.put("User", User); + start_type.put("outCardIccidArr",outCardIccidArr); + start_type.put("map",map); + start_type.put("state_id",state_id); + + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + }catch (Exception e){ + System.out.println("导入 卡号 失败 " + e.getMessage().toString()); + return "状态查询导出 导入 操作失败!"; + } + }else { + return "您当前的筛选的查询条件 未找到数据!导出任务取消!"; + } + return "已下发执行日志可在【系统管理】》【日志管理】》【执行日志】查看"; + } + + +} + + + + + + + + + + + + + + + + + + diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/bulk/YzBulkBusinessServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/bulk/YzBulkBusinessServiceImpl.java new file mode 100644 index 0000000..370d07a --- /dev/null +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/bulk/YzBulkBusinessServiceImpl.java @@ -0,0 +1,33 @@ +package com.yunze.system.service.impl.yunze.bulk; + +import com.yunze.common.mapper.yunze.bulk.YzBulkBusinessMapper; +import com.yunze.common.utils.yunze.PageUtil; +import com.yunze.system.service.yunze.bulk.IYzBulkBusinessService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; +@Service +public class YzBulkBusinessServiceImpl implements IYzBulkBusinessService { + + @Resource + private YzBulkBusinessMapper yzBulkBusinessMapper; + + @Override + public Map getList(Map map) { + + Map omp = new HashMap(); + Integer currenPage = map.get("pageNum") != null ? Integer.parseInt(map.get("pageNum").toString()) : 0; + Integer pageSize = map.get("pageSize") != null ? Integer.parseInt(map.get("pageSize").toString()) : 10; + Integer rowCount = yzBulkBusinessMapper.selMapCount(map); + rowCount = rowCount != null ? rowCount : 0; + PageUtil pu = new PageUtil(rowCount, currenPage, pageSize);//初始化分页工具类 + //数据打包 + map.put("StarRow", pu.getStarRow()); + map.put("PageSize", pu.getPageSize()); + omp.put("Pu", pu); + omp.put("Data", yzBulkBusinessMapper.selMap(map)); + return omp; + } +} diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzExecutionTaskService_Impl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/bulk/YzExecutionTaskService_Impl.java similarity index 78% rename from yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzExecutionTaskService_Impl.java rename to yunze-system/src/main/java/com/yunze/system/service/impl/yunze/bulk/YzExecutionTaskService_Impl.java index 2caa5b1..b833116 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/YzExecutionTaskService_Impl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/bulk/YzExecutionTaskService_Impl.java @@ -1,9 +1,9 @@ -package com.yunze.system.service.impl.yunze; +package com.yunze.system.service.impl.yunze.bulk; import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; import com.yunze.common.utils.yunze.PageUtil; -import com.yunze.system.service.yunze.IYzExecutionTaskService; +import com.yunze.system.service.yunze.bulk.IYzExecutionTaskService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -18,7 +18,7 @@ public class YzExecutionTaskService_Impl implements IYzExecutionTaskService { @Resource - private YzExecutionTaskMapper dao; + private YzExecutionTaskMapper yzExecutionTaskMapper; @@ -28,14 +28,14 @@ public class YzExecutionTaskService_Impl implements IYzExecutionTaskService { Map omp=new HashMap(); Integer currenPage=map.get("pageNum")!=null?Integer.parseInt(map.get("pageNum").toString()):0; Integer pageSize=map.get("pageSize")!=null?Integer.parseInt(map.get("pageSize").toString()):10; - Integer rowCount = dao.sel_Map_Count(map); + Integer rowCount = yzExecutionTaskMapper.sel_Map_Count(map); rowCount=rowCount!=null?rowCount:0; PageUtil pu=new PageUtil(rowCount,currenPage , pageSize);//初始化分页工具类 //数据打包 map.put("StarRow", pu.getStarRow()); map.put("PageSize", pu.getPageSize()); omp.put("Pu", pu); - omp.put("Data", dao.sel_Map(map)); + omp.put("Data", yzExecutionTaskMapper.sel_Map(map)); return omp; } diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/card/YzApplicationforRenewalServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/card/YzApplicationforRenewalServiceImpl.java new file mode 100644 index 0000000..1e0c9dc --- /dev/null +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/card/YzApplicationforRenewalServiceImpl.java @@ -0,0 +1,240 @@ +package com.yunze.system.service.impl.yunze.card; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.utils.Arith; +import com.yunze.common.core.domain.entity.SysUser; +import com.yunze.common.mapper.yunze.YzAgentPacketMapper; +import com.yunze.common.mapper.yunze.YzCardPacketMapper; +import com.yunze.common.mapper.yunze.YzUserMapper; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalMapper; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalPrimaryIccidMapper; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalPrimaryMapper; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalPrimaryOrdNoMapper; +import com.yunze.common.utils.yunze.Different; +import com.yunze.common.utils.yunze.PageUtil; +import com.yunze.system.service.yunze.card.IYzApplicationforRenewalService; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class YzApplicationforRenewalServiceImpl implements IYzApplicationforRenewalService { + + @Resource + private YzApplicationforRenewalMapper yzApplicationforRenewalMapper; + @Resource + private YzApplicationforRenewalPrimaryIccidMapper yzApplicationforRenewalPrimaryIccidMapper; + @Resource + private YzApplicationforRenewalPrimaryMapper yzApplicationforRenewalPrimaryMapper; + @Resource + private YzApplicationforRenewalPrimaryOrdNoMapper yzApplicationforRenewalPrimaryOrdNoMapper; + @Resource + private YzUserMapper yzUserMapper; + @Resource + private YzCardPacketMapper yzCardPacketMapper; + @Resource + private YzAgentPacketMapper yzAgentPacketMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + + @Override + public Map selMap(Map map) { + Map omp = new HashMap(); + Integer currenPage = map.get("pageNum") != null ? Integer.parseInt(map.get("pageNum").toString()) : 0; + Integer pageSize = map.get("pageSize") != null ? Integer.parseInt(map.get("pageSize").toString()) : 10; + //订单号查询 + if(map.get("type") != null && map.get("value") != null && map.get("type").toString().length()>0 && map.get("value").toString().length()>0 ){ + String type = map.get("type").toString(); + String value = map.get("value").toString(); + if(type.equals("0")){ + Map findPidMap = new HashMap(); + findPidMap.put("ord_no",value); + String id = yzApplicationforRenewalPrimaryOrdNoMapper.findPid(findPidMap); + if(id!=null && id.length()>0){ + map.put("id",id); + } + } + } + Integer rowCount = yzApplicationforRenewalPrimaryMapper.selMapCount(map); + rowCount = rowCount != null ? rowCount : 0; + PageUtil pu = new PageUtil(rowCount, currenPage, pageSize);//初始化分页工具类 + //数据打包 + map.put("StarRow", pu.getStarRow()); + map.put("PageSize", pu.getPageSize()); + omp.put("Pu", pu); + omp.put("Data", yzApplicationforRenewalPrimaryMapper.selMap(map)); + return omp; + } + + + + @Override + public Map save(Map map, SysUser operateMap) { + + Map Rmap = new HashMap(); + String Message = "操作失败!"; + boolean bool = false; + List> subBRCardArr = (List>) map.get("subBRCardArr"); + List packetIdArr = (List) map.get("packetIdArr"); + Map BRpacketCardCount = (Map) map.get("BRpacketCardCount"); + + if(subBRCardArr!=null && subBRCardArr.size()>0){//续费资费计划数组不能为空 + String login_dept_id = map.get("login_dept_id").toString(); + + //0. 续费资费组获取成本价 + Map findPacketMap = new HashMap<>(); + findPacketMap.put("login_dept_id",login_dept_id); + findPacketMap.put("packetIdArr",packetIdArr); + List> packetArr = new ArrayList<>(); + if(login_dept_id.equals("100")){ + packetArr = yzCardPacketMapper.findPacketSingleTable(findPacketMap); + }else{ + packetArr = yzAgentPacketMapper.findPacketSingleTable(findPacketMap); + } + + Double amount = 0.0;//总计金额 + int card_sumCount = 0;//续费卡总数 + for (int i = 0; i < packetArr.size(); i++) { + Map packe = packetArr.get(i); + Double packet_cost = Double.parseDouble(packe.get("packet_cost").toString());//成本 + String packet_id = packe.get("packet_id").toString(); + List> cardObj = (List>) BRpacketCardCount.get(""+packet_id); + int packetCardCount = cardObj.size();//数量 + card_sumCount = (int) Arith.add(card_sumCount,packetCardCount); + amount = Arith.add(amount,Arith.mul(packetCardCount,packet_cost)); + } + + //1.判断企业金额信息是或否支持续费操作 + Map FindDeptAmountMap = new HashMap<>(); + FindDeptAmountMap.put("dept_id",login_dept_id); + Map DeptAmountMap = yzUserMapper.findDeptAmount(FindDeptAmountMap); + //Double line_of_credit = DeptAmountMap.get("line_of_credit")!=null&&DeptAmountMap.get("line_of_credit").toString().length()>0?Double.parseDouble(DeptAmountMap.get("line_of_credit").toString()):0.0;//已授信额度 + Double deposit_amount = DeptAmountMap.get("deposit_amount")!=null&&DeptAmountMap.get("deposit_amount").toString().length()>0?Double.parseDouble(DeptAmountMap.get("deposit_amount").toString()):0.0;//预存金额 + //Double used_line_of_credit = DeptAmountMap.get("used_line_of_credit")!=null&&DeptAmountMap.get("used_line_of_credit").toString().length()>0?Double.parseDouble(DeptAmountMap.get("used_line_of_credit").toString()):0.0;//已使用授信额度 + Double be_usable_line_of_credit = DeptAmountMap.get("be_usable_line_of_credit")!=null&&DeptAmountMap.get("be_usable_line_of_credit").toString().length()>0?Double.parseDouble(DeptAmountMap.get("be_usable_line_of_credit").toString()):0.0;//可使用授信额度 + + + + double forecast_deposit_amount = 0.0;//预计剩余可用预存金额 + double forecast_be_usable_line_of_credit = 0.0;//预计剩余 可用授信 [默认 0 ] + forecast_deposit_amount = Arith.sub(deposit_amount,amount);//预计剩余可用预存金额 = 可用预存金额 - 总扣款 + boolean is_NeedToRecharge = false;//判断扣款是否不足以支付该次 操作进行提示 + + if(forecast_deposit_amount<=0 && be_usable_line_of_credit==0){//如 预计剩余可用预存金额 <0 且 可用授信额度 == 0 + is_NeedToRecharge = true; + }else if(forecast_deposit_amount<0 && be_usable_line_of_credit>0){//如 预计剩余可用预存金额 <0 且 可用授信额度》0 》》 继续判断可用授信是否足够扣款 + forecast_be_usable_line_of_credit = Arith.add(be_usable_line_of_credit,forecast_deposit_amount);//预计剩余 可用授信 = 剩余可用授信 - 预计剩余可用预存金额 + forecast_deposit_amount = 0; + if(forecast_be_usable_line_of_credit>=0) {//如 预计剩余 可用授信 >=0 变更 预计剩余可用预存金额 = 0 + + }else{ + is_NeedToRecharge = true; + } + }else{ + forecast_be_usable_line_of_credit = be_usable_line_of_credit; + } + + if(is_NeedToRecharge){ //不足以扣款时 + double stillNeeded = Arith.add(forecast_deposit_amount,forecast_be_usable_line_of_credit);//还需充值金额 + stillNeeded = Math.abs(stillNeeded); + Message = "本次操作需扣款 [ "+amount+" ] 还需 [ "+stillNeeded+" ] ,您的账户目前可用预存/授信不足,请点击['去预存']!"; + }else{ + //续费扣款指令发送 + + Map primaryMap = new HashMap<>(); + primaryMap.put("amount",amount); + primaryMap.put("card_sumCount",card_sumCount); + primaryMap.put("user_id",operateMap.getUserId()); + map.put("primaryMap",primaryMap); + map.put("agent_id",login_dept_id); + map.put("deptName",operateMap.getDept().getDeptName()); + map.put("packetArr",packetArr); + + + //修改企业金额信息 路由队列 + String polling_queueName = "admin_updDeptAmount_queue"; + String polling_routingKey = "admin.updDeptAmount.queue"; + String polling_exchangeName = "admin_exchange";//路由 + try { + // rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_type = new HashMap<>(); + start_type.put("type", "RenewalDebit");//启动类型 续费扣款 + start_type.put("Pmap", map);//请求参数 + start_type.put("operateMap", operateMap);//操作人信息 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (30 * 1000 * 60)); + return message; + }); + bool = true; + Message = " 续费资费 指令发送成功!请稍后刷新查看"; + } catch (Exception e) { + System.out.println("续费资费 指令发送 " + e.getMessage()); + Message = "续费资费 指令发送 失败!"; + } + + + } + }else { + Message = "续费资费计划不能为空!"; + } + + Rmap.put("bool",bool); + Rmap.put("Message",Message); + return Rmap; + } + + @Override + public boolean upd(Map map) { + boolean bool = yzApplicationforRenewalPrimaryMapper.upd(map)>0; + return bool; + } + + @Override + public Map find(Map map) { + boolean is_Internal = false; + //权限过滤 + if (map.get("agent_id") != null) { + List agent_id = (List) map.get("agent_id"); + if (Different.Is_existence(agent_id, 100)) { + is_Internal = true;//内部人员 部门是 100 的 可看字段增加 + } + } else { + is_Internal = true;//内部人员 部门是 100 的 可看字段增加 + } + map.put("is_Internal", is_Internal); + Map rMap = new HashMap<>(); + + rMap.put("primaryMap",yzApplicationforRenewalPrimaryMapper.find(map)); + rMap.put("packetArr",yzApplicationforRenewalMapper.find(map)); + rMap.put("ordArr",yzApplicationforRenewalPrimaryOrdNoMapper.findOrder(map)); + rMap.put("is_Internal",is_Internal); + + return rMap; + } + + @Override + public Map findIccid(Map map) { + Map omp = new HashMap(); + Integer currenPage = map.get("pageNum") != null ? Integer.parseInt(map.get("pageNum").toString()) : 0; + Integer pageSize = map.get("pageSize") != null ? Integer.parseInt(map.get("pageSize").toString()) : 10; + + Integer rowCount = yzApplicationforRenewalPrimaryIccidMapper.findCount(map); + rowCount = rowCount != null ? rowCount : 0; + PageUtil pu = new PageUtil(rowCount, currenPage, pageSize);//初始化分页工具类 + //数据打包 + map.put("StarRow", pu.getStarRow()); + map.put("PageSize", pu.getPageSize()); + omp.put("Pu", pu); + omp.put("Data", yzApplicationforRenewalPrimaryIccidMapper.find(map)); + return omp; + } + + +} diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/sysgl/MySysDeptServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/sysgl/MySysDeptServiceImpl.java index 2144c7f..5e5f6bf 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/sysgl/MySysDeptServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/sysgl/MySysDeptServiceImpl.java @@ -80,7 +80,7 @@ public class MySysDeptServiceImpl implements IMySysDeptService { String productId = String.valueOf(System.currentTimeMillis()); String ordNo = VeDate.getNo(8); try { - String body = "企业预存-"+deptId; + String body = "企业预存编号-"+deptId; //获取收款的 appid 统一默认为 平台代理 公众号 100 Map findMap = new HashMap<>(); @@ -268,9 +268,17 @@ public class MySysDeptServiceImpl implements IMySysDeptService { String trade_state=null; if(null!=wxPayOrderQueryResult) { trade_state = wxPayOrderQueryResult.getTradeState(); + if ("SUCCESS".equals(trade_state)) { bool = true; Message = "支付成功,等待页面跳转"; + String outOrdNo = wxPayOrderQueryResult.getOutTradeNo(); + String wxOrdNo = wxPayOrderQueryResult.getTransactionId(); + try { + updPrestore(outOrdNo, wxOrdNo, ""); + }catch (Exception e){ + System.out.println(" SUCCESS = Exception "+e.getMessage()); + } }else { bool = false; if ("REFUND".equals(trade_state)) { @@ -299,6 +307,150 @@ public class MySysDeptServiceImpl implements IMySysDeptService { return Rmap; } + @Override + public Map sysPreSaved(Map map) { + return saveOperation(map,"add","4","企业预存-人工操作"); + } + + @Override + public Map sysDeduct(Map map) { + return saveOperation(map,"sub","6","预存抵扣-人工操作"); + } + + + /** + * 预存操作 + * @param map + * @return + */ + private Map saveOperation(Map map,String operateType,String ord_type,String ord_name) { + Map Rmap = new HashMap<>(); + String Message = "";boolean bool = false; + + String ordNo = VeDate.getNo(8); + //添加订单生成参数 + Map OrderMap = new HashMap<>(); + + String paySum = map.get("paySum").toString(); + String deptId = map.get("deptId").toString(); + String ip = map.get("ip").toString(); + String info = map.get("info").toString(); + + OrderMap.put("ord_type", ord_type);//订单类型 企业预存 4 预存抵扣 6 + OrderMap.put("ord_name", ord_name);//交易名称 商品购买 + OrderMap.put("wx_ord_no", null);//微信订单号 + OrderMap.put("status", "1");//支付状态 未支付 + OrderMap.put("price", paySum);//交易金额 + OrderMap.put("account", "0");//交易后金额 + OrderMap.put("pay_type", "al");//支付方式 微信支付 + OrderMap.put("is_profit", "0");//是否需要分润 0否-1是 + OrderMap.put("add_package", "0");//是否已经执行过加包 0否 1 是 + OrderMap.put("show_status", "1");//是否显示交易记录:0否-1显示 + OrderMap.put("open_id", null);//openid 微信支付记录操作人 + OrderMap.put("agent_id", deptId);// 所属记录企业id + OrderMap.put("cre_type", "ai");//生成方式 系统 sys 人工 ai + OrderMap.put("iccid", ""); + OrderMap.put("ord_no", ordNo); + OrderMap.put("info", info); + if(yzOrderMapper.save(OrderMap)>0){ + //企业预存增加余额 + try { + Map sendMap = new HashMap<>(); + Map Pmap = new HashMap<>(); + Pmap.put("operateType",operateType); + Pmap.put("deposit_amount",paySum); + Pmap.put("dept_id",deptId); + Pmap.put("agent_id",deptId); + Map operateMap = new HashMap<>(); + operateMap.put("ip",ip); + + sendMap.put("Pmap",Pmap); + sendMap.put("operateMap",operateMap); + //修改企业金额信息 路由队列 + String polling_routingKey = "admin.UpdDepositAmount.queue"; + String polling_exchangeName = "admin_exchange";//路由 + + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(sendMap), message -> { + // 设置消息过期时间 60 分钟 过期 + message.getMessageProperties().setExpiration("" + (60 * 1000 * 60)); + return message; + }); + Message = "订单已生成,修改预存指令已发送!"; + bool = true; + } catch (Exception e) { + Message = "修改预存金额指令发送失败……"; + System.out.println("admin_UpdDepositAmount_queue 发送 失败 "+e.getMessage() ); + } + }else{ + Message = "订单新增失败……"; + } + + Rmap.put("bool",bool); + Rmap.put("Msg",Message); + return Rmap; + } + + + + + + + + + + + + + + + /** + * 修改预存发送 + * @param outOrdNo + * @param wxOrdNo + */ + public void updPrestore(String outOrdNo,String wxOrdNo,String ip) { + Map getOrderMap = new HashMap<>(); + getOrderMap.put("ord_no", outOrdNo); + Map order = yzOrderMapper.getOrderBriefly(getOrderMap); + if (null == order) { + System.out.println("未找到订单号对应订单 " + outOrdNo); + } + int status = Integer.parseInt(order.get("status").toString()); + String agentId = order.get("agent_id").toString(); + if (status == 0 && order != null) { + //修改状态 + Map updMap = new HashMap<>(); + updMap.put("status", "1"); + updMap.put("wx_ord_no", wxOrdNo); + updMap.put("id", order.get("id")); + boolean updBool = yzOrderMapper.updStatus(updMap) > 0; + //企业预存增加余额 + try { + Map sendMap = new HashMap<>(); + Map Pmap = new HashMap<>(); + Pmap.put("operateType", "add"); + Pmap.put("deposit_amount", order.get("price")); + Pmap.put("dept_id", agentId); + Pmap.put("agent_id", agentId); + Map operateMap = new HashMap<>(); + operateMap.put("ip", ip); + + sendMap.put("Pmap", Pmap); + sendMap.put("operateMap", operateMap); + //修改企业金额信息 路由队列 + String polling_routingKey = "admin.UpdDepositAmount.queue"; + String polling_exchangeName = "admin_exchange";//路由 + + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(sendMap), message -> { + // 设置消息过期时间 60 分钟 过期 + message.getMessageProperties().setExpiration("" + (60 * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("admin_UpdDepositAmount_queue 发送 失败 " + e.getMessage()); + } + } + } /** * 描述: 1元钱转为 100分 diff --git a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/sysgl/YzIndexpageServiceImpl.java b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/sysgl/YzIndexpageServiceImpl.java index 1a1e3e3..4c07431 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/sysgl/YzIndexpageServiceImpl.java +++ b/yunze-system/src/main/java/com/yunze/system/service/impl/yunze/sysgl/YzIndexpageServiceImpl.java @@ -5,6 +5,7 @@ import com.rabbitmq.client.BuiltinExchangeType; import com.yunze.apiCommon.utils.VeDate; import com.yunze.common.config.RabbitMQConfig; import com.yunze.common.core.redis.RedisCache; + import com.yunze.common.mapper.yunze.sysgl.YzIndexpageMapper; import com.yunze.common.mapper.yunze.commodity.YzWxByProductAgentMapper; import com.yunze.system.service.yunze.sysgl.IYzIndexpageService; @@ -30,6 +31,9 @@ public class YzIndexpageServiceImpl implements IYzIndexpageService { @Resource private RabbitMQConfig rabbitMQConfig; + + + @Override public Map findToDay(Map map) { HashMap RMap = new HashMap<>(); @@ -109,4 +113,55 @@ public class YzIndexpageServiceImpl implements IYzIndexpageService { } + + + /** + * 资产明细数据加载 + * */ + @Override + public Map assetDetails(Map map) { + HashMap RMap = new HashMap<>(); + String dept_id = map.get("dept_id").toString(); + String Message ="获取数据成功!"; + Map data = null; + + RMap.put("data",data); + RMap.put("Message",Message); + return RMap; + } + + /** + * 资产明细数据生成 + * */ + public void Generate(Integer Time,String dept_id,String record_date, boolean internal){ + //1.创建路由 绑定 生产队列 发送消息 + //导卡 路由队列 + String polling_queueName = ""; + String polling_routingKey = ""; + String polling_exchangeName = "admin_exchange";//路由 + if(internal){ + polling_queueName = "admin_AssetDetails_queue"; + polling_routingKey = "admin.AssetDetails.queue"; + }else{ + polling_queueName = "admin_AgentAssetDetails_queue"; + polling_routingKey = "admin.AgentAssetDetails.queue"; + } + + + try { + rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.DIRECT); + Map start_Map = new HashMap<>(); + start_Map.put("dept_id", dept_id);//生成企业ID + start_Map.put("record_date",record_date );//获取前一天的数据 + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_Map), message -> { + // 设置消息过期时间 30 分钟 过期 + message.getMessageProperties().setExpiration("" + (Time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("资产明细数据生成 指令发送失败 " + e.getMessage()); + } + } + + } diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzAgentPackageService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzAgentPackageService.java index 7a9d6bb..dc173db 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzAgentPackageService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzAgentPackageService.java @@ -1,6 +1,8 @@ package com.yunze.system.service.yunze; +import com.yunze.common.core.domain.entity.SysUser; + import java.util.List; import java.util.Map; @@ -54,5 +56,10 @@ public interface IYzAgentPackageService + /**导出*/ + public String exportallorders(Map map, SysUser User); + + /**导出*/ + public String exportPacket(Map map, SysUser User); } diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCardApiOfferinginfoService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardApiOfferinginfoService.java similarity index 80% rename from yunze-system/src/main/java/com/yunze/system/service/yunze/YzCardApiOfferinginfoService.java rename to yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardApiOfferinginfoService.java index 56bf537..f3b9af1 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCardApiOfferinginfoService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardApiOfferinginfoService.java @@ -2,7 +2,7 @@ package com.yunze.system.service.yunze; import java.util.Map; -public interface YzCardApiOfferinginfoService { +public interface IYzCardApiOfferinginfoService { public Map getList(Map map); diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCardApiOfferinginfolistService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardApiOfferinginfolistService.java similarity index 69% rename from yunze-system/src/main/java/com/yunze/system/service/yunze/YzCardApiOfferinginfolistService.java rename to yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardApiOfferinginfolistService.java index c051546..5dbed15 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCardApiOfferinginfolistService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardApiOfferinginfolistService.java @@ -2,7 +2,7 @@ package com.yunze.system.service.yunze; import java.util.Map; -public interface YzCardApiOfferinginfolistService { +public interface IYzCardApiOfferinginfolistService { public Map Listfolist(Map map); } diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCardFlowHisService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardFlowHisService.java similarity index 91% rename from yunze-system/src/main/java/com/yunze/system/service/yunze/YzCardFlowHisService.java rename to yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardFlowHisService.java index 12a44f5..ca03a4b 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCardFlowHisService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardFlowHisService.java @@ -5,7 +5,7 @@ import com.yunze.common.core.domain.entity.SysUser; import java.util.HashMap; import java.util.Map; -public interface YzCardFlowHisService { +public interface IYzCardFlowHisService { /** * 查询 diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPackageService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPackageService.java index 68985bc..40f7a0e 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPackageService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPackageService.java @@ -1,6 +1,8 @@ package com.yunze.system.service.yunze; +import com.yunze.common.core.domain.entity.SysUser; + import java.util.List; import java.util.Map; @@ -76,6 +78,15 @@ public interface IYzCardPackageService * 选择资费组时加载出对应的通道 */ public List> channelName(Map map); + + /**导出*/ + public String exportallorders(Map map, SysUser User); + + + /**导出*/ + public String exportPacket(Map map, SysUser User); + + } diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPacketService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPacketService.java index b7d82e4..36602e2 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPacketService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPacketService.java @@ -42,4 +42,15 @@ public interface IYzCardPacketService * @return */ public Map findPacket(Map map); + + + + /** + * 查询 续费充值的资费计划信息 + * @param map + * @return + */ + public Map findToBR(Map map); + + } diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPollingErrorGroupService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPollingErrorGroupService.java new file mode 100644 index 0000000..e12c366 --- /dev/null +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPollingErrorGroupService.java @@ -0,0 +1,21 @@ +package com.yunze.system.service.yunze; + +import java.util.Map; + +public interface IYzCardPollingErrorGroupService { + + /*查询列表*/ + public Map listGroup (Map map); + + /*单个删除轮询错误概要*/ + public boolean del(Map map); + + /*单个修改轮询错误概要*/ + public boolean upd(Map map); + + /*批量删除轮询错误概要*/ + public boolean delArr(Map map); + + /*批量修改轮询错误概要*/ + public boolean updArr(Map map); +} diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPollingErrorService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPollingErrorService.java new file mode 100644 index 0000000..24e5b62 --- /dev/null +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardPollingErrorService.java @@ -0,0 +1,22 @@ +package com.yunze.system.service.yunze; + +import java.util.Map; + +public interface IYzCardPollingErrorService { + + /*列表查询*/ + public Map listError (Map map); + + /*单个修改*/ + public boolean upd(Map map); + + /*单个删除*/ + public boolean del(Map map); + + /*批量删除*/ + public boolean delArr(Map map); + + /*批量修改*/ + public boolean updArr(Map map); + +} diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardRouteService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardRouteService.java index cf74392..b005cf7 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardRouteService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardRouteService.java @@ -117,7 +117,10 @@ public interface IYzCardRouteService { public List> RouteList(Map map); - + /** + * 选择运营商时加载出对应的通道 + */ + public List> operatorName(Map map); diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardService.java index 6465115..e96b20d 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardService.java @@ -271,4 +271,40 @@ public interface IYzCardService * 获取 上游套餐记录列表 */ public List> getListReminder(Map map); + + + /** + * 单卡同步用量和状态 + * */ + public String CardInfoFlow (Map map); + + + /** 单卡 修改 备注 分组*/ + public boolean UpdateSingle(Map map); + + /** 单卡 灵活变更状态*/ + public String singleState(Map map); + + + + /** + * 卡详情界面 获取 订单信息 + * @param map + * @return + */ + public List> getOrderCard(Map map); + + + /** + * 短信抄送 + * @param file + * @param map + * @return + * @throws IOException + */ + public String smsCC(MultipartFile file, Map map); + + + + } diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCardUsageReminderService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardUsageReminderService.java similarity index 70% rename from yunze-system/src/main/java/com/yunze/system/service/yunze/YzCardUsageReminderService.java rename to yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardUsageReminderService.java index dc01a88..f9f8caa 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCardUsageReminderService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCardUsageReminderService.java @@ -2,7 +2,7 @@ package com.yunze.system.service.yunze; import java.util.Map; -public interface YzCardUsageReminderService { +public interface IYzCardUsageReminderService { public Map list (Map map); } diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCategoryService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCategoryService.java similarity index 76% rename from yunze-system/src/main/java/com/yunze/system/service/yunze/YzCategoryService.java rename to yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCategoryService.java index 27478b9..abfbaea 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCategoryService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCategoryService.java @@ -2,7 +2,7 @@ package com.yunze.system.service.yunze; import java.util.Map; -public interface YzCategoryService { +public interface IYzCategoryService { public Map CategoryList(Map map); diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCcHisService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCcHisService.java similarity index 76% rename from yunze-system/src/main/java/com/yunze/system/service/yunze/YzCcHisService.java rename to yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCcHisService.java index ea6e67b..802229c 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCcHisService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCcHisService.java @@ -2,6 +2,6 @@ package com.yunze.system.service.yunze; import java.util.Map; -public interface YzCcHisService { +public interface IYzCcHisService { public Map ListCcHis(Map map); } diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCcService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCcService.java similarity index 92% rename from yunze-system/src/main/java/com/yunze/system/service/yunze/YzCcService.java rename to yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCcService.java index 6c9e29d..a2dbf9a 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCcService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCcService.java @@ -3,7 +3,7 @@ package com.yunze.system.service.yunze; import java.util.List; import java.util.Map; -public interface YzCcService { +public interface IYzCcService { public Map ListCc(Map map); diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCcUrlService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCcUrlService.java similarity index 90% rename from yunze-system/src/main/java/com/yunze/system/service/yunze/YzCcUrlService.java rename to yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCcUrlService.java index 3815efb..ff5705b 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/YzCcUrlService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzCcUrlService.java @@ -5,7 +5,7 @@ package com.yunze.system.service.yunze; import java.util.List; import java.util.Map; -public interface YzCcUrlService { +public interface IYzCcUrlService { public Map ListCcUrl (Map map); diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzOrderService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzOrderService.java index 7abf4b9..d63e255 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzOrderService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzOrderService.java @@ -5,7 +5,6 @@ import com.yunze.common.core.domain.entity.SysUser; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -65,6 +64,51 @@ public interface IYzOrderService public String exportallorders(Map map,SysUser User); + /** + * 卡号导入查询 + * @param file + * @return + * @throws IOException + */ + public Map CardNumberImport(MultipartFile file, Map map) throws IOException ; + + + /** + * 退订 不操作 下面的内容 + * + * @return*/ + public String NoTbscribe(Map map, SysUser User); + + /** + * 勾选执行加包 + * */ + public String getPackage (Map map); + + + + /** + * 平台充值 【文本域】 + * @return + * @throws IOException + */ + public String TextRecharge(Map map) throws IOException ; + + + + /** + * 企业充值 【文本域】 + * @return + * @throws IOException + */ + public Map DeptTextRecharge(Map map, SysUser operateMap) throws IOException ; + + + /** + * 查询已充值的卡号数据 + * @param map + * @return + */ + public List findRecharged(Map map); } diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/bulk/IYzBulkBusinessDtailsService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/bulk/IYzBulkBusinessDtailsService.java new file mode 100644 index 0000000..6527602 --- /dev/null +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/bulk/IYzBulkBusinessDtailsService.java @@ -0,0 +1,17 @@ +package com.yunze.system.service.yunze.bulk; + +import com.yunze.common.core.domain.entity.SysUser; + +import java.util.Map; + +public interface IYzBulkBusinessDtailsService { + + /**查询列表*/ + public Map getList(Map map); + + /**查询状态 成功*/ + public Map successArr(Map map); + + /**导出*/ + public String exportallorders(Map map, SysUser User); +} diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/bulk/IYzBulkBusinessService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/bulk/IYzBulkBusinessService.java new file mode 100644 index 0000000..2436816 --- /dev/null +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/bulk/IYzBulkBusinessService.java @@ -0,0 +1,9 @@ +package com.yunze.system.service.yunze.bulk; + +import java.util.Map; + +public interface IYzBulkBusinessService { + + /**查询列表*/ + public Map getList(Map map); +} diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzExecutionTaskService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/bulk/IYzExecutionTaskService.java similarity index 87% rename from yunze-system/src/main/java/com/yunze/system/service/yunze/IYzExecutionTaskService.java rename to yunze-system/src/main/java/com/yunze/system/service/yunze/bulk/IYzExecutionTaskService.java index 0a76d57..5d210d1 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/IYzExecutionTaskService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/bulk/IYzExecutionTaskService.java @@ -1,4 +1,4 @@ -package com.yunze.system.service.yunze; +package com.yunze.system.service.yunze.bulk; import com.yunze.common.core.domain.entity.SysUser; diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/card/IYzApplicationforRenewalService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/card/IYzApplicationforRenewalService.java new file mode 100644 index 0000000..95f8043 --- /dev/null +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/card/IYzApplicationforRenewalService.java @@ -0,0 +1,22 @@ +package com.yunze.system.service.yunze.card; + +import com.yunze.common.core.domain.entity.SysUser; + +import java.util.List; +import java.util.Map; + +public interface IYzApplicationforRenewalService { + + public Map selMap(Map map); + + public Map save(Map map, SysUser operateMap); + + public boolean upd(Map map); + + + public Map find(Map map); + + + public Map findIccid(Map map); + +} diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/sysgl/IMySysDeptService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/sysgl/IMySysDeptService.java index 4aae75f..7087ac5 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/sysgl/IMySysDeptService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/sysgl/IMySysDeptService.java @@ -41,4 +41,20 @@ public interface IMySysDeptService { public Map queryWxOrder(Map map); + /** + * 企业预存 【平台操作】 + * @param map + * @return + */ + public Map sysPreSaved(Map map); + + + /** + * 预存抵扣 + * @param map + * @return + */ + public Map sysDeduct(Map map); + + } diff --git a/yunze-system/src/main/java/com/yunze/system/service/yunze/sysgl/IYzIndexpageService.java b/yunze-system/src/main/java/com/yunze/system/service/yunze/sysgl/IYzIndexpageService.java index 8669dfc..09a6216 100644 --- a/yunze-system/src/main/java/com/yunze/system/service/yunze/sysgl/IYzIndexpageService.java +++ b/yunze-system/src/main/java/com/yunze/system/service/yunze/sysgl/IYzIndexpageService.java @@ -15,4 +15,11 @@ public interface IYzIndexpageService { public Map findToDay(Map map); + /** + * 资产明细统计图加载 + * @param map + * @return + */ + public Map assetDetails(Map map); + } diff --git a/yunze-system/src/main/resources/mapper/system/SysUserMapper.xml b/yunze-system/src/main/resources/mapper/system/SysUserMapper.xml index cd1def5..832fff4 100644 --- a/yunze-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/yunze-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -201,7 +201,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT user_id, user_name, @@ -209,9 +209,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM sys_user - dept_id = #{dept_id} + dept_id =#{dept_id} + + + + \ No newline at end of file diff --git a/yunze-system/yunze-system.iml b/yunze-system/yunze-system.iml index 595683a..6a1f802 100644 --- a/yunze-system/yunze-system.iml +++ b/yunze-system/yunze-system.iml @@ -16,6 +16,12 @@ + + + + + + @@ -102,11 +108,10 @@ - - - + + @@ -135,5 +140,8 @@ + + +
    \ No newline at end of file diff --git a/yunze-consumption-backup/backup.iml b/yunze-timed-task/cTask.iml similarity index 95% rename from yunze-consumption-backup/backup.iml rename to yunze-timed-task/cTask.iml index cffc32f..c328789 100644 --- a/yunze-consumption-backup/backup.iml +++ b/yunze-timed-task/cTask.iml @@ -1,14 +1,14 @@ - - - + + + @@ -64,6 +64,13 @@ + + + + + + + @@ -124,10 +131,9 @@ - - + diff --git a/yunze-timed-task/pom.xml b/yunze-timed-task/pom.xml new file mode 100644 index 0000000..66364fd --- /dev/null +++ b/yunze-timed-task/pom.xml @@ -0,0 +1,111 @@ + + + + yunze + com.yunze + 1.0.0 + + 4.0.0 + + cTask + + + 8 + 8 + + + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-amqp + + + org.apache.commons + commons-lang3 + + + + com.alibaba + fastjson + 1.2.49 + + + + org.projectlombok + lombok + + + com.yunze + yunze-common + + + com.alibaba + druid + 1.2.6 + compile + + + + + mysql + mysql-connector-java + + + + + + + + + + + cTask + + + src/main/resources + + **/*.properties + **/*.yml + **/*.xml + **/*.tld + + false + + + src/main/java + + **/*.properties + **/*.yml + **/*.xml + **/*.tld + + false + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/yunze-consumption-backup/src/main/java/com/yunze/BackupApplication.java b/yunze-timed-task/src/main/java/com/yunze/CTaskApplication.java similarity index 71% rename from yunze-consumption-backup/src/main/java/com/yunze/BackupApplication.java rename to yunze-timed-task/src/main/java/com/yunze/CTaskApplication.java index 07987f3..0f18570 100644 --- a/yunze-consumption-backup/src/main/java/com/yunze/BackupApplication.java +++ b/yunze-timed-task/src/main/java/com/yunze/CTaskApplication.java @@ -7,8 +7,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.yunze.common.mapper") -class BackupApplication { +@MapperScan("com.yunze.apiCommon.mapper") +class CTaskApplication { public static void main(String[] args) { - SpringApplication.run(BackupApplication.class); + SpringApplication.run(CTaskApplication.class); } } diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmaiApiSynErrorMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmaiApiSynErrorMQ.java new file mode 100644 index 0000000..46797ba --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmaiApiSynErrorMQ.java @@ -0,0 +1,326 @@ +package com.yunze.task.yunze.Automation; + + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorGroupMapper; +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorMapper; +import com.yunze.common.utils.Email.EmailCc; +import com.yunze.common.utils.yunze.VeDate; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; + +@Slf4j +@Component +public class EmaiApiSynErrorMQ { + + + @Resource + private YzAutomationCcHisMapper yzAutomationCcHisMapper; + @Resource + private EmailCc emailCc; + @Resource + private YzCardPollingErrorGroupMapper yzCardPollingErrorGroupMapper; + @Resource + private YzCardPollingErrorMapper yzCardPollingErrorMapper; + @Resource + private YzAutomationCcMapper yzAutomationCcMapper; + @Resource + private YzAutomationCcUrlMapper yzAutomationCcUrlMapper; + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private WriteCSV writeCSV; + @Resource + private YzCardMapper yzCardMapper; + + + String Outcolumns[] = {"id","错误代码","错误信息","通道编码","创建时间","最近一次修改时间","是否需要通知","卡总数"}; + String keys[] = {"id","codeOn","message","cd_code","create_date","upd_date","is_notice","ct_sum"}; + + + String Outcolumns_1[] = {"id","iccid","错误代码","错误信息","通道编码","cd_id","通道名称","通道别称","登录账号","创建时间","最近一次修改时间","是否需要通知","返回数据"}; + String keys_1[] = {"id","iccid","codeOn","message","cd_code","cd_id","cd_name","cd_alias","cd_useraccount","create_date","upd_date","is_notice","rt_map"}; + + + String Outcolumns_2[] = {"cd_id","通道名称","通道别称","登录账号"}; + String keys_2[] = {"cd_id","cd_name","cd_alias","cd_useraccount"}; + + + private int OutSize = 50;//每 50条数据输出一次 + + + + public boolean inIt(List arr, String eStr){ + boolean bool = false; + for (int i = 0; i < arr.size(); i++) { + String str = arr.get(i); + if(str.equals(eStr)){ + bool = true; + break; + } + } + return bool; + } + + /** + * 邮件抄送 + */ + @RabbitHandler + @RabbitListener(queues = "admin_EmaiApiSynError_queue") + public void ListenerSend(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + String trigger_type = Pmap.get("trigger_type").toString(); + Send(trigger_type); + } + + + public void Send(String trigger_type) { + + Map findMap = new HashMap<>(); + findMap.put("trigger_type", trigger_type); // 自动化触发类型 : 9 API同步错误-运营类型 | 10 API同步错误-非运营类型 + Map findErrorMap = new HashMap<>(); + String type = ""; + if(trigger_type.equals("9")){ + type = "运营类型"; + findErrorMap.put("notIn",0); + }else{ + type = "非运营类型"; + findErrorMap.put("notIn",1); + } + + + + + Map findStatusAbnormal_map = new HashMap(); + + Map CcMessage_Map = new HashMap<>(); + + + findErrorMap.put("is_notice","1"); + findErrorMap.put("isToDay","1"); + + Map findDictData_map = new HashMap(); + findDictData_map.put("dictType","api_businessError_code"); + + List> errorCode = yzCardMapper.selectDictDataByType(findDictData_map);//获取 ‘上游业务错误编码’ + + Map codeOnMap = new HashMap<>(); + List> errorList = new ArrayList<>(); + List exTypeArr = new ArrayList<>(); + if(errorCode!=null && errorCode.size()>0){ + for (int i = 0; i < errorCode.size(); i++) { + Map codeObj = errorCode.get(i); + String dict_label = codeObj.get("dict_label").toString(); + String dict_value = codeObj.get("dict_value").toString(); + List exDictValueArr = new ArrayList<>(); + if(inIt(exTypeArr,dict_label)){ + exDictValueArr = (List)codeOnMap.get(dict_label); + } + exDictValueArr.add(dict_value); + codeOnMap.put(dict_label,exDictValueArr); + } + + //循环 去查询 某个通道类型下 业务错误编码【通知运营去处理的错误问题 如 :‘卡号不属于本企业’】 + for(String key:codeOnMap.keySet()){ + List cdCodeArr = new ArrayList<>(); + cdCodeArr.add(key); + if(key.equals("YiDong_EC")){ + cdCodeArr.add("YiDong_EC_Combo");//同属于 移动ECv5 用来区分查询用量的时候是查询当月还是当前使用账期用量 + }else if(key.equals("YiDong_ECv2")){ + cdCodeArr.add("YiDong_ECv2_Combo");//同属于 移动ECv2 用来区分查询用量的时候是查询当月还是当前使用账期用量 + } + findErrorMap.put("cdCodeArr",cdCodeArr); + findErrorMap.put("codeOnArr",codeOnMap.get(key)); + List> errorList_child = yzCardPollingErrorGroupMapper.selMap(findErrorMap); + if(errorList_child!=null && errorList_child.size()>0){ + errorList.addAll(errorList_child); + } + } + }else{ + errorList = yzCardPollingErrorGroupMapper.selMap(findErrorMap); + } + Integer Count = errorList!=null?errorList.size():0; + if (Count > 0) { + + List> AutomationCcArr = yzAutomationCcMapper.findConcise(findMap);//获取自动化 抄送 组 + if (AutomationCcArr != null && AutomationCcArr.size() > 0) { + String taskId = ""; + + + + String create_by = " [平台] - " + " [自动化] "; + String newName = UUID.randomUUID().toString().replace("-", "") + "_ErrorGroupApi"; + String newName_1 = UUID.randomUUID().toString().replace("-", "") + "_ApiError"; + String newName_2 = UUID.randomUUID().toString().replace("-", "") + "_ApiRout"; + String task_name = " IoTLink 上游数据同步错误 [" + type + "] [" + VeDate.getStringDate() + "]"; + String SaveUrl = "/getcsv/" + newName + ".csv,"+"/getcsv/" + newName_1 + ".csv,"+"/getcsv/" + newName_2 + ".csv"; + Map task_map = new HashMap(); + task_map.put("auth", create_by); + task_map.put("task_name", task_name); + task_map.put("url", SaveUrl); + task_map.put("agent_id", "100"); + task_map.put("type", "32"); //对应 字典表的 执行日志类别 + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + + writeCSV.OutCSVObj(errorList, newName,Outcolumns, keys,null,OutSize); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + taskId = ""+task_map.get("id"); + + int errorCardCount = 0; + for (int i = 0; i < errorList.size(); i++) { + Map eMap = errorList.get(i); + Integer ct_sum = eMap.get("ct_sum")!=null?Integer.parseInt(eMap.get("ct_sum").toString()):0; + errorCardCount += ct_sum; + } + + Integer rCount = 0; + + + writeCSV.OutCSVObj(errorList, newName,Outcolumns, keys,null,OutSize); + + List> errorDsList = yzCardPollingErrorMapper.selMapRelevance(findErrorMap); + if(errorDsList!=null && errorDsList.size()>0){ + writeCSV.OutCSVObj(errorDsList, newName_1,Outcolumns_1, keys_1,null,OutSize); + findErrorMap.put("isGroupBy",1); + List> errorisGroupBy = yzCardPollingErrorMapper.selMapRelevance(findErrorMap); + if(errorisGroupBy!=null && errorisGroupBy.size()>0) { + rCount = errorisGroupBy.size(); + writeCSV.OutCSVObj(errorisGroupBy, newName_2, Outcolumns_2, keys_2, null, OutSize); + } + } + + CcMessage_Map.put("taskId",taskId);// 获取 执行任务表的ID + CcMessage_Map.put("describe","IoTLink API同步错误 [ "+type+" ] 错误类型 [ "+errorList.size()+" ] 个,涉及卡号 [ "+errorCardCount+" ] 个!,涉及通道 [ "+rCount+" ] 个!"); + CcMessage_Map.put("heartext"," IoTLink API同步错误 ["+type+"]业务需要您及时处理!,涉及卡号 [ "+errorCardCount+" ] 个!,涉及通道 [ "+rCount+" ] 个!"); + + + + for (int i = 0; i < AutomationCcArr.size(); i++) { + Map CCObj = AutomationCcArr.get(i); + List> AutomationCcUrlArr = yzAutomationCcUrlMapper.findConcise(CCObj);//获取自动化 抄送 邮箱 + + if (AutomationCcUrlArr != null && AutomationCcUrlArr.size() > 0) { + String execution_template = CCObj.get("execution_template").toString(); + CcMessage_Map.put("emailMap", findStatusAbnormal_map); + + if (execution_template.equals("1")) { + for (int j = 0; j < AutomationCcUrlArr.size(); j++) { + Object eM = AutomationCcUrlArr.get(j).get("email"); + if (eM != null && eM.toString().length() > 0) { + String SendEmail = eM.toString(); + Map saveHisMap = new HashMap<>(); + saveHisMap.put("cc_id", CCObj.get("id")); + saveHisMap.put("cc_url", ""); + saveHisMap.put("cc_email", SendEmail); + saveHisMap.put("cc_state", "1");//已抄送 + + saveHisMap.put("cc_parameter", JSON.toJSONString(CcMessage_Map)); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + Rmap = emailCc.CardApiSynError_default(CcMessage_Map, SendEmail); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + saveHisMap.put("remark", remark); + saveHisMap.put("cc_result", cc_result); + boolean saveHis = yzAutomationCcHisMapper.save(saveHisMap) > 0; + log.info(">>自动化 [NoTariffGroup] 已抄送邮箱{} - 插入抄送记录 bool {} <<", SendEmail, saveHis); + } else { + log.error(">>自动化 [NoTariffGroup] 抄送邮箱未获取到 - 抄送取消 {} <<", eM); + } + } + } else { + log.error(">>自动化 [NoTariffGroup] 抄送模板不批对 - 抄送取消 {} <<"); + } + } else { + log.error(">>自动化 [NoTariffGroup] 获取自动化 抄送 邮箱 未找到数据 - 抄送取消 {} <<"); + } + } + } + } + } + + + + /** + * 邮件抄送 + */ + @RabbitHandler + @RabbitListener(queues = "admin_RetryCC_queue") + public void ListenerRetryCC(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer cc_count = Integer.parseInt(Pmap.get("cc_count").toString()); + String trigger_type = Pmap.get("trigger_type").toString(); + + RetryCC(cc_count,trigger_type); + } + + /** + * 邮件抄送 重试 + * @param cc_count 重试次数 + */ + public void RetryCC(Integer cc_count,String trigger_type) { + Map findNotPerformed_Map = new HashMap<>(); + findNotPerformed_Map.put("trigger_type", trigger_type); + findNotPerformed_Map.put("cc_count", cc_count);//重试次数 + List> CcArr = yzAutomationCcHisMapper.findNotPerformed(findNotPerformed_Map); + if (CcArr != null && CcArr.size() > 0) { + //2.获取 + for (int i = 0; i < CcArr.size(); i++) { + Map Cc_Map = CcArr.get(i); + Map MsgMap = JSON.parseObject(Cc_Map.get("cc_parameter").toString()); + + String SendEmail = Cc_Map.get("cc_email").toString(); + Map updHisMap = new HashMap<>(); + updHisMap.put("id", Cc_Map.get("id")); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + Rmap = emailCc.CardApiSynError_default(MsgMap, SendEmail); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + updHisMap.put("remark", remark); + updHisMap.put("cc_result", cc_result); + boolean updHis = yzAutomationCcHisMapper.updCcCount(updHisMap) > 0; + System.out.println(">>自动化 [NoTariffGroup] 已抄送邮箱" + SendEmail + " - 抄送 bool {" + bool + "} 修改 bool {" + updHis + "}<<"); + } + } + } + + + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailCCCardAbnormalStatusMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailCCCardAbnormalStatusMQ.java new file mode 100644 index 0000000..129fdc4 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailCCCardAbnormalStatusMQ.java @@ -0,0 +1,202 @@ +package com.yunze.task.yunze.Automation; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.config.MyDictionary; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; +import com.yunze.common.utils.Email.EmailCc; +import com.yunze.common.utils.yunze.VeDate; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; + +@Slf4j +@Component +public class EmailCCCardAbnormalStatusMQ { + + @Resource + private YzAutomationCcHisMapper yzAutomationCcHisMapper; + @Resource + private EmailCc emailCc; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private WriteCSV writeCSV; + @Resource + private MyDictionary myDictionary; + @Resource + private YzAutomationCcMapper yzAutomationCcMapper; + @Resource + private YzAutomationCcUrlMapper yzAutomationCcUrlMapper; + + String Outcolumns[] = {"MSISDN","ICCID","IMSI","IMEI","所属通道","卡状态","状态描述","通道状态","同步时间","已使用用量(MB)","剩余用量(MB)","到期时间","备注","分组","激活日期","发货日期"}; + String keys[] = {"msisdn","iccid","imsi","imei","cd_name","status_ShowId_value","status_Id_value","cd_status_value","syn_Time","used","remaining","due_expire_time","remarks","customize_grouping","activate_date","deliver_date"}; + + + + /** + * 邮件抄送 + */ + @RabbitHandler + @RabbitListener(queues = "admin_CCCardAbnormalStatus_queue") + public void CCCardAbnormalStatus() { + Map findMap = new HashMap<>(); + findMap.put("trigger_type","4"); + + List> out_list = new ArrayList<>(); + Map findStatusAbnormal_map = new HashMap(); + + Map CcMessage_Map = new HashMap<>(); + String taskId = ""; + + List> cardList = yzCardMapper.findStatusAbnormal(findStatusAbnormal_map);//查询已订购用量状态异常卡号 + if(cardList!=null){ + String create_by = " [平台] - " + " [自动化] "; + String newName = UUID.randomUUID().toString().replace("-", "") + "_AbnormalStatus"; + String task_name = "- 已订购用量状态已停机 抄送 [" + VeDate.getStringDate() + "] "; + String SaveUrl = "/getcsv/" + newName + ".csv"; + SaveUrl = "/getcsv/" + newName + ".csv"; + Map task_map = new HashMap(); + task_map.put("auth", create_by); + task_map.put("task_name", task_name); + task_map.put("url", SaveUrl); + task_map.put("agent_id", "100"); + task_map.put("type", "14"); //对应 字典表的 执行日志类别 + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + for (int j = 0; j < cardList.size(); j++) { + Map CarMap = new HashMap(); + CarMap.putAll(cardList.get(j)); + CarMap.put("status_Id_value",myDictionary.getdictLabel("yunze_card_status_type",CarMap.get("status_Id").toString())); + CarMap.put("cd_status_value",myDictionary.getdictLabel("channel_status",CarMap.get("cd_status").toString())); + out_list.add(CarMap); + } + writeCSV.Write(newName,out_list,Outcolumns,null,keys); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + taskId = ""+task_map.get("id"); + CcMessage_Map.put("taskId",taskId); + CcMessage_Map.put("Count",""+out_list.size()); + + }else { + log.info("CCCardAbnormalStatus 已订购用量状态已停机未获取到 数据 抄送取消"); + } + + if(out_list.size()>0){ + List> AutomationCcArr = yzAutomationCcMapper.findConcise(findMap);//获取自动化 抄送 组 + if (AutomationCcArr != null && AutomationCcArr.size() > 0) { + for (int i = 0; i < AutomationCcArr.size(); i++) { + Map CCObj = AutomationCcArr.get(i); + List> AutomationCcUrlArr = yzAutomationCcUrlMapper.findConcise(CCObj);//获取自动化 抄送 邮箱 + + if (AutomationCcUrlArr != null && AutomationCcUrlArr.size() > 0) { + String execution_template = CCObj.get("execution_template").toString(); + CCObj.put("taskId",taskId); + CCObj.put("Count",out_list.size()); + if (execution_template.equals("1")) { + for (int j = 0; j < AutomationCcUrlArr.size(); j++) { + Object eM = AutomationCcUrlArr.get(j).get("email"); + if (eM != null && eM.toString().length() > 0) { + String SendEmail = eM.toString(); + Map saveHisMap = new HashMap<>(); + saveHisMap.put("cc_id", CCObj.get("id")); + saveHisMap.put("cc_url", ""); + saveHisMap.put("cc_email", SendEmail); + saveHisMap.put("cc_state", "1");//已抄送 + + String cc_parameter = JSON.toJSONString(CCObj); + cc_parameter = cc_parameter.length() > 500 ? cc_parameter.substring(0, 500) : cc_parameter; + saveHisMap.put("cc_parameter", cc_parameter); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + Rmap = emailCc.CardStatusAbnormal_default(CcMessage_Map, SendEmail); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + saveHisMap.put("remark", remark); + saveHisMap.put("cc_result", cc_result); + boolean saveHis = yzAutomationCcHisMapper.save(saveHisMap) > 0; + log.info(">>自动化 [CCCardAbnormalStatus] 已抄送邮箱{} - 插入抄送记录 bool {} <<", SendEmail, saveHis); + } else { + log.error(">>自动化 [CCCardAbnormalStatus] 抄送邮箱未获取到 - 抄送取消 {} <<", eM); + } + } + } else { + log.error(">>自动化 [CCCardAbnormalStatus] 抄送模板不批对 - 抄送取消 {} <<"); + } + } else { + log.error(">>自动化 [CCCardAbnormalStatus] 获取自动化 抄送 邮箱 未找到数据 - 抄送取消 {} <<"); + } + } + } + } + } + + + + /** + * 邮件抄送 重试 + * @param + */ + @RabbitHandler + @RabbitListener(queues = "admin_RetryCCStatus_queue") + public void RetryCC(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer cc_count = Integer.parseInt(Pmap.get("cc_count").toString()); + + Map findNotPerformed_Map = new HashMap<>(); + findNotPerformed_Map.put("trigger_type","4"); + findNotPerformed_Map.put("cc_count",cc_count);//重试次数 + List> CcArr = yzAutomationCcHisMapper.findNotPerformed(findNotPerformed_Map); // 获取未抄送成功的数据进行抄送 + if (CcArr != null && CcArr.size() > 0) { + //2.获取 + for (int i = 0; i < CcArr.size(); i++) { + Map Cc_Map = CcArr.get(i); + Map MsgMap = JSON.parseObject(Cc_Map.get("cc_parameter").toString()); + + String SendEmail = Cc_Map.get("cc_email").toString(); + Map updHisMap = new HashMap<>(); + updHisMap.put("id",Cc_Map.get("id")); + Map Rmap = null; + Boolean bool = false; + String remark = "",cc_result = "0"; + try { + Rmap = emailCc.CardStatusAbnormal_default(MsgMap,SendEmail); + bool = (Boolean) Rmap.get("bool"); + if(bool){ + cc_result = "1"; + } + }catch (Exception e){ + remark = e.getMessage(); + remark = remark.length()>240?remark.substring(0,240):remark; + } + updHisMap.put("remark",remark); + updHisMap.put("cc_result",cc_result); + boolean updHis = yzAutomationCcHisMapper.updCcCount(updHisMap)>0; + System.out.println(">>自动化 [CCCardAbnormalStatus] 已抄送邮箱"+SendEmail+" - 抄送 bool {"+bool+"} 修改 bool {"+updHis+"}<<"); + } + } + } + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailCCRenewalMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailCCRenewalMQ.java new file mode 100644 index 0000000..7c2f887 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailCCRenewalMQ.java @@ -0,0 +1,194 @@ +package com.yunze.task.yunze.Automation; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalPrimaryMapper; +import com.yunze.common.utils.Email.EmailCc; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 定时任务 自动化 邮件抄送 [续费申请] + * + * @author userzf + */ +@Slf4j +@Component +public class EmailCCRenewalMQ { + + @Resource + private YzAutomationCcHisMapper yzAutomationCcHisMapper; + @Resource + private EmailCc emailCc; + @Resource + private YzApplicationforRenewalPrimaryMapper yzApplicationforRenewalPrimaryMapper; + @Resource + private YzAutomationCcMapper yzAutomationCcMapper; + + @Resource + private YzAutomationCcUrlMapper yzAutomationCcUrlMapper; + + + + @RabbitHandler + @RabbitListener(queues = "admin_emailCCRenewal_queue") + public void CCRenewal(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer cc_count = Integer.parseInt(Pmap.get("cc_count").toString()); + String type = Pmap.get("type").toString(); + + if(type.equals("CCExecution")){ + CCExecution(cc_count); + }else if(type.equals("RetryCC")){ + RetryCC(cc_count); + } + } + + + + + + + + + + public void CCExecution(Integer parameter) { + + Map findMap = new HashMap<>(); + findMap.put("trigger_type", "11"); //自动化触发类型 续费通知 + + List> sendInfoList = yzApplicationforRenewalPrimaryMapper.findEmailCC(null); + + List> AutomationCcArr = yzAutomationCcMapper.findConcise(findMap);//获取自动化 抄送 组 + if (sendInfoList != null && sendInfoList.size() > 0 && AutomationCcArr != null && AutomationCcArr.size() > 0) { + + for (int k = 0; k < sendInfoList.size(); k++) {//抄送需要抄送的续费申请数组 + Map sendInfo = sendInfoList.get(k); + + Map CcMessage_Map = new HashMap<>(); + Map parMap = new HashMap<>(); + parMap.put("id",sendInfo.get("id")); + + CcMessage_Map.put("parMap",parMap); + CcMessage_Map.put("card_sumCount",sendInfo.get("card_sumCount")); + CcMessage_Map.put("amount",sendInfo.get("amount")); + CcMessage_Map.put("info",sendInfo.get("info")); + CcMessage_Map.put("create_time",sendInfo.get("create_time")); + CcMessage_Map.put("dept_name",sendInfo.get("dept_name")); + CcMessage_Map.put("title","点击查看详情"); + + + for (int i = 0; i < AutomationCcArr.size(); i++) {//抄送认循环 + Map CCObj = AutomationCcArr.get(i); + List> AutomationCcUrlArr = yzAutomationCcUrlMapper.findConcise(CCObj);//获取自动化 抄送 邮箱 + + if (AutomationCcUrlArr != null && AutomationCcUrlArr.size() > 0) { + String execution_template = CCObj.get("execution_template").toString(); + + if (execution_template.equals("1")) { + for (int j = 0; j < AutomationCcUrlArr.size(); j++) { + + Object eM = AutomationCcUrlArr.get(j).get("email"); + if (eM != null && eM.toString().length() > 0) { + String SendEmail = eM.toString(); + Map saveHisMap = new HashMap<>(); + saveHisMap.put("cc_id", CCObj.get("id")); + saveHisMap.put("cc_url", ""); + saveHisMap.put("cc_email", SendEmail); + saveHisMap.put("cc_state", "1");//已抄送 + + String cc_parameter = JSON.toJSONString(CcMessage_Map); + cc_parameter = cc_parameter.length() > 500 ? cc_parameter.substring(0, 500) : cc_parameter; + saveHisMap.put("cc_parameter", cc_parameter); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + Rmap = emailCc.ApplicationForRenewal_default(CcMessage_Map, SendEmail); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + saveHisMap.put("remark", remark); + saveHisMap.put("cc_result", cc_result); + boolean saveHis = yzAutomationCcHisMapper.save(saveHisMap) > 0; + log.info(">>自动化 [EmailCCRenewal] 已抄送邮箱{} - 插入抄送记录 bool {} <<", SendEmail, saveHis); + } else { + log.error(">>自动化 [EmailCCRenewal] 抄送邮箱未获取到 - 抄送取消 {} <<", eM); + } + } + } else { + log.error(">>自动化 [EmailCCRenewal] 抄送模板不批对 - 抄送取消 {} <<"); + } + } else { + log.error(">>自动化 [EmailCCRenewal] 获取自动化 抄送 邮箱 未找到数据 - 抄送取消 {} <<"); + } + } + + } + + + } + } + + + /** + * 邮件抄送 重试 + * @param cc_count 重试次数 + */ + public void RetryCC(Integer cc_count) { + Map findNotPerformed_Map = new HashMap<>(); + findNotPerformed_Map.put("trigger_type", "11"); + findNotPerformed_Map.put("cc_count", cc_count);//重试次数 + List> CcArr = yzAutomationCcHisMapper.findNotPerformed(findNotPerformed_Map); + if (CcArr != null && CcArr.size() > 0) { + //2.获取 + for (int i = 0; i < CcArr.size(); i++) { + Map Cc_Map = CcArr.get(i); + Map MsgMap = JSON.parseObject(Cc_Map.get("cc_parameter").toString()); + + String SendEmail = Cc_Map.get("cc_email").toString(); + Map updHisMap = new HashMap<>(); + updHisMap.put("id", Cc_Map.get("id")); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + Rmap = emailCc.ApplicationForRenewal_default(MsgMap, SendEmail); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + updHisMap.put("remark", remark); + updHisMap.put("cc_result", cc_result); + boolean updHis = yzAutomationCcHisMapper.updCcCount(updHisMap) > 0; + System.out.println(">>自动化 [EmailCCRenewal] 已抄送邮箱" + SendEmail + " - 抄送 bool {" + bool + "} 修改 bool {" + updHis + "}<<"); + } + } + } + + + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailCCShoppingMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailCCShoppingMQ.java new file mode 100644 index 0000000..1365431 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailCCShoppingMQ.java @@ -0,0 +1,81 @@ +package com.yunze.task.yunze.Automation; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.commodity.YzWxByOrderMapper; +import com.yunze.common.utils.Email.EmailCc; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class EmailCCShoppingMQ { + + @Resource + private YzAutomationCcHisMapper yzAutomationCcHisMapper; + @Resource + private EmailCc emailCc; + @Resource + private YzWxByOrderMapper yzWxByOrderMapper; + + + /** + * 邮件抄送 + * @param msg + */ + @RabbitHandler + @RabbitListener(queues = "admin_CCShopping_queue") + public void CCShopping(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer cc_count = Integer.parseInt(Pmap.get("cc_count").toString()); + + Map findNotPerformed_Map = new HashMap<>(); + findNotPerformed_Map.put("trigger_type","99"); + findNotPerformed_Map.put("cc_count",cc_count);//重试次数 + List> CcArr = yzAutomationCcHisMapper.findNotPerformed(findNotPerformed_Map); + if (CcArr != null && CcArr.size() > 0) { + //2.获取 通道下卡号 + for (int i = 0; i < CcArr.size(); i++) { + Map Cc_Map = CcArr.get(i); + Map MsgMap = JSON.parseObject(Cc_Map.get("cc_parameter").toString()); + MsgMap.put("Aid",MsgMap.get("ord_no")); + Map OrderMap = yzWxByOrderMapper.findConcise(MsgMap); + if(OrderMap!=null){ + String SendEmail = Cc_Map.get("cc_email").toString(); + Map updHisMap = new HashMap<>(); + updHisMap.put("id",Cc_Map.get("id")); + Map Rmap = null; + Boolean bool = false; + String remark = "",cc_result = "0"; + try { + Rmap = emailCc.ShoppingDelivery_default(OrderMap,SendEmail); + bool = (Boolean) Rmap.get("bool"); + if(bool){ + cc_result = "1"; + } + }catch (Exception e){ + remark = e.getMessage(); + remark = remark.length()>240?remark.substring(0,240):remark; + } + updHisMap.put("remark",remark); + updHisMap.put("cc_result",cc_result); + boolean updHis = yzAutomationCcHisMapper.updCcCount(updHisMap)>0; + System.out.println(">>自动化 已抄送邮箱"+SendEmail+" - 抄送 bool {"+bool+"} 修改 bool {"+updHis+"}<<"); + } + } + } + } + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailCardConsumptionMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailCardConsumptionMQ.java new file mode 100644 index 0000000..e83d60f --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailCardConsumptionMQ.java @@ -0,0 +1,165 @@ +package com.yunze.task.yunze.Automation; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; +import com.yunze.common.utils.Email.EmailCc; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +@Slf4j +@Component +public class EmailCardConsumptionMQ { + + @Resource + private YzAutomationCcHisMapper yzAutomationCcHisMapper; + @Resource + private EmailCc emailCc; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private YzAutomationCcMapper yzAutomationCcMapper; + @Resource + private YzAutomationCcUrlMapper yzAutomationCcUrlMapper; + + /** + * 邮件抄送 + */ + @RabbitHandler + @RabbitListener(queues = "admin_CardConsumption_queue") + public void CardConsumption() { + Map findMap = new HashMap<>(); + findMap.put("trigger_type", "7"); //自动化触发类型 未划分资费组 + Map CcMessage_Map = new HashMap<>(); + + Map findCardMap = new HashMap<>(); + List agent_idArr = new ArrayList<>(); + agent_idArr.add("100"); + //findCardMap.put("agent_id",agent_idArr);//公司所属 + + findCardMap.put("dimensionField", "1"); // + findCardMap.put("dimensionType", "2"); // + findCardMap.put("dimensionValue", "0.0"); // + + List> AutomationCcArr = yzAutomationCcMapper.findConcise(findMap);//获取自动化 抄送 组 + if (AutomationCcArr != null && AutomationCcArr.size() > 0) { + + + for (int i = 0; i < AutomationCcArr.size(); i++) { + Map CCObj = AutomationCcArr.get(i); + + + if (CCObj.get("dep_id") != null) { + String dep_id = CCObj.get("dep_id").toString(); + if (!dep_id.equals("100")) { + agent_idArr.add(dep_id); + } + } + List operationArr = new ArrayList<>(); + if (CCObj.get("operation_type") != null) { + String arr[] = CCObj.get("operation_type").toString().split(","); + for (int j = 0; j < arr.length; j++) {//java string数组 添加到list + String obj = arr[j]; + if (obj.length() > 0) { + operationArr.add(obj); + } + } + } + + List channelArr = new ArrayList<>(); + if (CCObj.get("channel_id") != null) { + String lst[] = CCObj.get("channel_id").toString().split(","); + for (int j = 0; j < lst.length; j++) {//java string数组 添加到list + String obj = lst[j]; + if (obj.length() > 0) { + channelArr.add(obj); + } + } + } + if (operationArr.size() > 0) { + findCardMap.put("operation_type", operationArr); + findCardMap.put("cd_operator_type", operationArr); + } + if (channelArr.size() > 0) { + findCardMap.put("channel_id", channelArr); + findCardMap.put("cArr", channelArr); + } + findCardMap.put("agent_id", agent_idArr); + + //删除 发送用不到的 key 赋值 前端 选中树控件key + findCardMap.remove("operation_type"); + //findCardMap.remove("agent_id"); + + findCardMap.put("trreAgent_id", agent_idArr); + + + Integer Count = yzCardMapper.selMapCount(findCardMap);//查询总数 + + if (Count != null && Count > 0) { + List> AutomationCcUrlArr = yzAutomationCcUrlMapper.findConcise(CCObj);//获取自动化 抄送 邮箱 + if (AutomationCcUrlArr != null && AutomationCcUrlArr.size() > 0) { + String execution_template = CCObj.get("execution_template").toString(); + + CcMessage_Map.put("Count", Count); + if (execution_template.equals("1")) { + for (int j = 0; j < AutomationCcUrlArr.size(); j++) { + Object eM = AutomationCcUrlArr.get(j).get("email"); + if (eM != null && eM.toString().length() > 0) { + String SendEmail = eM.toString(); + Map saveHisMap = new HashMap<>(); + saveHisMap.put("cc_id", CCObj.get("id")); + saveHisMap.put("cc_url", ""); + saveHisMap.put("cc_email", SendEmail); + saveHisMap.put("cc_state", "1");//已抄送 + + String cc_parameter = JSON.toJSONString(CCObj); + cc_parameter = cc_parameter.length() > 500 ? cc_parameter.substring(0, 500) : cc_parameter; + saveHisMap.put("cc_parameter", cc_parameter); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + CcMessage_Map.put("findCardMap", findCardMap); + Rmap = emailCc.CardConsumption_default(CcMessage_Map, SendEmail); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + saveHisMap.put("remark", remark); + saveHisMap.put("cc_result", cc_result); + boolean saveHis = yzAutomationCcHisMapper.save(saveHisMap) > 0; + log.info(">>自动化 [CardConsumption] 已抄送邮箱{} - 插入抄送记录 bool {} <<", SendEmail, saveHis); + } else { + log.error(">>自动化 [CardConsumption] 抄送邮箱未获取到 - 抄送取消 {} <<", eM); + } + } + } else { + log.error(">>自动化 [CardConsumption] 抄送模板不批对 - 抄送取消 {} <<"); + } + } else { + log.error(">>自动化 [CardConsumption] 获取自动化 抄送 邮箱 未找到数据 - 抄送取消 {} <<"); + } + + + } + } + } + + + } + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailPassagewayMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailPassagewayMQ.java new file mode 100644 index 0000000..1e7bee2 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailPassagewayMQ.java @@ -0,0 +1,173 @@ +package com.yunze.task.yunze.Automation; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; +import com.yunze.common.utils.Email.EmailCc; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class EmailPassagewayMQ { + + @Resource + private YzAutomationCcHisMapper yzAutomationCcHisMapper; + @Resource + private EmailCc emailCc; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private YzAutomationCcMapper yzAutomationCcMapper; + @Resource + private YzAutomationCcUrlMapper yzAutomationCcUrlMapper; + + + /** + * 邮件抄送 + */ + @RabbitHandler + @RabbitListener(queues = "admin_Passageway_queue") + public void Passageway() { + + Map findMap = new HashMap<>(); + findMap.put("trigger_type", "6"); //自动化触发类型 未划分通道 + + Map channel_idMap = new HashMap<>(); + + List channel_id = new ArrayList(); + channel_id.add("IsNull"); + channel_idMap.put("channel_id", channel_id); + + Map CcMessage_Map = new HashMap<>(); + + Integer Count = yzCardMapper.selMapCount(channel_idMap);//查询总数 + + // System.out.println(Count); + + if (Count != null && Count > 0) { + List> AutomationCcArr = yzAutomationCcMapper.findConcise(findMap);//获取自动化 抄送 组 + if (AutomationCcArr != null && AutomationCcArr.size() > 0) { + for (int i = 0; i < AutomationCcArr.size(); i++) { + Map CCObj = AutomationCcArr.get(i); + List> AutomationCcUrlArr = yzAutomationCcUrlMapper.findConcise(CCObj);//获取自动化 抄送 邮箱 + + if (AutomationCcUrlArr != null && AutomationCcUrlArr.size() > 0) { + String execution_template = CCObj.get("execution_template").toString(); + CcMessage_Map.put("Count", Count); + if (execution_template.equals("1")) { + for (int j = 0; j < AutomationCcUrlArr.size(); j++) { + Object eM = AutomationCcUrlArr.get(j).get("email"); + if (eM != null && eM.toString().length() > 0) { + String SendEmail = eM.toString(); + Map saveHisMap = new HashMap<>(); + saveHisMap.put("cc_id", CCObj.get("id")); + saveHisMap.put("cc_url", ""); + saveHisMap.put("cc_email", SendEmail); + saveHisMap.put("cc_state", "1");//已抄送 + + + Map CCMap = new HashMap<>(); + + Map emailMap = new HashMap<>(); + emailMap.put("channel_id", "IsNull");//new 一个map 把String放入 + CCMap.put("Count",Count); + CCMap.put("emailMap",emailMap); + String cc_parameter = JSON.toJSONString(CCMap); + cc_parameter = cc_parameter.length() > 500 ? cc_parameter.substring(0, 500) : cc_parameter; + saveHisMap.put("cc_parameter", cc_parameter); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + + Rmap = emailCc.UndividedChannel_default(emailMap, SendEmail); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + saveHisMap.put("remark", remark); + saveHisMap.put("cc_result", cc_result); + boolean saveHis = yzAutomationCcHisMapper.save(saveHisMap) > 0; + log.info(">>自动化 [EmailPassageway] 已抄送邮箱{} - 插入抄送记录 bool {} <<", SendEmail, saveHis); + } else { + log.error(">>自动化 [EmailPassageway] 抄送邮箱未获取到 - 抄送取消 {} <<", eM); + } + } + } else { + log.error(">>自动化 [EmailPassageway] 抄送模板不批对 - 抄送取消 {} <<"); + } + } else { + log.error(">>自动化 [EmailPassageway] 获取自动化 抄送 邮箱 未找到数据 - 抄送取消 {} <<"); + } + } + } + } + + } + + + /** + * 邮件抄送 重试 + * + * cc_count 重试次数 + */ + @RabbitHandler + @RabbitListener(queues = "admin_PassagewayCount_queue") + public void RetryCC(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer cc_count = Integer.parseInt(Pmap.get("cc_count").toString()); + + Map findNotPerformed_Map = new HashMap<>(); + findNotPerformed_Map.put("trigger_type", "6"); + findNotPerformed_Map.put("cc_count", cc_count);//重试次数 + List> CcArr = yzAutomationCcHisMapper.findNotPerformed(findNotPerformed_Map); + if (CcArr != null && CcArr.size() > 0) { + //2.获取 + for (int i = 0; i < CcArr.size(); i++) { + Map Cc_Map = CcArr.get(i); + Map MsgMap = JSON.parseObject(Cc_Map.get("cc_parameter").toString()); + + String SendEmail = Cc_Map.get("cc_email").toString(); + Map updHisMap = new HashMap<>(); + updHisMap.put("id", Cc_Map.get("id")); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + Rmap = emailCc.UndividedChannel_default(MsgMap, SendEmail); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + updHisMap.put("remark", remark); + updHisMap.put("cc_result", cc_result); + boolean updHis = yzAutomationCcHisMapper.updCcCount(updHisMap) > 0; + System.out.println(">>自动化 [EmailPassageway] 已抄送邮箱" + SendEmail + " - 抄送 bool {" + bool + "} 修改 bool {" + updHis + "}<<"); + } + } + } + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailPayGroupMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailPayGroupMQ.java new file mode 100644 index 0000000..092ea26 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailPayGroupMQ.java @@ -0,0 +1,186 @@ +package com.yunze.task.yunze.Automation; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; +import com.yunze.common.utils.Email.EmailCc; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class EmailPayGroupMQ { + + @Resource + private YzAutomationCcHisMapper yzAutomationCcHisMapper; + @Resource + private EmailCc emailCc; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private YzAutomationCcMapper yzAutomationCcMapper; + @Resource + private YzAutomationCcUrlMapper yzAutomationCcUrlMapper; + + + /** + * 邮件抄送 + */ + @RabbitHandler + @RabbitListener(queues = "admin_PayGroup_queue") + public void PayGroup() { + Map findMap = new HashMap<>(); + findMap.put("trigger_type", "5"); //自动化触发类型 未划分资费组 + + Map findStatusAbnormal_map = new HashMap(); + + List package_id = new ArrayList<>(); + package_id.add("IsNull"); + findStatusAbnormal_map.put("package_id", package_id); //资费组 + + Map CcMessage_Map = new HashMap<>(); + + Integer Count = yzCardMapper.selMapCount(findStatusAbnormal_map);//查询总数 + + if (Count != null && Count > 0) { + List> AutomationCcArr = yzAutomationCcMapper.findConcise(findMap);//获取自动化 抄送 组 + if (AutomationCcArr != null && AutomationCcArr.size() > 0) { + for (int i = 0; i < AutomationCcArr.size(); i++) { + Map CCObj = AutomationCcArr.get(i); + List> AutomationCcUrlArr = yzAutomationCcUrlMapper.findConcise(CCObj);//获取自动化 抄送 邮箱 + + if (AutomationCcUrlArr != null && AutomationCcUrlArr.size() > 0) { + String execution_template = CCObj.get("execution_template").toString(); + CcMessage_Map.put("Count", Count); + CcMessage_Map.put("emailMap", findStatusAbnormal_map); + + if (execution_template.equals("1")) { + for (int j = 0; j < AutomationCcUrlArr.size(); j++) { + Object eM = AutomationCcUrlArr.get(j).get("email"); + if (eM != null && eM.toString().length() > 0) { + String SendEmail = eM.toString(); + Map saveHisMap = new HashMap<>(); + saveHisMap.put("cc_id", CCObj.get("id")); + saveHisMap.put("cc_url", ""); + saveHisMap.put("cc_email", SendEmail); + saveHisMap.put("cc_state", "1");//已抄送 + + String cc_parameter = JSON.toJSONString(CCObj); + cc_parameter = cc_parameter.length() > 500 ? cc_parameter.substring(0, 500) : cc_parameter; + saveHisMap.put("cc_parameter", cc_parameter); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + Rmap = emailCc.NotDividedIntoTariffGroups_default(CcMessage_Map, SendEmail); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + saveHisMap.put("remark", remark); + saveHisMap.put("cc_result", cc_result); + boolean saveHis = yzAutomationCcHisMapper.save(saveHisMap) > 0; + log.info(">>自动化 [NoTariffGroup] 已抄送邮箱{} - 插入抄送记录 bool {} <<", SendEmail, saveHis); + } else { + log.error(">>自动化 [NoTariffGroup] 抄送邮箱未获取到 - 抄送取消 {} <<", eM); + } + } + } else { + log.error(">>自动化 [NoTariffGroup] 抄送模板不批对 - 抄送取消 {} <<"); + } + } else { + log.error(">>自动化 [NoTariffGroup] 获取自动化 抄送 邮箱 未找到数据 - 抄送取消 {} <<"); + } + } + } + } + } + + + + /** + * 邮件抄送 重试 + */ + @RabbitHandler + @RabbitListener(queues = "admin_PayGroupCount_queue") + public void RetryCC(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + RetryExecution(msg); + } + + + + + + + /** + * 邮件抄送 重试 + */ + @RabbitHandler + @RabbitListener(queues = "dlx_admin_PayGroupCount_queue") + public void DlxRetryCC(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + RetryExecution(msg); + } + + public void RetryExecution(String msg) { + Map Pmap = JSON.parseObject(msg); + Integer cc_count = Integer.parseInt(Pmap.get("cc_count").toString()); + + Map findNotPerformed_Map = new HashMap<>(); + findNotPerformed_Map.put("trigger_type", "5"); + findNotPerformed_Map.put("cc_count", cc_count);//重试次数 + List> CcArr = yzAutomationCcHisMapper.findNotPerformed(findNotPerformed_Map); + if (CcArr != null && CcArr.size() > 0) { + //2.获取 + for (int i = 0; i < CcArr.size(); i++) { + Map Cc_Map = CcArr.get(i); + Map MsgMap = JSON.parseObject(Cc_Map.get("cc_parameter").toString()); + + String SendEmail = Cc_Map.get("cc_email").toString(); + Map updHisMap = new HashMap<>(); + updHisMap.put("id", Cc_Map.get("id")); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + Rmap = emailCc.NotDividedIntoTariffGroups_default(MsgMap, SendEmail); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + updHisMap.put("remark", remark); + updHisMap.put("cc_result", cc_result); + boolean updHis = yzAutomationCcHisMapper.updCcCount(updHisMap) > 0; + System.out.println(">>自动化 [NoTariffGroup] 已抄送邮箱" + SendEmail + " - 抄送 bool {" + bool + "} 修改 bool {" + updHis + "}<<"); + } + } + + } + + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailServiceOperationMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailServiceOperationMQ.java new file mode 100644 index 0000000..b3450c1 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/EmailServiceOperationMQ.java @@ -0,0 +1,246 @@ +package com.yunze.task.yunze.Automation; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; +import com.yunze.common.mapper.yunze.card.YzCardDueSoonMapper; +import com.yunze.common.mapper.yunze.commodity.YzWxByProductAgentMapper; +import com.yunze.common.utils.Email.EmailCc; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.sql.Array; +import java.util.*; + +/** + * 2022年8月15日16:14:15 + * 邮件抄送:根据服务快到期通知前台运维人员 + */ +@Slf4j +@Component +public class EmailServiceOperationMQ { + + @Resource + private YzAutomationCcHisMapper yzAutomationCcHisMapper; + @Resource + private EmailCc emailCc; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private YzAutomationCcMapper yzAutomationCcMapper; + @Resource + private YzAutomationCcUrlMapper yzAutomationCcUrlMapper; + @Resource + private YzWxByProductAgentMapper yzWxByProductAgentMapper; + @Resource + private YzCardDueSoonMapper yzCardDueSoonMapper; + + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + + @Resource + private WriteCSV writeCSV; + + String Outcolumns[] = {"id", "企业名称", "邮箱", "企业Id", "快到期张数", "快到期最小时间", "快到期最大时间"}; + String keys[] = {"id", "dept_name", "email", "dept_id", "count", "record_date", "nextDay"}; + + + /** + * 2022年8月15日16:15:32 + * 邮件抄送(根据服务快到期进行查询 并抄送给前端运维人员) + */ + @RabbitHandler + @RabbitListener(queues = "admin_emailServiceOperation_queue") + public void emailServiceOperation() { + + log.info("消费者开始:admin_emailServiceOperation_queue"); + Map findMap = new HashMap<>(); + findMap.put("trigger_type", "12"); //自动化触发类型 服务快到期 + + Map channel_idMap = new HashMap<>(); + + List channel_id = new ArrayList(); + channel_id.add("IsNull"); + channel_idMap.put("channel_id", channel_id); + + Map CcMessage_Map = new HashMap<>(); + + Integer Count = yzCardMapper.selMapCount(channel_idMap);//查询总数 + + /*这里获取所有服务快到期的内容*/ + HashMap configMap = new HashMap<>(); + configMap.put("config_key", "card.expiringSoonCount"); + String delay = yzWxByProductAgentMapper.findConfig(configMap);// 快到期 天数 + Map Pmap_expiringSoonCount = new HashMap<>(); + String record_date = VeDate.getStringDate(); + Pmap_expiringSoonCount.put("timetype", "5"); + Pmap_expiringSoonCount.put("staTime", record_date); + String nextDay = VeDate.getNextDay(record_date, delay); + nextDay = nextDay + " 23:59:59"; + Pmap_expiringSoonCount.put("endTime", nextDay); + List maps = yzCardDueSoonMapper.SelectCardDueSoon(Pmap_expiringSoonCount); + /*类型转化*/ + HashMap h = new HashMap<>(); + ArrayList> Q = new ArrayList<>(); + for (Map s : maps) { + h = (HashMap) s; + Q.add(h); + } + + String create_by = " [平台] - " + " [自动化] "; + String newName = UUID.randomUUID().toString().replace("-", "") + "_Duesoon"; + String task_name = " [服务快到期] [" + record_date + " ~ " + nextDay + "]"; + String SaveUrl = "/getcsv/" + newName + ".csv"; + Map task_map = new HashMap(); + task_map.put("auth", create_by); + task_map.put("task_name", task_name); + task_map.put("url", SaveUrl); + task_map.put("agent_id", "100"); + task_map.put("type", "32"); //对应 字典表的 执行日志类别 + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + Map defOutcolumns = new HashMap<>(); + defOutcolumns.put("record_date", record_date); + defOutcolumns.put("nextDay", nextDay); + + writeCSV.OutCSVObj(Q, newName, Outcolumns, keys, defOutcolumns, 100); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + String taskId = "" + task_map.get("id"); + + + + /*判断查询出来的服务快到期的集合是不是空或者null*/ + if (maps != null && maps.size() > 0) { + /*说明有数据 查询运维邮箱那些*/ + List> emailDept = yzAutomationCcMapper.findConcise(findMap); + /*是否有地址或者是不是null*/ + if (emailDept != null && emailDept.size() > 0) { + for (Map map : emailDept) { + //将map参数放入 cc_parameter + + List emailDeptUrl = yzAutomationCcUrlMapper.findConcise(map); + if (emailDeptUrl != null && emailDeptUrl.size() > 0) { + String execution_template = map.get("execution_template").toString(); + CcMessage_Map.put("count", Count); + CcMessage_Map.put("taskId", taskId); + if (execution_template.equals("1")) { + for (Object eM : emailDeptUrl) { + if (eM != null && eM.toString().length() > 0) { + + Map sendEmail = (Map) eM; + String email = sendEmail.get("email").toString(); + Map saveHisMap = new HashMap<>(); + saveHisMap.put("cc_id", map.get("id")); + saveHisMap.put("cc_url", ""); + saveHisMap.put("cc_email", email); + saveHisMap.put("cc_state", "1");//已抄送 + +// /*测试map放入 count ui task_id 能否在 重试发送邮件中存在*/ + +// HashMap reNeed = new HashMap<>(); +// reNeed.put("count",Count); +// reNeed.put("taskId",taskId); +// String cc_parameter = JSON.toJSONString(reNeed); + String cc_parameter = JSON.toJSONString(map); + //String cc_parameter = JSON.toJSONString(CcMessage_Map); + cc_parameter = cc_parameter.length() > 500 ? cc_parameter.substring(0, 500) : cc_parameter; + saveHisMap.put("cc_parameter", cc_parameter); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + Rmap = emailCc.ServiceOperation(CcMessage_Map, email); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + log.info("消费者:邮件发送完毕"); + } + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + saveHisMap.put("remark", remark); + saveHisMap.put("cc_result", cc_result); + boolean saveHis = yzAutomationCcHisMapper.save(saveHisMap) > 0; + log.info(">>自动化 [EmailPassageway] 已抄送邮箱{} - 插入抄送记录 bool {} <<", sendEmail, saveHis); + } else { + log.error(">>自动化 邮件抄送给运维===>>>失败:邮箱未获取到"); + } + } + } else { + log.error("[自动化:邮件抄送给运维]==>>失败:信息模板不批对"); + } + } + + } + } + } + + } + + + /** + * 邮件抄送 重试 + *

    + * cc_count 重试次数 + */ + @RabbitHandler + @RabbitListener(queues = "admin_emailServiceOperationCount_queue") + public void RetryCC(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + System.out.println("测试===>>>参数msg:"+msg); + Map Pmap = JSON.parseObject(msg); + Integer cc_count = Integer.parseInt(Pmap.get("cc_count").toString()); + + Map findNotPerformed_Map = new HashMap<>(); + findNotPerformed_Map.put("trigger_type", "12"); + findNotPerformed_Map.put("cc_count", cc_count);//重试次数 + List> CcArr = yzAutomationCcHisMapper.findNotPerformed(findNotPerformed_Map); + System.out.println("测试===>>>CcArr:" + CcArr); + if (CcArr != null && CcArr.size() > 0) { + //2.获取 + for (int i = 0; i < CcArr.size(); i++) { + Map Cc_Map = CcArr.get(i); + System.out.println("测试===>>>Cc_map:" + Cc_Map); + + Map MsgMap = JSON.parseObject(Cc_Map.get("cc_parameter").toString()); + System.out.println("测试===>>>MsgMap:" + MsgMap); + + String SendEmail = Cc_Map.get("cc_email").toString(); + Map updHisMap = new HashMap<>(); + updHisMap.put("id", Cc_Map.get("id")); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + Rmap = emailCc.ServiceOperation(MsgMap, SendEmail); + System.out.println("测试===>>>进入try"); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + } catch (Exception e) { + remark = e.getMessage(); + System.out.println("测试===>>>进入catch"); + +// remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + updHisMap.put("remark", remark); + updHisMap.put("cc_result", cc_result); + boolean updHis = yzAutomationCcHisMapper.updCcCount(updHisMap) > 0; + System.out.println(">>自动化 [EmailPassageway] 已抄送邮箱" + SendEmail + " - 抄送 bool {" + bool + "} 修改 bool {" + updHis + "}<<"); + } + } + } + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/ReminderMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/ReminderMQ.java new file mode 100644 index 0000000..64be1c4 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/Automation/ReminderMQ.java @@ -0,0 +1,221 @@ +package com.yunze.task.yunze.Automation; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcHisMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcMapper; +import com.yunze.common.mapper.yunze.automationCC.YzAutomationCcUrlMapper; +import com.yunze.common.mapper.yunze.card.YzCardUsageReminderMapper; +import com.yunze.common.utils.Email.EmailCc; +import com.yunze.common.utils.yunze.VeDate; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; + +@Slf4j +@Component +public class ReminderMQ { + + + @Resource + private YzCardUsageReminderMapper yzCardUsageReminderMapper; + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private EmailCc emailCc; + @Resource + private WriteCSV writeCSV; + @Resource + private YzAutomationCcMapper yzAutomationCcMapper; + @Resource + private YzAutomationCcUrlMapper yzAutomationCcUrlMapper; + @Resource + private YzAutomationCcHisMapper yzAutomationCcHisMapper; + + + String Outcolumns[] = {"iccid", "资费id", "资费激活名称", "APN 名称", "总量(MB)", "使用量(MB)", "剩余量(MB)", "已用百分比(%)", "创建时间"}; + String keys[] = {"iccid", "offeringId", "offeringName", "apnName", "totalAmount", "useAmount", "remainAmount", "percentage", "create_date"}; + private int OutSize = 50;//每 50条数据输出一次 + + @RabbitHandler + @RabbitListener(queues = "admin_Reminder_queue") + public void Reminder(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer parameter = Integer.parseInt(Pmap.get("parameter").toString()) ; + + Map findMap = new HashMap<>(); + findMap.put("trigger_type", "8"); //自动化触发类型 未划分资费组 + + List> out_list = new ArrayList<>(); + Map CcMessage_Map = new HashMap<>(); + String taskId = ""; + + Map map = new HashMap<>(); + map.put("dimensionField","4"); + map.put("dimensionType","1"); + map.put("percentage",parameter); + List> list = yzCardUsageReminderMapper.mailId(map); + + if(list != null){ + String create_by = " [平台] - " + " [自动化] "; + String newName = UUID.randomUUID().toString().replace("-", "") + "_Reminder"; + String task_name = " 上游套餐超过百分比 抄送 [" + VeDate.getStringDate() + "] "; + String SaveUrl = "/getcsv/" + newName + ".csv"; + SaveUrl = "/getcsv/" + newName + ".csv"; + Map task_map = new HashMap(); + task_map.put("auth", create_by); + task_map.put("task_name", task_name); + task_map.put("url", SaveUrl); + task_map.put("agent_id", "100"); + task_map.put("type", "32"); //对应 字典表的 执行日志类别 + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + + for (int j = 0; j < list.size(); j++) { + Map CarMap = new HashMap<>(); + CarMap.putAll(list.get(j)); + out_list.add(CarMap); + } + writeCSV.OutCSVObj(out_list, newName,Outcolumns, keys,null,OutSize); + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + taskId = ""+task_map.get("id"); + CcMessage_Map.put("taskId",taskId);// 获取 执行任务表的ID + CcMessage_Map.put("Count",""+out_list.size()); + }else { + log.info("usageMailReminder 自动化任务邮件抄送【上游套餐超过百分比】未获取到 数据 抄送取消"); + } + + List> AutomationCcArr = yzAutomationCcMapper.findConcise(findMap);//获取自动化 抄送 组 + if (AutomationCcArr != null && AutomationCcArr.size() > 0) { + for (int i = 0; i < AutomationCcArr.size(); i++) { + Map CCObj = AutomationCcArr.get(i); + List> AutomationCcUrlArr = yzAutomationCcUrlMapper.findConcise(CCObj);//获取自动化 抄送 邮箱 + + if (AutomationCcUrlArr != null && AutomationCcUrlArr.size() > 0) { + String execution_template = CCObj.get("execution_template").toString(); + CCObj.put("taskId",taskId); + CCObj.put("Count",out_list.size()); + if (execution_template.equals("1")) { + for (int j = 0; j < AutomationCcUrlArr.size(); j++) { + Object eM = AutomationCcUrlArr.get(j).get("email"); + if (eM != null && eM.toString().length() > 0) { + String SendEmail = eM.toString(); + Map saveHisMap = new HashMap<>(); + saveHisMap.put("cc_id", CCObj.get("id")); + saveHisMap.put("cc_url", ""); + saveHisMap.put("cc_email", SendEmail); + saveHisMap.put("cc_state", "1");//已抄送 + + String cc_parameter = JSON.toJSONString(CCObj); + cc_parameter = cc_parameter.length() > 500 ? cc_parameter.substring(0, 500) : cc_parameter; + saveHisMap.put("cc_parameter", cc_parameter); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + + Rmap = emailCc.usageMailReminder_default(CcMessage_Map, SendEmail); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + saveHisMap.put("remark", remark); + saveHisMap.put("cc_result", cc_result); + boolean saveHis = yzAutomationCcHisMapper.save(saveHisMap) > 0; + log.info(">>自动化 [usageMailReminder] 已抄送邮箱{} - 插入抄送记录 bool {} <<", SendEmail, saveHis); + } else { + log.error(">>自动化 [usageMailReminder] 抄送邮箱未获取到 - 抄送取消 {} <<", eM); + } + } + } else { + log.error(">>自动化 [usageMailReminder] 抄送模板不批对 - 抄送取消 {} <<"); + } + } else { + log.error(">>自动化 [usageMailReminder] 获取自动化 抄送 邮箱 未找到数据 - 抄送取消 {} <<"); + } + } + } + } + + + /** + * 邮件抄送 重试 + * @param msg 重试次数 + */ + @RabbitHandler + @RabbitListener(queues = "admin_ReminderCount_queue") + public void RetryCC(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + RetryExecution(msg); + } + + + /** + * 邮件抄送 重试 + * @param msg 重试次数 + */ + @RabbitHandler + @RabbitListener(queues = "dlx_admin_ReminderCount_queue") + public void DlxRetryCC(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + RetryExecution(msg); + } + + + public void RetryExecution(String msg){ + Map Pmap = JSON.parseObject(msg); + Integer cc_count = Integer.parseInt(Pmap.get("cc_count").toString()); + + Map findNotPerformed_Map = new HashMap<>(); + findNotPerformed_Map.put("trigger_type", "8"); + findNotPerformed_Map.put("cc_count", cc_count);//重试次数 + List> CcArr = yzAutomationCcHisMapper.findNotPerformed(findNotPerformed_Map); + if (CcArr != null && CcArr.size() > 0) { + //2.获取 + for (int i = 0; i < CcArr.size(); i++) { + Map Cc_Map = CcArr.get(i); + Map MsgMap = JSON.parseObject(Cc_Map.get("cc_parameter").toString()); + + String SendEmail = Cc_Map.get("cc_email").toString(); + Map updHisMap = new HashMap<>(); + updHisMap.put("id", Cc_Map.get("id")); + Map Rmap = null; + Boolean bool = false; + String remark = "", cc_result = "0"; + try { + Rmap = emailCc.usageMailReminder_default(MsgMap, SendEmail); + bool = (Boolean) Rmap.get("bool"); + if (bool) { + cc_result = "1"; + } + } catch (Exception e) { + remark = e.getMessage(); + remark = remark.length() > 240 ? remark.substring(0, 240) : remark; + } + updHisMap.put("remark", remark); + updHisMap.put("cc_result", cc_result); + boolean updHis = yzAutomationCcHisMapper.updCcCount(updHisMap) > 0; + System.out.println(">>自动化 [Reminder] 已抄送邮箱" + SendEmail + " - 抄送 bool {" + bool + "} 修改 bool {" + updHis + "}<<"); + } + } + } + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/backups/RollbackCardagentMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/backups/RollbackCardagentMQ.java new file mode 100644 index 0000000..ad473a0 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/backups/RollbackCardagentMQ.java @@ -0,0 +1,70 @@ +package com.yunze.task.yunze.backups; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.utils.yunze.VeDate; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@Component +public class RollbackCardagentMQ { + + @Resource + private YzCardMapper yzCardMapper; + + + @RabbitHandler + @RabbitListener(queues = "admin_rollbackError_queue") + public void rollbackError(String msg){ + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + + String Url = Pmap.get("Url").toString(); + Integer error_agent_id = Integer.parseInt(Pmap.get("error_agent_id").toString()); + + Integer error_user_id = Integer.parseInt(Pmap.get("error_user_id").toString()); + + List> dataList = WriteCSV.readCSV(Url,null); + + //分组 更具 dept_id-user_id + Map>> collect = dataList.stream().collect(Collectors.groupingBy(scope->scope.get("dept_id").toString()+'-'+scope.get("user_id").toString())); + //System.out.println(JSON.toJSONString(collect)); + // System.out.println("====="); + int UpdCpunt = 0 ; + for(Map.Entry>> entry:collect.entrySet()){ + String Keys[] = entry.getKey().split("-"); + List> idArr = entry.getValue(); + String dept_id = Keys[0]; + String user_id = Keys[1]; + Map setMap = new HashMap<>(); + setMap.put("dept_id",dept_id); + setMap.put("user_id",user_id); + setMap.put("error_agent_id",error_agent_id); + setMap.put("error_user_id",error_user_id); + setMap.put("idArr",idArr); + int CUpdCpunt = yzCardMapper.dividCardBk(setMap); + UpdCpunt += CUpdCpunt; + log.info(" 总修改 :"+UpdCpunt+" ,本次 【"+ VeDate.getStringDate()+"】 ["+entry.getKey()+"] 修改 "+CUpdCpunt+" idArr.size() "+idArr.size()); + } + log.info(" 修改完成 "+VeDate.getStringDate()+" UpdCpunt "+UpdCpunt); + } + + public static void main(String[] args) { + RollbackCardagentMQ init = new RollbackCardagentMQ(); + //init.initMQConfig(); + } + +} diff --git a/yunze-consumption-backup/src/main/java/com/yunze/system/card/BackupyzSysLogs.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/backups/SysLogsTaskMQ.java similarity index 54% rename from yunze-consumption-backup/src/main/java/com/yunze/system/card/BackupyzSysLogs.java rename to yunze-timed-task/src/main/java/com/yunze/task/yunze/backups/SysLogsTaskMQ.java index 7fd3a8d..d2b6211 100644 --- a/yunze-consumption-backup/src/main/java/com/yunze/system/card/BackupyzSysLogs.java +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/backups/SysLogsTaskMQ.java @@ -1,4 +1,4 @@ -package com.yunze.system.card; +package com.yunze.task.yunze.backups; import com.alibaba.fastjson.JSON; import com.rabbitmq.client.Channel; @@ -20,17 +20,15 @@ import java.util.Map; import java.util.concurrent.TimeUnit; /** - * 导出 消费 者 + * 清空日志 yz_sys_logs 消费 者 */ @Slf4j @Component -public class BackupyzSysLogs { +public class SysLogsTaskMQ { @Resource private RedisCache redisCache; @Resource - private WriteCSV writeCSV; - @Resource private YzSysLogsMapper yzSysLogsMapper; @RabbitHandler @@ -48,7 +46,7 @@ public class BackupyzSysLogs { Object isExecute = redisCache.getCacheObject(prefix + ":" + create_by); if (isExecute == null) { redisCache.setCacheObject(prefix + ":" + create_by, msg, 3, TimeUnit.SECONDS);//3 秒缓存 避免 重复消费 - backups(); + int deleteById = yzSysLogsMapper.deleteById(null); } } catch (Exception e) { log.error(">>错误 - 连接管理导出 消费者:{}<<", e.getMessage().toString()); @@ -56,28 +54,6 @@ public class BackupyzSysLogs { } - /** - * 备份 SysLogsTask - */ - public void backups() { - - //1.查询出 yz_sys_logs - List> channelArr = yzSysLogsMapper.Listwhole(); //查询所有 - System.out.println("备份 SysLogsTask ======" + channelArr); - //2 运用 WriteCSV 类 导出 csv 文件 - //VeDate获取时间类 getNo表示随机数类 - String fileName = VeDate.getNo(6) + "_SysLogsTask"; - String fileUrl[] = VeDate.getYyyyAndMm(); - String Outcolumns[] = {"id", "请求url", "创建时间", "执行的类方法", "ip", "请求参数", "响应参数", "操作人", "模块", "操作名称"};//数据库的注释名 - String keys[] = {"id", "res_url", "create_time", "class_method", "ip", "request_args", "response_args", "user_name", "project", "action_name"};//对应的数据库字段名字 - String Flieurl = fileUrl[0]+"/"+fileUrl[1]+"/"+fileUrl[2]+"/"; - writeCSV.Write(fileName, channelArr, Outcolumns, null, keys,Flieurl);//导出 - Map PMap = new HashMap<>(); - PMap.put("idAll", channelArr); - //3.根据导出的 yz_sys_logs id 去删除表数据 delete from yz_sys_logs where iccid in (1,2,3,4) - int deleteById = yzSysLogsMapper.deleteById(PMap); - // System.out.println("备份数据已删除======" + deleteById); - } } diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/card/CardDueSoonMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/card/CardDueSoonMQ.java new file mode 100644 index 0000000..6d3c8a7 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/card/CardDueSoonMQ.java @@ -0,0 +1,72 @@ +package com.yunze.task.yunze.card; + +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.mapper.yunze.card.YzCardDueSoonMapper; +import com.yunze.common.mapper.yunze.commodity.YzWxByProductAgentMapper; +import com.yunze.common.utils.Email.EmailCc; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 2022年8月9日10:55:45 + * 监听 admin_CardDueSoon_queue + */ +@Slf4j +@Component +public class CardDueSoonMQ { + + @Resource + private YzWxByProductAgentMapper yzWxByProductAgentMapper; + @Resource + private YzCardDueSoonMapper yzCardDueSoonMapper; + + @Resource + private EmailCc emailCc; + + + @RabbitHandler + @RabbitListener(queues = "admin_CardDueSoon_queue") + public void cardDueSoon() throws Exception { + HashMap configMap = new HashMap<>(); + configMap.put("config_key", "card.expiringSoonCount"); + String delay = yzWxByProductAgentMapper.findConfig(configMap);// 快到期 天数 + Map Pmap_expiringSoonCount = new HashMap<>(); + String record_date = VeDate.getStringDate(); + Pmap_expiringSoonCount.put("timetype", "5"); + Pmap_expiringSoonCount.put("staTime", record_date); + String nextDay = VeDate.getNextDay(record_date, delay); + nextDay = nextDay + " 23:59:59"; + Pmap_expiringSoonCount.put("endTime", nextDay); + List maps = yzCardDueSoonMapper.SelectCardDueSoon(Pmap_expiringSoonCount); + if (maps != null && maps.size()>0) { + //判断条件,根据符合条件的进行发送邮件 + for (Map s : maps) { + if (s.get("email") != null) { + Map sendEmailRes = emailCc.sendEmailForDueSoon(s, Pmap_expiringSoonCount); + if (sendEmailRes.get("bool").toString() == "true") { + //发送成功 + // System.out.println(">>根据服务快到期进行发送邮件===>>>成功"); + log.info(">>根据服务快到期进行发送邮件===>>>成功"); + } else { + //发送失败 + //System.out.println(">>根据服务快到期进行发送邮件===>>>失败"); + log.error(">>根据服务快到期进行发送邮件===>>>失败"); + } + } + } + }else{ + log.info(">>根据服务快到期进行发送邮件==>>>查询到服务快到期的个数为: 0"); + } + + + } + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/card/CardInfoChangeTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/card/CardInfoChangeTaskMQ.java new file mode 100644 index 0000000..7bacc83 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/card/CardInfoChangeTaskMQ.java @@ -0,0 +1,42 @@ +package com.yunze.task.yunze.card; + +import com.yunze.common.mapper.yunze.YzCardInfoChangeMapper; +import com.yunze.common.mapper.yunze.commodity.YzWxByProductAgentMapper; +import com.yunze.common.utils.yunze.VeDate; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 定时任务 yz_card_info_change 删除 系统参数配置下 数据 + */ +@Slf4j +@Component +public class CardInfoChangeTaskMQ { + + @Resource + private YzWxByProductAgentMapper yzWxByProductAgentMapper; + @Resource + private YzCardInfoChangeMapper yzCardInfoChangeMapper; + + @RabbitHandler + @RabbitListener(queues = "admin_cardInfoChange_queue") + public void ClearUp() { + Map passwordMap = new HashMap<>(); + + passwordMap.put("config_key","yunze.cardInfoChange.LongDay"); + String longDay = yzWxByProductAgentMapper.findConfig(passwordMap); + longDay = longDay!=null?longDay:"90";//默认仅保存90天数据 + Map delMap = new HashMap<>(); + String delTime = VeDate.getNextDay( VeDate.getStringDate(),"-"+longDay); + delMap.put("delTime",delTime); + int delCount = yzCardInfoChangeMapper.del(delMap); + log.info("已删除 yz_card_info_change 数据 {} 条",delCount); + } + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/card/CardPacketCountMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/card/CardPacketCountMQ.java new file mode 100644 index 0000000..beca01b --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/card/CardPacketCountMQ.java @@ -0,0 +1,150 @@ +package com.yunze.task.yunze.card; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzAgentPacketMapper; +import com.yunze.common.mapper.yunze.YzCardPacketMapper; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.utils.yunze.CommonlyUsed; +import com.yunze.common.utils.yunze.WriteCSV; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; + +/** + * 定时任务 资费计划 卡数量同步 + */ +@Slf4j +@Component +public class CardPacketCountMQ { + + @Resource + private YzCardPacketMapper yzCardPacketMapper; + @Resource + private YzAgentPacketMapper yzAgentPacketMapper; + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private WriteCSV writeCSV; + @Resource + private RabbitTemplate rabbitTemplate; + + @RabbitHandler + @RabbitListener(queues = "admin_cardPacketCount_queue") + public void SynPacketCount(String msg) { + Execution(); + } + + @RabbitHandler + @RabbitListener(queues = "dlx_admin_cardPacketCount_queue") + public void DlxSynPacketCount(String msg) { + Execution(); + } + + + public void Execution(){ + List> pList = yzCardPacketMapper.findPacketCount(null); + if(pList!=null){ + List> sysPList = new ArrayList<>(); + List> undividedList = new ArrayList<>();//未划分资费 + + Map cMap = new HashMap<>(); + + List exPid = new ArrayList<>(); + for (int i = 0; i < pList.size(); i++) { + Map packet = pList.get(i); + Integer count = packet.get("count")!=null?Integer.parseInt(packet.get("count").toString()):0; + String dept_id = packet.get("dept_id").toString(); + String packet_id = packet.get("packet_id").toString(); + String ord_no = packet.get("ord_no").toString(); + if(exPid.size()>0){ + if(CommonlyUsed.Val_Is_Arr(exPid,packet_id)){ + Integer countSum = cMap.get(packet_id); + countSum += count; + cMap.put(packet_id,count); + for (int j = 0; j < sysPList.size(); j++) { + Map sysPacket = sysPList.get(j); + String sPacket_id = sysPacket.get("packet_id").toString(); + if(sPacket_id.equals(packet_id)){//做count 加法 + sysPacket.put("count",countSum); + sysPList.set(j,sysPacket); + break; + } + } + }else{ + exPid.add(packet_id); + sysPList.add(packet); + cMap.put(packet_id,count); + } + }else { + exPid.add(packet_id); + sysPList.add(packet); + cMap.put(packet_id,count); + } + + + // agent 表修改 + if(!dept_id.equals("100")){ + Map updMap = new HashMap<>(); + updMap.put("card_count",count); + updMap.put("packet_id",packet_id); + updMap.put("dept_id",dept_id); + updMap.put("ord_no",ord_no); + int upd = yzAgentPacketMapper.updCardCount(updMap); + if(upd==0){ + undividedList.add(updMap); + log.error(">> 修改企业资费表失败,核对是否已划分资费 {} <<", JSON.toJSONString(updMap)); + } + } + } + + + if(sysPList.size()>0){ + for (int i = 0; i < sysPList.size(); i++) { + Map sysPacket = sysPList.get(i); + // card 表修改 + Map updMap = new HashMap<>(); + updMap.put("card_count",sysPacket.get("count")); + updMap.put("packet_id",sysPacket.get("packet_id")); + updMap.put("dept_id",sysPacket.get("dept_id")); + yzAgentPacketMapper.updCardCount(updMap); + } + } + + //未划分资费的数据存储 + if(undividedList.size()>0){ + String newName = UUID.randomUUID().toString().replace("-", "") + "_undividedOut"; + + String create_by = " [ 总平台 ] - " + " [ 系统操作 ] "; + String SaveUrl = "/getcsv/" + newName + ".csv"; + + Map task_map = new HashMap(); + task_map.put("auth", create_by); + task_map.put("task_name","未划分资费组企业"); + task_map.put("url", SaveUrl); + task_map.put("agent_id", "100"); + task_map.put("type", "39"); + yzExecutionTaskMapper.add(task_map);//添加执行 任务表 + try { + String Outcolumns[] = {"资费计划ID","企业ID","卡号数量","订单号"}; + String keys[] = {"packet_id","dept_id","card_count","ord_no"}; + writeCSV.Write(newName,undividedList,Outcolumns,null,keys); + }catch (Exception e){ + + } + yzExecutionTaskMapper.set_end_time(task_map);//任务结束 + } + + + + + + + } + } + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/cardflow/CardCountMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/cardflow/CardCountMQ.java new file mode 100644 index 0000000..a8712e3 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/cardflow/CardCountMQ.java @@ -0,0 +1,47 @@ +package com.yunze.task.yunze.cardflow; + +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class CardCountMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + + @Transactional + @RabbitHandler + @RabbitListener(queues = "admin_synchronization_queue") + public void synchronization() { + + Map Rmap = new HashMap<>(); + + List> list = yzCardRouteMapper.countId(Rmap);//查询 通道卡总数 + if (list != null) { + for (int i = 0; i < list.size(); i++) { + Map obj = list.get(i); + if (obj.get("channel_id") != null) { + Map objectMap = new HashMap<>(); + objectMap.putAll(obj); + objectMap.put("count",null); + Integer integer = yzCardRouteMapper.upCount(objectMap); //进行修改 通道表 卡总数 + log.info(integer + "清空总数"); + } + if(obj.get("channel_id") != null){ + Integer integer = yzCardRouteMapper.upCount(obj); //进行修改 通道表 卡总数 + log.info(integer + "数据操作成功"); + } + } + } + } +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/cardflow/CardPostageCountMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/cardflow/CardPostageCountMQ.java new file mode 100644 index 0000000..31b8434 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/cardflow/CardPostageCountMQ.java @@ -0,0 +1,70 @@ +package com.yunze.task.yunze.cardflow; + +import com.yunze.common.mapper.yunze.YzAgentPackageMapper; +import com.yunze.common.mapper.yunze.YzCardPackageMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class CardPostageCountMQ { + + + @Resource + private YzCardPackageMapper yzCardPackageMapper; + @Resource + private YzAgentPackageMapper yzAgentPackageMapper; + + @Transactional + @RabbitHandler + @RabbitListener(queues = "admin_synchronizationP_queue") + public void synchronization() { + Map Rmap = new HashMap<>(); + + List> Cardlist = yzCardPackageMapper.cardCount(Rmap);//平台资费组 + List> AgentList = yzAgentPackageMapper.agentCount(Rmap);//代理资费组 + + if (Cardlist != null && AgentList != null) { + + for (int i = 0; i < Cardlist.size(); i++) { + Map obj = Cardlist.get(i); + if (obj.get("package_id") != null) { + Map objectMap = new HashMap<>(); + objectMap.putAll(obj); + objectMap.put("COUNT",null); + Integer integer = yzCardPackageMapper.upCountC(objectMap); //进行修改 平台资费组 卡总数 + log.info(integer + "平台资费组--->清空总数"); + } + if(obj.get("package_id") != null){ + Integer integer = yzCardPackageMapper.upCountC(obj); //进行修改 平台资费组 卡总数 + log.info(integer + "平台资费组--->数据操作成功"); + } + } + + for (int i = 0; i < AgentList.size(); i++) { + Map obj = AgentList.get(i); + if (obj.get("package_id") != null) { + Map objectMap = new HashMap<>(); + objectMap.putAll(obj); + objectMap.put("COUNT",null); + Integer integer = yzAgentPackageMapper.upCountA(objectMap); //进行修改 代理资费组 卡总数 + log.info(integer + "代理资费组--->清空总数"); + } + if(obj.get("package_id") != null){ + Integer integer = yzAgentPackageMapper.upCountA(obj); //进行修改 代理资费组 卡总数 + log.info(integer + "代理资费组--->数据操作成功"); + } + } + + } + } + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/cardflow/CleanUpCardFliwHisMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/cardflow/CleanUpCardFliwHisMQ.java new file mode 100644 index 0000000..640fe7c --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/cardflow/CleanUpCardFliwHisMQ.java @@ -0,0 +1,61 @@ +package com.yunze.task.yunze.cardflow; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YrootlowHisMapper; +import com.yunze.common.utils.yunze.VeDate; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class CleanUpCardFliwHisMQ { + + @Resource + private YrootlowHisMapper yrootlowHisMapper; + + @RabbitHandler + @RabbitListener(queues = "admin_CleanUp_queue") + public void CleanUp(String msg){ + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + String day = Pmap.get("day").toString(); + + if(day!=null && day.length()>0){ + Integer datint = Integer.parseInt(day); + if(datint>=31){ + Map map = new HashMap<>(); + String yyyy_MM_dd_HH_mm_ss = VeDate.getStringDate(); + String create_time = VeDate.getNextDay(yyyy_MM_dd_HH_mm_ss.split(" ")[0],"-"+day); + map.put("create_time", create_time); + List delArr = yrootlowHisMapper.getOneThousand(map); + if(delArr!=null){ + del(map,delArr); + } + }else{ + System.out.println("day "+day+" <31 不允许进行删除!记录" ); + } + } + } + public void del(Map map,List delArr){ + Map delMap = new HashMap<>(); + delMap.put("idArr", delArr); + int delCount = yrootlowHisMapper.delFlow(delMap); + System.out.println("已删除 delArr[0] "+delArr.get(0)+" 至 delArr.get(delArr.size()-1) "+delArr.get(delArr.size()-1)+" "+delCount+"条"); + List delArr_1 = yrootlowHisMapper.getOneThousand(map); + if(delArr_1!=null){ + del(map,delArr_1); + } + } + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/intelligent/CardActivateDateAiTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/intelligent/CardActivateDateAiTaskMQ.java new file mode 100644 index 0000000..658ccc4 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/intelligent/CardActivateDateAiTaskMQ.java @@ -0,0 +1,253 @@ +package com.yunze.task.yunze.intelligent; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class CardActivateDateAiTaskMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + @Resource + private RabbitMQConfig rabbitMQConfig; + + + String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, + ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; + + + + /** + * 轮询 激活时间 + * time + * polling_type 轮询类型 【激活时间-智能-有用量 14 】【激活时间-智能-已发货 15 】 + * usedIsNull 用量是否大于 0 + * deliver_dateIsNull 发货时间是否为空 + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingActivateDateIntelligent_queue") + public void pollingActivateDateIntelligent(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + String polling_type = Pmap.get("polling_type").toString(); + String usedIsNull = Pmap.get("usedIsNull").toString(); + String deliver_dateIsNull = Pmap.get("deliver_dateIsNull").toString(); + + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + findRouteID_Map.put("cd_algorithm", "2");//智能 + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + findMap.put("activate_date", "Null");//激活时间 为空时才获取 + findMap.put("used", usedIsNull);//用量 + findMap.put("deliver_date", deliver_dateIsNull);//发货时间 + + List> cardArr = yzCardMapper.findChannelIdCar(findMap); + if (cardArr != null && cardArr.size() > 0) { + String polling_id = VeDate.getNo(4); + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + pollingPublic_Map.put("polling_type", polling_type); + //创建 路由 新增轮询详情 生产启动类型消息 + ActivateDateRun(cardArr,channel_obj,polling_id,cd_id,time,pollingPublic_Map); + } + + } + } + } + + + + + /** + * 轮询 激活时间 [激活时间-智能-未发货-已到沉默期] + * time + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingActivateDate_queue") + public void PollingActivateDateQueue(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + findRouteID_Map.put("cd_algorithm", "2");//高频轮询 + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + + List> cardArr = yzCardMapper.findChannelIdCarSilencePeriod(findMap); + if (cardArr != null && cardArr.size() > 0) { + String polling_id = VeDate.getNo(4); + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + pollingPublic_Map.put("polling_type", "16"); + //创建 路由 新增轮询详情 生产启动类型消息 + ActivateDateRun(cardArr,channel_obj,polling_id,cd_id,time,pollingPublic_Map); + } + + } + } + } + + + + + /** + * 轮询 激活时间 [补偿 状态 已激活 and 用量 = 0 | 有用量 没有激活时间 同步激活时间] + * time + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingActivateDateCompensate_queue") + public void pollingActivateDateCompensate(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + List> cardArr = new ArrayList<>(); + //1.查询通道下 状态正常没有激活时间 且用量 =0 卡号 + List> cardArr_1 = yzCardMapper.findNormalNotActivateDate(findMap); + //2.查询通道下 没有激活时间 且用量>0 卡号 (不包含测试期卡号) + List> cardArr_2 = yzCardMapper.findUsedNotActivateDate(findMap); + + if (cardArr_1 != null && cardArr_1.size() > 0) { + cardArr.addAll(cardArr.size(),cardArr_1); + } + if (cardArr_2 != null && cardArr_2.size() > 0) { + cardArr.addAll(cardArr.size(),cardArr_2); + } + + if (cardArr != null && cardArr.size() > 0) { + String polling_id = VeDate.getNo(4); + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + pollingPublic_Map.put("polling_type", "19"); + //创建 路由 新增轮询详情 生产启动类型消息 + ActivateDateRun(cardArr,channel_obj,polling_id,cd_id,time,pollingPublic_Map); + } + + } + } + } + + + + + + + + /** + * 激活时间 任务发送消息 + * @param ActivateArr + * @param channel_obj + * @param polling_id + * @param cd_id + * @param time + */ + public void ActivateDateRun(List> ActivateArr, Map channel_obj, String polling_id,String cd_id,int time,Map pollingPublic_Map) { + + try { + //设置任务 路由器 名称 与队列 名称 + ad_exchangeName = "polling_cardActivateDate_exchange"; + ad_queueName = "polling_cardActivateDate_queue"; + ad_routingKey = "polling.cardActivateDate.routingKey"; + ad_del_exchangeName = "polling_dlxcardActivateDate_exchange"; + ad_del_queueName = "polling_dlxcardActivateDate_queue" ; + ad_del_routingKey = "polling.dlxcardActivateDate.routingKey"; + //rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, ad_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); + + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + + pollingPublic_Map.put("cd_count", ActivateArr.size()); + pollingPublic_Map.put("polling_id", polling_id); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + + + for (int j = 0; j < ActivateArr.size(); j++) { + Map card = ActivateArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("polling_id", polling_id);//轮询任务详情编号 + String msg = JSON.toJSONString(Card); + //1. 更新激活时间 [生产任务] + try { + rabbitTemplate.convertAndSend(ad_exchangeName, ad_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + } + } + + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/intelligent/CardFlowAiTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/intelligent/CardFlowAiTaskMQ.java new file mode 100644 index 0000000..9821d4d --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/intelligent/CardFlowAiTaskMQ.java @@ -0,0 +1,242 @@ +package com.yunze.task.yunze.intelligent; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +@Slf4j +@Component +public class CardFlowAiTaskMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + @Resource + private RabbitMQConfig rabbitMQConfig; + + + String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, + ad_del_exchangeName = null, ad_del_queueName = null, ad_del_routingKey = null; + + + + + + + + + /** + * 轮询 用量 [用量轮询-智能-已激活 ][用量轮询-智能-未激活-有用量] [用量轮询-智能-未激活-已发货] + * time 多少 分钟 后失效 + * activate_dateIsNull 激活时间是否为空 + * polling_type 轮询类型 【用量轮询-智能-有激活时间 6 】【用量轮询-智能-无激活时间-有用量 7 】 + * usedIsNull 用量是否大于 0 + * deliver_dateIsNull 发货时间是否为空 + * + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardFlow_queue") + public void pollingCardFlow(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + String activate_dateIsNull = Pmap.get("activate_dateIsNull").toString(); + String polling_type = Pmap.get("polling_type").toString(); + String usedIsNull = Pmap.get("usedIsNull").toString(); + String deliver_dateIsNull = Pmap.get("deliver_dateIsNull").toString(); + + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id", null); + findRouteID_Map.put("cd_algorithm", "2");//智能轮询 + + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + String CardFlow_routingKey = "polling.cardCardFlow.routingKey"; + /* try { + //设置任务 路由器 名称 与队列 名称 + ad_exchangeName = "polling_cardCardFlow_exchange"; + ad_queueName = "polling_cardCardFlow_queue"; + + ad_del_exchangeName = "polling_dlxcardCardFlow_exchange"; + ad_del_queueName = "polling_dlxcardCardFlow_queue"; + ad_del_routingKey = "polling.dlxcardCardFlow.routingKey"; + // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardFlow_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey, null); + } catch (Exception e) { + System.out.println(e.getMessage()); + }*/ + + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + findMap.put("activate_date", activate_dateIsNull);//激活时间 + findMap.put("used", usedIsNull);//用量 + findMap.put("deliver_date", deliver_dateIsNull);//发货时间 + + List> cardArr = yzCardMapper.findChannelIdCar(findMap); + if (cardArr != null && cardArr.size() > 0) { + pollingExecute(cd_id,cardArr,channel_obj,CardFlow_routingKey,time,polling_type); + } + } + } + } + + + + + + /** + * 轮询 用量 [用量轮询-智能-未激活-未发货-已到沉默期] + * time 多少 分钟 后失效 + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardFlowSilencePeriod_queue") + public void pollingCardFlowSilencePeriod(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id", null); + findRouteID_Map.put("cd_algorithm", "2");//智能轮询 + + + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + String CardFlow_routingKey = "polling.cardCardFlow.routingKey"; + + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + + List> cardArr = yzCardMapper.findChannelIdCarSilencePeriod(findMap); + if (cardArr != null && cardArr.size() > 0) { + pollingExecute(cd_id,cardArr,channel_obj,CardFlow_routingKey,time,"8"); + } + } + } + } + + + + + + /** + * 轮询 用量 用量记录无记录 + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardFlowNotRecord_queue") + public void pollingCardFlowNotRecord(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id", null); + + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + String CardFlow_routingKey = "polling.cardCardFlow.routingKey"; + + String YyyyAndMmArr[] = VeDate.getYyyyAndMm(); + String year = YyyyAndMmArr[0]; + String month = YyyyAndMmArr[1]; + String day = YyyyAndMmArr[2]; + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + findMap.put("year", year); + findMap.put("month", month); + findMap.put("day", day); + + List> cardArr = yzCardMapper.findChannelIdCarNotRecord(findMap); + if (cardArr != null && cardArr.size() > 0) { + pollingExecute(cd_id,cardArr,channel_obj,CardFlow_routingKey,time,"18"); + } + } + } + } + + + + /** + * 公共执行 + * @param cd_id + * @param cardArr + * @param channel_obj + * @param CardFlow_routingKey + * @param time + * @param polling_type + */ + public void pollingExecute(String cd_id,List> cardArr,Map channel_obj,String CardFlow_routingKey,Integer time,String polling_type){ + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + //卡状态 用量 轮询 + String polling_id = VeDate.getNo(4); + pollingPublic_Map.put("polling_type",polling_type );//轮询类型 + pollingPublic_Map.put("cd_count", cardArr.size()); + pollingPublic_Map.put("polling_id", polling_id); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + //2.卡状态 + //卡号放入路由 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("network_type", card.get("network_type")); + Card.put("polling_id", polling_id);//轮询任务详情编号 + String msg = JSON.toJSONString(Card); + //生产任务 + try { + rabbitTemplate.convertAndSend("polling_cardCardFlow_exchange", CardFlow_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + } + + } + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/intelligent/CardStatusAiTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/intelligent/CardStatusAiTaskMQ.java new file mode 100644 index 0000000..2311f90 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/intelligent/CardStatusAiTaskMQ.java @@ -0,0 +1,264 @@ +package com.yunze.task.yunze.intelligent; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +@Slf4j +@Component +public class CardStatusAiTaskMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + + + + // + String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, + ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; + + + + + + + /** + * 轮询 卡状态 [卡状态-智能-已激活 ][卡状态-智能-未激活-有用量] [卡状态-智能-未激活-已发货] + * time 多少 分钟 后失效 + * activate_dateIsNull 激活时间是否为空 + * polling_type 轮询类型 【卡状态-智能-已激活 10 】【卡状态-智能-未激活-有用量 11 】【卡状态-智能-未激活-已发货 13】 + * usedIsNull 用量是否大于 0 + * deliver_dateIsNull 发货时间是否为空 + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardStatus_queue") + public void pollingCardStatus(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + String activate_dateIsNull = Pmap.get("activate_dateIsNull").toString(); + String polling_type = Pmap.get("polling_type").toString(); + String usedIsNull = Pmap.get("usedIsNull").toString(); + String deliver_dateIsNull = Pmap.get("deliver_dateIsNull").toString(); + + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + findRouteID_Map.put("cd_algorithm", "2");//智能轮询 + + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + String CardStatus_routingKey = "polling.cardCardStatus.routingKey"; + + /* try { + //设置任务 路由器 名称 与队列 名称 + ad_exchangeName = "polling_cardCardStatus_exchange"; + ad_queueName = "polling_cardCardStatus_queue" ; + + ad_del_exchangeName = "polling_dlxcardCardStatus_exchange"; + ad_del_queueName = "polling_dlxcardCardStatus_queue"; + ad_del_routingKey = "polling.dlxcardCardStatus.routingKey"; + // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardStatus_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); + }catch (Exception e){ + System.out.println(e.getMessage().toString()); + }*/ + + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + findMap.put("activate_date", activate_dateIsNull);//激活时间 + findMap.put("used", usedIsNull);//用量 + findMap.put("deliver_date", deliver_dateIsNull);//发货时间 + + List> cardArr = yzCardMapper.findChannelIdCar(findMap); + if (cardArr != null && cardArr.size() > 0) { + pollingExecute(cd_id,cardArr,channel_obj,CardStatus_routingKey,time,polling_type); + } + } + } + } + + + + + + + /** + * 轮询 卡状态 [卡状态-智能-未激活-未发货-已到沉默期] + * time 多少 分钟 后失效 + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardTask_queue") + public void pollingCardStatus(String msg,Integer kong) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + + + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + findRouteID_Map.put("cd_algorithm", "2");//智能轮询 + + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + String CardStatus_routingKey = "polling.cardCardStatus.routingKey"; + + + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + + + List> cardArr = yzCardMapper.findChannelIdCarSilencePeriod(findMap); + if (cardArr != null && cardArr.size() > 0) { + pollingExecute(cd_id,cardArr,channel_obj,CardStatus_routingKey,time,"12"); + } + } + } + } + + + /** + * 轮询 卡状态 状态未知获取 数据 + * time + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardStatusNull_queue") + public void pollingCardStatusNull(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + String CardStatus_routingKey = "polling.cardCardStatus.routingKey"; + + + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + findMap.put("status_ShowId", "8");// 状态 未知 + List> cardArr = yzCardMapper.findChannelIdCarStatusShowId(findMap); + if (cardArr != null && cardArr.size() > 0) { + pollingExecute(cd_id,cardArr,channel_obj,CardStatus_routingKey,time,"17"); + } + findMap.put("status_ShowId", "Null");// 状态 为空 + List> cardArr_1 = yzCardMapper.findChannelIdCarStatusShowId(findMap); + if (cardArr_1 != null && cardArr_1.size() > 0) { + pollingExecute(cd_id,cardArr_1,channel_obj,CardStatus_routingKey,time,"17"); + } + } + } + } + + + + + + + + + + + + + + + + + + + + + + + + /** + * 公共执行 + * @param cd_id + * @param cardArr + * @param channel_obj + * @param CardStatus_routingKey + * @param time + * @param polling_type + */ + public void pollingExecute(String cd_id,List> cardArr,Map channel_obj,String CardStatus_routingKey,Integer time,String polling_type){ + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + + //卡状态 用量 轮询 + String polling_id_CardStatus = VeDate.getNo(4); + + pollingPublic_Map.put("polling_type", polling_type); + pollingPublic_Map.put("cd_count", cardArr.size()); + pollingPublic_Map.put("polling_id", polling_id_CardStatus); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + + //创建 路由 新增轮询详情 生产启动类型消息 + + //2.卡状态 + //卡号放入路由 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("polling_id", polling_id_CardStatus);//轮询任务详情编号 + String msg = JSON.toJSONString(Card); + //生产任务 + try { + rabbitTemplate.convertAndSend("polling_cardCardStatus_exchange", CardStatus_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + //rabbitMQConfig.send(exchangeName,queueName,routingKey,"direct",msg); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + } + } +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardActivateDateTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardActivateDateTaskMQ.java new file mode 100644 index 0000000..5470aa7 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardActivateDateTaskMQ.java @@ -0,0 +1,226 @@ +package com.yunze.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class CardActivateDateTaskMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + @Resource + private RabbitMQConfig rabbitMQConfig; + + + String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, + ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; + + + + + + /** + * 轮询 激活时间 + * type Slight .还没有用量的数据; 2.超出用量的 Serious + * type + * time 多少 分钟 后失效 + */ + @RabbitHandler + @RabbitListener(queues = "admin_CardActivate_queue") + public void pollingActivateDate(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + String type = Pmap.get("type").toString(); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + findMap.put("type", type); + List> cardArr = yzCardMapper.channelCardSeriousAndSlight(findMap); + if (cardArr != null && cardArr.size() > 0) { + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + //激活时间 任务生产 + findMap.put("Arr", cardArr); + List> ActivateArr = yzCardMapper.activate_dateNull(findMap);// 获取激活时间为空 iccid + if (ActivateArr != null && ActivateArr.size() > 0) { + String polling_id = VeDate.getNo(4); + //创建 路由 新增轮询详情 生产启动类型消息 + ActivateDateRun(ActivateArr,channel_obj,polling_id,cd_id,time,pollingPublic_Map); + } + + } + } + } + } + + + /** + * 轮询 激活时间 + * time + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingActivateTime_queue") + public void pollingActivateDateIntelligent(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + findRouteID_Map.put("cd_algorithm", "1");//高频轮询 + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + findMap.put("activate_date", "Null");//激活时间 为空时才获取 + + List> cardArr = yzCardMapper.findChannelIdCar(findMap); + if (cardArr != null && cardArr.size() > 0) { + String polling_id = VeDate.getNo(4); + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + //创建 路由 新增轮询详情 生产启动类型消息 + ActivateDateRun(cardArr,channel_obj,polling_id,cd_id,time,pollingPublic_Map); + } + + } + } + } + + + + + + + /** + * 激活时间 任务发送消息 + * @param ActivateArr + * @param channel_obj + * @param polling_id + * @param cd_id + * @param time + */ + public void ActivateDateRun(List> ActivateArr, Map channel_obj, String polling_id,String cd_id,int time,Map pollingPublic_Map) { + + try { + //设置任务 路由器 名称 与队列 名称 + ad_exchangeName = "polling_cardActivateDate_exchange"; + ad_queueName = "polling_cardActivateDate_queue"; + ad_routingKey = "polling.cardActivateDate.routingKey"; + ad_del_exchangeName = "polling_dlxcardActivateDate_exchange"; + ad_del_queueName = "polling_dlxcardActivateDate_queue" ; + ad_del_routingKey = "polling.dlxcardActivateDate.routingKey"; + // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, ad_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); + + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + + pollingPublic_Map.put("polling_type", "1"); + pollingPublic_Map.put("cd_count", ActivateArr.size()); + pollingPublic_Map.put("polling_id", polling_id); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + + + for (int j = 0; j < ActivateArr.size(); j++) { + Map card = ActivateArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("polling_id", polling_id);//轮询任务详情编号 + String msg = JSON.toJSONString(Card); + //1. 更新激活时间 [生产任务] + try { + rabbitTemplate.convertAndSend(ad_exchangeName, ad_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + } + } + + + + + /** + * 创建 激活时间 轮询 生产者路由队列 及 数据库 插入 轮询信息 + * @param time + * @param size + * @param polling_id + * @param pollingPublic_Map + * @return + */ + /*public boolean ActivateDate(int time, int size, String polling_id,Map pollingPublic_Map) { + boolean bool = true; + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.FANOUT); + Map start_type = new HashMap<>(); + start_type.put("type", "ActivateDate"); + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + pollingPublic_Map.put("polling_type", "1"); + pollingPublic_Map.put("cd_count", size); + pollingPublic_Map.put("polling_id", polling_id); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + } catch (Exception e) { + System.out.println("生产 轮询 [ActivateDate] 启动类型 失败 " + e.getMessage().toString()); + } + return bool; + }*/ + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardBreakNetworkTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardBreakNetworkTaskMQ.java new file mode 100644 index 0000000..9d2e934 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardBreakNetworkTaskMQ.java @@ -0,0 +1,104 @@ +package com.yunze.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Component +public class CardBreakNetworkTaskMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + /** + * 轮询 未订购断网 + * time 多少 分钟 后失效 + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardBreakNetwork_queue") + public void pollingCardBreakNetwork(String msg2) { + if (StringUtils.isEmpty(msg2)) { + return; + } + Map Pmap = JSON.parseObject(msg2); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + List> cardArr = yzCardMapper.findChannelIdBreakNetwork(findMap); + if (cardArr != null && cardArr.size()>0) { + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + + //卡状态 用量 轮询 + String polling_id_CardBreakNetwork = VeDate.getNo(4); + + pollingPublic_Map.put("polling_type", "5");//轮询类型 未订购资费断网 + pollingPublic_Map.put("cd_count", cardArr.size()); + pollingPublic_Map.put("polling_id", polling_id_CardBreakNetwork); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + + //2.卡状态 + //卡号放入路由 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("status_id", card.get("status_id")); + Card.put("polling_id", polling_id_CardBreakNetwork);//轮询任务详情编号 + + String msg = JSON.toJSONString(Card); + String addOrder_exchangeName = "admin_exchange"; + String addOrder_routingKey = "polling.cardCardBreakNetwork.queue"; + //生产任务 + try { + rabbitTemplate.convertAndSend(addOrder_exchangeName, addOrder_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } + } + } + } + } + + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardDisconnectedTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardDisconnectedTaskMQ.java new file mode 100644 index 0000000..2c77486 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardDisconnectedTaskMQ.java @@ -0,0 +1,184 @@ +package com.yunze.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class CardDisconnectedTaskMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + @Resource + private RabbitMQConfig rabbitMQConfig; + @Resource + private RedisCache redisCache; + //卡轮询 路由队列 + String polling_queueName = "polling_card_disconnected"; + String polling_routingKey = "polling.card.disconnected"; + String polling_exchangeName = "polling_card"; + + // + String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, + ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; + + + + + + /** + * 轮询 卡状态 + * time 多少 分钟 后失效 + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardDisconnected_queue") + public void pollingCardDisconnected(String msg2) { + if (StringUtils.isEmpty(msg2)) { + return; + } + Map Pmap = JSON.parseObject(msg2); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + String CardDisconnected_routingKey = ""; + try { + ad_exchangeName = "polling_cardCardDisconnected_exchange"; + ad_queueName = "polling_cardCardDisconnected_queue"; + CardDisconnected_routingKey = "polling.cardCardDisconnected.routingKey"; + ad_del_exchangeName = "polling_dlxcardCardDisconnected_exchange"; + ad_del_queueName = "polling_dlxcardCardDisconnected_queue"; + ad_del_routingKey = "polling.dlxcardCardDisconnected.routingKey"; + // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardDisconnected_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); + + } catch (Exception e) { + System.out.println(e.getMessage()); + } + + + + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + List> cardArr = yzCardMapper.findChannelIdDisconnected(findMap); + if (cardArr != null && cardArr.size() > 0) { + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + + //卡状态 用量 轮询 + String polling_id_CardDisconnected = VeDate.getNo(4); + + pollingPublic_Map.put("polling_type", "5"); + pollingPublic_Map.put("cd_count", cardArr.size()); + pollingPublic_Map.put("polling_id", polling_id_CardDisconnected); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + //创建 路由 新增轮询详情 生产启动类型消息 + Map start_type = new HashMap(); + start_type.put("Listener","polling_cardCardDisconnected_queue"); + start_type.put("cd_id", cd_id); + + //2.卡状态 + //卡号放入路由 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("status_id", card.get("status_id")); + Card.put("polling_id", polling_id_CardDisconnected);//轮询任务详情编号 + + String msg = JSON.toJSONString(Card); + //生产任务 + try { + rabbitTemplate.convertAndSend("polling_cardCardDisconnected_exchange", CardDisconnected_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } + } + } + } + } + + + /** + * 创建 卡状态 轮询 生产者路由队列 及 数据库 插入 轮询信息 + * time + * size + * polling_id + * pollingPublic_Map + * start_type + * @return + */ + @RabbitHandler + @RabbitListener(queues = "admin_CardDisconnectedTest_queue") + public boolean CardDisconnected(String msg) { + if (StringUtils.isEmpty(msg)) { + return true; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + Integer size = Integer.parseInt(Pmap.get("size").toString()); + String polling_id = Pmap.get("polling_id").toString(); + Map pollingPublic_Map = (Map) Pmap.get("pollingPublic_Map"); + Map start_type = (Map) Pmap.get("start_type"); + boolean bool = true; + //卡状态 轮询 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.FANOUT); + start_type.put("type", "CardDisconnected"); + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + pollingPublic_Map.put("polling_type", "5"); + pollingPublic_Map.put("cd_count", size); + pollingPublic_Map.put("polling_id", polling_id); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + + } catch (Exception e) { + bool = false; + System.out.println("生产 轮询 [CardDisconnected] 启动类型 失败 " + e.getMessage().toString()); + } + return bool; + } + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardFlowLessThanZeroTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardFlowLessThanZeroTaskMQ.java new file mode 100644 index 0000000..b812942 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardFlowLessThanZeroTaskMQ.java @@ -0,0 +1,92 @@ +package com.yunze.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.common.mapper.yunze.YrootlowHisMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class CardFlowLessThanZeroTaskMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private RabbitTemplate rabbitTemplate; + @Resource + private YrootlowHisMapper yrootlowHisMapper; + + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardFlowLessThanZero_queue") + public void pollingCardFlowLessThanZero(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + List lArr = yrootlowHisMapper.lessThanZeroChannelId(null); + if(lArr!=null && lArr.size()>0){ + findRouteID_Map.put("Cd_idArr", lArr); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + String CardFlow_routingKey = "polling.cardCardFlowLessThanZero.routingKey"; + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + + List> cardArr = yrootlowHisMapper.findChannelIdLessThanZero(findMap); + if (cardArr != null && cardArr.size() > 0) { + pollingExecute(cardArr,channel_obj,CardFlow_routingKey,time); + } + } + } + } + } + + + /** + * 公共执行 + * @param cardArr + * @param channel_obj + * @param CardFlow_routingKey + * @param time + */ + public void pollingExecute(List> cardArr,Map channel_obj,String CardFlow_routingKey,Integer time){ + //卡号放入路由 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("network_type", card.get("network_type")); + String msg = JSON.toJSONString(Card); + //生产任务 + try { + rabbitTemplate.convertAndSend("polling_cardCardFlow_exchange", CardFlow_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + } + } + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardFlowTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardFlowTaskMQ.java new file mode 100644 index 0000000..8ae80d7 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardFlowTaskMQ.java @@ -0,0 +1,128 @@ +package com.yunze.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class CardFlowTaskMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + @Resource + private RabbitMQConfig rabbitMQConfig; + + //卡轮询 路由队列 + String polling_queueName = "polling_card_flow"; + String polling_routingKey = "polling.card.flow"; + String polling_exchangeName = "polling_card"; + + // + String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, + ad_del_exchangeName = null, ad_del_queueName = null, ad_del_routingKey = null; + + + + /** + * 轮询 卡状态 + * time 多少 分钟 后失效 + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardFlowTest_queue") + public void pollingCardFlow(String msg2) { + if (StringUtils.isEmpty(msg2)) { + return; + } + Map Pmap = JSON.parseObject(msg2); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id", null); + findRouteID_Map.put("cd_algorithm", "1");//高频轮询 + + + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + String CardFlow_routingKey = ""; + try { + //设置任务 路由器 名称 与队列 名称 + ad_exchangeName = "polling_cardCardFlow_exchange"; + ad_queueName = "polling_cardCardFlow_queue"; + CardFlow_routingKey = "polling.cardCardFlow.routingKey"; + ad_del_exchangeName = "polling_dlxcardCardFlow_exchange"; + ad_del_queueName = "polling_dlxcardCardFlow_queue"; + ad_del_routingKey = "polling.dlxcardCardFlow.routingKey"; + // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardFlow_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey, null); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + List> cardArr = yzCardMapper.findChannelIdCar(findMap); + if (cardArr != null && cardArr.size() > 0) { + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + //卡状态 用量 轮询 + String polling_id = VeDate.getNo(4); + + pollingPublic_Map.put("polling_type", "3"); + pollingPublic_Map.put("cd_count", cardArr.size()); + pollingPublic_Map.put("polling_id", polling_id); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + //2.卡状态 + //卡号放入路由 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("network_type", card.get("network_type")); + Card.put("polling_id", polling_id);//轮询任务详情编号 + String msg = JSON.toJSONString(Card); + //生产任务 + try { + rabbitTemplate.convertAndSend("polling_cardCardFlow_exchange", CardFlow_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + } + } + } + } + } +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardStatusTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardStatusTaskMQ.java new file mode 100644 index 0000000..62f075c --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardStatusTaskMQ.java @@ -0,0 +1,139 @@ +package com.yunze.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class CardStatusTaskMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + @Resource + private RabbitMQConfig rabbitMQConfig; + + //卡轮询 路由队列 + String polling_queueName = "polling_card_status"; + String polling_routingKey = "polling.card.status"; + String polling_exchangeName = "polling_card"; + + // + String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, + ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; + + + + + + /** + * 轮询 卡状态 + * time 多少 分钟 后失效 + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardStatusTest_queue") + public void pollingCardStatus(String msg2) { + if (StringUtils.isEmpty(msg2)) { + return; + } + Map Pmap = JSON.parseObject(msg2); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + findRouteID_Map.put("cd_algorithm", "1");//高频轮询 + + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + String CardStatus_routingKey = ""; + + try { + //设置任务 路由器 名称 与队列 名称 + ad_exchangeName = "polling_cardCardStatus_exchange"; + ad_queueName = "polling_cardCardStatus_queue" ; + CardStatus_routingKey = "polling.cardCardStatus.routingKey"; + ad_del_exchangeName = "polling_dlxcardCardStatus_exchange"; + ad_del_queueName = "polling_dlxcardCardStatus_queue"; + ad_del_routingKey = "polling.dlxcardCardStatus.routingKey"; + //rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardStatus_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); + }catch (Exception e){ + System.out.println(e.getMessage().toString()); + } + + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + List> cardArr = yzCardMapper.findChannelIdCar(findMap); + if (cardArr != null && cardArr.size() > 0) { + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + + //卡状态 用量 轮询 + String polling_id_CardStatus = VeDate.getNo(4); + + + pollingPublic_Map.put("polling_type", "2"); + pollingPublic_Map.put("cd_count", cardArr.size()); + pollingPublic_Map.put("polling_id", polling_id_CardStatus); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + + //创建 路由 新增轮询详情 生产启动类型消息 + + //2.卡状态 + //卡号放入路由 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("polling_id", polling_id_CardStatus);//轮询任务详情编号 + String msg = JSON.toJSONString(Card); + //生产任务 + try { + rabbitTemplate.convertAndSend("polling_cardCardStatus_exchange", CardStatus_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + //rabbitMQConfig.send(exchangeName,queueName,routingKey,"direct",msg); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + } + } + } + } + } + + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardStopTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardStopTaskMQ.java new file mode 100644 index 0000000..d3d63f6 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/CardStopTaskMQ.java @@ -0,0 +1,219 @@ +package com.yunze.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +@Slf4j +@Component +public class CardStopTaskMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + @Resource + private RabbitMQConfig rabbitMQConfig; + @Resource + private RedisCache redisCache; + //卡轮询 路由队列 + String polling_queueName = "polling_card_stop"; + String polling_routingKey = "polling.card.stop"; + String polling_exchangeName = "polling_card"; + + // + String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, + ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; + + + + + + /** + * 轮询 卡状态 + * time 多少 分钟 后失效 + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardStop_queue") + public void pollingCardStop(String msg2) { + if (StringUtils.isEmpty(msg2)) { + return; + } + Map Pmap = JSON.parseObject(msg2); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + + + String CardStop_routingKey = ""; + + try { + //设置任务 路由器 名称 与队列 名称 + ad_exchangeName = "polling_cardCardStop_exchange"; + ad_queueName = "polling_cardCardStop_queue"; + CardStop_routingKey = "polling.cardCardStop.routingKey"; + ad_del_exchangeName = "polling_dlxcardCardStop_exchange"; + ad_del_queueName = "polling_dlxcardCardStop_queue"; + ad_del_routingKey = "polling.dlxcardCardStop.routingKey"; + // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardStop_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); + + } catch (Exception e) { + System.out.println(e.getMessage()); + } + + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + List> cardArr = yzCardMapper.findChannelIdCarStop(findMap); + if (cardArr != null && cardArr.size() > 0) { + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + + //卡状态 用量 轮询 + String polling_id_CardStop = VeDate.getNo(4); + + + pollingPublic_Map.put("polling_type", "4"); + pollingPublic_Map.put("cd_count", cardArr.size()); + pollingPublic_Map.put("polling_id", polling_id_CardStop); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + + //创建 路由 新增轮询详情 生产启动类型消息 + Map start_type = new HashMap(); + start_type.put("Listener","polling_cardCardStop_queue"); + start_type.put("cd_id", cd_id); + + + //2.卡状态 + //卡号放入路由 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("network_type", card.get("network_type")); + Card.put("status_id", card.get("status_id")); + + Card.put("polling_id", polling_id_CardStop);//轮询任务详情编号 + Object remind_ratio = card.get("remind_ratio"); + Object used = card.get("used"); + boolean is_sel = true;//是否需要查询 + String YyyyAndMm[] = VeDate.getYyyyAndMm(); + String day = YyyyAndMm[2]; + //默认赋值停机值 + if(remind_ratio!=null && remind_ratio.toString().length()>0){ + Card.put("Max", card.get("remind_ratio")); + } + //月初一号 或 27号 通用出账日 、 联通出账日 需要更新最新用量 + if(Integer.parseInt(day)!=1 && Integer.parseInt(day)!=27){ + //并且同步时间等于今天 + Object syn_Time = card.get("syn_Time"); + if(syn_Time!=null){ + String Ymd = YyyyAndMm[0]+"-"+YyyyAndMm[1]+"-"+YyyyAndMm[2]; + if(syn_Time.toString().equals(Ymd)){ + if(remind_ratio!=null && used!=null && remind_ratio.toString().trim().length()>0 && used.toString().trim().length()>0){ + Double d_Max = Double.parseDouble(remind_ratio.toString().trim()); + Double d_used = Double.parseDouble(used.toString().trim()); + is_sel = d_used>d_Max?false:true;//用量大于 最大值 时 不需要查询直接停机 + Card.put("Max", d_Max); + } + } + } + } + Card.put("is_sel", is_sel);//是否需要接口同步用量 + String msg = JSON.toJSONString(Card); + //生产任务 + try { + rabbitTemplate.convertAndSend("polling_cardCardStop_exchange", CardStop_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } + } + } + } + } + + + /** + * 创建 卡状态 轮询 生产者路由队列 及 数据库 插入 轮询信息 + * time + * size + * polling_id + * pollingPublic_Map + * start_type + * @return + */ + @RabbitHandler + @RabbitListener(queues = "admin_CardStop_queue") + public boolean CardStop(String msg) { + if (StringUtils.isEmpty(msg)) { + return true; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + Integer size = Integer.parseInt(Pmap.get("size").toString()); + String polling_id = Pmap.get("polling_id").toString(); + Map pollingPublic_Map = (Map) Pmap.get("pollingPublic_Map"); + Map start_type = (Map) Pmap.get("start_type"); + + + boolean bool = true; + //卡状态 轮询 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.FANOUT); + start_type.put("type", "CardStop"); + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + pollingPublic_Map.put("polling_type", "4"); + pollingPublic_Map.put("cd_count", size); + pollingPublic_Map.put("polling_id", polling_id); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + + } catch (Exception e) { + bool = false; + System.out.println("生产 轮询 [CardStop] 启动类型 失败 " + e.getMessage().toString()); + } + return bool; + } + + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/ChannelTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/ChannelTaskMQ.java new file mode 100644 index 0000000..693f716 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/ChannelTaskMQ.java @@ -0,0 +1,497 @@ +package com.yunze.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +@Slf4j +@Component +public class ChannelTaskMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + + @Resource + private RabbitMQConfig rabbitMQConfig; + + //卡轮询 路由队列 + String polling_queueName = "polling_start_type"; + String polling_routingKey = "polling.start.type"; + String polling_exchangeName = "polling_card"; + + // + String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null, + ad_del_exchangeName = null,ad_del_queueName = null, ad_del_routingKey = null; + + + /** + * 轮询 还没有用量的数据 超出用量的 的生产者 + * type Slight .还没有用量的数据; 2.超出用量的 Serious + * + * type + * time 多少 分钟 后失效 + */ + @RabbitHandler + @RabbitListener(queues = "admin_channelType_queue") + public void channelType(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + String type = Pmap.get("type").toString(); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + + if (channelArr != null && channelArr.size() > 0) { + //2.获取 通道下卡号 + boolean bool = false; + bool = type.equalsIgnoreCase("Slight") ? true : false;// 轮询 还没有用量的数据 是 开启 激活时间 任务生产 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + findMap.put("type", type); + List> cardArr = yzCardMapper.channelCardSeriousAndSlight(findMap); + if (cardArr != null && cardArr.size() > 0) { + + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + + //激活时间 任务生产 + if (bool) { + findMap.put("Arr", cardArr); + List> ActivateArr = yzCardMapper.activate_dateNull(findMap);// 获取激活时间为空 iccid + if (ActivateArr != null && ActivateArr.size() > 0) { + String polling_id = VeDate.getNo(4); + //创建 路由 新增轮询详情 生产启动类型消息 + if(ActivateDate(time,ActivateArr.size(),polling_id,pollingPublic_Map)){ + ActivateDateRun(ActivateArr,channel_obj,polling_id,cd_id,time); + } + } + } + } + + } + } + } + + + + + + /** + * 轮询 激活时间 + * type Slight .还没有用量的数据; 2.超出用量的 Serious + * type + * time 多少 分钟 后失效 + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingActivateDateTest_queue") + public void pollingActivateDate(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + String type = Pmap.get("type").toString(); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + //2.获取 通道下卡号 + boolean bool = false; + bool = type.equalsIgnoreCase("Slight") ? true : false;// 轮询 还没有用量的数据 是 开启 激活时间 任务生产 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + findMap.put("type", type); + List> cardArr = yzCardMapper.channelCardSeriousAndSlight(findMap); + if (cardArr != null && cardArr.size() > 0) { + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + //激活时间 任务生产 + // if (bool) { + findMap.put("Arr", cardArr); + List> ActivateArr = yzCardMapper.activate_dateNull(findMap);// 获取激活时间为空 iccid + if (ActivateArr != null && ActivateArr.size() > 0) { + String polling_id = VeDate.getNo(4); + //创建 路由 新增轮询详情 生产启动类型消息 + if(ActivateDate(time,ActivateArr.size(),polling_id,pollingPublic_Map)){ + ActivateDateRun(ActivateArr,channel_obj,polling_id,cd_id,time); + } + } + // } + + } + } + } + } + + + + /** + * 轮询 卡状态 + * time 多少 分钟 后失效 + */ + @RabbitHandler + @RabbitListener(queues = "admin_pollingCardStatusTime_queue") + public void pollingCardStatus(String msg2) { + if (StringUtils.isEmpty(msg2)) { + return; + } + Map Pmap = JSON.parseObject(msg2); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + String CardStatus_routingKey = ""; + try { + //设置任务 路由器 名称 与队列 名称 + ad_exchangeName = "polling_cardCardStatus_exchange"; + ad_queueName = "polling_cardCardStatus_queue" ; + CardStatus_routingKey = "polling.cardCardStatus.routingKey"; + ad_del_exchangeName = "polling_dlxcardCardStatus_exchange"; + ad_del_queueName = "polling_dlxcardCardStatus_queue"; + ad_del_routingKey = "polling.dlxcardCardStatus.routingKey"; + // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardStatus_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + List> cardArr = yzCardMapper.findChannelIdCar(findMap); + if (cardArr != null && cardArr.size() > 0) { + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + + //卡状态 用量 轮询 + String polling_id_CardStatus = VeDate.getNo(4); + //创建 路由 新增轮询详情 生产启动类型消息 + + //2.卡状态 + //卡号放入路由 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("polling_id", polling_id_CardStatus);//轮询任务详情编号 + String msg = JSON.toJSONString(Card); + //生产任务 + try { + rabbitTemplate.convertAndSend("polling_cardCardStatus_exchange", CardStatus_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + } + } + } + } + } + + + + + + + + + + + + + + + + + + + + + + // 通道 轮询 3.正常使用的卡号数据 + @RabbitHandler + @RabbitListener(queues = "admin_channelTime_queue") + public void channel(String msg2) { + if (StringUtils.isEmpty(msg2)) { + return; + } + Map Pmap = JSON.parseObject(msg2); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + + if (channelArr != null && channelArr.size() > 0) { + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + findMap.put("channel_id", channel_obj.get("cd_id")); + String cd_id = channel_obj.get("cd_id").toString(); + + List> cardArr = yzCardMapper.channelCardCommonly(findMap); + if (cardArr != null && cardArr.size() > 0) { + + + + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + + //卡状态 用量 轮询 + String polling_id_CardStatus = VeDate.getNo(4); + //创建 路由 新增轮询详情 生产启动类型消息 + //boolean CardStatusBool = CardStatus(time, cardArr.size(), polling_id_CardStatus,pollingPublic_Map); + + String CardStatus_routingKey = ""; + String CardFlow_routingKey = ""; + + try { + ad_exchangeName = "polling_cardCardStatus_exchange"; + ad_queueName = "polling_cardCardStatus_queue"; + CardStatus_routingKey = "polling.cardCardStatus.routingKey"; + ad_del_exchangeName = "polling_dlxcardCardStatus_exchange"; + ad_del_queueName = "polling_dlxcardCardStatus_queue"; + ad_del_routingKey = "polling.dlxcardCardStatus.routingKey"; + // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, CardStatus_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey, null); + }catch (Exception e) { + System.out.println(e.getMessage()); + } + + //卡号放入路由 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + String msg = JSON.toJSONString(Card); + //生产任务 + //2.卡状态 + try { + rabbitTemplate.convertAndSend("polling_cardCardStatus_exchange", CardStatus_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + //rabbitMQConfig.send(exchangeName,queueName,routingKey,"direct",msg); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + + } + } + + } + } + } + + + // 通道 轮询 2.超过百分之多少的数据进行轮询生产 + @RabbitHandler + @RabbitListener(queues = "admin_channelFindPercentage_queue") + public void channelFindPercentage(String msg2) { + if (StringUtils.isEmpty(msg2)) { + return; + } + Map Pmap = JSON.parseObject(msg2); + String percentage = Pmap.get("percentage").toString(); + + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + + if (channelArr != null && channelArr.size() > 0) { + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + findMap.put("channel_id", channel_obj.get("cd_id")); + findMap.put("percentage", percentage); + List> cardArr = yzCardMapper.findPercentage(findMap); + if (cardArr != null && cardArr.size() > 0) { + //卡号放入路由 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("network_type", card.get("network_type")); + String msg = JSON.toJSONString(Card); + + + } + } + + } + } + } + + + /** + * 创建 卡状态 轮询 生产者路由队列 及 数据库 插入 轮询信息 + * time + * size + * polling_id + * pollingPublic_Map + * @return + */ + @RabbitHandler + @RabbitListener(queues = "admin_channelFindPercentage_queue") + public boolean CardStatus(String msg2) { + if (StringUtils.isEmpty(msg2)) { + return false; + } + Map Pmap = JSON.parseObject(msg2); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + Integer size = Integer.parseInt(Pmap.get("size").toString()); + String polling_id = Pmap.get("polling_id").toString(); + Map pollingPublic_Map = (Map) Pmap.get("pollingPublic_Map"); + boolean bool = true; + //卡状态 轮询 + try { + //rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null, BuiltinExchangeType.FANOUT); + Map start_type = new HashMap<>(); + start_type.put("type", "CardStatus"); + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + pollingPublic_Map.put("polling_type", "2"); + pollingPublic_Map.put("cd_count", size); + pollingPublic_Map.put("polling_id", polling_id); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + + } catch (Exception e) { + bool = false; + System.out.println("生产 轮询 [CardStatus] 启动类型 失败 " + e.getMessage().toString()); + } + return bool; + } + + /** + * 创建 激活时间 轮询 生产者路由队列 及 数据库 插入 轮询信息 + * @param time + * @param size + * @param polling_id + * @param pollingPublic_Map + * @return + */ + public boolean ActivateDate(int time, int size, String polling_id,Map pollingPublic_Map) { + boolean bool = true; + try { + // rabbitMQConfig.creatExchangeQueue(polling_exchangeName, polling_queueName, polling_routingKey, null, null, null,BuiltinExchangeType.FANOUT); + Map start_type = new HashMap<>(); + start_type.put("type", "ActivateDate"); + rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + pollingPublic_Map.put("polling_type", "1"); + pollingPublic_Map.put("cd_count", size); + pollingPublic_Map.put("polling_id", polling_id); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + } catch (Exception e) { + System.out.println("生产 轮询 [ActivateDate] 启动类型 失败 " + e.getMessage().toString()); + } + return bool; + } + + + /** + * 激活时间 任务发送消息 + * @param ActivateArr + * @param channel_obj + * @param polling_id + * @param cd_id + * @param time + */ + public void ActivateDateRun(List> ActivateArr, Map channel_obj, String polling_id,String cd_id,int time) { + for (int j = 0; j < ActivateArr.size(); j++) { + Map card = ActivateArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("polling_id", polling_id);//轮询任务详情编号 + String msg = JSON.toJSONString(Card); + //1. 更新激活时间 [生产任务] + try { + if (j == 0) { + //设置任务 路由器 名称 与队列 名称 + ad_exchangeName = "polling_cardActivateDate_exchange"; + ad_queueName = "polling_cardActivateDate_queue"; + ad_routingKey = "polling.cardActivateDate.routingKey"; + ad_del_exchangeName = "polling_dlxcardActivateDate_exchange"; + ad_del_queueName = "polling_dlxcardActivateDate_queue"; + ad_del_routingKey = "polling.dlxcardActivateDate.routingKey"; + // rabbitMQConfig.creatExchangeQueue(ad_exchangeName, ad_queueName, ad_routingKey, ad_del_exchangeName, ad_del_queueName, ad_del_routingKey,null); + } + //rabbitMQConfig.send(exchangeName,queueName,routingKey,"direct",msg); + rabbitTemplate.convertAndSend(ad_exchangeName, ad_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + } + } + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/PassagewayPollingTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/PassagewayPollingTaskMQ.java new file mode 100644 index 0000000..8eeaadf --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/PassagewayPollingTaskMQ.java @@ -0,0 +1,108 @@ +package com.yunze.task.yunze.polling; + +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +@Slf4j +@Component +public class PassagewayPollingTaskMQ { + + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + @Resource + private RedisCache redisCache; + + + + /** + * 获取正在执行的轮询任务进度获取 通过 redis 模糊key 查询 获取 轮询任务编号下的卡号 + */ + @RabbitHandler + @RabbitListener(queues = "admin_SynChannel_queue") + public void SynChannel() + { + //1. 查询 一天内 正在执行的轮询任务 并且 当前执行日志数 小于 任务总数 (三天以上的可能读取数据误差或其他原因不在同步数据了) + List> channelArr = yzPassagewayPollingMapper.find_execute(); + if(channelArr!=null && channelArr.size()>0){ + + for (int i = 0; i < channelArr.size(); i++) { + Map obj = channelArr.get(i); + String polling_id = obj.get("polling_id").toString(); + Integer cd_current = Integer.parseInt(obj.get("cd_current").toString()); + Integer cd_count = Integer.parseInt(obj.get("cd_count").toString()); + + Collection keys = redisCache.scanKeys(polling_id); + if(keys!=null && keys.size()>0){ + //redis 缓存数据大于数据库当前轮询数量时 修改 + if(keys.size()>cd_current){ + Map updMap = new HashMap(); + updMap.put("polling_id",polling_id); + updMap.put("cd_current",keys.size()); + yzPassagewayPollingMapper.update_cd_current(updMap); + } + if(keys.size()==cd_count){ + try { + redisCache.deleteObject(keys); + System.out.println("删除redis 记录成功!"); + }catch (Exception e){ + System.out.println("删除redis 记录异常"); + } + } + } + } + + } + } + + + /** + * 清除 今天 已经完成的 通道进度 + */ + @RabbitHandler + @RabbitListener(queues = "admin_cleanRedisChannel_queue") + public void cleanRedisChannel() + { + //1. 查询 一天内 正在执行的轮询任务 并且 当前执行日志数 小于 任务总数 (三天以上的可能读取数据误差或其他原因不在同步数据了) + List> channelArr = yzPassagewayPollingMapper.find_completed(); + if(channelArr!=null && channelArr.size()>0){ + + for (int i = 0; i < channelArr.size(); i++) { + Map obj = channelArr.get(i); + String polling_id = obj.get("polling_id").toString(); + + Collection keys = redisCache.scanKeys(polling_id); + if(keys!=null && keys.size()>0) { + int delCount = 0; + Object [] Objkey = keys.toArray(); + for (int j = 0; j < Objkey.length; j++) { + try { + boolean del = redisCache.deleteObject(Objkey[j].toString()); + if(del){ + delCount+=1; + } + } catch (Exception e) { + System.out.println("删除redis 记录异常"); + } + } + System.out.println("polling_id "+polling_id+" delCount "+delCount); + } + } + + } + } + + + + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/RebootTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/RebootTaskMQ.java new file mode 100644 index 0000000..03681d3 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/RebootTaskMQ.java @@ -0,0 +1,432 @@ +package com.yunze.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.core.redis.RedisCache; +import com.yunze.common.mapper.yunze.commodity.YzWxByProductAgentMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; +@Slf4j +@Component +public class RebootTaskMQ { + + @Resource + private RabbitTemplate rabbitTemplate; + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private RedisCache redisCache; + @Resource + private RabbitMQConfig rabbitMQConfig; + @Resource + private YzWxByProductAgentMapper yzWxByProductAgentMapper; + + + + + /** + * 重新启动 没有在Redis 记录 的轮询 通道 创建 消费者 轮询 + * @ time + */ + @RabbitHandler + @RabbitListener(queues = "admin_RebootFlowPolling_queue") + public void RebootFlowPolling(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + + Map findRouteID_Map = new HashMap<>(); + + List Cd_idArr = yzCardRouteMapper.findCardChannelID(); + Cd_idArr = Cd_idArr != null && Cd_idArr.size() > 0 ? Cd_idArr : null; + findRouteID_Map.put("FindCd_id", null); + findRouteID_Map.put("Cd_idArr", Cd_idArr); + List> ChannelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + + Map rebootStandardMap = new HashMap<>(); + + Object rebootStandard = redisCache.getCacheObject("polling.rebootStandard"); + Integer rebootStandardint = null; + if (rebootStandard != null && rebootStandard.toString().length() > 0) { + rebootStandard = rebootStandard != null ? rebootStandard : "1000";//默认 1K + } else { + rebootStandardMap.put("config_key", "polling.rebootStandard"); + rebootStandard = yzWxByProductAgentMapper.findConfig(rebootStandardMap); + rebootStandard = rebootStandard != null ? rebootStandard : "1000";//默认 1K + redisCache.setCacheObject("polling.rebootStandard", rebootStandard, 6, TimeUnit.HOURS);//6 小时 缓存 + } + + rebootStandardint = Integer.parseInt(rebootStandard.toString()); + String Type = "direct"; + if (ChannelArr != null && ChannelArr.size() > 0) { + for (int i = 0; i < ChannelArr.size(); i++) { + Map ChannelObj = ChannelArr.get(i); + Map msg_Map = new HashMap<>(); + String cd_id = ChannelObj.get("cd_id").toString(); + msg_Map.put("FindCd_id", ChannelObj.get("cd_id")); + + RebootFlow(cd_id,time,rebootStandardint,msg_Map,Type); + RebootStatus(cd_id,time,rebootStandardint,msg_Map,Type); + RebootActivateDate(cd_id,time,rebootStandardint,msg_Map,Type); + + } + } + } + + + + + + /** + * 重新启动 没有在Redis 记录 的轮询 通道 创建 消费者 轮询 + * @ time + */ + @RabbitHandler + @RabbitListener(queues = "admin_RebootCardStop_queue") + public void RebootCardStop(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + Map findRouteID_Map = new HashMap<>(); + + List Cd_idArr = yzCardRouteMapper.findRemindRatioChannelID(); + Cd_idArr = Cd_idArr != null && Cd_idArr.size() > 0 ? Cd_idArr : null; + findRouteID_Map.put("FindCd_id", null); + findRouteID_Map.put("Cd_idArr", Cd_idArr); + List> ChannelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + + Map rebootStandardMap = new HashMap<>(); + + Object rebootStandard = redisCache.getCacheObject("polling.rebootCardStop"); + Integer rebootStandardint = null; + if (rebootStandard != null && rebootStandard.toString().length() > 0) { + rebootStandard = rebootStandard != null ? rebootStandard : "100";//默认 100 + } else { + rebootStandardMap.put("config_key", "polling.rebootCardStop"); + rebootStandard = yzWxByProductAgentMapper.findConfig(rebootStandardMap); + rebootStandard = rebootStandard != null ? rebootStandard : "100";//默认 100 + redisCache.setCacheObject("polling.rebootStandard", rebootStandard, 6, TimeUnit.HOURS);//6 小时 缓存 + } + + rebootStandardint = Integer.parseInt(rebootStandard.toString()); + String Type = "direct"; + if (ChannelArr != null && ChannelArr.size() > 0) { + for (int i = 0; i < ChannelArr.size(); i++) { + Map ChannelObj = ChannelArr.get(i); + Map msg_Map = new HashMap<>(); + String cd_id = ChannelObj.get("cd_id").toString(); + msg_Map.put("cd_id", ChannelObj.get("cd_id")); + + RebootCardStop(cd_id,time,rebootStandardint,msg_Map,Type); + + + } + } + } + + /** + * 重新启动 没有在Redis 记录 的轮询 通道 创建 消费者 轮询 + * @ time + */ + @RabbitHandler + @RabbitListener(queues = "admin_RebootCardDisconnected_queue") + public void RebootCardDisconnected(String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + Map findRouteID_Map = new HashMap<>(); + + List Cd_idArr = yzCardRouteMapper.findIsDisconnectedChannelID(); + Cd_idArr = Cd_idArr != null && Cd_idArr.size() > 0 ? Cd_idArr : null; + findRouteID_Map.put("FindCd_id", null); + findRouteID_Map.put("Cd_idArr", Cd_idArr); + List> ChannelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + + Map rebootStandardMap = new HashMap<>(); + + Object rebootStandard = redisCache.getCacheObject("polling.rebootCardDisconnected"); + Integer rebootStandardint = null; + if (rebootStandard != null && rebootStandard.toString().length() > 0) { + rebootStandard = rebootStandard != null ? rebootStandard : "100";//默认 100 + } else { + rebootStandardMap.put("config_key", "polling.rebootCardDisconnected"); + rebootStandard = yzWxByProductAgentMapper.findConfig(rebootStandardMap); + rebootStandard = rebootStandard != null ? rebootStandard : "100";//默认 100 + redisCache.setCacheObject("polling.rebootStandard", rebootStandard, 6, TimeUnit.HOURS);//6 小时 缓存 + } + rebootStandardint = Integer.parseInt(rebootStandard.toString()); + String Type = "direct"; + if (ChannelArr != null && ChannelArr.size() > 0) { + for (int i = 0; i < ChannelArr.size(); i++) { + Map ChannelObj = ChannelArr.get(i); + Map msg_Map = new HashMap<>(); + String cd_id = ChannelObj.get("cd_id").toString(); + msg_Map.put("cd_id", ChannelObj.get("cd_id")); + RebootCardDisconnected(cd_id,time,rebootStandardint,msg_Map,Type); + } + } + } + + + + + + + + /** + * 重启 轮询 超停阈值 + * @param cd_id + * @param time + * @param rebootStandardint + * @param msg_Map + * @param Type + */ + public void RebootCardStop(String cd_id,Integer time,Integer rebootStandardint,Map msg_Map,String Type){ + String QFlowName = "polling_cardCardStop_queue" ; + String dlxQFlowName = QFlowName;//死信 redis + + String card_exchangeName = "polling_cardCardStop_exchange"; + String card_queueName = "polling_cardCardStop_queue_"+cd_id; + String card_routingKey = "polling.cardCardStop.routingKey."+cd_id; + String OneKey = "admin.CardStop.queue.One"; + + String card_del_exchangeName = "polling_dlxcardCardStop_exchange"; + String card_del_queueName = "polling_dlxcardCardStop_queue"; + String card_del_routingKey = "polling.dlxcardCardStop.routingKey"; + String TowKey = "admin.CardStop.queue.Tow"; + msg_Map.put("Listener",QFlowName); + RebootCommon( time, rebootStandardint, msg_Map, Type, QFlowName, dlxQFlowName, + card_exchangeName, card_queueName, card_routingKey, OneKey, TowKey, + card_del_exchangeName, card_del_queueName, card_del_routingKey, "超停阈值"); + } + + + + + /** + * 重启 轮询 未订购轮询停机 + * @param cd_id + * @param time + * @param rebootStandardint + * @param msg_Map + * @param Type + */ + public void RebootCardDisconnected(String cd_id,Integer time,Integer rebootStandardint,Map msg_Map,String Type){ + String QFlowName = "polling_cardCardDisconnected_queue" ; + String dlxQFlowName = QFlowName;//死信 redis + + String card_exchangeName = "polling_cardCardDisconnected_exchange"; + String card_queueName = "polling_cardCardDisconnected_queue"; + String card_routingKey = "polling.cardCardDisconnected.routingKey"; + String OneKey = "admin.CardDisconnected.queue.One"; + + String card_del_exchangeName = "polling_dlxcardCardDisconnected_exchange"; + String card_del_queueName = "polling_dlxcardCardDisconnected_queue"; + String card_del_routingKey = "polling.dlxcardCardDisconnected.routingKey"; + String TowKey = "admin.CardDisconnected.queue.Tow"; + + msg_Map.put("Listener",QFlowName); + RebootCommon( time, rebootStandardint, msg_Map, Type, QFlowName, dlxQFlowName, + card_exchangeName, card_queueName, card_routingKey, OneKey, TowKey, + card_del_exchangeName, card_del_queueName, card_del_routingKey, "未订购停机"); + } + + + + + + + /** + * 重启 轮询用量 + * @param cd_id + * @param time + * @param rebootStandardint + * @param msg_Map + * @param Type + */ + public void RebootFlow(String cd_id,Integer time,Integer rebootStandardint,Map msg_Map,String Type){ + String QFlowName = "polling-Listener-CardFlow-" + cd_id; + String dlxQFlowName = "polling-dex-Listener-CardFlow-" + cd_id;//死信 redis + + String card_exchangeName = "polling_cardCardFlow_exchange"; + String card_queueName = "polling_cardCardFlow_queue"; + String card_routingKey = "polling.cardCardFlow.routingKey"; + String OneKey = "admin.CardFlow.queue.One"; + + String card_del_exchangeName = "polling_dlxcardCardFlow_exchange"; + String card_del_queueName = "polling_dlxcardCardFlow_queue"; + String card_del_routingKey = "polling.dlxcardCardFlow.routingKey"; + String TowKey = "admin.CardFlow.queue.Tow"; + + RebootCommon( time, rebootStandardint, msg_Map, Type, QFlowName, dlxQFlowName, + card_exchangeName, card_queueName, card_routingKey, OneKey, TowKey, + card_del_exchangeName, card_del_queueName, card_del_routingKey, "卡用量"); + } + + + + + /** + * 重启 轮询 状态 + * @param cd_id + * @param time + * @param rebootStandardint + * @param msg_Map + * @param Type + */ + public void RebootStatus(String cd_id,Integer time,Integer rebootStandardint,Map msg_Map,String Type){ + String QFlowName = "polling-Listener-CardStatus-" + cd_id; + String dlxQFlowName = "polling-dxl-Listener-CardStatus-" + cd_id;//死信队列 名称 + + String card_exchangeName = "polling_cardCardStatus_exchange"; + String card_queueName = "polling_cardCardStatus_queue" ; + String card_routingKey = "polling.cardCardStatus.routingKey"; + String OneKey = "admin.CardStatus.queue.One"; + + String card_del_exchangeName = "polling_dlxcardCardStatus_exchange"; + String card_del_queueName = "polling_dlxcardCardStatus_queue"; + String card_del_routingKey = "polling.dlxcardCardStatus.routingKey"; + String TowKey = "admin.CardStatus.queue.Tow"; + + RebootCommon( time, rebootStandardint, msg_Map, Type, QFlowName, dlxQFlowName, + card_exchangeName, card_queueName, card_routingKey, OneKey, TowKey, + card_del_exchangeName, card_del_queueName, card_del_routingKey, "卡状态"); + } + + + + + /** + * 重启 轮询 激活时间 + * @param cd_id + * @param time + * @param rebootStandardint + * @param msg_Map + * @param Type + */ + public void RebootActivateDate(String cd_id,Integer time,Integer rebootStandardint,Map msg_Map,String Type){ + String QFlowName = "polling-Listener-ActivateDate-" + cd_id; + String dlxQFlowName = "polling-Listener-dlxActivateDate-" + cd_id;//死信队列 名称 + + String card_exchangeName = "polling_cardActivateDate_exchange"; + String card_queueName = "polling_cardActivateDate_queue_"+cd_id; + String card_routingKey = "polling.cardActivateDate.routingKey."+cd_id; + String OneKey = "admin.CardActivateDate.queue.One"; + + String card_del_exchangeName = "polling_dlxcardActivateDate_exchange"; + String card_del_queueName = "polling_dlxcardActivateDate_queue"; + String card_del_routingKey = "polling.dlxcardActivateDate.routingKey"; + + String TowKey = "admin.CardActivateDate.queue.Tow"; + + RebootCommon( time, rebootStandardint, msg_Map, Type, QFlowName, dlxQFlowName, + card_exchangeName, card_queueName, card_routingKey, OneKey, TowKey, + card_del_exchangeName, card_del_queueName, card_del_routingKey, "激活时间"); + } + + + + /** + * 重启 轮询 公共部分 + * @param time 消息进入死信时间 + * @param rebootStandardint 待销费数量大于多少时再次开启一个消费者 + * @param msg_Map 通道查询参数 + * @param Type RabbitMq type + * @param QFlowName Redis 记录轮询类型前缀名称 + * @param dlxQFlowName Redis 记录轮询类型前缀名称 【死信】 + * @param card_exchangeName 队列路由名称 + * @param card_queueName 队列名称 + * @param card_routingKey 队列key + * @param OneKey 重启队列key + * @param TowKey 重启队列key 【死信】 + * @param card_del_exchangeName 队列路由名称【死信】 + * @param card_del_queueName 队列名称【死信】 + * @param card_del_routingKey 队列key【死信】 + * @param LogoTypeName sout 输出 重启类型名字 + */ + public void RebootCommon(Integer time,Integer rebootStandardint,Map msg_Map,String Type,String QFlowName,String dlxQFlowName, + String card_exchangeName,String card_queueName,String card_routingKey,String OneKey,String TowKey, + String card_del_exchangeName,String card_del_queueName,String card_del_routingKey,String LogoTypeName){ + + Collection keys = redisCache.scanKeys(QFlowName); + //没有检测到消费者直接创建 消费者 + if(keys!=null && keys.size()>0){ + System.out.println("重启 "+LogoTypeName+" 轮询消费者 " + QFlowName); + //生产任务 + Send(time,card_exchangeName,OneKey,JSON.toJSONString(msg_Map), QFlowName ); + }else{ + //有消费查询 队列 待销费数量 是否大于 系统参数 + try { + Integer Count = rabbitMQConfig.getCount(card_exchangeName,card_queueName,card_routingKey,Type); + System.out.println(card_exchangeName+" "+card_queueName+" "+Count+" : "+rebootStandardint); + if(Count!=null && rebootStandardint!=null){ + //待销费 >= 设定值时 创建 发送重启消费者指令 + if(Count>=rebootStandardint){ + Send(time,card_exchangeName,OneKey,JSON.toJSONString(msg_Map), QFlowName );//生产任务 + } + } + }catch (Exception e){ + System.out.println(" getCount 获取 Exception "+card_exchangeName+" "+card_queueName+" "+e.getMessage()); + } + } + Collection delkeys = redisCache.scanKeys(dlxQFlowName); + //没有检测到消费者直接创建 消费者 + if(delkeys!=null && delkeys.size()>0){ + System.out.println("重启 "+LogoTypeName+" 轮询消费者 " + dlxQFlowName); + //生产任务 + Send(time,card_exchangeName,TowKey,JSON.toJSONString(msg_Map), QFlowName ); + }else{ + //有消费查询 队列 待销费数量 是否大于 系统参数 + try { + Integer Count = rabbitMQConfig.getCount(card_del_exchangeName,card_del_queueName,card_del_routingKey,Type); + System.out.println(card_del_exchangeName+" "+card_del_queueName+" "+Count+" : "+rebootStandardint); + if(Count!=null && rebootStandardint!=null){ + //待销费 >= 设定值时 创建 发送重启消费者指令 + if(Count>=rebootStandardint){ + Send(time,card_exchangeName,TowKey,JSON.toJSONString(msg_Map), QFlowName ); + } + } + }catch (Exception e){ + System.out.println(" getCount 获取 Exception "+card_del_exchangeName+" "+card_del_queueName+" "+e.getMessage()); + } + } + } + + + + + public void Send(Integer time,String exchange, String routingKey, Object Obj,String quenName){ + //生产任务 + try { + rabbitTemplate.convertAndSend(exchange, routingKey, Obj, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println("重启 用量轮询消费者 失败 === " +quenName); + System.out.println(e.getMessage()); + } + + } + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/SynPollingErrorGroupTask.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/SynPollingErrorGroupTask.java new file mode 100644 index 0000000..102b744 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/SynPollingErrorGroupTask.java @@ -0,0 +1,68 @@ +package com.yunze.task.yunze.polling; + +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorGroupMapper; +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class SynPollingErrorGroupTask { + + @Resource + private YzCardPollingErrorGroupMapper yzCardPollingErrorGroupMapper; + @Resource + private YzCardPollingErrorMapper yzCardPollingErrorMapper; + + /** + * 同步上游套餐String msg + * */ + @RabbitHandler + @RabbitListener(queues = "admin_SynOfferinginfo_queue") + public void SynOfferinginfo() { + try { + List> erroeList = yzCardPollingErrorMapper.findGroup(null); + List> addlist = new ArrayList<>(); + List> updlist = new ArrayList<>(); + if(erroeList!=null && erroeList.size()>0){ + for (int i = 0; i < erroeList.size(); i++) { + Map erroeMap = erroeList.get(i); + String is_ex = yzCardPollingErrorGroupMapper.findEx(erroeMap); + if(is_ex!=null && is_ex!=null && is_ex.toString().length()>0){ + erroeMap.put("id",is_ex); + updlist.add(erroeMap); + }else{ + addlist.add(erroeMap); + } + } + int saveCount = 0; + int updCount = 0; + if(addlist!=null && addlist.size()>0){ + Map addMap = new HashMap<>(); + addMap.put("msg_arrs",addlist); + saveCount = yzCardPollingErrorGroupMapper.save(addMap); + } + if(updlist!=null && updlist.size()>0){ + for (int i = 0; i < updlist.size(); i++) { + Map updMap = updlist.get(i); + updCount += yzCardPollingErrorGroupMapper.upd(updMap); + } + } + System.out.println("新增套餐 {"+saveCount+"} 修改套餐 {"+updCount+"} "); + } + } catch (Exception e) { + System.out.println(" cardSynOfferinginfoTask 同步上游套餐 失败 " + e.getMessage().toString()); + } + } + + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/cardOtherActivateDateTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/cardOtherActivateDateTaskMQ.java new file mode 100644 index 0000000..36a030d --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/polling/cardOtherActivateDateTaskMQ.java @@ -0,0 +1,129 @@ +package com.yunze.task.yunze.polling; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.mapper.yunze.YzCardMapper; +import com.yunze.common.mapper.yunze.YzPassagewayPollingMapper; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 定时任务 卡状态类型为 字典 指定类型 pollingOther_cardCardActivateDate_queue 下数据时 同步激活时间 + * + * @author root + */ +@Component +public class cardOtherActivateDateTaskMQ { + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + @Resource + private YzPassagewayPollingMapper yzPassagewayPollingMapper; + + + String ad_exchangeName = null, ad_queueName = null, ad_routingKey = null; + + + + + + /** + * 轮询 卡状态 + * @param time 多少 分钟 后失效 + */ + public void pollingCardActivateDate(Integer time) { + //1.状态 正常 轮询开启 时 获取 每个 通道下卡号 加入队列 + Map findRouteID_Map = new HashMap<>(); + findRouteID_Map.put("FindCd_id",null); + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + + try { + //设置任务 路由器 名称 与队列 名称 + ad_exchangeName = "polling_cardCardActivateDate_exchange"; + ad_queueName = "pollingOther_cardCardActivateDate_queue" ; + ad_routingKey = "pollingOther.cardCardActivateDate.queue"; + }catch (Exception e){ + System.out.println(e.getMessage()); + } + + + List status_ShowIdArr = new ArrayList<>();//需要轮询的 卡状态 + Map findDict = new HashMap<>(); + findDict.put("dict_type", "pollingOther_cardCardActivateDate"); + List> dict_dataArr = yzCardMapper.findDict(findDict); + if(dict_dataArr!=null && dict_dataArr.size()>0){ + for (int i = 0; i < dict_dataArr.size(); i++) { + Map dict = dict_dataArr.get(i); + status_ShowIdArr.add(dict.get("dict_value").toString()); + } + } + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + findMap.put("status_ShowIdArr", status_ShowIdArr); + findMap.put("activate_date", "Null");//没有激活时间的 + List> cardArr = yzCardMapper.findChannelIdCar(findMap); + if (cardArr != null && cardArr.size() > 0) { + //插入 通道轮询详情表 + Map pollingPublic_Map = new HashMap<>(); + pollingPublic_Map.put("cd_id", cd_id); + pollingPublic_Map.put("cd_current", 0); + //卡状态 用量 轮询 + String polling_id_CardActivateDate = VeDate.getNo(4); + pollingPublic_Map.put("polling_type", "21"); + pollingPublic_Map.put("cd_count", cardArr.size()); + pollingPublic_Map.put("polling_id", polling_id_CardActivateDate); + yzPassagewayPollingMapper.add(pollingPublic_Map);//新增 轮询详情表 + //创建 路由 新增轮询详情 生产启动类型消息 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("polling_id", polling_id_CardActivateDate);//轮询任务详情编号 + String msg = JSON.toJSONString(Card); + //生产任务 + try { + rabbitTemplate.convertAndSend(ad_exchangeName, ad_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } + } + } + } + } + + + + + + + + + + + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/CardSynOfferinginfoTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/CardSynOfferinginfoTaskMQ.java new file mode 100644 index 0000000..d49d632 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/CardSynOfferinginfoTaskMQ.java @@ -0,0 +1,65 @@ +package com.yunze.task.yunze.sys; + +import com.yunze.common.mapper.yunze.card.YzCardApiOfferinginfoMapper; +import com.yunze.common.mapper.yunze.card.YzCardApiOfferinginfolistMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +@Slf4j +@Component +public class CardSynOfferinginfoTaskMQ { + + @Resource + private YzCardApiOfferinginfolistMapper yzCardApiOfferinginfolistMapper; + @Resource + private YzCardApiOfferinginfoMapper yzCardApiOfferinginfoMapper; + + /** + * 同步上游套餐 + * */ + @RabbitHandler + @RabbitListener(queues = "admin_SynOfferinginfoMQ_queue") + public void SynOfferinginfo(String msg) { + try { + List> offeringinfolist = yzCardApiOfferinginfolistMapper.groupOfferingId(null); + List> addlist = new ArrayList<>(); + List> updlist = new ArrayList<>(); + if(offeringinfolist!=null && offeringinfolist.size()>0){ + for (int i = 0; i < offeringinfolist.size(); i++) { + Map offeringinfo = offeringinfolist.get(i); + Map is_ex = yzCardApiOfferinginfoMapper.is_ex(offeringinfo); + if(is_ex!=null && is_ex.get("id")!=null && is_ex.get("id").toString().length()>0){ + updlist.add(offeringinfo); + }else{ + addlist.add(offeringinfo); + } + } + int saveCount = 0; + int updCount = 0; + if(addlist!=null && addlist.size()>0){ + Map addMap = new HashMap<>(); + addMap.put("card_arrs",addlist); + saveCount = yzCardApiOfferinginfoMapper.save(addMap); + } + if(updlist!=null && updlist.size()>0){ + for (int i = 0; i < updlist.size(); i++) { + Map updMap = updlist.get(i); + updCount += yzCardApiOfferinginfoMapper.upd(updMap); + } + } + System.out.println("新增套餐 {"+saveCount+"} 修改套餐 {"+updCount+"} "); + } + } catch (Exception e) { + System.out.println(" cardSynOfferinginfoTask 同步上游套餐 失败 " + e.getMessage().toString()); + } + } + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/CardSynOfferinginfolistTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/CardSynOfferinginfolistTaskMQ.java new file mode 100644 index 0000000..8554a1d --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/CardSynOfferinginfolistTaskMQ.java @@ -0,0 +1,99 @@ +package com.yunze.task.yunze.sys; + +import com.alibaba.fastjson.JSON; +import com.yunze.apiCommon.mapper.YzCardRouteMapper; +import com.yunze.common.mapper.yunze.YzCardMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class CardSynOfferinginfolistTaskMQ { + + + @Resource + private YzCardRouteMapper yzCardRouteMapper; + @Resource + private YzCardMapper yzCardMapper; + @Resource + private RabbitTemplate rabbitTemplate; + + /** + * 同步上游套餐 + * */ + @RabbitHandler + @RabbitListener(queues = "admin_SynOfferinginfoTest_queue") + public void SynOfferinginfo(String msg) { + try { + Map findRouteID_Map = new HashMap<>(); + Map findDict = new HashMap<>(); + findDict.put("dict_type", "yz_card_api_synOfferinginfo"); + List> dict_dataArr = yzCardMapper.findDict(findDict); + if(dict_dataArr!=null && dict_dataArr.size()>0){ + List cd_codeArr = new ArrayList<>(); + for (int i = 0; i < dict_dataArr.size(); i++) { + cd_codeArr.add(dict_dataArr.get(i).get("dict_value").toString()); + } + findRouteID_Map.put("cd_codeArr", cd_codeArr);//有哪些已经对接的需要 轮询 通道编码 + } + List> channelArr = yzCardRouteMapper.findRouteID(findRouteID_Map); + if (channelArr != null && channelArr.size() > 0) { + String CardFlow_routingKey = "admin.cardSynOffering.queue"; + //2.获取 通道下卡号 + for (int i = 0; i < channelArr.size(); i++) { + Map channel_obj = channelArr.get(i); + Map findMap = new HashMap<>(); + String cd_id = channel_obj.get("cd_id").toString(); + findMap.put("channel_id", cd_id); + List> cardArr = yzCardMapper.findChannelIdCar(findMap); + if (cardArr != null && cardArr.size() > 0) { + pollingExecute(cardArr,channel_obj,CardFlow_routingKey,180); + } + } + } + } catch (Exception e) { + System.out.println(" 修改 测试期 已有激活时间状态 为 已激活 失败 " + e.getMessage().toString()); + } + } + + /** + * 公共执行 + * @param cardArr + * @param channel_obj + * @param CardFlow_routingKey + * @param time + */ + public void pollingExecute(List> cardArr,Map channel_obj,String CardFlow_routingKey,Integer time){ + //卡号放入路由 + for (int j = 0; j < cardArr.size(); j++) { + Map card = cardArr.get(j); + Map Card = new HashMap<>(); + Card.putAll(channel_obj); + Card.put("iccid", card.get("iccid")); + Card.put("card_no", card.get("card_no")); + Card.put("network_type", card.get("network_type")); + String msg = JSON.toJSONString(Card); + //生产任务 + try { + rabbitTemplate.convertAndSend("admin_exchange", CardFlow_routingKey, msg, message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + } + + } + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/CleanUpExecutionTaskFlieTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/CleanUpExecutionTaskFlieTaskMQ.java new file mode 100644 index 0000000..9b038d7 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/CleanUpExecutionTaskFlieTaskMQ.java @@ -0,0 +1,140 @@ +package com.yunze.task.yunze.sys; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzExecutionTaskMapper; +import com.yunze.common.mapper.yunze.commodity.YzWxByProductAgentMapper; +import com.yunze.common.utils.yunze.VeDate; +import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 清理文件 释放系统硬盘 + */ +@Slf4j +@Component +public class CleanUpExecutionTaskFlieTaskMQ { + + @Resource + private YzExecutionTaskMapper yzExecutionTaskMapper; + @Resource + private YzWxByProductAgentMapper yzWxByProductAgentMapper; + + + /** + * 清理执行任务 生成文件 释放系统硬盘 + * */ + @RabbitHandler + @RabbitListener(queues = "admin_cleanExecutionTaskFlie_queue") + public void ExecutionTaskFlie(String msg) { + + //获取系统仅保留多少天的执行日志文件数据 + + Map fMap = new HashMap<>(); + fMap.put("config_key","ExecutionTask.RetentionDays"); + String day = yzWxByProductAgentMapper.findConfig(fMap); + String staTime = VeDate.getNextDay(VeDate.getStringDateShort(),"-"+day); + + Map findMap = new HashMap<>(); + findMap.put("staTime",staTime); + List> eTaskArr = yzExecutionTaskMapper.findUrlArr(findMap); + if(eTaskArr!=null && eTaskArr.size()>0){ + try { + File file2 = new File(""); + String filePath = file2.getCanonicalPath(); + List idArr = new ArrayList<>(); + for (int i = 0; i < eTaskArr.size(); i++) { + Map oMap = eTaskArr.get(i); + try { + if (oMap.get("url")!=null && oMap.get("url").toString().length()>0){ + List urlArr = new ArrayList<>(); + String url = oMap.get("url").toString(); + if(url.indexOf(",")!=-1){ + String sArr[] = url.split(","); + for (int j = 0; j < sArr.length; j++) { + urlArr.add(sArr[j]); + } + }else{ + urlArr.add(url); + } + if(urlArr.size()>0){ + for (int j = 0; j < urlArr.size(); j++) { + String path = urlArr.get(j); + String readUrl = new String(filePath); + + //切割出下载的地址请求头 + String Prefix = path.split("/")[1]; + if(Prefix.equals("getOriginal")){ + + }else{ + readUrl += "/mnt/yunze/download/csv/"; + } + path = path.substring(Prefix.length() + 2, path.length()); + path = readUrl + path; + try { + deleteFile(new File(path)); + idArr.add(oMap.get("id").toString()); + }catch (Exception e){ + log.error("deleteFile {} 异常 {}",path,e.getCause().toString()); + } + try { + String sArr[] = path.split("\\."); + path = sArr[0]+".xls"; + deleteFile(new File(path)); + idArr.add(oMap.get("id").toString()); + }catch (Exception e){ + log.error("deleteFile {} 异常 {}",path,e.getCause().toString()); + } + + } + }else{ + idArr.add(oMap.get("id").toString()); + } + } + }catch (Exception e){ + log.error("for {} 异常 {}",JSON.toJSONString(oMap),e.getCause()); + } + } + + //删除数据库数据 + if(idArr.size()>0){ + Map dMap = new HashMap<>(); + dMap.put("idArr",idArr); + int delCount = yzExecutionTaskMapper.delIdArr(dMap); + System.out.println("yzExecutionTaskMapper.delIdArr = "+delCount); + log.info("yzExecutionTaskMapper.delIdArr = {} delCount {}",delCount,JSON.toJSONString(dMap)); + } + }catch (Exception e){ + log.error("ExecutionTaskFlie 异常 {}",e.getMessage()); + } + } + } + + + public static void deleteFile(File file){ + if (!file.exists()){ //判断当前文件file对象指向的路径是否存在进入if表示文件或目录不存在 + return; + } + if (file.isFile()){ //判断单签File是否是一个文件,如果是文件删除, 否则不进入File表示File是一个文件夹需要递归 + file.delete(); + return; + } + File files[] = file.listFiles(); //获取当前文件中所有的子文件或子目录 + for (File f : + files) { //迭代当前File目录下所有的子文件或子文件夹 + deleteFile(f); //根据当前目录中的一个子文件或子目录使用递归删除 + } + file.delete(); //删除当前的空文件夹 + } + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/OrderAddPackageProductionTaskMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/OrderAddPackageProductionTaskMQ.java new file mode 100644 index 0000000..cc26278 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/OrderAddPackageProductionTaskMQ.java @@ -0,0 +1,231 @@ +package com.yunze.task.yunze.sys; + +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.BuiltinExchangeType; +import com.yunze.apiCommon.utils.InternalApiRequest; +import com.yunze.common.config.RabbitMQConfig; +import com.yunze.common.mapper.yunze.YzOrderMapper; +import com.yunze.common.utils.yunze.ApiParamMap; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Component +public class OrderAddPackageProductionTaskMQ { + + @Resource + private YzOrderMapper yzOrderMapper; + @Resource + private InternalApiRequest internalApiRequest; + @Resource + private ApiParamMap apiParamMap; + @Autowired + private RabbitMQConfig mQConfig; + @Autowired + private RabbitTemplate rabbitTemplate; + + + + + //路由队列 + String addPackage_exchangeName = "polling_addPackage_card", addPackage_queueName = "p_addPackage_card", addPackage_routingKey = "p.addPackage.card", + addPackage_del_exchangeName = "dlx_"+addPackage_exchangeName,addPackage_del_queueName = "dlx_"+addPackage_queueName, addPackage_del_routingKey = "dlx_"+addPackage_routingKey; + + + // 除 生效类型为 [激活生效] 外 所有加包 增加到生产任务中去 + @RabbitHandler + @RabbitListener(queues = "admin_addPackageProduction_queue") + public void addPackageProduction(String msg) + { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + + //0.自动 修改已经加包的订单加包状态 [防止重复加包] + try { + yzOrderMapper.updAutomatic(); + }catch (Exception e){ + System.out.println("无 修改已经加包的订单加包状态"); + } + + //1.获取 支付成功 > 用量充值 > 未执行加包的 订单 + Map findAddPackage_Map = new HashMap<>(); + findAddPackage_Map.put("validate_type","4"); + findAddPackage_Map.put("type","notin"); + List> AddPackageArr = yzOrderMapper.findAddPackage(findAddPackage_Map); + AddPackag(AddPackageArr,time); + } + + + // 生效类型为 [激活生效] 且 已有生效时间 增加到生产任务中去 + @RabbitHandler + @RabbitListener(queues = "admin_activationAddPackageProductionAndActivateDate_queue") + public void activationAddPackageProductionAndActivateDate(String msg) + { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + + //0.自动 修改已经加包的订单加包状态 [防止重复加包] + try { + yzOrderMapper.updAutomatic(); + }catch (Exception e){ + System.out.println("无 修改已经加包的订单加包状态"); + } + + //1.获取 支付成功 > 用量充值 > 未执行加包的 [激活生效] 订单 + Map findAddPackage_Map = new HashMap<>(); + findAddPackage_Map.put("validate_type","4"); + findAddPackage_Map.put("type","in"); + findAddPackage_Map.put("activate_date","notnull"); + List> AddPackageArr = yzOrderMapper.findAddPackage(findAddPackage_Map); + AddPackag(AddPackageArr,time); + } + + + + public void AddPackag(List> AddPackageArr,int time){ + if(AddPackageArr!=null && AddPackageArr.size()>0){ + //卡号放入路由 + for (int j = 0; j < AddPackageArr.size(); j++) { + Map card = AddPackageArr.get(j); + //生产任务 + try { + if (j == 0) { + //设置任务 路由器 名称 与队列 名称 + mQConfig.creatExchangeQueue(addPackage_exchangeName, addPackage_queueName, addPackage_routingKey, addPackage_del_exchangeName, addPackage_del_queueName, addPackage_del_routingKey,null); + } + rabbitTemplate.convertAndSend(addPackage_exchangeName, addPackage_routingKey, JSON.toJSONString(card), message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + System.out.println(e.getMessage().toString()); + } + } + } + } + + + + + + // 生效类型为 [激活生效] 且 无生效时间 API更新激活时间 【不生产】让 activationAddPackageProductionAndActivateDate 去生产 + @RabbitHandler + @RabbitListener(queues = "admin_activationAddPackageProduction_queue") + public void activationAddPackageProduction() + { + + //0.自动 修改已经加包的订单加包状态 [防止重复加包] + try { + yzOrderMapper.updAutomatic(); + }catch (Exception e){ + System.out.println("无 修改已经加包的订单加包状态"); + } + + + //1.获取 支付成功 > 用量充值 > 未执行加包的 [激活生效] 订单 + Map findAddPackage_Map = new HashMap<>(); + findAddPackage_Map.put("validate_type","4"); + findAddPackage_Map.put("type","in"); + findAddPackage_Map.put("activate_date","null"); + findAddPackage_Map.put("channel_id","notnull"); + + + List> AddPackageArr = yzOrderMapper.findAddPackage(findAddPackage_Map); + + if(AddPackageArr!=null && AddPackageArr.size()>0){ + //2.筛选出 无 激活日期的卡信息 调用API接口请求 获取 激活信息 + for (int i = 0; i < AddPackageArr.size(); i++) { + Map map = AddPackageArr.get(i); +// Map Parammap=new HashMap<>(); +// Parammap.put("iccid",map.get("iccid")); +// Map apiMapNet=apiParamMap.getApiParams(Parammap); + Map Rmap = null;//apiUtil.queryCardActiveTime(apiMapNet,); + String statusCode = Rmap.get("statusCode")!=null?Rmap.get("statusCode").toString():"500"; + if(statusCode.equals("200")){ + //获取 激活日期 开卡日期 更新 card info + if(Rmap.get("activateDate")!=null && Rmap.get("activateDate")!="" && Rmap.get("activateDate").toString().trim().length()>0 || + Rmap.get("openDate")!=null && Rmap.get("openDate")!="" && Rmap.get("openDate").toString().trim().length()>0){ + Object activateDate_obj = Rmap.get("activateDate")!=null && Rmap.get("activateDate")!="" && Rmap.get("activateDate").toString().trim().length()>0? + Rmap.get("activateDate").toString().trim():""; + String activateDate = activateDate_obj.toString().trim(); + activateDate = activateDate.length()>10?activateDate.substring(0,10):activateDate; + Object openDate = Rmap.get("openDate")!=null && Rmap.get("openDate")!="" && Rmap.get("openDate").toString().trim().length()>0? + Rmap.get("openDate").toString().trim():null; + Map Upd_Map = new HashMap<>(); + if(activateDate!=null && activateDate.length()>0 ){ + Upd_Map.put("activate_date",activateDate); + } + if(openDate!=null){ + Upd_Map.put("open_date",openDate); + } + Upd_Map.put("iccid",map.get("iccid")); + boolean bool = yzOrderMapper.updActivate(Upd_Map)>0;//变更激活时间 + System.out.println(map.get("iccid")+" 修改激活时间 bool : "+bool); + } + }else{ + System.out.println(map.get("iccid")+" 未获取到激活日期 !"); + } + } + } + } + + + /** + * 创建 生产者路由队列 + * @ time + * @ size + * @ polling_id + * @ p_Map + * @ type + * @return + */ + @RabbitHandler + @RabbitListener(queues = "admin_CreateExchange_queue") + public boolean CreateExchange(String msg2) { + if (StringUtils.isEmpty(msg2)) { + return false; + } + Map Pmap = JSON.parseObject(msg2); + Integer time = Integer.parseInt(Pmap.get("time").toString()); + Integer size = Integer.parseInt(Pmap.get("size").toString()); + String polling_id = Pmap.get("polling_id").toString(); + Map p_Map = (Map) Pmap.get("p_Map"); + String type = Pmap.get("type").toString(); + boolean bool = true; + //卡状态 轮询 + try { + mQConfig.creatExchangeQueue(addPackage_exchangeName, addPackage_queueName, addPackage_routingKey, null, null, null, BuiltinExchangeType.FANOUT); + Map start_type = new HashMap<>(); + start_type.putAll(p_Map); + start_type.put("type", type); + rabbitTemplate.convertAndSend(addPackage_exchangeName, addPackage_queueName, JSON.toJSONString(start_type), message -> { + // 设置消息过期时间 time 分钟 过期 + message.getMessageProperties().setExpiration("" + (time * 1000 * 60)); + return message; + }); + } catch (Exception e) { + bool = false; + System.out.println("轮询 生产激活生效包 [CreateExchange] 启动类型 失败 " + e.getMessage().toString()); + } + return bool; + } + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/OrderRenewalGenerationMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/OrderRenewalGenerationMQ.java new file mode 100644 index 0000000..4fab102 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/OrderRenewalGenerationMQ.java @@ -0,0 +1,175 @@ +package com.yunze.task.yunze.sys; + +import com.alibaba.fastjson.JSON; +import com.yunze.common.mapper.yunze.YzOrderMapper; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalMapper; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalPrimaryIccidMapper; +import com.yunze.common.mapper.yunze.card.YzApplicationforRenewalPrimaryMapper; +import com.yunze.common.utils.yunze.VeDate; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 企业续费 审核成功之后触发 订单生成 + */ +@Component +public class OrderRenewalGenerationMQ { + + @Resource + private YzOrderMapper yzOrderMapper; + + @Resource + private YzApplicationforRenewalPrimaryMapper yzApplicationforRenewalPrimaryMapper; + @Resource + private YzApplicationforRenewalMapper yzApplicationforRenewalMapper; + @Resource + private YzApplicationforRenewalPrimaryIccidMapper yzApplicationforRenewalPrimaryIccidMapper; + + + /** + * 企业续费 订单生成 + * */ + @RabbitHandler + @RabbitListener(queues = "admin_RenewalToGenerateOrder_queue") + public void ExecutionTaskFlie( String msg) { + if (StringUtils.isEmpty(msg)) { + return; + } + Map Pmap = JSON.parseObject(msg); + Integer day = Integer.parseInt(Pmap.get("day").toString()); + + RenewalToGenerateOrder(day); + } + + + + /** + * 续费生成订单 + */ + public void RenewalToGenerateOrder(Integer day) { + Map findAppOrderMap = new HashMap<>(); + findAppOrderMap.put("sTime", VeDate.getNextDay(VeDate.getStringDateShort(),"-"+day) );//获取前 day 天的数据 默认建议 填 3 天 + findAppOrderMap.put("eTime", VeDate.getStringDateSSS() ); + //0.找到 续费申请中 已经审核通过的数组 + List> appArr = yzApplicationforRenewalPrimaryMapper.findAppOrderGr(findAppOrderMap); + if(appArr!=null && appArr.size()>0){ + //1.找到对应申请下资费计划 + for (int i = 0; i < appArr.size(); i++) { + Map appObj = appArr.get(i); + String p_id = appObj.get("id").toString();//主表id + String dept_id = appObj.get("dept_id").toString(); + Map findPacket = new HashMap<>(); + findPacket.put("p_id",p_id); + findPacket.put("generate_tariff_orders","0");//没有生成过订单的进行生成订单 + List> packetArr = yzApplicationforRenewalMapper.find(findPacket); + if(packetArr!=null && packetArr.size()>0){ + + for (int j = 0; j < packetArr.size(); j++) {//循环资费计划 + Map packe = packetArr.get(j); + String packet_id = packe.get("packet_id").toString(); + + Map findIccid = new HashMap<>(); + String b_id = packe.get("id").toString();//资费表id + findIccid.put("b_id",b_id); + List> iccidArr = yzApplicationforRenewalPrimaryIccidMapper.find(findIccid); + if(iccidArr!=null && iccidArr.size()>0) { + + //2.获取订单 map + Map gOrderMap = new HashMap<>(); + gOrderMap.put("validate_type","3");//生效类型 默认 续费都是 》 周期延顺 3 + gOrderMap.put("agent_id",dept_id);//申请人企业id + + Map packet_info = JSON.parseObject(packe.get("packet_info").toString()); + + Map OrderMap = orderGenerate(gOrderMap,packet_info); + + List> order_arrs = getSaveOrderArr(iccidArr,OrderMap); + Map saveMap = new HashMap<>(); + saveMap.put("order_arrs",order_arrs); + int sInt = yzOrderMapper.importOrder(saveMap); + + if(sInt>0){//修改 续费申请表-资费计划列表 【是否已生成批量加包订单】 generate_tariff_orders + Map updPktMap = new HashMap<>(); + updPktMap.put("packet_id",packet_id); + updPktMap.put("p_id",p_id); + updPktMap.put("generate_tariff_orders","1");//已执行加包 + yzApplicationforRenewalMapper.upd(updPktMap); + System.out.println(" 【续费订单已生成】 === "+JSON.toJSONString(updPktMap)); + } + } + } + + } + } + + } + + } + + + /** + * 获取订单 Map + * @param map + * @param PacketMap + * @return + */ + public Map orderGenerate(Map map,Map PacketMap){ + Map OrderMap = new HashMap<>(); + //或充值 资费计划信息 + String agent_id = map.get("agent_id").toString(); + + if(PacketMap!=null) { + String ord_type = "2"; + //添加订单生成参数 + PacketMap.put("validate_type", map.get("validate_type"));//生效类型 + PacketMap.put("ord_type", ord_type);//订单类型 + OrderMap.put("add_parameter", JSON.toJSONString(PacketMap));//加包参数 + OrderMap.put("ord_type", ord_type);//订单类型 用量充值 + OrderMap.put("ord_name", "企业续费-用量充值");//交易名称 用量充值 + OrderMap.put("wx_ord_no", null);//微信订单号 + OrderMap.put("status", "1");//支付状态 支付成功 + OrderMap.put("price", PacketMap.get("packet_price"));//交易金额 + OrderMap.put("account", "0");//交易后金额 + OrderMap.put("pay_type", "s");//支付方式 平台记录 + OrderMap.put("is_profit", "0");//是否需要分润 0否-1是 + OrderMap.put("add_package", "0");//是否已经执行过加包 0否 1 是 + OrderMap.put("show_status", "0");//是否显示交易记录:0否-1显示 + OrderMap.put("packet_id", PacketMap.get("packet_id"));//资费计划 ID + OrderMap.put("validate_type", map.get("validate_type"));//生效类型 + OrderMap.put("open_id", null);//openid 微信支付记录操作人 + OrderMap.put("agent_id", agent_id);// 所属记录企业id + OrderMap.put("profit_type", "0");//分润类型 + OrderMap.put("info", null);//备注 + OrderMap.put("cre_type", "sys");//生成方式 系统 sys 人工 ai + + } + return OrderMap; + } + + + public List> getSaveOrderArr (List> iccidArr,Map OrderMap){ + List> rList = new ArrayList<>(); + for (int i = 0; i < iccidArr.size(); i++) { + Map card = iccidArr.get(i); + Map oMap = new HashMap<>(); + oMap.putAll(OrderMap); + String ord_no = VeDate.getNo(8); + oMap.put("ord_no",ord_no); + oMap.put("iccid",card.get("iccid")); + rList.add(oMap); + } + return rList; + } + + + + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/SysLogClearMQ.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/SysLogClearMQ.java new file mode 100644 index 0000000..a83d850 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/SysLogClearMQ.java @@ -0,0 +1,57 @@ +package com.yunze.task.yunze.sys; + +import com.yunze.apiCommon.utils.VeDate; +import com.yunze.common.mapper.yunze.YzSysLogsMapper; +import com.yunze.common.mapper.yunze.commodity.YzWxByProductAgentMapper; +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorGroupMapper; +import com.yunze.common.mapper.yunze.polling.YzCardPollingErrorMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 日志清理 + */ +@Slf4j +@Component +public class SysLogClearMQ { + + @Resource + private YzSysLogsMapper yzSysLogsMapper; + @Resource + private YzCardPollingErrorMapper yzCardPollingErrorMapper; + @Resource + private YzCardPollingErrorGroupMapper yzCardPollingErrorGroupMapper; + @Resource + private YzWxByProductAgentMapper yzWxByProductAgentMapper; + + /** + * 删除日志 + * */ + @RabbitHandler + @RabbitListener(queues = "admin_LogClear_queue") + public void updStatusShowId(String msg) { + Map findConfigMap = new HashMap<>(); + Map delMap = new HashMap<>(); + + findConfigMap.put("config_key","logMaxDay");//日志信息保留最大天数 + String logMaxDay = yzWxByProductAgentMapper.findConfig(findConfigMap); + logMaxDay = logMaxDay!=null?logMaxDay:"40"; + String delTime = VeDate.getNextDay(VeDate.getStringDateShort(),"-"+logMaxDay); + delMap.put("delTime",delTime); + int sysLogsCount = yzSysLogsMapper.del(delMap); + int jobLogsCount = yzSysLogsMapper.delJobLog(delMap); + int operLogsCount = yzSysLogsMapper.delOperLog(delMap); + int errLogsCount = yzCardPollingErrorMapper.delTime(delMap); + int errtableLogsCount = yzCardPollingErrorGroupMapper.delTableData(null); + + log.info(">>> 日志清理 yz_sys_logs {}, sys_job_log {}, sys_oper_log {},yz_card_polling_error {},yz_card_polling_error_group {} <<<",sysLogsCount,jobLogsCount,operLogsCount,errLogsCount,errtableLogsCount); + + } + +} diff --git a/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/SysOrder.java b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/SysOrder.java new file mode 100644 index 0000000..2baf8e0 --- /dev/null +++ b/yunze-timed-task/src/main/java/com/yunze/task/yunze/sys/SysOrder.java @@ -0,0 +1,34 @@ +package com.yunze.task.yunze.sys; + +import com.yunze.common.mapper.yunze.YzOrderMapper; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 系统订单 + * @Auther: zhang feng + * @Date: 2022/06/15/10:30 + * @Description: + */ +@Component +public class SysOrder { + + @Resource + private YzOrderMapper yzOrderMapper; + + + /** + * 修改 info LIKE '未找到加%' and add_package = '1' 订单 (未找到加包数据订单修改状态)【可能是未给客户划分资费】【激活生效未获取到激活时间】等! + */ + @RabbitHandler + @RabbitListener(queues = "admin_UpdOrderStatus_queue") + public void UpdOrderStatus( String msg) { + yzOrderMapper.resetAddPackage(null); + + + } + +} diff --git a/yunze-timed-task/src/main/resources/application.yml b/yunze-timed-task/src/main/resources/application.yml new file mode 100644 index 0000000..6c232a7 --- /dev/null +++ b/yunze-timed-task/src/main/resources/application.yml @@ -0,0 +1,69 @@ +spring: + rabbitmq: + ####连接地址 + host: 127.0.0.1 + ####端口号 + port: 5672 + ####账号 + username: YunZeIotRabbitMq + ####密码 + password: 20220107@yzIot + ## 心跳 请求的心跳超时,以秒为单位; 零表示没有 + requested-heartbeat: 40 + ####心跳开启 + keepalive: true + ### 地址 + virtual-host: /VirtualHosts + listener: + simple: + retry: + ####开启消费者(程序出现异常的情况下会)进行重试 + enabled: true + ####最大重试次数 + max-attempts: 1 + ####重试间隔时间 + initial-interval: 3000 + #### 手动应答 manual 自动应答 auto + acknowledge-mode: auto + + application: + name: cTask + datasource: + driverClassName: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1/iotdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true + username: iotdb + password: www.5iot.com + + # redis 配置 + redis: + # 地址 + host: r-uf6r62dtsyztnh3312pd.redis.rds.aliyuncs.com + # 端口,默认为6379 + port: 6379 + # 数据库索引 + database: 0 + # 密码 + password: Rdis20220107 + # 连接超时时间 + timeout: 30s + lettuce: + pool: + # 连接池中的最小空闲连接 + min-idle: 0 + # 连接池中的最大空闲连接 + max-idle: 8 + # 连接池的最大数据库连接数 + max-active: 8 + # #连接池最大阻塞等待时间(使用负值表示没有限制) + max-wait: -1ms + +# MyBatis配置 +mybatis: + # 配置mapper的扫描,找到所有的mapper.xml映射文件 + mapperLocations: classpath*:mapper/**/*Mapper.xml + + + +server: + port: 8067 + diff --git a/yunze-consumption-backup/src/main/resources/logback.xml b/yunze-timed-task/src/main/resources/logback.xml similarity index 88% rename from yunze-consumption-backup/src/main/resources/logback.xml rename to yunze-timed-task/src/main/resources/logback.xml index 03949e3..7f74658 100644 --- a/yunze-consumption-backup/src/main/resources/logback.xml +++ b/yunze-timed-task/src/main/resources/logback.xml @@ -1,9 +1,9 @@ - + - + @@ -30,8 +30,8 @@ ${LOG_PATH}/${LOG_FILE}/${LOG_FILE}-%d{yyyy-MM-dd}.log - - 7 + + 2 diff --git a/yunze-timed-task/src/main/resources/mybatis/mybatis-config.xml b/yunze-timed-task/src/main/resources/mybatis/mybatis-config.xml new file mode 100644 index 0000000..e8b52be --- /dev/null +++ b/yunze-timed-task/src/main/resources/mybatis/mybatis-config.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/yunze-ui/README.md b/yunze-ui/README.md index e1eb33b..b7483eb 100644 --- a/yunze-ui/README.md +++ b/yunze-ui/README.md @@ -18,7 +18,7 @@ npm install --registry=https://registry.npm.taobao.org # 启动服务 npm run dev ``` -npm i nrm -g --registry=https://registry.npm.taobao.org +npm i nrm -g --registry=[https://registry.npm.taobao.org][] 浏览器访问 http://localhost:80 ## 发布 @@ -29,4 +29,6 @@ npm run build:stage # 构建生产环境 npm run build:prod -``` \ No newline at end of file +``` + +[]: https://registry.npm.taobao.org \ No newline at end of file diff --git a/yunze-ui/package.json b/yunze-ui/package.json index b5a99d9..4d8f2ee 100644 --- a/yunze-ui/package.json +++ b/yunze-ui/package.json @@ -1,6 +1,6 @@ { "name": "iotlink", - "version": "0.8.0", + "version": "1.0.0", "description": "iotlink", "author": "sdyunze", "license": "Apache-2.0", @@ -59,6 +59,7 @@ "vue-count-to": "1.0.13", "vue-cropper": "0.5.5", "vue-meta": "2.4.0", + "vue-monoplasty-slide-verify": "^1.1.4", "vue-router": "3.4.9", "vuedraggable": "2.24.3", "vuex": "3.6.0" diff --git a/yunze-ui/src/api/login.js b/yunze-ui/src/api/login.js index 9ddd1c1..44d1f6c 100644 --- a/yunze-ui/src/api/login.js +++ b/yunze-ui/src/api/login.js @@ -15,6 +15,7 @@ export function login(username, password, code, uuid) { }) } + // 获取用户详细信息 export function getInfo() { return request({ diff --git a/yunze-ui/src/api/monitor/error.js b/yunze-ui/src/api/monitor/error.js new file mode 100644 index 0000000..aa7657e --- /dev/null +++ b/yunze-ui/src/api/monitor/error.js @@ -0,0 +1,46 @@ +import request from '@/utils/request' + +// 轮询错误详情 列表 +export function listError(query) { + return request({ + url: '/yunze/error/list', + method: 'post', + data: query + }) +} + +// 单个修改轮询错误详情 +export function UpdateId(query) { + return request({ + url: '/yunze/error/upd', + method: 'post', + data: query + }) +} + +// 单个删除轮询错误详情 +export function DeleteId(query) { + return request({ + url: '/yunze/error/del', + method: 'post', + data: query + }) +} + +// 批量删除轮询错误详情 +export function DeleteArr(query) { + return request({ + url: '/yunze/error/delArr', + method: 'post', + data: query + }) +} + +// 批量修改轮询错误详情 +export function UpdateArr(query) { + return request({ + url: '/yunze/error/updArr', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/monitor/group.js b/yunze-ui/src/api/monitor/group.js new file mode 100644 index 0000000..a06b0a9 --- /dev/null +++ b/yunze-ui/src/api/monitor/group.js @@ -0,0 +1,46 @@ +import request from '@/utils/request' + +// 轮询错误概要 列表 +export function listGroup(query) { + return request({ + url: '/yunze/group/list', + method: 'post', + data: query + }) +} + +// 单个删除轮询错误概要 +export function DeleteId(query) { + return request({ + url: '/yunze/group/del', + method: 'post', + data: query + }) +} + +// 单个修改轮询错误概要 +export function UpdateId(query) { + return request({ + url: '/yunze/group/upd', + method: 'post', + data: query + }) +} + +// 批量删除轮询错误概要 +export function DeleteArr(query) { + return request({ + url: '/yunze/group/delArr', + method: 'post', + data: query + }) +} + +// 批量修改轮询错误概要 +export function UpdateArr(query) { + return request({ + url: '/yunze/group/updArr', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/system/user.js b/yunze-ui/src/api/system/user.js index 3b9a776..e9dfa29 100644 --- a/yunze-ui/src/api/system/user.js +++ b/yunze-ui/src/api/system/user.js @@ -125,3 +125,29 @@ export function importTemplate() { method: 'get' }) } + +// 手机号 登录 +export function GetPhone(phone) { + return request({ + url: '/send/'+phone, + method: 'get' + }) +} + +// 查询 用户手机号 +export function UserPhone(query) { + return request({ + url: '/yunze/card/userPhone', + method: 'post', + data: query + }) +} + +// 短信登录方法 +export function MessageLogin(data) { + return request({ + url: '/message', + method: 'post', + data: data + }) +} diff --git a/yunze-ui/src/api/yunze/CWGL/Firm/Firm.js b/yunze-ui/src/api/yunze/CWGL/Firm/Firm.js new file mode 100644 index 0000000..72e5a82 --- /dev/null +++ b/yunze-ui/src/api/yunze/CWGL/Firm/Firm.js @@ -0,0 +1,72 @@ +import request from '@/utils/request' + + +// 公司信息 列表 +export function getList(query) { + return request({ + url: '/yunze/CwglFirm/list', + method: 'post', + data: query + }) +} + +// 公司信息 新增 +export function add(query) { + return request({ + url: '/yunze/CwglFirm/add', + method: 'post', + data: query + }) +} + +// 公司信息 查询单条 +export function find(query) { + return request({ + url: '/yunze/CwglFirm/find', + method: 'post', + data: query + }) +} + +// 公司信息 修改 +export function upd(query) { + return request({ + url: '/yunze/CwglFirm/upd', + method: 'post', + data: query + }) +} + +// 查询简要 公司信息 +export function findArr(query) { + return request({ + url: '/yunze/CwglFirm/findArr', + method: 'post', + data: query + }) +} +// 删除 Fat_ID +export function deleteFat_ID(query) { + return request({ + url: '/yunze/CwglFirm/deletefatid', + method: 'post', + data: query + }) +} +// 真实删除 Fat_ID +export function deleteFat_IDArr(query) { + return request({ + url: '/yunze/CwglFirm/deletefatidarr', + method: 'post', + data: query + }) +} + +// 单独 查询 公司名称 +export function CompanyName(query) { + return request({ + url: '/yunze/CwglFirm/companyname', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/CWGL/remittance/remittance.js b/yunze-ui/src/api/yunze/CWGL/remittance/remittance.js new file mode 100644 index 0000000..76617c1 --- /dev/null +++ b/yunze-ui/src/api/yunze/CWGL/remittance/remittance.js @@ -0,0 +1,84 @@ +import request from '@/utils/request' + + +// 入款记录 列表 +export function listRemittance(query) { + return request({ + url: '/yunze/remittance/list', + method: 'post', + data: query + }) +} +// 新增 入款信息 +export function AddRemittance(query) { + return request({ + url: '/yunze/remittance/addIncome', + method: 'post', + data: query + }) +} + +// 查询 入款信息详情表 +export function SleIncome(query) { + return request({ + url: '/yunze/remittance/slefind', + method: 'post', + data: query + }) +} +// 新增 入款信息详情表 +export function AddIncome(query) { + return request({ + url: '/yunze/remittance/addfind', + method: 'post', + data: query + }) +} +// 删除 入款信息详情表 +export function DeleteIncome(query) { + return request({ + url: '/yunze/remittance/deletefind', + method: 'post', + data: query + }) +} +// 查询本年入款总计和为入款 +export function TotalfortIncome(query) { + return request({ + url: '/yunze/remittance/Totalfortheyear', + method: 'post', + data: query + }) +} +// 详情数据查看 +export function DeteilsIncome(query) { + return request({ + url: '/yunze/remittance/sledeteils', + method: 'post', + data: query + }) +} +// 查询月款总计和为入款 +export function AmountOfMoneyList(query) { + return request({ + url: '/yunze/remittance/amountofmoney', + method: 'post', + data: query + }) +} +// 入款信息导出 +export function ExportRemittance(map) { + return request({ + url: '/yunze/remittance/ExportRemittance', + method: 'post', + data: map + }) +} +// 入款详情导出 +export function ExportIncome(map) { + return request({ + url: '/yunze/remittance/ExportIncome', + method: 'post', + data: map + }) +} diff --git a/yunze-ui/src/api/yunze/FHGL/ExpressInquiry.js b/yunze-ui/src/api/yunze/FHGL/ExpressInquiry.js new file mode 100644 index 0000000..b186d9f --- /dev/null +++ b/yunze-ui/src/api/yunze/FHGL/ExpressInquiry.js @@ -0,0 +1,34 @@ +import request from '@/utils/request' +import { praseStrEmpty } from "@/utils/ruoyi"; + + +// 快递查询 列表 +export function getList(query) { + return request({ + url: '/yunze/ExpressInquiry/list', + method: 'post', + data: query + }) +} + + +// 快递查询 详情 +export function FindInfo(query) { + return request({ + url: '/yunze/ExpressInquiry/FindInfo', + method: 'post', + data: query + }) +} + + +// 快递查询 修改 +export function UpdInfo(query) { + return request({ + url: '/yunze/ExpressInquiry/UpdInfo', + method: 'post', + data: query + }) +} + + diff --git a/yunze-ui/src/api/yunze/FHGL/FhglExpressDelivery.js b/yunze-ui/src/api/yunze/FHGL/FhglExpressDelivery.js new file mode 100644 index 0000000..6d50fa4 --- /dev/null +++ b/yunze-ui/src/api/yunze/FHGL/FhglExpressDelivery.js @@ -0,0 +1,25 @@ +import request from '@/utils/request' +import { praseStrEmpty } from "@/utils/ruoyi"; + + +// 快递公司信息 列表 +export function getList(query) { + return request({ + url: '/yunze/ExpressDelivery/list', + method: 'post', + data: query + }) +} + + +// 查询快递公司简要信息 +export function ExpressSelDate(query) { + return request({ + url: '/yunze/ExpressDelivery/sel_date', + method: 'post', + data: query + }) +} + + + diff --git a/yunze-ui/src/api/yunze/FHGL/FhglShippingApplication.js b/yunze-ui/src/api/yunze/FHGL/FhglShippingApplication.js new file mode 100644 index 0000000..218c9f0 --- /dev/null +++ b/yunze-ui/src/api/yunze/FHGL/FhglShippingApplication.js @@ -0,0 +1,99 @@ +import request from '@/utils/request' + + +// 订单合同发货 列表 +export function getList(query) { + return request({ + url: '/yunze/ShippingApplication/list', + method: 'post', + data: query + }) +} + + +// 发货申请 新增 +export function add(query) { + return request({ + url: '/yunze/ShippingApplication/add', + method: 'post', + data: query + }) +} + + +// 查询商品已发货数量 +export function getQuantityShipped(query) { + return request({ + url: '/yunze/ShippingApplication/sel_SUM_Sent_Quantity', + method: 'post', + data: query + }) +} + +// 发货申请查询 合同 数据 +export function findContractData(query) { + return request({ + url: '/yunze/XsglContract/find_FH_data', + method: 'post', + data: query + }) +} + + +// 查询 发货申请详情 +export function findData(query) { + return request({ + url: '/yunze/ShippingApplication/findData', + method: 'post', + data: query + }) +} + +// 修改 发货申请 +export function Updinfo(query) { + return request({ + url: '/yunze/ShippingApplication/Updinfo', + method: 'post', + data: query + }) +} + +// 删除 发货申请 +export function DelInfo(query) { + return request({ + url: '/yunze/ShippingApplication/DelInfo', + method: 'post', + data: query + }) +} + + +// 新增 发货登记 +export function Register(query) { + return request({ + url: '/yunze/ExpressInquiry/Register', + method: 'post', + data: query + }) +} + +// 查询 单号 +export function OddNumbers(query) { + return request({ + url: '/yunze/ShippingApplication/oddNumbers', + method: 'post', + data: query + }) +} + + +// 查询 出库 合同发货 && 普通发货 +export function findOut(query) { + return request({ + url: '/yunze/ShippingApplication/findOut', + method: 'post', + data: query + }) +} + + diff --git a/yunze-ui/src/api/yunze/FHGL/OrderDelivery/OrderDelivery.js b/yunze-ui/src/api/yunze/FHGL/OrderDelivery/OrderDelivery.js new file mode 100644 index 0000000..320f0cc --- /dev/null +++ b/yunze-ui/src/api/yunze/FHGL/OrderDelivery/OrderDelivery.js @@ -0,0 +1,36 @@ +import request from '@/utils/request' +import { praseStrEmpty } from "@/utils/ruoyi"; + + +// 订单合同发货 列表 +export function getList(query) { + return request({ + url: '/yunze/FhglOrderDelivery/list', + method: 'post', + data: query + }) +} + + + + + +// 查询未完成的销售合同ID +export function getUndoneContract(query) { + return request({ + url: '/yunze/FhglOrderDelivery/sel_CT_ID', + method: 'post', + data: query + }) +} + +// 合同发货信息 ID +export function getODYContractID(query) { + return request({ + url: '/yunze/FhglOrderDelivery/Sle_ODYContractID', + method: 'post', + data: query + }) +} + + diff --git a/yunze-ui/src/api/yunze/XSGL/Contract/Contract.js b/yunze-ui/src/api/yunze/XSGL/Contract/Contract.js new file mode 100644 index 0000000..b66b129 --- /dev/null +++ b/yunze-ui/src/api/yunze/XSGL/Contract/Contract.js @@ -0,0 +1,45 @@ +import request from '@/utils/request' +import { praseStrEmpty } from "@/utils/ruoyi"; + + +// 销售合同 列表 +export function getList(query) { + return request({ + url: '/yunze/XsglContract/list', + method: 'post', + data: query + }) +} + +// 销售合同 新增 +export function add(query) { + return request({ + url: '/yunze/XsglContract/add', + method: 'post', + data: query + }) +} + +// 销售合同 查询单条 +export function find(query) { + return request({ + url: '/yunze/XsglContract/find', + method: 'post', + data: query + }) +} + +// 销售合同 修改 +export function upd(query) { + return request({ + url: '/yunze/XsglContract/upd', + method: 'post', + data: query + }) +} + + + + + + diff --git a/yunze-ui/src/api/yunze/XSGL/CustomerContact/CustomerContact.js b/yunze-ui/src/api/yunze/XSGL/CustomerContact/CustomerContact.js new file mode 100644 index 0000000..3cabcf0 --- /dev/null +++ b/yunze-ui/src/api/yunze/XSGL/CustomerContact/CustomerContact.js @@ -0,0 +1,45 @@ +import request from '@/utils/request' + +// 客户联系记录 新增 +export function NewCustomerAdd(query) { + return request({ + url: '/yunze/CustomerContact/NewCustomer', + method: 'post', + data: query + }) +} +// 客户联系记录 主表 +export function getList(query) { + return request({ + url: '/yunze/CustomerContact/list', + method: 'post', + data: query + }) +} + +// 删除 客户联系记录 +export function DeleteID(query) { + return request({ + url: '/yunze/CustomerContact/delId', + method: 'post', + data: query + }) +} + +// 修改 客户联系记录 +export function UpdateId(query) { + return request({ + url: '/yunze/CustomerContact/updateId', + method: 'post', + data: query + }) +} + +// 赋值 企业名称 管理员 +export function AssignmentID(query) { + return request({ + url: '/yunze/CustomerContact/assignment', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/XSGL/customer/customer.js b/yunze-ui/src/api/yunze/XSGL/customer/customer.js new file mode 100644 index 0000000..db4a432 --- /dev/null +++ b/yunze-ui/src/api/yunze/XSGL/customer/customer.js @@ -0,0 +1,218 @@ +import request from '@/utils/request' +import { praseStrEmpty } from "@/utils/ruoyi"; + + +// 客户信息 列表 +export function getList(query) { + return request({ + url: '/yunze/XsglCustomer/list', + method: 'post', + data: query + }) +} + +// 客户信息 新增 +export function add(query) { + return request({ + url: '/yunze/XsglCustomer/add', + method: 'post', + data: query + }) +} + +// 客户信息 查询单条 +export function find(query) { + return request({ + url: '/yunze/XsglCustomer/find', + method: 'post', + data: query + }) +} + +// 客户信息 修改 +export function upd(query) { + return request({ + url: '/yunze/XsglCustomer/upd', + method: 'post', + data: query + }) +} + + +// 客户信息 高级修改 +export function updInfo(query) { + return request({ + url: '/yunze/XsglCustomer/updInfo', + method: 'post', + data: query + }) +} + + +// 查询所属客户 合伙人 +export function findSalesPartner(query) { + return request({ + url: '/yunze/XsglCustomer/findSalesPartner', + method: 'post', + data: query + }) +} + + + +// 查询 总管理 或 非总管理 下 客户 +export function CustomerDividefind(query) { + return request({ + url: '/yunze/XsglCustomer/CustomerDividefind', + method: 'post', + data: query + }) +} + + + +// 划分 客户 +export function CustomerDivide(query) { + return request({ + url: '/yunze/XsglCustomer/CustomerDivide', + method: 'post', + data: query + }) +} + + +// 费率设置 客户 +export function CustomerRate(query) { + return request({ + url: '/yunze/XsglCustomer/CustomerRate', + method: 'post', + data: query + }) +} + + + +// 客户 简要信息查询 +export function findCustomerArr(query) { + return request({ + url: '/yunze/XsglCustomer/findCustomerArr', + method: 'post', + data: query + }) +} + +// 查询 客户地址简要信息 +export function fnidAccountArr(query) { + return request({ + url: '/yunze/XsglCustomer/fnidAccountArr', + method: 'post', + data: query + }) +} + +// 查询 简要联系人信息 +export function fnidPeopleArr(query) { + return request({ + url: '/yunze/XsglCustomer/fnidPeopleArr', + method: 'post', + data: query + }) +} + +// 联系人 编辑 +export function ContactsList(query) { + return request({ + url: '/yunze/XsglCustomer/contacts', + method: 'post', + data: query + }) +} + +// 查询 客户 加载图片信息 +export function urlPictureArr(query) { + return request({ + url: '/yunze/XsglCustomer/urlPicture', + method: 'post', + data: query + }) +} + +// 查询 客户图片列表 +export function contactsListA(query) { + return request({ + url: '/yunze/XsglCustomer/contactsList', + method: 'post', + data: query + }) +} + + +// 删除单个图片 +export function DeleSingle(query) { + return request({ + url: '/yunze/XsglCustomer/single', + method: 'post', + data: query + }) +} + + +// 修改 图片状态 无效 +export function UpdStatus(query) { + return request({ + url: '/yunze/XsglCustomer/switchStatus', + method: 'post', + data: query + }) +} + +// 修改 图片状态 有效 +export function EffectiveStatus(query) { + return request({ + url: '/yunze/XsglCustomer/effective', + method: 'post', + data: query + }) +} + +// 查询 联系人图片列表 +export function LiaisonList(query) { + return request({ + url: '/yunze/XsglCustomer/liaison', + method: 'post', + data: query + }) +} + +// 删除联系人单个图片 +export function Deurl(query) { + return request({ + url: '/yunze/XsglCustomer/deurl', + method: 'post', + data: query + }) +} + +// 修改 联系人 无效状态 +export function Invalid(query) { + return request({ + url: '/yunze/XsglCustomer/invalid', + method: 'post', + data: query + }) +} + +// 修改 联系人 有效状态 +export function Effectivesta(query) { + return request({ + url: '/yunze/XsglCustomer/effectivesta', + method: 'post', + data: query + }) +} + + + + + + diff --git a/yunze-ui/src/api/yunze/flowcard/TariffGroup.js b/yunze-ui/src/api/yunze/flowcard/TariffGroup.js index 6c21269..f064e6d 100644 --- a/yunze-ui/src/api/yunze/flowcard/TariffGroup.js +++ b/yunze-ui/src/api/yunze/flowcard/TariffGroup.js @@ -66,3 +66,22 @@ export function channelName(query) { data: query }) } + +// 导出 +export function exporttariffGroup(query) { + return request({ + url: '/yunze/tariffGroup/export', + method: 'post', + data: query + }) +} + + +// 导出 +export function exportPacket(query) { + return request({ + url: '/yunze/tariffGroup/exportPacket', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/flowcard/TariffPlan.js b/yunze-ui/src/api/yunze/flowcard/TariffPlan.js index ae7c74f..a3f826e 100644 --- a/yunze-ui/src/api/yunze/flowcard/TariffPlan.js +++ b/yunze-ui/src/api/yunze/flowcard/TariffPlan.js @@ -11,9 +11,6 @@ export function AddtariffPlan(query) { }) } - - - // 详情 资费计划 export function findTariffPlan(query) { return request({ @@ -31,3 +28,5 @@ export function editTariffPlan(query) { data: query }) } + + diff --git a/yunze-ui/src/api/yunze/flowcard/agentTariffGroup.js b/yunze-ui/src/api/yunze/flowcard/agentTariffGroup.js index 76e43c1..6b90388 100644 --- a/yunze-ui/src/api/yunze/flowcard/agentTariffGroup.js +++ b/yunze-ui/src/api/yunze/flowcard/agentTariffGroup.js @@ -39,4 +39,35 @@ export function editagentTariffGroup(query) { }) } +// 导出 +export function exporttariffGroup(query) { + return request({ + url: '/yunze/agentTariffGroup/export', + method: 'post', + data: query + }) +} + + +// 续费查询 +export function findToBR(query) { + return request({ + url: '/yunze/tariffPlan/findToBR', + method: 'post', + data: query + }) +} + + + + + +// 导出 +export function exportPacket(query) { + return request({ + url: '/yunze/agentTariffGroup/exportPacket', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/flowcard/bulk/batchBusiness.js b/yunze-ui/src/api/yunze/flowcard/bulk/batchBusiness.js new file mode 100644 index 0000000..f6acb27 --- /dev/null +++ b/yunze-ui/src/api/yunze/flowcard/bulk/batchBusiness.js @@ -0,0 +1,11 @@ +import request from '@/utils/request' + +// 批量业务受理 查询 +export function getListArr(query) { + return request({ + url: '/yunze/business/list', + method: 'post', + data: query + }) +} + diff --git a/yunze-ui/src/api/yunze/flowcard/bulk/businessDetails.js b/yunze-ui/src/api/yunze/flowcard/bulk/businessDetails.js new file mode 100644 index 0000000..0527137 --- /dev/null +++ b/yunze-ui/src/api/yunze/flowcard/bulk/businessDetails.js @@ -0,0 +1,28 @@ +import request from '@/utils/request' + +// 批量业务受理详情 查询 +export function getListArr(query) { + return request({ + url: '/yunze/businessDtails/list', + method: 'post', + data: query + }) +} + +// 查询 状态为 成功 +export function successArr(query) { + return request({ + url: '/yunze/businessDtails/success', + method: 'post', + data: query + }) +} + +// 导出 +export function exportExport(query) { + return request({ + url: '/yunze/businessDtails/export', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/flowcard/bulk/smsbatchBusiness.js b/yunze-ui/src/api/yunze/flowcard/bulk/smsbatchBusiness.js new file mode 100644 index 0000000..4705770 --- /dev/null +++ b/yunze-ui/src/api/yunze/flowcard/bulk/smsbatchBusiness.js @@ -0,0 +1,11 @@ +import request from '@/utils/request' + +// 批量业务受理 查询 +export function getListArr(query) { + return request({ + url: '/yunze/smsbusiness/list', + method: 'post', + data: query + }) +} + diff --git a/yunze-ui/src/api/yunze/flowcard/bulk/smsbusinessDetails.js b/yunze-ui/src/api/yunze/flowcard/bulk/smsbusinessDetails.js new file mode 100644 index 0000000..cbcc732 --- /dev/null +++ b/yunze-ui/src/api/yunze/flowcard/bulk/smsbusinessDetails.js @@ -0,0 +1,28 @@ +import request from '@/utils/request' + +// 批量业务受理详情 查询 +export function getListArr(query) { + return request({ + url: '/yunze/smsbusinessDtails/list', + method: 'post', + data: query + }) +} + +// 查询 状态为 成功 +export function successArr(query) { + return request({ + url: '/yunze/smsbusinessDtails/success', + method: 'post', + data: query + }) +} + +// 导出 +export function exportExport(query) { + return request({ + url: '/yunze/smsbusinessDtails/export', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/flowcard/card/card.js b/yunze-ui/src/api/yunze/flowcard/card/card.js index 39ff682..963c8b0 100644 --- a/yunze-ui/src/api/yunze/flowcard/card/card.js +++ b/yunze-ui/src/api/yunze/flowcard/card/card.js @@ -240,6 +240,14 @@ export function ConsumptionAndStateArr(map) { }) } +// 灵活变更卡状态 +export function FlexibleState(map) { + return request({ + url: '/yunze/card/fbestate', + method: 'post', + data: map + }) +} // 获取iccid @@ -252,9 +260,6 @@ export function getIccid(map) { } - - - // 智能匹对 export function cardMatch(map) { return request({ @@ -339,19 +344,62 @@ export function ReminderArr(map) { }) } - - - - - - - - - - - - - +// 单卡同步用量和状态 +export function CardInfoFlow(map) { + return request({ + url: '/yunze/card/InfoFlow', + method: 'post', + data: map + }) +} + +// 单卡 修改 备注 分组 +export function singleCardInfo(map) { + return request({ + url: '/yunze/card/singleUpd', + method: 'post', + data: map + }) +} + +// 单卡 灵活变更状态 +export function singFlexibleState(map) { + return request({ + url: '/yunze/card/singleState', + method: 'post', + data: map + }) +} + +// 卡详情界面 获取 订单信息 +export function getOrderCard(map) { + return request({ + url: '/yunze/card/getOrderCard', + method: 'post', + data: map + }) +} + + +// 上游订购套餐查询 +export function queryOffering(map) { + return request({ + url: '/yunze/card/queryOffering', + method: 'post', + data: map + }) +} + + + +// 证所属卡号 是否在名下 +export function verifyBelonging(map) { + return request({ + url: '/yunze/card/verifyBelonging', + method: 'post', + data: map + }) +} diff --git a/yunze-ui/src/api/yunze/flowcard/card/change.js b/yunze-ui/src/api/yunze/flowcard/card/change.js index d9b9ba2..f087422 100644 --- a/yunze-ui/src/api/yunze/flowcard/card/change.js +++ b/yunze-ui/src/api/yunze/flowcard/card/change.js @@ -15,3 +15,11 @@ export function getselTime(query) { data: query }) } + +export function operatorName(query) { + return request({ + url: '/yunze/cardRoute/operator', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/flowcard/rechargeTariff.js b/yunze-ui/src/api/yunze/flowcard/rechargeTariff.js index 7876002..5213e2d 100644 --- a/yunze-ui/src/api/yunze/flowcard/rechargeTariff.js +++ b/yunze-ui/src/api/yunze/flowcard/rechargeTariff.js @@ -1,8 +1,5 @@ import request from '@/utils/request' - - - // 查询单条 资费计划 简要 export function FindPacket(query) { return request({ diff --git a/yunze-ui/src/api/yunze/flowcard/renewal.js b/yunze-ui/src/api/yunze/flowcard/renewal.js new file mode 100644 index 0000000..ac07277 --- /dev/null +++ b/yunze-ui/src/api/yunze/flowcard/renewal.js @@ -0,0 +1,57 @@ +import request from '@/utils/request' + +// 续费申请 查询 +export function listRenewal(query) { + return request({ + url: '/yunze/renewal/list', + method: 'post', + data: query + }) +} + +// 续费申请 新增 +export function saveRenewal(query) { + return request({ + url: '/yunze/renewal/save', + method: 'post', + data: query + }) +} + +// 续费申请 修改 +export function updRenewal(query) { + return request({ + url: '/yunze/renewal/upd', + method: 'post', + data: query + }) +} + +// 查询 企业账户账户金额信息 +export function getDeptPrestore(query) { + return request({ + url: '/yunze/renewal/getDeptPrestore', + method: 'post', + data: query + }) +} + + + +// 查询 企业账户账户金额信息 +export function findInfo(query) { + return request({ + url: '/yunze/renewal/find', + method: 'post', + data: query + }) +} + +// 查询 企业账户账户金额信息 +export function findIccid(query) { + return request({ + url: '/yunze/renewal/findIccid', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/install/PlaceFloor.js b/yunze-ui/src/api/yunze/install/PlaceFloor.js new file mode 100644 index 0000000..32eaf2f --- /dev/null +++ b/yunze-ui/src/api/yunze/install/PlaceFloor.js @@ -0,0 +1,51 @@ +import request from '@/utils/request' + +// 查询建筑物管理 +export function listPlaceFloor(query) { + return request({ + url: '/yunze/placefloor/list', + method: 'post', + data: query + }) +} + +// 查询建筑物名称 +export function buildingName() { + return request({ + url: '/yunze/placefloor/libigst', + method: 'post', + }) +} +// 新增 +export function AddPlaceFloor(query) { + return request({ + url: '/yunze/placefloor/add', + method: 'post', + data: query + }) +} +// 修改 +export function UpdPlaceFloor(query) { + return request({ + url: '/yunze/placefloor/upd', + method: 'post', + data: query + }) +} +// 删除 +export function deletePfr(query) { + return request({ + url: '/yunze/placefloor/del', + method: 'post', + data: query + }) +} + +// 查询 楼层是否重复 +export function FloorPlaceFloor(query) { + return request({ + url: '/yunze/placefloor/floor', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/install/equipment.js b/yunze-ui/src/api/yunze/install/equipment.js new file mode 100644 index 0000000..6c050da --- /dev/null +++ b/yunze-ui/src/api/yunze/install/equipment.js @@ -0,0 +1,72 @@ +import request from '@/utils/request' + +// 查询设备管理 +export function listEquipment(query) { + return request({ + url: '/yunze/equipment/list', + method: 'post', + data: query + }) +} + +// +export function SelAddKey(query) { + return request({ + url: '/yunze/equipment/selAdd', + method: 'post', + data: query + }) +} +// 查询dept_id 下的建筑物 +export function SleBuildingAdd(query) { + return request({ + url: '/yunze/equipment/selBuilding', + method: 'post', + data: query + }) +} + +// 查询建筑物楼层 +export function SleSleFloorAdd(query) { + return request({ + url: '/yunze/equipment/selFllor', + method: 'post', + data: query + }) +} + +// 查询接警联系人 +export function SlesleAlarmAdd(query) { + return request({ + url: '/yunze/equipment/sleAlarm', + method: 'post', + data: query + }) +} + +// 新增安装点 +export function AddEquipment(query) { + return request({ + url: '/yunze/equipment/add', + method: 'post', + data: query + }) +} + +// 查询住户资料 +export function SleHouseholdAdd(query) { + return request({ + url: '/yunze/equipment/household', + method: 'post', + data: query + }) +} + + + + + + + + + diff --git a/yunze-ui/src/api/yunze/install/installpoint.js b/yunze-ui/src/api/yunze/install/installpoint.js new file mode 100644 index 0000000..62c22d9 --- /dev/null +++ b/yunze-ui/src/api/yunze/install/installpoint.js @@ -0,0 +1,19 @@ +import request from '@/utils/request' + +// 查询安装点管理 +export function listInstalLpoint(query) { + return request({ + url: '/yunze/installpoint/list', + method: 'post', + data: query + }) +} + +// 查询 IMEI 进行文本框赋值 +export function SelIMEI(query) { + return request({ + url: '/yunze/installpoint/selimei', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/install/linkman.js b/yunze-ui/src/api/yunze/install/linkman.js new file mode 100644 index 0000000..595d4b8 --- /dev/null +++ b/yunze-ui/src/api/yunze/install/linkman.js @@ -0,0 +1,47 @@ +import request from '@/utils/request' + +// 查询按警联系人列表 +export function listLinkman(query) { + return request({ + url: '/yunze/linkman/list', + method: 'post', + data: query + }) +} + +// 查询按警联系人列表 +export function AddLinkman(query) { + return request({ + url: '/yunze/linkman/add', + method: 'post', + data: query + }) +} + +// 查询手机号是否存在 +export function PhoneLinkman(query) { + return request({ + url: '/yunze/linkman/phone', + method: 'post', + data: query + }) +} + +// 删除 +export function deleteKman(query) { + return request({ + url: '/yunze/linkman/del', + method: 'post', + data: query + }) +} + +// 修改 +export function UpdLinkman(query) { + return request({ + url: '/yunze/linkman/upd', + method: 'post', + data: query + }) +} + diff --git a/yunze-ui/src/api/yunze/install/placemanage.js b/yunze-ui/src/api/yunze/install/placemanage.js new file mode 100644 index 0000000..655b0c1 --- /dev/null +++ b/yunze-ui/src/api/yunze/install/placemanage.js @@ -0,0 +1,38 @@ +import request from '@/utils/request' + +// 查询建筑物管理 +export function listPlacemanage(query) { + return request({ + url: '/yunze/placemanage/list', + method: 'post', + data: query + }) +} + +// 新增 +export function AddPlacemanage(query) { + return request({ + url: '/yunze/placemanage/add', + method: 'post', + data: query + }) +} + +// 删除 +export function deletePae(query) { + return request({ + url: '/yunze/placemanage/del', + method: 'post', + data: query + }) +} + +// 修改 +export function UpdPlacemanage(query) { + return request({ + url: '/yunze/placemanage/upd', + method: 'post', + data: query + }) +} + diff --git a/yunze-ui/src/api/yunze/install/possessor.js b/yunze-ui/src/api/yunze/install/possessor.js new file mode 100644 index 0000000..84cb432 --- /dev/null +++ b/yunze-ui/src/api/yunze/install/possessor.js @@ -0,0 +1,45 @@ +import request from '@/utils/request' + +// 查询住户资料管理 +export function listPossessor(query) { + return request({ + url: '/yunze/possessor/list', + method: 'post', + data: query + }) +} + +// 新增住户资料管理 +export function AddPossessor(query) { + return request({ + url: '/yunze/possessor/add', + method: 'post', + data: query + }) +} +// 删除住户资料管理 +export function deletePsr(query) { + return request({ + url: '/yunze/possessor/del', + method: 'post', + data: query + }) +} +// 修改住户资料管理 +export function UpdPossessor(query) { + return request({ + url: '/yunze/possessor/upd', + method: 'post', + data: query + }) +} + +// 查询手机号是否存在 +export function PhonePossessor(query) { + return request({ + url: '/yunze/possessor/phone', + method: 'post', + data: query + }) +} + diff --git a/yunze-ui/src/api/yunze/order/order.js b/yunze-ui/src/api/yunze/order/order.js index b89eeb9..88bca6f 100644 --- a/yunze-ui/src/api/yunze/order/order.js +++ b/yunze-ui/src/api/yunze/order/order.js @@ -66,6 +66,52 @@ export function Shoppingexport(query) { }) } +// 退订 不操作 下面的内容 +export function NoTbscribe(query) { + return request({ + url: '/yunze/order/nobscribe', + method: 'post', + data: query + }) +} + + +// 勾选执行加包时间 +export function AddpackageTime(query) { + return request({ + url: '/yunze/order/package', + method: 'post', + data: query + }) +} + +// 平台充值 [文本域]操作 +export function TextRecharge(query) { + return request({ + url: '/yunze/order/TextRecharge', + method: 'post', + data: query + }) +} + +// 企业充值 [文本域]操作 +export function DeptTextRecharge(query) { + return request({ + url: '/yunze/order/DeptTextRecharge', + method: 'post', + data: query + }) +} + + +// 查询已充值的卡号数据 +export function findRecharged(query) { + return request({ + url: '/yunze/order/findRecharged', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/system/index.js b/yunze-ui/src/api/yunze/system/index.js index e741642..53e8c7d 100644 --- a/yunze-ui/src/api/yunze/system/index.js +++ b/yunze-ui/src/api/yunze/system/index.js @@ -9,3 +9,11 @@ export function findToDay(query) { }) } +// 资产明细统计图 +export function AssetDetails(query) { + return request({ + url: '/yunze/index/assetDetails', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/system/mySysDept.js b/yunze-ui/src/api/yunze/system/mySysDept.js index d36a845..d1842c4 100644 --- a/yunze-ui/src/api/yunze/system/mySysDept.js +++ b/yunze-ui/src/api/yunze/system/mySysDept.js @@ -29,3 +29,23 @@ export function initiatePreSave(query) { data: query }) } + + + +// 企业预存 【平台操作】 +export function sysPreSaved(query) { + return request({ + url: '/yunze/MySysDept/sysPreSaved', + method: 'post', + data: query + }) +} + +// 预存抵扣 【平台操作】 +export function sysDeduct(query) { + return request({ + url: '/yunze/MySysDept/sysDeduct', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/warehouse/Inout.js b/yunze-ui/src/api/yunze/warehouse/Inout.js new file mode 100644 index 0000000..3ec82fc --- /dev/null +++ b/yunze-ui/src/api/yunze/warehouse/Inout.js @@ -0,0 +1,42 @@ +import request from '@/utils/request' + +// 商品多选框查询 +export function Commodity(query) { + return request({ + url: '/yunze/commodity/list', + method: 'post', + data: query + }) +} +// 载入查询 +export function Queryloading(query) { + return request({ + url: '/yunze/commodity/queryloading', + method: 'post', + data: query + }) +} +// 查询列表 +export function listStorage(query) { + return request({ + url: '/yunze/Warehousing/liststorage', + method: 'post', + data: query + }) +} + +// 查询列表 +export function DetailedID(query) { + return request({ + url: '/yunze/Warehousing/detailed', + method: 'post', + data: query + }) +} +// 下载模板 +export function importTemplate() { + return request({ + url: '/yunze/Warehousing/importTemplate', + method: 'get' + }) +} diff --git a/yunze-ui/src/api/yunze/warehouse/InventoryList.js b/yunze-ui/src/api/yunze/warehouse/InventoryList.js new file mode 100644 index 0000000..cf1a47e --- /dev/null +++ b/yunze-ui/src/api/yunze/warehouse/InventoryList.js @@ -0,0 +1,20 @@ +import request from '@/utils/request' + +// 查询 +export function findlist(query) { + return request({ + url: '/yunze/InventoryList/list', + method: 'post', + data: query + }) +} + +// 修改 +export function updInfo(query) { + return request({ + url: '/yunze/InventoryList/upd', + method: 'post', + data: query + }) +} + diff --git a/yunze-ui/src/api/yunze/warehouse/Inventorydetails.js b/yunze-ui/src/api/yunze/warehouse/Inventorydetails.js new file mode 100644 index 0000000..a07a193 --- /dev/null +++ b/yunze-ui/src/api/yunze/warehouse/Inventorydetails.js @@ -0,0 +1,37 @@ +import request from '@/utils/request' + +// 查询列表 +export function Inventorydetails(query) { + return request({ + url: '/yunze/inventorydetails/list', + method: 'post', + data: query + }) +} + +// 库存明细 +export function ExportInventorydetails(map) { + return request({ + url: '/yunze/inventorydetails/Exportdetails', + method: 'post', + data: map + }) +} + +// 实现导入至卡信息 +export function ImportCardInfo(query) { + return request({ + url: '/yunze/inventorydetails/cardInfo', + method: 'post', + data: query + }) +} + +// 实现 划分功能 +export function DivideCard(query) { + return request({ + url: '/yunze/inventorydetails/cardDivide', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/api/yunze/warehouse/outku.js b/yunze-ui/src/api/yunze/warehouse/outku.js new file mode 100644 index 0000000..b828079 --- /dev/null +++ b/yunze-ui/src/api/yunze/warehouse/outku.js @@ -0,0 +1,19 @@ +import request from '@/utils/request' + +// 查询列表 +export function listOutku(query) { + return request({ + url: '/yunze/output/listoutku', + method: 'post', + data: query + }) +} + +// 新增出库信息 +export function OutofWarehouse(query) { + return request({ + url: '/yunze/output/outofWarehouse', + method: 'post', + data: query + }) +} diff --git a/yunze-ui/src/assets/icons/svg/finalPayment.svg b/yunze-ui/src/assets/icons/svg/finalPayment.svg new file mode 100644 index 0000000..94432da --- /dev/null +++ b/yunze-ui/src/assets/icons/svg/finalPayment.svg @@ -0,0 +1 @@ + diff --git a/yunze-ui/src/assets/icons/svg/notPaid.svg b/yunze-ui/src/assets/icons/svg/notPaid.svg new file mode 100644 index 0000000..13ce4ad --- /dev/null +++ b/yunze-ui/src/assets/icons/svg/notPaid.svg @@ -0,0 +1 @@ + diff --git a/yunze-ui/src/assets/icons/svg/pendingReceipt.svg b/yunze-ui/src/assets/icons/svg/pendingReceipt.svg new file mode 100644 index 0000000..178cbb9 --- /dev/null +++ b/yunze-ui/src/assets/icons/svg/pendingReceipt.svg @@ -0,0 +1 @@ + diff --git a/yunze-ui/src/assets/icons/svg/renewal.svg b/yunze-ui/src/assets/icons/svg/renewal.svg new file mode 100644 index 0000000..8521613 --- /dev/null +++ b/yunze-ui/src/assets/icons/svg/renewal.svg @@ -0,0 +1 @@ + diff --git a/yunze-ui/src/layout/components/Navbar.vue b/yunze-ui/src/layout/components/Navbar.vue index a8b8383..3cb1a92 100644 --- a/yunze-ui/src/layout/components/Navbar.vue +++ b/yunze-ui/src/layout/components/Navbar.vue @@ -20,9 +20,6 @@ - - - @@ -30,10 +27,14 @@ - + + + + + + - diff --git a/yunze-ui/src/permission.js b/yunze-ui/src/permission.js index 875153a..af95818 100644 --- a/yunze-ui/src/permission.js +++ b/yunze-ui/src/permission.js @@ -7,11 +7,11 @@ import { getToken } from '@/utils/auth' NProgress.configure({ showSpinner: false }) -const whiteList = ['/login', '/auth-redirect', '/bind', '/register', '/cardInfoSel'] +const whiteList = ['/login', '/auth-redirect', '/bind', '/register', '/cardInfoSel','/message'] router.beforeEach((to, from, next) => { NProgress.start() - //console.log(to) + // console.log(to) if (getToken()) { /* has token*/ if (to.path === '/login') { @@ -19,7 +19,11 @@ router.beforeEach((to, from, next) => { NProgress.done() }else if (to.path === '/cardInfoSel') { next() - }else { + }else if (to.path === '/message'){ + next({ path: '/' }) + NProgress.done() + } + else { if (store.getters.roles.length === 0) { // 判断当前用户是否已拉取完user_info信息 store.dispatch('GetInfo').then(() => { @@ -47,6 +51,8 @@ router.beforeEach((to, from, next) => { next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 NProgress.done() } + + } }) diff --git a/yunze-ui/src/router/index.js b/yunze-ui/src/router/index.js index 61838a6..fc76f92 100644 --- a/yunze-ui/src/router/index.js +++ b/yunze-ui/src/router/index.js @@ -6,7 +6,7 @@ Vue.use(Router) /* Layout */ import Layout from '@/layout' import ParentView from '@/components/ParentView'; - +9 /** * Note: 路由配置项 * @@ -129,7 +129,6 @@ export const constantRoutes = [ - { path: '/commodity', component: Layout, @@ -179,6 +178,12 @@ export const constantRoutes = [ name: 'executionTask', meta: { title: '执行日志', icon: '' } }, + { + path: 'batchBusiness/:TaskId(.*)', + component: (resolve) => require(['@/views/yunze/flowcard/batchBusiness/index'], resolve), + name: 'batchBusiness', + meta: { title: '批量业务受理', icon: '' } + }, { path: 'cardSetting', component: (resolve) => require(['@/views/yunze/flowcard/cardSetting/index'], resolve), @@ -213,15 +218,18 @@ export const constantRoutes = [ name: 'Channel', meta: { title: '物联卡通道', icon: '' } }, + { + path: 'applicationforRenewal/:Pstr(.*)', + component: (resolve) => require(['@/views/yunze/flowcard/applicationforRenewal/index'], resolve), + name: 'index', + meta: { title: '续费进度', icon: '' } + }, ] }, - - - /** * OrderShopping*/ { @@ -303,7 +311,8 @@ export const constantRoutes = [ component: (resolve) => require(['@/views/yunze/specialOperation/cardInfoReplace'], resolve), name: 'cardInfoReplace', meta: { title: '批量更新卡信息' } - } + }, + @@ -315,6 +324,8 @@ export const constantRoutes = [ + + { path: '/monitor', component: Layout, @@ -388,8 +399,6 @@ export const constantRoutes = [ - - { path: '/system', component: Layout, diff --git a/yunze-ui/src/utils/auth.js b/yunze-ui/src/utils/auth.js index 08a43d6..7dfcbfd 100644 --- a/yunze-ui/src/utils/auth.js +++ b/yunze-ui/src/utils/auth.js @@ -3,13 +3,15 @@ import Cookies from 'js-cookie' const TokenKey = 'Admin-Token' export function getToken() { - return Cookies.get(TokenKey) + let token = Cookies.get(TokenKey); + // console.log("getToken() = "+token); + return token; } export function setToken(token) { - return Cookies.set(TokenKey, token) + return Cookies.set(TokenKey, token); } export function removeToken() { - return Cookies.remove(TokenKey) + return Cookies.remove(TokenKey); } diff --git a/yunze-ui/src/utils/request.js b/yunze-ui/src/utils/request.js index 789a0d4..a918ead 100644 --- a/yunze-ui/src/utils/request.js +++ b/yunze-ui/src/utils/request.js @@ -97,6 +97,7 @@ service.interceptors.response.use(res => { duration: 5 * 1000 }) return Promise.reject(error) + } ) diff --git a/yunze-ui/src/utils/ruoyi.js b/yunze-ui/src/utils/ruoyi.js index ee70c96..34d5120 100644 --- a/yunze-ui/src/utils/ruoyi.js +++ b/yunze-ui/src/utils/ruoyi.js @@ -2,6 +2,7 @@ * 通用js方法封装处理 * Copyright (c) 2019 yunze */ +import fa from "element-ui/src/locale/lang/fa"; const baseURL = process.env.VUE_APP_BASE_API @@ -131,6 +132,7 @@ export function praseStrEmpty(str) { * @param {*} children 孩子节点字段 默认 'children' */ export function handleTree(data, id, parentId, children) { + let config = { id: id || 'id', parentId: parentId || 'parentId', @@ -159,11 +161,17 @@ export function handleTree(data, id, parentId, children) { for (let t of tree) { adaptToChildrenList(t); + } function adaptToChildrenList(o) { if (childrenListMap[o[config.id]] !== null) { o[config.childrenList] = childrenListMap[o[config.id]]; + if (o[config.childrenList] !== undefined) { + o["showChildren"] = true; + }else{ + o["showChildren"] = false; + } } if (o[config.childrenList]) { for (let c of o[config.childrenList]) { diff --git a/yunze-ui/src/utils/yunze/tools.js b/yunze-ui/src/utils/yunze/tools.js index 70d55a5..f3012ff 100644 --- a/yunze-ui/src/utils/yunze/tools.js +++ b/yunze-ui/src/utils/yunze/tools.js @@ -1,6 +1,6 @@ /** * 基于 VUE + Element 的常用 函数 封装 - * @Data 2020-12-12 ~ 至今 + * @Data 2021-12-12 ~ 至今 * @Author:root; * @mailbox:546558392@qq.com; */ @@ -432,7 +432,7 @@ tools.gitData = function () { let Seconds = myDate.getSeconds(); - return (year + '-' + p(month) + "-" + p(date) + "-" + p(Hours) + "-" + p(Minutes) + "-" + p(Seconds)); + return (year + '-' + p(month) + "-" + p(date) + " " + p(Hours) + ":" + p(Minutes) + ":" + p(Seconds)); } //----[获取当前日期 年 月 日 ] tools.gitDataCurrent = function () { @@ -1004,6 +1004,7 @@ tools.getPackageNNamekeyValue = function (arr, key) { /*获取 arr 中的匹对 keyVlue Rvalue 数据*/ tools.getkeyValue = function (arr, key, keyVlue, Rvalue) { + //console.log(arr); let value = ''; key = "" + key + ""; for (let i = 0; i < arr.length; i++) { @@ -1182,6 +1183,8 @@ tools.dateFormat = function (fmt, date) { } + + /** *推算月日期 * @param mothSize 推算月日期 如 获取 近三个月 日期 传入 3 @@ -1319,12 +1322,14 @@ tools.OpenView = function (_this, map, $URL, title, R_fn, area, btn, btnAlign, g //-----[传入数组,值判断这个值是否在这个数组中true:在False:不在][2018-12-14] tools.VerificationValIsArray = function (arr, val) { var bool = false; - for (let i = 0; i < arr.length; i++) { + /* for (let i = 0; i < arr.length; i++) { bool = arr[i] == val ? true : false; if (bool) { break; } - } + }*/ + bool = arr.indexOf(val)===-1?false:true; + return bool; } //-----[END][传入数组,值判断这个值是否在这个数组中] @@ -1398,4 +1403,45 @@ tools.copyThat = function (data, _this) { } +/** + * 打开新窗口 + * @param url + * @param target + */ +tools.windowOpen = function (url, target) { + window.open(url, target); +} + +/** + * 针对文本域 换行符切割 过滤前后空格获取数组 [不重复的数据] + * @param lets + */ +tools.textareaGetNotRepeating = function (vars){ + let rMap = {}; + let notArr = tools.textareaGet(vars); + let rArr = []; + for (let i = 0; i < notArr.length; i++) { + let notIccid = notArr[i]; + if(rArr.length>0){ + let bool = true; + for (let j = 0; j < rArr.length; j++) { + let iccid = rArr[j]; + if(notIccid!=iccid){ + rArr.push(notIccid); + break; + } + } + }else{ + rArr.push(notIccid); + } + } + rMap.rArr = rArr;//已过滤 后不重复数组 + rMap.notArr = notArr;//所有数组 + rMap.repeatCount = notArr!=null && notArr.length>0?tools.numSub(notArr.length,rArr.length):0;//重复号码 + return rMap; +} + + + + export default tools diff --git a/yunze-ui/src/views/Iotlinkindex.vue b/yunze-ui/src/views/Iotlinkindex.vue index e346c4c..126ca7a 100644 --- a/yunze-ui/src/views/Iotlinkindex.vue +++ b/yunze-ui/src/views/Iotlinkindex.vue @@ -98,9 +98,9 @@

    文档: http://www.5iot.com/dochttp://doc.5iot.com

    @@ -113,6 +113,27 @@ + +
      +
    1. 新增 资费订单 退订且在此订购其他资费同时操作
    2. +
    3. 新增 企业预存、授信
    4. +
    5. 新增 企业可续费、可充值空套餐卡号
    6. +
    7. 新增 续费需通过审核通过后方可到账
    8. +
    9. 新增 上游资费信息同步
    10. +
    11. 新增 轮询错误数据记录、业务错误、非业务错误通知指定自动化配置邮箱
    12. +
    13. 新增 批量任务执行、可查看执行状态数据提供导出和下载上传源文件
    14. +
    15. 新增 微信端商品管理
    16. + + +
    17. 优化 卡详情界面UI
    18. +
    19. 优化 智能诊断界面UI
    20. +
    21. 优化 独立出定时任务执行程序避免因为定时任务占用主程序线程导致主程序卡顿
    22. +
    23. 优化 通道、平台资费、客户资费卡总数统计
    24. +
    25. 优化 新增 登录地址、账号、密码、是否正常、对接信息
    26. +
    27. 优化 关闭用量详情单独菜单点击进入 仅允许输入卡号查询
    28. +
    29. 优化 卡列表导出通道和运营信息写入
    30. +
    +
      @@ -186,8 +207,8 @@ data() { return { // 版本号 - version: "0.8.0", - activeName:'4', + version: "1.0.0", + activeName:'5', }; }, methods: { diff --git a/yunze-ui/src/views/dashboard/LineChart.vue b/yunze-ui/src/views/dashboard/LineChart.vue index b47b208..caab4e1 100644 --- a/yunze-ui/src/views/dashboard/LineChart.vue +++ b/yunze-ui/src/views/dashboard/LineChart.vue @@ -68,6 +68,12 @@ export default { }, setOptions(chartData) { + // console.log(this.P_xAxis); + // console.log(this.P_colorArr); + // console.log(this.P_ShowLable); + // console.log(this.CardFlow_config); + // console.log(this.chartData) + let series_data = []; let legend_data = []; diff --git a/yunze-ui/src/views/dashboard/PieChart.vue b/yunze-ui/src/views/dashboard/PieChart.vue index e1e807b..967d804 100644 --- a/yunze-ui/src/views/dashboard/PieChart.vue +++ b/yunze-ui/src/views/dashboard/PieChart.vue @@ -46,6 +46,11 @@ export default { }, methods: { initChart() { + + // console.log(this.P_legend); + // console.log(this.P_series); + // console.log(this.P_color); + this.chart = echarts.init(this.$el, 'macarons') //初始化属性 let P_legend = this.P_legend; diff --git a/yunze-ui/src/views/index.vue b/yunze-ui/src/views/index.vue index 56d3982..72d5162 100644 --- a/yunze-ui/src/views/index.vue +++ b/yunze-ui/src/views/index.vue @@ -280,6 +280,88 @@ + + + +
      + +
      + +
      +
      +
      + 客户总数 +
      +
      + + + 个 +
      +
      +
      +
      +
      + +
      + +
      + +
      +
      +
      + 客户本月新增 +
      +
      + + + 个 +
      +
      +
      +
      +
      + +
      + +
      + +
      +
      +
      + 本月销售合同总数 +
      +
      + + + 份 +
      +
      +
      +
      +
      + +
      + +
      + +
      +
      +
      + 本月合同入款金额 +
      +
      + + + 元 +
      +
      +
      +
      +
      +
      + + @@ -459,462 +541,6 @@ - @@ -948,8 +574,6 @@ - -
    1. @@ -969,24 +593,27 @@
    2. + +
    3. + API使用 +
    4. +
      +
    5. 企业管理
    6. - -
    7. - 用户信息 -
    8. -
    9. 全部订单
    10. + + @@ -1006,10 +633,10 @@ import { list } from "@/api/monitor/online"; import tools from "@/utils/yunze/tools"; - import LineChart from './dashboard/LineChart' import PieChart from './dashboard/PieChart' import CountTo from 'vue-count-to' + import {AssetDetails} from "@/api/yunze/system/index"; export default { name: "index", @@ -1108,6 +735,7 @@ Pmap_getOrderSum:{}, Pmap_getOrderAmount:{}, Pmap_logInIp:{}, + }, }, businessVolumeVoice: {}, @@ -1230,11 +858,13 @@ // console.log(jsonobj); if (jsonobj.code == 200) { let data = jsonobj.Data.data; + // console.log(data) if (data != null && data != undefined) { this.indexpage = data; this.indexpage.onlineCount = 1; if (data.businessVolumeFlow != null) { let businessVolumeFlow = JSON.parse(data.businessVolumeFlow); + // console.log(businessVolumeFlow) this.indexpage.businessVolumeFlow = businessVolumeFlow; } if (data.businessVolumeMessage != null) { @@ -1245,10 +875,14 @@ let businessVolumeVoice = JSON.parse(data.businessVolumeVoice); this.indexpage.businessVolumeVoice = businessVolumeVoice; } + if (data.lifeCycleDistribution != null) { let lifeCycleDistribution = JSON.parse(data.lifeCycleDistribution); + // console.log(lifeCycleDistribution) this.indexpage.lifeCycleDistribution = lifeCycleDistribution; } + + if (data.requestMap != null) { let requestMap = JSON.parse(data.requestMap); this.indexpage.requestMap = requestMap; @@ -1283,7 +917,7 @@ let msg = jsonobj.Data != null && jsonobj.Data != '' && jsonobj.Data.Message != null && jsonobj.Data.Message != '' ? jsonobj.Data.Message : jsonobj.msg; this.msgError(msg); } - if (jsonobj.deptId == '100' && tools.getCookie("username")!='5iot'){ + if (jsonobj.deptId == '100'){ this.loadingOnelinCount = false;//加载 在线用户 } let _this = this; @@ -1317,7 +951,7 @@ ]; } - //业务使用量 + // 业务使用量 // 数据 if(this.indexpage.businessVolumeFlow.Day_CardFlow_xAxis!=null && this.indexpage.businessVolumeFlow.Day_CardFlow_xAxis.length>0){ //this.CardFlow_xAxis = this.indexpage.lifeCycleDistribution.Day_CardFlow_xAxis; diff --git a/yunze-ui/src/views/login.vue b/yunze-ui/src/views/login.vue index 744daad..522209a 100644 --- a/yunze-ui/src/views/login.vue +++ b/yunze-ui/src/views/login.vue @@ -1,22 +1,22 @@ + + + + +