From 3287e08a53d1d1e67b7199fb7a0bb79599a1f31f Mon Sep 17 00:00:00 2001 From: bit32 Date: Fri, 11 Feb 2022 16:59:49 +0800 Subject: [PATCH] add knowledge-map Signed-off-by: bit32 --- knowledge-map/.gitignore | 33 + knowledge-map/README.md | 49 + ...10\346\235\203\350\247\204\350\214\203.md" | 89 ++ knowledge-map/mvnw | 310 +++++++ knowledge-map/mvnw.cmd | 182 ++++ knowledge-map/pom.xml | 258 ++++++ knowledge-map/sql/KnowledgeMap.sql | 834 ++++++++++++++++++ .../chinasoft/KnowledgeMapApplication.java | 68 ++ .../chinasoft/annotation/OperationLog.java | 44 + .../java/com/chinasoft/bean/po/BaseInfo.java | 35 + .../java/com/chinasoft/bean/po/Basic.java | 108 +++ .../java/com/chinasoft/bean/po/BusType.java | 36 + .../java/com/chinasoft/bean/po/Detail.java | 37 + .../com/chinasoft/bean/po/DetailType.java | 29 + .../java/com/chinasoft/bean/po/Features.java | 35 + .../chinasoft/bean/po/HomeAdvertising.java | 30 + .../com/chinasoft/bean/po/HomeBanner.java | 31 + .../com/chinasoft/bean/po/HomeCompany.java | 29 + .../com/chinasoft/bean/po/HomeContent.java | 42 + .../com/chinasoft/bean/po/HomeContentPic.java | 30 + .../chinasoft/bean/po/HomeDevelopment.java | 35 + .../com/chinasoft/bean/po/HomeMeeting.java | 35 + .../java/com/chinasoft/bean/po/Level.java | 34 + .../java/com/chinasoft/bean/po/OsType.java | 32 + .../java/com/chinasoft/bean/po/OsVersion.java | 32 + .../com/chinasoft/bean/po/PushStrategyPO.java | 52 ++ .../java/com/chinasoft/bean/po/Sample.java | 37 + .../java/com/chinasoft/bean/po/Title.java | 34 + .../main/java/com/chinasoft/bean/po/User.java | 38 + .../main/java/com/chinasoft/bean/po/log.java | 32 + .../com/chinasoft/bean/vo/AddSampleVo.java | 54 ++ .../com/chinasoft/bean/vo/BaseInfoListVo.java | 29 + .../com/chinasoft/bean/vo/QuerySampleVo.java | 39 + .../chinasoft/bean/vo/TypeDetailListVo.java | 31 + .../java/com/chinasoft/config/MvcConfig.java | 38 + .../com/chinasoft/config/MyFilterConfig.java | 54 ++ .../java/com/chinasoft/config/UriConfig.java | 30 + .../constants/KnowledgeConstants.java | 58 ++ .../controller/BusTypeController.java | 209 +++++ .../controller/FeaturesController.java | 200 +++++ .../controller/FrontPageController.java | 113 +++ .../controller/HomePageController.java | 121 +++ .../controller/ImportController.java | 119 +++ .../chinasoft/controller/LevelController.java | 199 +++++ .../chinasoft/controller/LoginController.java | 95 ++ .../controller/SampleController.java | 161 ++++ .../controller/SecondaryPageController.java | 165 ++++ .../chinasoft/controller/TitleController.java | 199 +++++ .../chinasoft/filter/LoginInterceptor.java | 125 +++ .../java/com/chinasoft/filter/MyFilter.java | 70 ++ .../com/chinasoft/mapper/BaseInfoMapper.java | 33 + .../com/chinasoft/mapper/BusTypeMapper.java | 35 + .../com/chinasoft/mapper/DetailMapper.java | 33 + .../chinasoft/mapper/DetailTypeMapper.java | 33 + .../com/chinasoft/mapper/FeaturesMapper.java | 34 + .../com/chinasoft/mapper/FrontPageMapper.java | 112 +++ .../com/chinasoft/mapper/HomePageMapper.java | 31 + .../com/chinasoft/mapper/LevelMapper.java | 33 + .../com/chinasoft/mapper/LoginMapper.java | 26 + .../com/chinasoft/mapper/OsTypeMapper.java | 32 + .../com/chinasoft/mapper/OsVersionMapper.java | 33 + .../com/chinasoft/mapper/SampleMapper.java | 41 + .../chinasoft/mapper/SecondaryPageMapper.java | 37 + .../com/chinasoft/mapper/TitleMapper.java | 33 + .../chinasoft/service/BaseInfoService.java | 30 + .../com/chinasoft/service/BusTypeService.java | 32 + .../com/chinasoft/service/DetailService.java | 30 + .../chinasoft/service/DetailTypeService.java | 30 + .../chinasoft/service/FeaturesService.java | 31 + .../chinasoft/service/FrontPageService.java | 34 + .../chinasoft/service/HomePageService.java | 29 + .../com/chinasoft/service/LevelService.java | 30 + .../com/chinasoft/service/LoginService.java | 25 + .../com/chinasoft/service/OsTypeService.java | 30 + .../chinasoft/service/OsVersionService.java | 30 + .../com/chinasoft/service/SampleService.java | 33 + .../service/SecondaryPageService.java | 36 + .../com/chinasoft/service/TitleService.java | 30 + .../service/impl/BaseInfoServiceImpl.java | 89 ++ .../service/impl/BusTypeServiceImpl.java | 98 ++ .../service/impl/DetailServiceImpl.java | 89 ++ .../service/impl/DetailTypeServiceImpl.java | 90 ++ .../chinasoft/service/impl/ExcelHandler.java | 651 ++++++++++++++ .../service/impl/FeaturesServiceImpl.java | 91 ++ .../service/impl/FrontPageServiceImpl.java | 243 +++++ .../service/impl/HomePageServiceImpl.java | 74 ++ .../service/impl/LevelServiceImpl.java | 90 ++ .../service/impl/LoginServiceImpl.java | 42 + .../service/impl/OsTypeServiceImpl.java | 89 ++ .../service/impl/OsVersionServiceImpl.java | 89 ++ .../service/impl/SampleServiceImpl.java | 130 +++ .../impl/SecondaryPageServiceImpl.java | 74 ++ .../service/impl/SendEmailServiceImpl.java | 130 +++ .../service/impl/TitleServiceImpl.java | 89 ++ .../java/com/chinasoft/utils/Constants.java | 22 + .../main/java/com/chinasoft/utils/MD5.java | 71 ++ .../java/com/chinasoft/utils/PageListVO.java | 126 +++ .../java/com/chinasoft/utils/ResultVO.java | 69 ++ .../java/com/chinasoft/utils/TokenUtils.java | 83 ++ .../src/main/resources/application.properties | 47 + .../src/main/resources/log4j.properties | 20 + .../main/resources/mapper/BaseInfoMapper.xml | 119 +++ .../main/resources/mapper/BusTypeMapper.xml | 113 +++ .../main/resources/mapper/DetailMapper.xml | 123 +++ .../resources/mapper/DetailTypeMapper.xml | 95 ++ .../main/resources/mapper/FeaturesMapper.xml | 109 +++ .../main/resources/mapper/FrontPageMapper.xml | 115 +++ .../main/resources/mapper/HomePageMapper.xml | 37 + .../src/main/resources/mapper/LevelMapper.xml | 95 ++ .../src/main/resources/mapper/LoginMapper.xml | 14 + .../main/resources/mapper/OsTypeMapper.xml | 95 ++ .../main/resources/mapper/OsVersionMapper.xml | 95 ++ .../main/resources/mapper/SampleMapper.xml | 77 ++ .../resources/mapper/SecondaryPageMapper.xml | 128 +++ .../src/main/resources/mapper/TitleMapper.xml | 95 ++ ...596056_garden.openatom.cn_keystorePass.txt | 1 + ...634955596056_garden.openatom.cn_server.jks | Bin 0 -> 4096 bytes 117 files changed, 9662 insertions(+) create mode 100644 knowledge-map/.gitignore create mode 100644 knowledge-map/README.md create mode 100644 "knowledge-map/doc/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\210\346\235\203\350\247\204\350\214\203.md" create mode 100644 knowledge-map/mvnw create mode 100644 knowledge-map/mvnw.cmd create mode 100644 knowledge-map/pom.xml create mode 100644 knowledge-map/sql/KnowledgeMap.sql create mode 100644 knowledge-map/src/main/java/com/chinasoft/KnowledgeMapApplication.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/annotation/OperationLog.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/BaseInfo.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/Basic.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/BusType.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/Detail.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/DetailType.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/Features.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/HomeAdvertising.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/HomeBanner.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/HomeCompany.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/HomeContent.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/HomeContentPic.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/HomeDevelopment.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/HomeMeeting.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/Level.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/OsType.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/OsVersion.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/PushStrategyPO.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/Sample.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/Title.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/User.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/po/log.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/vo/AddSampleVo.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/vo/BaseInfoListVo.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/vo/QuerySampleVo.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/bean/vo/TypeDetailListVo.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/config/MvcConfig.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/config/MyFilterConfig.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/config/UriConfig.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/constants/KnowledgeConstants.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/controller/BusTypeController.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/controller/FeaturesController.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/controller/FrontPageController.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/controller/HomePageController.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/controller/ImportController.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/controller/LevelController.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/controller/LoginController.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/controller/SampleController.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/controller/SecondaryPageController.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/controller/TitleController.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/filter/LoginInterceptor.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/filter/MyFilter.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/BaseInfoMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/BusTypeMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/DetailMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/DetailTypeMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/FeaturesMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/FrontPageMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/HomePageMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/LevelMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/LoginMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/OsTypeMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/OsVersionMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/SampleMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/SecondaryPageMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/mapper/TitleMapper.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/BaseInfoService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/BusTypeService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/DetailService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/DetailTypeService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/FeaturesService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/FrontPageService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/HomePageService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/LevelService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/LoginService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/OsTypeService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/OsVersionService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/SampleService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/SecondaryPageService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/TitleService.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/BaseInfoServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/BusTypeServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/DetailServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/DetailTypeServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/ExcelHandler.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/FeaturesServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/FrontPageServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/HomePageServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/LevelServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/LoginServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/OsTypeServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/OsVersionServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/SampleServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/SecondaryPageServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/SendEmailServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/service/impl/TitleServiceImpl.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/utils/Constants.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/utils/MD5.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/utils/PageListVO.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/utils/ResultVO.java create mode 100644 knowledge-map/src/main/java/com/chinasoft/utils/TokenUtils.java create mode 100644 knowledge-map/src/main/resources/application.properties create mode 100644 knowledge-map/src/main/resources/log4j.properties create mode 100644 knowledge-map/src/main/resources/mapper/BaseInfoMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/BusTypeMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/DetailMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/DetailTypeMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/FeaturesMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/FrontPageMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/HomePageMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/LevelMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/LoginMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/OsTypeMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/OsVersionMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/SampleMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/SecondaryPageMapper.xml create mode 100644 knowledge-map/src/main/resources/mapper/TitleMapper.xml create mode 100644 knowledge-map/src/main/resources/scs1634955596056_garden.openatom.cn_keystorePass.txt create mode 100644 knowledge-map/src/main/resources/scs1634955596056_garden.openatom.cn_server.jks diff --git a/knowledge-map/.gitignore b/knowledge-map/.gitignore new file mode 100644 index 00000000..7bc4bf79 --- /dev/null +++ b/knowledge-map/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/knowledge-map/README.md b/knowledge-map/README.md new file mode 100644 index 00000000..3d131ece --- /dev/null +++ b/knowledge-map/README.md @@ -0,0 +1,49 @@ +## website_new + +#### 介绍 +1、1230官网: +重构openharmoney.cn网站首页,首页排版结构优化,及重构水平一级导航菜单结构: +下载、学习(文档、学院、开发样例)、互动(新闻、博客、直播、活动、峰会)、 +社区(项目群管理制度、贡献攻略、找到兴趣组SIG、订阅邮件列表、社区成长路径、项目管理委员会(PMC))、 +兼容性认证(申请认证、认证结果)、关于我们(工作委员会、技术指导委员会、捐赠人) + +新增: +OpenHarmoney会议日历 +最新活动、博客、新闻 +‘我们不断成长’统计数据 +通过OpenHarmoney兼容性认证的设备展示 + +2、知识图谱:重构知识图谱模块, +支持多级卡片查看开发样例, +优化查看方式、快速抵达查看开发样例, + + +#### 目录结构 +本仓库目录结构由如下3部分内容构成: + +knowledge: 知识图谱模块前端代码,采用vue开发 + +openharmony:1230官网前端代码,采用vue开发 + +sql:知识图谱、1230初始数据sql导入,采用mysql数据库导入 + +src : 知识图谱、1230系统的java后端业务逻辑处理代码,采用springboot + + +#### 快速上手体验 + + +#### 参与贡献 + +1. Fork 本仓库 +2. 新建 Feat_xxx 分支 +3. 提交代码 +4. 新建 Pull Request + +#### FAQs + +​ 待补充 + +#### 相关仓 + +[知识体系相关文档仓库](https://gitee.com/openharmony-sig/knowledge) diff --git "a/knowledge-map/doc/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\210\346\235\203\350\247\204\350\214\203.md" "b/knowledge-map/doc/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\210\346\235\203\350\247\204\350\214\203.md" new file mode 100644 index 00000000..4ab7eae8 --- /dev/null +++ "b/knowledge-map/doc/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\210\346\235\203\350\247\204\350\214\203.md" @@ -0,0 +1,89 @@ +#许可证与版权规范 +##目的 +```` +本规范明确了OpenHarmony社区的代码贡献者、Committer、PMC成员如何处理Repo及源代码文件的许可与版权声明,包括如下几个部分 +```` +1. LICENSE文件 +2. NOTICE文件 +3. 版权和许可头 + +#范围 +```` +本规范仅适用于OpenHarmony社区,不适用于将OpenHarmony项目应用于个人或企业以开发其它产品的场景,也不适用分发第三方开源软件的场景(该场景参见第三方开源软件引入指导)。 +```` +##本文的改进和修订说明 +```` +1. 本文档由OpenHarmony PMC主导起草和维护。本文档的最新版本总可以在 这里 找到。 +2. 任何对于本文中涉及的规则的增加,修改,删除都必须被追踪,请进入该追踪系统。 +3. 最终规则经过社区充分的讨论后,由PMC定稿。 +```` + +##LICENSE文件 +```` +1. 每个开源仓必须有清晰描述的许可证信息,且许可证必须与OpenHarmony整体许可证规则一致,如用户态开源仓使用Apache License 2.0许可协议,LiteOS内核态开源仓使用BSD 3-clause许可协议。 +2. 每个开源仓的许可证文件必须为纯文本格式,放置于代码仓的根目录,里面包含该许可的全文,并且以”LICENSE“命名,不用带".txt",".md"等后缀。 +3. 如果开源仓的不同源码包含多种许可证,请将主许可证描述在以”LICENSE“命名的文件中,其它许可证请以”LICENSE-许可证类型-备注“命名并放置于仓的根目录或该许可证对应源码的根目录,同时在主许可证中描述各许可证文件位置及其适用的范围与场景。 +4. 每个开源仓的许可证文件必须要涵盖该仓下所有文件,确保各许可证的涵盖范围描述准确、精简,并且不要包含不在本仓发布的其它源代码许可等不必要的信息,比如要单独下载的依赖软件的许可不要包含在仓和许可证信息中。 +如果开源仓在发布时以二进制形式发布,请确保许可证文件位于其发布格式的常规位置,如发布文件夹或压缩包的顶层目录,对于".jar"格式的文件,许可证可位于META-INF目录。 +```` + +##NOTICE文件 +```` +1. 如分发的二进制文件中包含有第三方开源软件,请提供以“NOTICE”命名的文件,NOTICE文件以纯文本格式描述包含的所有第三方开源软件名称、软件版本、权利人声明、License信息 +2. NOTICE文件通常放置在发布文件夹或压缩包的顶层目录,对于".jar"格式的文件,许可证可位于META-INF目录。 +```` +##版权和许可头 +###1. 开源仓中的文件原则上都应当包含合适的版权和许可头声明,除非是如下几种场景: +```` +添加版权和许可声明会影响到该文件的功能,如JSON文件因不支持注释,可不添加版权和许可头。 +工具生成的文件且包含说明该文件是由工具自动生成的描述信息。 +简短的供用户阅读的说明文件,添加版权许可头会影响其可读性和,如README等。 +```` + +###2. 版权和许可头声明形式如下: + +```` +Copyright (C) [第一次发布年份]-[当前版本发布年份] [版权所有者] + +许可证头,以具体的许可证内容为准,如: + +Apache License Version 2.0许可头: +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +BSD-3-Clause 许可头: +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used + to endorse or promote products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +```` \ No newline at end of file diff --git a/knowledge-map/mvnw b/knowledge-map/mvnw new file mode 100644 index 00000000..4c1c4271 --- /dev/null +++ b/knowledge-map/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/knowledge-map/mvnw.cmd b/knowledge-map/mvnw.cmd new file mode 100644 index 00000000..66db70c1 --- /dev/null +++ b/knowledge-map/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/knowledge-map/pom.xml b/knowledge-map/pom.xml new file mode 100644 index 00000000..22cf0c7e --- /dev/null +++ b/knowledge-map/pom.xml @@ -0,0 +1,258 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.0.6.RELEASE + + + com.chinasoft + KnowledgeMap + 2.0.6-dev + KnowledgeMap + + + UTF-8 + UTF-8 + 1.8 + + + + + + org.assertj + assertj-core + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-logging + + + + + + + + + + org.apache.poi + poi + 4.1.2 + + + org.apache.poi + poi-ooxml + 4.1.0 + + + org.springframework.boot + spring-boot-starter-test + test + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.0.1 + + + org.springframework.boot + spring-boot-starter-log4j + 1.3.8.RELEASE + + + org.springframework.boot + spring-boot-starter-data-redis + + + redis.clients + jedis + 2.9.0 + + + com.fasterxml.jackson.core + jackson-databind + + + + mysql + mysql-connector-java + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + com.alibaba + druid + 1.1.6 + + + + org.springframework.boot + spring-boot-starter-aop + + + com.alibaba + fastjson + 1.2.46 + + + + io.springfox + springfox-swagger2 + 2.9.2 + + + io.springfox + springfox-swagger-ui + 2.9.2 + + + commons-lang + commons-lang + 2.6 + + + javax.mail + mail + 1.4 + + + org.quartz-scheduler + quartz + 2.2.1 + + + org.quartz-scheduler + quartz-jobs + 2.2.1 + + + org.springframework + spring-context-support + + + com.jcraft + jsch + 0.1.54 + + + org.projectlombok + lombok + true + + + + org.hibernate + hibernate-validator + 6.0.7.Final + + + org.springframework.restdocs + spring-restdocs-mockmvc + 1.1.2.RELEASE + + + io.springfox + springfox-staticdocs + 2.6.1 + + + org.springframework.security + spring-security-crypto + 5.3.2.RELEASE + + + com.auth0 + java-jwt + 3.8.2 + + + com.github.penggle + kaptcha + 2.3.2 + + + commons-codec + commons-codec + 1.10 + + + org.apache.commons + commons-lang3 + 3.3.2 + + + javax.xml.bind + jaxb-api + 2.3.0 + + + com.sun.xml.bind + jaxb-impl + 2.3.0 + + + com.sun.xml.bind + jaxb-core + 2.3.0 + + + javax.activation + activation + 1.1.1 + + + + + + org.apache.poi + poi + 3.8 + + + org.apache.poi + poi-ooxml + 3.8 + + + org.apache.poi + poi-scratchpad + 3.8 + + + org.apache.poi + poi-ooxml-schemas + 3.8 + + + + + signUp + + + org.springframework.boot + spring-boot-maven-plugin + + + org.apache.maven.plugins + maven-compiler-plugin + + true + + + + + + + + + diff --git a/knowledge-map/sql/KnowledgeMap.sql b/knowledge-map/sql/KnowledgeMap.sql new file mode 100644 index 00000000..a6ff8d98 --- /dev/null +++ b/knowledge-map/sql/KnowledgeMap.sql @@ -0,0 +1,834 @@ +/* + Navicat Premium Data Transfer + + Source Server : 139.159.252.23 + Source Server Type : MySQL + Source Server Version : 50733 + Source Host : 139.159.252.23:3306 + Source Schema : knowledge_map + + Target Server Type : MySQL + Target Server Version : 50733 + File Encoding : 65001 + + Date: 26/01/2022 18:04:31 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for t_base_info +-- ---------------------------- +DROP TABLE IF EXISTS `t_base_info`; +CREATE TABLE `t_base_info` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `sampleId` int(11) NULL DEFAULT NULL, + `versionNo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开发版本号', + `deviceLevel` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '设备级别', + `sysVersion` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '系统版本', + `reserve1` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备份1', + `reserve2` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备份2', + `reserve3` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备份3', + `createTime` datetime(0) NULL DEFAULT NULL, + `updateTime` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2624 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_base_info +-- ---------------------------- +INSERT INTO `t_base_info` VALUES (2526, 2727, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:00', NULL); +INSERT INTO `t_base_info` VALUES (2527, 2728, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:00', NULL); +INSERT INTO `t_base_info` VALUES (2528, 2729, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:00', NULL); +INSERT INTO `t_base_info` VALUES (2529, 2730, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:00', NULL); +INSERT INTO `t_base_info` VALUES (2530, 2731, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:00', NULL); +INSERT INTO `t_base_info` VALUES (2531, 2732, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:00', NULL); +INSERT INTO `t_base_info` VALUES (2532, 2733, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2533, 2734, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2534, 2735, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2535, 2736, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2536, 2737, '润和Pegasus智能家居套件', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2537, 2738, '润和Pegasus智能家居套件', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2538, 2739, '大师兄开发板', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2539, 2740, '润和Pegasus智能家居套件', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2540, 2741, '润和Pegasus智能家居套件', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2541, 2742, '润和Pegasus智能家居套件', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2542, 2743, '润和Pegasus智能家居套件', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2543, 2744, '润和Pegasus智能家居套件', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2544, 2745, '润和Pegasus智能家居套件', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2545, 2746, '润和Pegasus智能家居套件', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2546, 2747, '拓维信息 Niobe行业物联网开发套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2547, 2748, '拓维信息 Niobe行业物联网开发套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2548, 2749, '拓维信息 Niobe行业物联网开发套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2549, 2750, '拓维信息 Niobe行业物联网开发套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2550, 2751, '拓维信息 Niobe行业物联网开发套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2551, 2752, '拓维信息 Niobe行业物联网开发套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2552, 2753, '拓维信息 Niobe行业物联网开发套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2553, 2754, '拓维信息 Niobe行业物联网开发套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2554, 2755, '拓维信息 Niobe行业物联网开发套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2555, 2756, '拓维信息 Niobe行业物联网开发套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2556, 2757, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2557, 2758, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2558, 2759, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2559, 2760, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2560, 2761, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2561, 2762, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2562, 2763, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2563, 2764, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2564, 2765, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2565, 2766, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_base_info` VALUES (2566, 2767, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2567, 2768, 'Neptune开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2568, 2769, 'qemu模拟器', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2569, 2770, 'qemu模拟器', '小型系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2570, 2771, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2571, 2772, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2572, 2773, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2573, 2774, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2574, 2775, '润和Pegasus智能家居套件', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2575, 2776, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2576, 2777, '润和Pegasus智能家居套件', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2577, 2778, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '小型系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2578, 2779, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2579, 2780, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2580, 2781, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2581, 2782, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '小型系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2582, 2783, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '小型系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2583, 2784, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '小型系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_base_info` VALUES (2584, 2785, '润和HiSpark Aries IPC 摄像头(Hi3518E)开发板套件', '小型系统', '1.0.1 LTS', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2585, 2786, 'LYEVK-3861A 智能物联网开发板套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2586, 2787, 'LYEVK-3861A 智能物联网开发板套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2587, 2788, 'LYEVK-3861A 智能物联网开发板套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2588, 2789, 'LYEVK-3861A 智能物联网开发板套件', '轻量系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2589, 2790, '欧智通科技有限公司Multi-modal V200Z-R开发板', '轻量系统', '3.1-Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2590, 2791, '欧智通科技有限公司Multi-modal V200Z-R开发板', '轻量系统', '3.1-Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2591, 2792, '全志XR806', '轻量系统', '3.1-Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2592, 2793, '全志XR806', '轻量系统', '3.1-Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2593, 2794, '润和Pegasus智能家居套件', '轻量系统', '3.1 Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2594, 2795, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.1 Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2595, 2795, '润和大禹系列HH-SCDAYU200开发套件', '标准系统', '3.1 Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2596, 2796, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.1 Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2597, 2796, '润和大禹系列HH-SCDAYU200开发套件', '标准系统', '3.1 Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2598, 2797, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.1 Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2599, 2797, '润和大禹系列HH-SCDAYU200开发套件', '标准系统', '3.1 Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2600, 2798, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.1 Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2601, 2798, '润和大禹系列HH-SCDAYU200开发套件', '标准系统', '3.1 Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2602, 2799, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.1 Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2603, 2799, '润和大禹系列HH-SCDAYU200开发套件', '标准系统', '3.1 Beta', NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_base_info` VALUES (2604, 2880, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-17 17:17:35', NULL); +INSERT INTO `t_base_info` VALUES (2605, 2881, 'Neptune开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-19 10:28:58', NULL); +INSERT INTO `t_base_info` VALUES (2606, 2882, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-19 10:28:58', NULL); +INSERT INTO `t_base_info` VALUES (2607, 2883, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-19 10:28:58', NULL); +INSERT INTO `t_base_info` VALUES (2608, 2884, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-19 10:28:58', NULL); +INSERT INTO `t_base_info` VALUES (2609, 2885, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-19 10:28:58', NULL); +INSERT INTO `t_base_info` VALUES (2610, 2886, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-19 10:28:59', NULL); +INSERT INTO `t_base_info` VALUES (2611, 2887, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-19 10:28:59', NULL); +INSERT INTO `t_base_info` VALUES (2612, 2888, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-19 10:28:59', NULL); +INSERT INTO `t_base_info` VALUES (2613, 2889, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-19 10:28:59', NULL); +INSERT INTO `t_base_info` VALUES (2614, 2890, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-19 10:28:59', NULL); +INSERT INTO `t_base_info` VALUES (2615, 2891, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-19 10:28:59', NULL); +INSERT INTO `t_base_info` VALUES (2616, 2892, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-19 10:29:00', NULL); +INSERT INTO `t_base_info` VALUES (2617, 2893, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-19 10:29:00', NULL); +INSERT INTO `t_base_info` VALUES (2618, 2894, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-19 10:29:00', NULL); +INSERT INTO `t_base_info` VALUES (2619, 2895, '润和HiSpark Taurus AI Camera(Hi3516d)开发板套件', '标准系统', '3.0 LTS', NULL, NULL, NULL, '2022-01-19 10:29:00', NULL); +INSERT INTO `t_base_info` VALUES (2620, 2896, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-19 11:31:41', NULL); +INSERT INTO `t_base_info` VALUES (2621, 2897, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-19 11:31:44', NULL); +INSERT INTO `t_base_info` VALUES (2622, 2898, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-19 11:31:45', NULL); +INSERT INTO `t_base_info` VALUES (2623, 2899, '小熊派BearPi-HM Nano开发板', '轻量系统', '1.1.0 LTS', NULL, NULL, NULL, '2022-01-19 11:31:45', NULL); + +-- ---------------------------- +-- Table structure for t_bus_type +-- ---------------------------- +DROP TABLE IF EXISTS `t_bus_type`; +CREATE TABLE `t_bus_type` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `titleId` int(11) NULL DEFAULT NULL COMMENT '标题id', + `reserve1` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `reserve2` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `reserve3` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `createTime` datetime(0) NULL DEFAULT NULL, + `updateTime` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 223 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '业务类型' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_bus_type +-- ---------------------------- +INSERT INTO `t_bus_type` VALUES (2, 'UI', 2, 1, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); +INSERT INTO `t_bus_type` VALUES (3, '媒体', 3, 1, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); +INSERT INTO `t_bus_type` VALUES (4, '数据管理', 4, 1, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); +INSERT INTO `t_bus_type` VALUES (5, '设备管理', 5, 1, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); +INSERT INTO `t_bus_type` VALUES (6, '网络与连接', 6, 1, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); +INSERT INTO `t_bus_type` VALUES (7, '分布式能力', 7, 1, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); +INSERT INTO `t_bus_type` VALUES (9, '内核', 2, 2, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); +INSERT INTO `t_bus_type` VALUES (10, '驱动', 3, 2, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); +INSERT INTO `t_bus_type` VALUES (11, '组件(Bundle)开发', 4, 2, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); +INSERT INTO `t_bus_type` VALUES (12, '网络与连接', 5, 2, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); +INSERT INTO `t_bus_type` VALUES (13, '子系统', 6, 2, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); +INSERT INTO `t_bus_type` VALUES (14, '隐私与安全', 7, 2, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); +INSERT INTO `t_bus_type` VALUES (15, 'SOC移植适配', 8, 2, NULL, NULL, NULL, '2021-12-22 16:54:05', NULL); + +-- ---------------------------- +-- Table structure for t_detail +-- ---------------------------- +DROP TABLE IF EXISTS `t_detail`; +CREATE TABLE `t_detail` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `typeId` int(11) NULL DEFAULT NULL COMMENT '类型:演示,开发板,深度文章,视频课程,官网资料,书箱', + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称,如:演示,开发板,深度文章,视频课程,官网资料,书箱', + `url` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '链接', + `description` varchar(4000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述', + `sampleId` int(11) NULL DEFAULT NULL COMMENT '样例ID', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `reserve1` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `reserve2` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `reserve3` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `createTime` datetime(0) NULL DEFAULT NULL, + `updateTime` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 8164 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_detail +-- ---------------------------- +INSERT INTO `t_detail` VALUES (8088, 5, NULL, 'https://toscode.gitee.com/bearpi/bearpi-hm_nano/blob/master/applications/BearPi/BearPi-HM_Nano/sample', 'BearPi-HM_Nano案例开发', 2767, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8089, 5, NULL, 'https://gitee.com/bearpi/bearpi-hm_nano/tree/master/applications/BearPi/BearPi-HM_Nano/docs/board', 'BearPi-HM Nano开发板原理图、芯片手册', 2767, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8090, 5, NULL, 'https://gitee.com/openharmony-sig/vendor_oh_fun/blob/master/hihope_neptune-oh_hid/02_%E6%93%8D%E4%BD%9C%E6%8C%87%E5%AF%BC%E6%96%87%E6%A1%A3/02_%E6%93%8D%E4%BD%9C%E6%8C%87%E5%AF%BC%E6%96%87%E6%A1%A3_%E9%80%82%E9%85%8D%E8%BD%AF%E4%BB%B6V0.3%E7%89%88%E6%9C%AC.md', '基于Neptune开发板的键盘蓝牙模块DIY指南', 2768, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8091, 5, NULL, 'https://gitee.com/openharmony/docs/blob/OpenHarmony-3.0-LTS/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861.md', '3861运行helloworld', 2769, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8092, 5, NULL, 'https://gitee.com/openharmony/device_qemu/tree/master/riscv32_virt\r\n', 'Qemu RISC-V virt 教程', 2769, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8093, 5, NULL, 'https://www.qemu.org/', 'QEMU官网 ', 2769, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8096, 5, NULL, 'https://www.qemu.org/', 'QEMU官网 ', 2770, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8097, 5, NULL, 'https://gitee.com/openharmony/device_qemu/tree/master/arm_virt/linux', 'Qemu ARM Virt 教程', 2770, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8098, 5, NULL, 'https://toscode.gitee.com/bearpi/bearpi-hm_nano/blob/master/applications/BearPi/BearPi-HM_Nano/sample', 'BearPi-HM_Nano案例开发', 2771, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8099, 5, NULL, 'https://gitee.com/bearpi/bearpi-hm_nano/tree/master/applications/BearPi/BearPi-HM_Nano/docs/board', 'BearPi-HM Nano开发板原理图、芯片手册', 2771, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8100, 5, NULL, 'https://toscode.gitee.com/bearpi/bearpi-hm_nano/blob/master/applications/BearPi/BearPi-HM_Nano/sample', 'BearPi-HM_Nano案例开发', 2772, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8101, 5, NULL, 'https://gitee.com/bearpi/bearpi-hm_nano/tree/master/applications/BearPi/BearPi-HM_Nano/docs/board', 'BearPi-HM Nano开发板原理图、芯片手册', 2772, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8102, 5, NULL, 'https://toscode.gitee.com/bearpi/bearpi-hm_nano/blob/master/applications/BearPi/BearPi-HM_Nano/sample', 'BearPi-HM_Nano案例开发', 2773, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8103, 5, NULL, 'https://gitee.com/bearpi/bearpi-hm_nano/tree/master/applications/BearPi/BearPi-HM_Nano/docs/board', 'BearPi-HM Nano开发板原理图、芯片手册', 2773, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8104, 5, NULL, 'https://toscode.gitee.com/bearpi/bearpi-hm_nano/blob/master/applications/BearPi/BearPi-HM_Nano/sample', 'BearPi-HM_Nano案例开发', 2774, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8105, 5, NULL, 'https://gitee.com/bearpi/bearpi-hm_nano/tree/master/applications/BearPi/BearPi-HM_Nano/docs/board', 'BearPi-HM Nano开发板原理图、芯片手册', 2774, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8106, 5, NULL, 'https://toscode.gitee.com/bearpi/bearpi-hm_nano/blob/master/applications/BearPi/BearPi-HM_Nano/sample', 'BearPi-HM_Nano案例开发', 2776, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8107, 5, NULL, 'https://gitee.com/bearpi/bearpi-hm_nano/tree/master/applications/BearPi/BearPi-HM_Nano/docs/board', 'BearPi-HM Nano开发板原理图、芯片手册', 2776, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8108, 2, NULL, 'https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Beta/zh-cn/device-dev/quick-start/quickstart-standard-appendix-hi3516.md', '3516开发板介绍', 2778, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8109, 5, NULL, 'https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md', 'OpenHarmony SDK获取 ', 2778, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8110, 5, NULL, 'https://toscode.gitee.com/bearpi/bearpi-hm_nano/blob/master/applications/BearPi/BearPi-HM_Nano/sample', 'BearPi-HM_Nano案例开发', 2779, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8111, 5, NULL, 'https://gitee.com/bearpi/bearpi-hm_nano/tree/master/applications/BearPi/BearPi-HM_Nano/docs/board', 'BearPi-HM Nano开发板原理图、芯片手册', 2779, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8112, 5, NULL, 'https://toscode.gitee.com/bearpi/bearpi-hm_nano/blob/master/applications/BearPi/BearPi-HM_Nano/sample', 'BearPi-HM_Nano案例开发', 2780, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8113, 5, NULL, 'https://gitee.com/bearpi/bearpi-hm_nano/tree/master/applications/BearPi/BearPi-HM_Nano/docs/board', 'BearPi-HM Nano开发板原理图、芯片手册', 2780, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8114, 5, NULL, 'https://toscode.gitee.com/bearpi/bearpi-hm_nano/blob/master/applications/BearPi/BearPi-HM_Nano/sample', 'BearPi-HM_Nano案例开发', 2781, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8115, 5, NULL, 'https://gitee.com/bearpi/bearpi-hm_nano/tree/master/applications/BearPi/BearPi-HM_Nano/docs/board', 'BearPi-HM Nano开发板原理图、芯片手册', 2781, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8116, 2, NULL, 'https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Beta/zh-cn/device-dev/quick-start/quickstart-standard-appendix-hi3516.md', '3516开发板介绍', 2782, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8117, 5, NULL, 'https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md', 'OpenHarmony SDK获取 ', 2782, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8118, 2, NULL, 'https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Beta/zh-cn/device-dev/quick-start/quickstart-standard-appendix-hi3516.md', '3516开发板介绍', 2783, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8119, 5, NULL, 'https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md', 'OpenHarmony SDK获取 ', 2783, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8120, 2, NULL, 'https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Beta/zh-cn/device-dev/quick-start/quickstart-standard-appendix-hi3516.md', '3516开发板介绍', 2784, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8121, 5, NULL, 'https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md', 'OpenHarmony SDK获取 ', 2784, NULL, NULL, NULL, NULL, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_detail` VALUES (8122, 5, NULL, 'https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md', 'OpenHarmony SDK获取 ', 2785, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8123, 3, NULL, 'https://mp.weixin.qq.com/s/tM4YrDRECmyGRCBSvcF6vw', 'LYEVK-3861开发板播放《蜜雪冰城》', 2787, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8124, 5, NULL, 'https://support.huaweicloud.com/devg-iothub/iot_01_00100_2.html', '华为云AMQP客户端接入说明', 2788, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8125, 3, NULL, 'https://harmonyos.51cto.com/posts/8521', '基于LYEVK-3861 接入华为IoT平台 ', 2789, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8126, 5, NULL, 'https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861.md', 'Hi3861开发指南', 2789, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8131, 2, NULL, 'https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Beta/zh-cn/device-dev/quick-start/quickstart-standard-appendix-hi3516.md', '3516开发板介绍', 2794, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8132, 5, NULL, 'https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md', 'OpenHarmony SDK获取 ', 2794, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8133, 2, NULL, 'https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/Hi3516%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BB%8B%E7%BB%8D.md', '3516开发板介绍', 2795, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8134, 3, NULL, 'https://mp.weixin.qq.com/s/LsgWccZ_9ACMfLzrdLR-rw', '简单3步,OpenHarmony上跑起ArkUI分布式小游戏', 2795, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8135, 5, NULL, 'https://gitee.com/openharmony/docs/tree/master/zh-cn/application-dev/reference/arkui-ts', '基于TS扩展的声明式开发范式', 2795, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8136, 2, NULL, 'https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/Hi3516%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BB%8B%E7%BB%8D.md', '3516开发板介绍', 2796, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8137, 5, NULL, 'https://gitee.com/openharmony/docs/tree/master/zh-cn/application-dev/reference/arkui-ts', '基于TS扩展的声明式开发范式', 2796, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8138, 2, NULL, 'https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/Hi3516%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BB%8B%E7%BB%8D.md', '3516开发板介绍', 2797, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8139, 5, NULL, 'https://gitee.com/openharmony/docs/tree/master/zh-cn/application-dev/reference/arkui-ts', '基于TS扩展的声明式开发范式', 2797, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8140, 2, NULL, 'https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/Hi3516%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BB%8B%E7%BB%8D.md', '3516开发板介绍', 2798, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8141, 5, NULL, 'https://gitee.com/openharmony/docs/tree/master/zh-cn/application-dev/reference/arkui-ts', '基于TS扩展的声明式开发范式', 2798, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8142, 2, NULL, 'https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/Hi3516%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BB%8B%E7%BB%8D.md', '3516开发板介绍', 2799, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_detail` VALUES (8143, 5, NULL, 'https://gitee.com/openharmony/docs/tree/master/zh-cn/application-dev/reference/arkui-ts', '基于TS扩展的声明式开发范式', 2799, NULL, NULL, NULL, NULL, '2022-01-14 16:26:38', NULL); + +-- ---------------------------- +-- Table structure for t_detail_type +-- ---------------------------- +DROP TABLE IF EXISTS `t_detail_type`; +CREATE TABLE `t_detail_type` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '详情类型名称', + `createTime` datetime(0) NULL DEFAULT NULL, + `updateTime` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_detail_type +-- ---------------------------- +INSERT INTO `t_detail_type` VALUES (1, '演示', NULL, NULL); +INSERT INTO `t_detail_type` VALUES (2, '开发板', NULL, NULL); +INSERT INTO `t_detail_type` VALUES (3, '文章', NULL, NULL); +INSERT INTO `t_detail_type` VALUES (4, '视频课程', NULL, NULL); +INSERT INTO `t_detail_type` VALUES (5, '官方资料', NULL, NULL); +INSERT INTO `t_detail_type` VALUES (6, '书籍', NULL, NULL); + +-- ---------------------------- +-- Table structure for t_features +-- ---------------------------- +DROP TABLE IF EXISTS `t_features`; +CREATE TABLE `t_features` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '特性名称', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `busTypeId` int(11) NULL DEFAULT NULL COMMENT '业务类型ID', + `reserve1` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `reserve2` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `reserve3` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `createTime` datetime(0) NULL DEFAULT NULL, + `updateTime` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 369 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '特性表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_features +-- ---------------------------- +INSERT INTO `t_features` VALUES (3, 'JS UI', 1, 2, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (4, 'eTS UI', 2, 2, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (5, '视频', 1, 3, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (6, '图片', 2, 3, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (7, '相机', 3, 3, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (8, '音频', 4, 3, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (9, '媒体会话管理', 5, 3, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (10, '媒体数据管理', 6, 3, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (11, '文件管理', 1, 4, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (12, '轻量级存储', 2, 4, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (13, '关系型数据库', 3, 4, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (14, '传感器', 1, 5, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (15, '振动', 2, 5, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (16, '屏幕亮度', 3, 5, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (17, '电量信息', 4, 5, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (18, '系统电源管理', 5, 5, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (19, 'Runninglock锁', 6, 5, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (20, '设备信息', 7, 5, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (21, '系统属性', 8, 5, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (22, '显示设备属性', 9, 5, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (23, '升级', 10, 5, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (24, '启动恢复', 11, 5, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (25, 'NFC', 1, 6, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (26, '蓝牙', 2, 6, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (27, 'WLAN', 3, 6, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (28, '网络管理', 4, 6, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (29, '电话服务', 5, 6, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (30, 'IPC与RPC通信', 6, 6, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (31, '分布式文件', 1, 7, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (32, '分布式数据管理', 2, 7, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (33, '分布式流转', 3, 7, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (35, 'LiteOS-m', 1, 9, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (36, 'LiteOS-a', 2, 9, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (37, 'Linux', 3, 9, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (38, 'HDF驱动开发', 1, 10, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (39, '平台驱动\n', 2, 10, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (40, '外设驱动', 3, 10, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (41, '组件(Bundle)开发', 1, 11, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (42, 'NFC', 1, 12, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (43, '蓝牙', 2, 12, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (44, 'WLAN', 3, 12, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (45, '网络管理', 4, 12, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (46, '电话服务', 5, 12, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (47, 'IPC与RPC通信', 6, 12, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (48, '编译构建', 1, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (49, 'loT硬件', 2, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (50, 'DFX', 3, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (51, '图形图像', 4, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (52, '电源管理', 5, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (53, 'Sensor服务', 6, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (54, '多模输入', 7, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (55, '启动恢复', 8, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (56, 'OTA升级', 9, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (57, '账号', 10, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (58, '测试', 11, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (59, '媒体', 12, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (60, '用户程序框架', 13, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (61, '分布式软总线', 14, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (62, '安全', 15, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (63, 'AI框架', 16, 13, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (64, '隐私与安全', 1, 14, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `t_features` VALUES (65, 'SOC移植适配', 1, 15, NULL, NULL, NULL, NULL, NULL); + +-- ---------------------------- +-- Table structure for t_home_advertising +-- ---------------------------- +DROP TABLE IF EXISTS `t_home_advertising`; +CREATE TABLE `t_home_advertising` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `type` int(11) NULL DEFAULT NULL COMMENT '类型(1:活动 2:博客 3:新闻)', + `imgUrl` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '广告图', + `url` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT 'url地址跳转', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '广告表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_home_advertising +-- ---------------------------- +INSERT INTO `t_home_advertising` VALUES (1, 1, 'https://garden.openatom.cn:9089/4-351.png', 'https://garden.openatom.cn:8178/mainPlay'); +INSERT INTO `t_home_advertising` VALUES (2, 2, 'https://garden.openatom.cn:9089/5-351.png', 'https://mp.weixin.qq.com/s/Ow9hqH8I65D8bIOAOYpMzQ'); +INSERT INTO `t_home_advertising` VALUES (3, 3, 'https://garden.openatom.cn:9089/首页-新闻-banner0120.png', 'https://mp.weixin.qq.com/s/u81bAxnQ_4kUwQYpIBQXyg'); + +-- ---------------------------- +-- Table structure for t_home_banner +-- ---------------------------- +DROP TABLE IF EXISTS `t_home_banner`; +CREATE TABLE `t_home_banner` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `imgUrl` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '轮播图片', + `category` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '类别(1:pc端 2:无线端)', + `url` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT 'url地址跳转', + `sort` int(11) NULL DEFAULT 0 COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '广告表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_home_banner +-- ---------------------------- +INSERT INTO `t_home_banner` VALUES (1, 'https://garden.openatom.cn:9089/1-1920.jpg', '1', 'https://docs.openharmony.cn/about/', 1); +INSERT INTO `t_home_banner` VALUES (2, 'https://garden.openatom.cn:9089/2-1920.png', '1', 'https://garden.openatom.cn:8178/mainPlay', 2); +INSERT INTO `t_home_banner` VALUES (3, 'https://garden.openatom.cn:9089/3-1920.png', '1', 'https://growing.openharmony.cn/mainPlay/content/mainText/allFeatures', 3); +INSERT INTO `t_home_banner` VALUES (4, 'https://garden.openatom.cn:9089/1-315.jpg', '2', 'https://docs.openharmony.cn/about/', 4); +INSERT INTO `t_home_banner` VALUES (5, 'https://garden.openatom.cn:9089/成长计划.png', '2', 'https://garden.openatom.cn:8178/mainPlay', 5); +INSERT INTO `t_home_banner` VALUES (6, 'https://garden.openatom.cn:9089/开发样例.png', '2', 'https://growing.openharmony.cn/mainPlay/content/mainText/allFeatures', 6); + +-- ---------------------------- +-- Table structure for t_home_company +-- ---------------------------- +DROP TABLE IF EXISTS `t_home_company`; +CREATE TABLE `t_home_company` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `logoUrl` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'logo图片', + `url` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '跳转链接', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_home_company +-- ---------------------------- +INSERT INTO `t_home_company` VALUES (1, 'https://garden.openatom.cn:9089/13.png', 'https://kdocs.cn/l/cmU2qKk4tEec', 1); +INSERT INTO `t_home_company` VALUES (2, 'https://garden.openatom.cn:9089/14.png', 'https://kdocs.cn/l/cmU2qKk4tEec', 2); +INSERT INTO `t_home_company` VALUES (3, 'https://garden.openatom.cn:9089/15.png', 'https://kdocs.cn/l/cmU2qKk4tEec', 3); +INSERT INTO `t_home_company` VALUES (4, 'https://garden.openatom.cn:9089/16.png', 'https://kdocs.cn/l/cmU2qKk4tEec', 4); +INSERT INTO `t_home_company` VALUES (5, 'https://garden.openatom.cn:9089/17.png', 'https://kdocs.cn/l/cmU2qKk4tEec', 5); + +-- ---------------------------- +-- Table structure for t_home_content +-- ---------------------------- +DROP TABLE IF EXISTS `t_home_content`; +CREATE TABLE `t_home_content` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `type` int(11) NULL DEFAULT NULL COMMENT '1=活动,2=博客,3=新闻 ,4=直播 ,5=视频', + `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标题', + `source` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作者', + `content` varchar(4000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '简介', + `textDetails` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '文本内容', + `url` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '直播与视频跳转链接', + `backgroundImage` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '背景图片', + `advertiseImage` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '广告位图片', + `advertiseUrl` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '广告位链接', + `startTime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开始时间', + `endTime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '结束时间', + `label` int(255) NULL DEFAULT NULL COMMENT '标签( 活动 1:线上活动 2:线下活动)\r\n ( 直播 1:待开始 2:进行中 3:已结束)', + `recommend` int(11) NULL DEFAULT NULL COMMENT '推荐标识(0:非热门推荐 1:热门推荐)', + `likesCount` int(11) NULL DEFAULT 0 COMMENT '点赞数量', + `shareCount` int(11) NULL DEFAULT 0 COMMENT '分享次数', + `browseCount` int(11) NULL DEFAULT 0 COMMENT '浏览量', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 58 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '内容表,包括活动,博客,新闻,其它等' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_home_content +-- ---------------------------- +INSERT INTO `t_home_content` VALUES (2, 1, '首期OpenHarmony开源开发者成长计划2021正式起航', NULL, '为了帮助广大开发者学习了解OpenHarmony开源项目,探索实践教学,在开发工程中匹配项目导师辅导。', NULL, 'https://garden.openatom.cn:8178/mainPlay', 'https://garden.openatom.cn:9089/63-328.png', NULL, NULL, '2021.10.24', '2022.3.15', 1, NULL, 0, 0, 3084); +INSERT INTO `t_home_content` VALUES (4, 2, '万里红秦凡东:我是如何将SELinux引入OpenHarmony安全模块的?', 'OpenAtom OpenHarmony', '首次参加大规模开源项目,将SELinux引入OpenHarmony安全模块的研发工程师的故事。', NULL, 'https://mp.weixin.qq.com/s/eYQ4mTVclHpTZuiOU3vkxw', 'https://garden.openatom.cn:9089/40-328.png', NULL, NULL, '2021.12.20', NULL, NULL, NULL, 0, 0, 555); +INSERT INTO `t_home_content` VALUES (5, 2, 'HDC2021技术分论坛:OpenHarmony驱动框架解读和开发实践', 'OpenAtom OpenHarmony', 'OpenHarmony 作为一个自主研发、全新技术生态的全领域下一代开源操作系统,提供了一套驱动框架来满足不同终端设备适配。', NULL, 'https://mp.weixin.qq.com/s/juL5fefaHcNuLUa17fAKPQ', 'https://garden.openatom.cn:9089/49-328.png', NULL, NULL, '2021.11.2', NULL, NULL, NULL, 17, 1, 204); +INSERT INTO `t_home_content` VALUES (6, 2, '一文读懂OpenHarmony数字管家', 'OpenAtom OpenHarmony', '一款可以将家中的所有智能设备组织联合的数字管家应用,通过日程编排把涉及到的智能设备串联起来,共同组建不同的场景。', NULL, 'https://mp.weixin.qq.com/s/Ow9hqH8I65D8bIOAOYpMzQ', 'https://garden.openatom.cn:9089/60-328.png', NULL, NULL, '2021.11.4', NULL, NULL, NULL, 0, 0, 696); +INSERT INTO `t_home_content` VALUES (7, 2, '大三学生唐铭穗:两周时间在OpenHarmony上复刻一款经典游戏', 'OpenAtom OpenHarmony', '大三学生仅用两周时间就完成了 OpenHarmony 从入门到成功复刻一款经典游戏。', NULL, 'https://mp.weixin.qq.com/s/1g_BEf6A_kCt-mxv7A9nxw', 'https://garden.openatom.cn:9089/41-328.png', NULL, NULL, '2021.11.16', NULL, NULL, NULL, 0, 0, 1401); +INSERT INTO `t_home_content` VALUES (8, 2, 'OpenHarmony 源码解析之Sensor子系统(上)', 'OpenAtom OpenHarmony', '解析OpenHarmony源码中的Sensor子系统。', NULL, 'https://mp.weixin.qq.com/s/Qv9SCCB3wAT00GiRxbPy8A', 'https://garden.openatom.cn:9089/42-328.png', NULL, NULL, '2021.12.16', NULL, NULL, NULL, 0, 0, 285); +INSERT INTO `t_home_content` VALUES (9, 2, 'OpenHarmony 源码解析之图形子系统 (一)', 'OpenAtom OpenHarmony', '基于OpenHarmony 2.0为基础,讲解OpenHarmony源码中的Graphic子系统。', NULL, 'https://mp.weixin.qq.com/s/vEdOrsPm0gQRanlZJImurg', 'https://garden.openatom.cn:9089/43-328.png', NULL, NULL, '2021.12.14', NULL, NULL, NULL, 0, 0, 710); +INSERT INTO `t_home_content` VALUES (10, 2, 'OpenHarmony 源码解析之 Ability子系统 (零)', 'OpenAtom OpenHarmony', '基于 OpenHarmony 2.2 Beta2 源码的标准系统部分解析 Ability子系统。', NULL, 'https://mp.weixin.qq.com/s/J4smfohqgRmf6iWU_cZcqw', 'https://garden.openatom.cn:9089/44-328.png', NULL, NULL, '2021.12.7', NULL, NULL, NULL, 0, 0, 328); +INSERT INTO `t_home_content` VALUES (11, 2, 'OpenHarmony 源码解析之JavaScript API框架(NAPI)', 'OpenAtom OpenHarmony', '解析OpenHarmony源码中的JavaScript API框架(NAPI)。', NULL, 'https://mp.weixin.qq.com/s/P4S8lMvhUnifm2N_R5Tr4Q', 'https://garden.openatom.cn:9089/45-328.png', NULL, NULL, '2021.11.30', NULL, NULL, NULL, 0, 0, 361); +INSERT INTO `t_home_content` VALUES (12, 2, 'OpenHarmony 源码解析之多模输入子系统(事件派发流程)', 'OpenAtom OpenHarmony', '解析OpenHarmony源码中的多模输入子系统关于事件派发流程。', NULL, 'https://mp.weixin.qq.com/s/5_yopung2d9AbNxzgdVAcg', 'https://garden.openatom.cn:9089/46-328.png', NULL, NULL, '2021.11.26', NULL, NULL, NULL, 0, 0, 345); +INSERT INTO `t_home_content` VALUES (13, 2, 'OpenHarmony 源码解析之多媒体子系统(Camera)', 'OpenAtom OpenHarmony', '解析OpenHarmony 源码中多媒体子系统下的 Camera 模块,开发者如何使用系统的媒体资源。', NULL, 'https://mp.weixin.qq.com/s/S92JcqkMfSDspPzAHkx2iw', 'https://garden.openatom.cn:9089/47-328.png', NULL, NULL, '2021.11.22', NULL, NULL, NULL, 0, 0, 439); +INSERT INTO `t_home_content` VALUES (14, 2, 'OpenHarmony源码解析之ACE(JavaScript运行环境初始化)', 'OpenAtom OpenHarmony', '介绍OpenHarmony 标准系统上的UI框架ACE,构筑了OpenHarmony 标准系统 javacript 应用开发的基础。', NULL, 'https://mp.weixin.qq.com/s/EJh2MgzzBt3Yf9jvuS-pGA', 'https://garden.openatom.cn:9089/48-328.png', NULL, NULL, '2021.11.17', NULL, NULL, NULL, 0, 0, 570); +INSERT INTO `t_home_content` VALUES (15, 2, 'OpenHarmony HDF传感器设备驱动模型分析与使用', 'OpenAtom OpenHarmony', '以开源板Hi3516DV300标准系统版本加速度计为例分析传感驱动模型框架原理和传感器抽象驱动适配开发过程。', NULL, 'https://mp.weixin.qq.com/s/jWjwZ_P2hWe7r_ilowUTrA', 'https://garden.openatom.cn:9089/50-328.png', NULL, NULL, '2021.9.8', NULL, NULL, NULL, 0, 0, 363); +INSERT INTO `t_home_content` VALUES (16, 2, 'OpenHarmony HDF 平台驱动框架介绍及驱动适配指导', 'OpenAtom OpenHarmony', '了解OpenHarmony系统平台驱动框架的特性,完成驱动适配。', NULL, 'https://mp.weixin.qq.com/s/JZple12FTBVMU9To1N9ing', 'https://garden.openatom.cn:9089/51-328.png', NULL, NULL, '2021.9.8', NULL, NULL, NULL, 0, 0, 251); +INSERT INTO `t_home_content` VALUES (17, 2, 'OpenHarmony HDF Display驱动模型解析及移植指导', 'OpenAtom OpenHarmony', 'OpenHarmony HDF Display驱动模型,是如何降低驱动开发者的开发或移植工作量,简化器件驱动开发,提升开发效率的?', NULL, 'https://mp.weixin.qq.com/s/jl-fw2aNBovJdtv4ZHKl2A', 'https://garden.openatom.cn:9089/52-328.png', NULL, NULL, '2021.9.3', NULL, NULL, NULL, 0, 0, 274); +INSERT INTO `t_home_content` VALUES (18, 2, 'OpenHarmony HDF WLAN驱动分析与使用', 'OpenAtom OpenHarmony', '分析 WLAN 驱动架构的组成和各部件的功能,WLAN 芯片厂商通过本框架如何进行各自驱动的开发,以及如何使用 HAL 接口。', NULL, 'https://mp.weixin.qq.com/s/iiE97pqPtzWIZadcjrQtsw', 'https://garden.openatom.cn:9089/53-328.png', NULL, NULL, '2021.9.3', NULL, NULL, NULL, 0, 0, 221); +INSERT INTO `t_home_content` VALUES (19, 2, 'OpenHarmony HDF HDI基础能力分析与使用', 'OpenAtom OpenHarmony', '介绍了 HDI 的总体方案,重点介绍了 HDI 的 IPC 模式具体实现方法和驱动框架能力。', NULL, 'https://mp.weixin.qq.com/s/mvI1eMYDR0gWZ2sI_LXdXg', 'https://garden.openatom.cn:9089/54-328.png', NULL, NULL, '2021.8.31', NULL, NULL, NULL, 0, 0, 348); +INSERT INTO `t_home_content` VALUES (20, 2, 'OpenHarmony HDF Input驱动模型分析与使用', 'OpenAtom OpenHarmony', '介绍如何使用 Hi3516DV300 开发板完成基于 HDF_Input 模型的触摸屏(Touch Screen)器件驱动开发,从而使开发者快速入门。', NULL, 'https://mp.weixin.qq.com/s/ASffAvNJ4QgUSsFMoji50g', 'https://garden.openatom.cn:9089/55-328.png', NULL, NULL, '2021.8.31', NULL, NULL, NULL, 0, 0, 303); +INSERT INTO `t_home_content` VALUES (21, 2, 'OpenHarmony HDF 驱动框架介绍和驱动加载过程分析', 'OpenAtom OpenHarmony', '通过了解 OpenHarmony 系统驱动架构的组成、工作原理和机制,从而了解OpenHarmony系统驱动加载的细节。', NULL, 'https://mp.weixin.qq.com/s/2WhbovdUv8v6x8lmpL4nRg', 'https://garden.openatom.cn:9089/56-328.png', NULL, NULL, '2021.8.30', NULL, NULL, NULL, 0, 0, 471); +INSERT INTO `t_home_content` VALUES (22, 2, 'OpenHarmony HDF 配置管理分析及使用', 'OpenAtom OpenHarmony', '从全景介绍了 HCS 配置管理方案,重点分析了 HC-GEN 的实现和 HCS 的编译过程。', NULL, 'https://mp.weixin.qq.com/s/PINN2g1jryPfCnLCuPud3A', 'https://garden.openatom.cn:9089/57-328.png', NULL, NULL, '2021.8.30', NULL, NULL, NULL, 0, 0, 302); +INSERT INTO `t_home_content` VALUES (23, 2, '简单3步,OpenHarmony上跑起ArkUI分布式小游戏', 'OpenAtom OpenHarmony', '在OpenHarmony3.0 LTS上,结合方舟开发框架、分布式组网和 FA 跨设备迁移能力特性,使用eTS开发了一款传炸弹应用。', NULL, 'https://mp.weixin.qq.com/s/LsgWccZ_9ACMfLzrdLR-rw', 'https://garden.openatom.cn:9089/58-328.png', NULL, NULL, '2021.12.8', NULL, NULL, NULL, 0, 0, 323); +INSERT INTO `t_home_content` VALUES (24, 2, 'OpenHarmony LYEVK-3861开发板播放《蜜雪冰城》', 'OpenAtom OpenHarmony', '基于OpenHarmony 3.0 LTS,搭配开发板的蜂鸣器实现的简单音乐播放程序。', NULL, 'https://mp.weixin.qq.com/s/tM4YrDRECmyGRCBSvcF6vw', 'https://garden.openatom.cn:9089/59-328.png', NULL, NULL, '2021.11.24', NULL, NULL, NULL, 0, 0, 364); +INSERT INTO `t_home_content` VALUES (25, 3, 'OpenHarmony项目群11月新增捐赠人一览', 'OpenAtom OpenHarmony', '2021年11月OpenHarmony携手新大陆、芯海科技共同为OpenHarmony开源生态建设出一份力', NULL, 'https://mp.weixin.qq.com/s/PMI6aLgacyK6--2abcFmcw', 'https://garden.openatom.cn:9089/28-328.png', NULL, NULL, '2021.12.1', NULL, NULL, NULL, 0, 0, 1644); +INSERT INTO `t_home_content` VALUES (26, 3, '美的成为首家通过OpenHarmony V3.0 LTS版本兼容性认证测试的企业', 'OpenAtom OpenHarmony', '首个通过OpenHarmony V3.0LTS版本兼容性认证测试的模组', NULL, 'https://mp.weixin.qq.com/s/FE4-2JW_3qU87ypM6zUVgg', 'https://garden.openatom.cn:9089/30-328.png', NULL, NULL, '2021.12.9', NULL, NULL, NULL, 0, 1, 928); +INSERT INTO `t_home_content` VALUES (27, 3, 'OpenHarmony 技术论坛 | 侯培新博士:OpenHarmony,一路前行', 'OpenAtom OpenHarmony', 'OpenHarmony项目群工作委员会主席侯培新博士为大家介绍OpenHarmony发展之路', NULL, 'https://mp.weixin.qq.com/s/7t88sJyH0aEH0b-YFAMsFw', 'https://garden.openatom.cn:9089/33-328.png', NULL, NULL, '2021.10.26', NULL, NULL, NULL, 0, 0, 732); +INSERT INTO `t_home_content` VALUES (28, 3, 'OpenHarmony项目群新增捐赠人一览', 'OpenAtom OpenHarmony', '2021年10月OpenHarmony携手十三家单位共同为OpenHarmony开源生态建设出一份力', NULL, 'https://mp.weixin.qq.com/s/QrrvEnZ0ygNENUWIZr3u4w', 'https://garden.openatom.cn:9089/29-328.png', NULL, NULL, '2021.11.5', NULL, NULL, NULL, 0, 0, 2690); +INSERT INTO `t_home_content` VALUES (29, 3, 'OpenHarmony开源开发者成长计划 | 知识赋能第二期课程', 'OpenAtom OpenHarmony', '邀请众多行业内知名专家带你学习OpenHarmony', NULL, 'https://mp.weixin.qq.com/s/vZdWbgs8jvgDR79UkNx6aA', 'https://garden.openatom.cn:9089/31-328.png', NULL, NULL, '2021.12.2', NULL, NULL, NULL, 0, 0, 992); +INSERT INTO `t_home_content` VALUES (31, 3, '2021第二届青少年开源教育论坛暨首期OpenHarmony中小学师资培训成功举办', 'OpenAtom OpenHarmony', '2021第二届青少年开源教育论坛暨首期OpenHarmony中小学师资培训成功举办', NULL, 'https://mp.weixin.qq.com/s/rvkJWF2WN-y0k4lWPqe3rg', 'https://garden.openatom.cn:9089/34-328.png', NULL, NULL, '2021.10.27', NULL, NULL, NULL, 0, 0, 471); +INSERT INTO `t_home_content` VALUES (32, 3, '“众家共建OpenHarmony,赋能千行百业”技术论坛圆满召开', 'OpenAtom OpenHarmony', 'OpenHarmony应邀参加华为HDC开发者大会2021,并圆满召开 OpenHarmony技术论坛。', NULL, 'https://mp.weixin.qq.com/s/kXgOntPHIzAnXcIjf4sR2A', 'https://garden.openatom.cn:9089/35-328.png', NULL, NULL, '2021.10.25', NULL, NULL, NULL, 0, 0, 1011); +INSERT INTO `t_home_content` VALUES (33, 3, '【公开鸣谢】OpenHarmony技术论坛圆满召开', 'OpenAtom OpenHarmony', 'OpenHarmony 技术论坛已经圆满结束,感谢所有在论坛上进行精彩分享的嘉宾和参与筹办组织贡献的单位与个人', NULL, 'https://mp.weixin.qq.com/s/9h9cgJMbzKMc1DB30Vae3g', 'https://garden.openatom.cn:9089/36-328.png', NULL, NULL, '2021.10.25', NULL, NULL, NULL, 0, 0, 975); +INSERT INTO `t_home_content` VALUES (34, 3, 'OpenHarmony Github 镜像库正式上线', 'OpenAtom OpenHarmony', '开发者可以通过如下 repo 命令,从 Github 下载 OpenHarmony 镜像库代码。', NULL, 'https://mp.weixin.qq.com/s/jKhCZOe-bOjBakq-_8R_ew', 'https://garden.openatom.cn:9089/37-328.png', NULL, NULL, '2021.9.22', NULL, NULL, NULL, 0, 0, 1057); +INSERT INTO `t_home_content` VALUES (35, 3, 'OpenHarmony 高校课程共建师资培训(物联网理论+实践)成功举办', 'OpenAtom OpenHarmony', '2021年8月26日至28日,OpenHarmony高校课程共建师资培训(物联网理论+实践)成功举办。', NULL, 'https://mp.weixin.qq.com/s/M1kFOyOXeSu8j9j490tIvw', 'https://garden.openatom.cn:9089/38-328.png', NULL, NULL, '2021.9.3', NULL, NULL, NULL, 0, 0, 569); +INSERT INTO `t_home_content` VALUES (36, 4, 'OpenHarmony3.0发布 | 9月30日线上见面会', NULL, '9月30日举办OpenHarmony线上见面会将向大家汇报OpenHarmony3.0版本特性介绍,以及OpenHarmony的最新进展。', NULL, 'https://www.bilibili.com/video/BV1gq4y1Z7Rw?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/20-328.png', NULL, NULL, '2021.9.30', '19:30-21:00', 3, NULL, 0, 0, 4586); +INSERT INTO `t_home_content` VALUES (37, 4, 'OpenHarmony 3.0 LTS 版本发布前特性讲解会', NULL, '在OpenHarmony 3.0 LTS 版本发布前,针对社区关键意见领袖(KOL),讲解版本特性。方便KOL第一时间提前获知版本情况,深入参与到开源社区建设中。', NULL, 'https://www.bilibili.com/video/BV1MR4y1p7nb?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/21-328.png', NULL, NULL, '2021.9.27', NULL, 3, NULL, 0, 0, 14649); +INSERT INTO `t_home_content` VALUES (38, 5, '【第二季】3. OpenHarmony攻略之进程面面观——SAMGR进程介绍', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV18U4y1N7nq?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/9-328.png', NULL, NULL, '2021.12.10', NULL, NULL, NULL, 0, 0, 234); +INSERT INTO `t_home_content` VALUES (39, 5, '【第二季】2. OpenHarmony攻略之进程面面观——init进程介绍', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1mU4y1N77G?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/10-328.png', NULL, NULL, '2021.12.10', NULL, NULL, NULL, 0, 0, 173); +INSERT INTO `t_home_content` VALUES (40, 5, '【第二季】1. OpenHarmony攻略之进程面面观——进程概览', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1bR4y1x7PW?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/11-328.png', NULL, NULL, '2021.12.14', NULL, NULL, NULL, 0, 0, 145); +INSERT INTO `t_home_content` VALUES (41, 5, '【第一季】1. OpenHarmony攻略之环境准备篇(一)', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1pB4y1A7Sw?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/18-328.png', NULL, NULL, '2021.4.19', NULL, NULL, NULL, 0, 0, 1236); +INSERT INTO `t_home_content` VALUES (42, 5, '【第一季】2. OpenHarmony攻略之环境准备篇(二)', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1YB4y1A7fh?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/17-328.png', NULL, NULL, '2021.4.19', NULL, NULL, NULL, 0, 0, 761); +INSERT INTO `t_home_content` VALUES (43, 5, '【第一季】3. OpenHarmony攻略之下载代码篇', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1QQ4y1Z71H?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/16-328.png', NULL, NULL, '2021.4.25', NULL, NULL, NULL, 0, 0, 565); +INSERT INTO `t_home_content` VALUES (44, 5, '【第一季】4. OpenHarmony攻略之编译环境部署篇', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1k54y1574f?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/15-328.png', NULL, NULL, '2021.5.9', NULL, NULL, NULL, 0, 0, 568); +INSERT INTO `t_home_content` VALUES (45, 5, '【第一季】5. OpenHarmony攻略之专属编译环境部署篇', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1HU4y1t7LN?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/14-328.png', NULL, NULL, '2021.5.16', NULL, NULL, NULL, 0, 0, 1236); +INSERT INTO `t_home_content` VALUES (46, 5, '【第一季】6. OpenHarmony攻略之2.0实验环境搭建', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1Dq4y1p7Cc?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/13-328.png', NULL, NULL, '2021.7.6', NULL, NULL, NULL, 0, 0, 702); +INSERT INTO `t_home_content` VALUES (47, 5, '【第一季】7. OpenHarmony攻略之2.0内核Liteos-a源码阅读', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1k44y1q79t?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/12-328.png', NULL, NULL, '2021.7.11', NULL, NULL, NULL, 0, 0, 1371); +INSERT INTO `t_home_content` VALUES (48, 5, '尹友展:《OpenHarmony软总线设计理念》之 Connect by Name和Connect by Addr的选择', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1Eh41117NX?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/22-328.png', NULL, NULL, '2021.2.3', NULL, NULL, NULL, 0, 0, 153); +INSERT INTO `t_home_content` VALUES (49, 5, '尹友展:《OpenHarmony软总线设计理念》之 后续演进', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1Zy4y117Nd?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/23-328.png', NULL, NULL, '2021.2.3', NULL, NULL, NULL, 0, 0, 153); +INSERT INTO `t_home_content` VALUES (50, 5, '尹友展:《OpenHarmony软总线设计理念》之 几种业务模式', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1Vp4y1s7hj?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/24-328.png', NULL, NULL, '2021.2.3', NULL, NULL, NULL, 0, 0, 150); +INSERT INTO `t_home_content` VALUES (51, 5, '尹友展:《OpenHarmony软总线设计理念》之 OpenHarmony软总线的需要解决的问题', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV14r4y1K7iz?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/25-328.png', NULL, NULL, '2021.2.3', NULL, NULL, NULL, 0, 0, 354); +INSERT INTO `t_home_content` VALUES (52, 5, '尹友展:《OpenHarmony软总线设计理念》之 个人介绍', NULL, NULL, NULL, 'https://www.bilibili.com/video/BV1Nf4y1r7Zd?spm_id_from=333.999.0.0', 'https://garden.openatom.cn:9089/26-328.png', NULL, NULL, '2021.2.3', NULL, NULL, NULL, 0, 0, 180); +INSERT INTO `t_home_content` VALUES (56, 3, 'OpenHarmony项目群12月新增捐赠人一览', 'OpenAtom OpenHarmony', '2021 年 12 月,新增美的集团、深开鸿为 OpenHarmony 项目群捐赠人,共同为 OpenHarmony 的开源生态建设出一份力。', NULL, 'https://mp.weixin.qq.com/s/u81bAxnQ_4kUwQYpIBQXyg', 'https://garden.openatom.cn:9089/首页-新闻-banner0120.png', NULL, NULL, '2022.1.12', NULL, NULL, NULL, 132, 53, 32); +INSERT INTO `t_home_content` VALUES (57, 3, 'OpenHarmony开源开发者成长计划 | 知识赋能第三期课程', 'OpenAtom OpenHarmony', '第三期知识赋能课程再度升级,丰富的技术干货课程带你上手 OpenHarmony 的标准系统应用开发', NULL, 'https://mp.weixin.qq.com/s/iOK4ymihndKIARpcOvR_5w', 'https://garden.openatom.cn:9089/成长计划赋能第3期.png', NULL, NULL, '2021.12.31', NULL, NULL, NULL, 0, 0, 3); + +-- ---------------------------- +-- Table structure for t_home_content_pic +-- ---------------------------- +DROP TABLE IF EXISTS `t_home_content_pic`; +CREATE TABLE `t_home_content_pic` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `type` int(11) NULL DEFAULT NULL COMMENT '1=活动,2=博客,3=新闻 ,4=直播 ,5=视频,6=开发板', + `category` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '类别(1:pc端 2:无线端)', + `carouselImage` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '轮播图片', + `carouselUrl` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '轮播图跳转地址', + `sort` int(11) NULL DEFAULT 0 COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '活动,微博,新闻的轮播图表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_home_content_pic +-- ---------------------------- +INSERT INTO `t_home_content_pic` VALUES (1, 1, '1', 'https://garden.openatom.cn:9089/61-1920.png', 'https://garden.openatom.cn:8178/mainPlay', 1); +INSERT INTO `t_home_content_pic` VALUES (2, 1, '2', 'https://garden.openatom.cn:9089/61-375.png', 'https://garden.openatom.cn:8178/mainPlay', 2); +INSERT INTO `t_home_content_pic` VALUES (3, 2, '1', 'https://garden.openatom.cn:9089/39-1920.png', 'https://mp.weixin.qq.com/s/Ow9hqH8I65D8bIOAOYpMzQ', 1); +INSERT INTO `t_home_content_pic` VALUES (4, 2, '2', 'https://garden.openatom.cn:9089/39-375.png', 'https://mp.weixin.qq.com/s/Ow9hqH8I65D8bIOAOYpMzQ', 2); +INSERT INTO `t_home_content_pic` VALUES (7, 4, '1', 'https://garden.openatom.cn:9089/19-1920.png', 'https://mp.weixin.qq.com/s/vZdWbgs8jvgDR79UkNx6aA', 1); +INSERT INTO `t_home_content_pic` VALUES (8, 4, '2', 'https://garden.openatom.cn:9089/nanner.jpeg', 'https://mp.weixin.qq.com/s/vZdWbgs8jvgDR79UkNx6aA', 2); +INSERT INTO `t_home_content_pic` VALUES (9, 5, '1', 'https://garden.openatom.cn:9089/7-1920.png', 'https://space.bilibili.com/672606361/channel/seriesdetail?sid=301476', 1); +INSERT INTO `t_home_content_pic` VALUES (10, 5, '2', 'https://garden.openatom.cn:9089/移动端-banner.png', 'https://space.bilibili.com/672606361/channel/seriesdetail?sid=301476', 2); +INSERT INTO `t_home_content_pic` VALUES (13, 3, '1', 'https://garden.openatom.cn:9089/1227-1920.png', 'https://mp.weixin.qq.com/s/u81bAxnQ_4kUwQYpIBQXyg', 3); +INSERT INTO `t_home_content_pic` VALUES (14, 3, '2', 'https://garden.openatom.cn:9089/1227-750.png', 'https://mp.weixin.qq.com/s/u81bAxnQ_4kUwQYpIBQXyg', 4); + +-- ---------------------------- +-- Table structure for t_home_development +-- ---------------------------- +DROP TABLE IF EXISTS `t_home_development`; +CREATE TABLE `t_home_development` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开发板名称', + `osVersion` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'os版本', + `description` varchar(4000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开发板描述', + `logoImage` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'logo图片', + `url` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '跳转链接', + `source` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '来源', + `attestStatus` int(255) NULL DEFAULT NULL COMMENT '认证状态(1:已认证 2:认证中 )', + `sort` int(11) NULL DEFAULT 0 COMMENT '排序', + `attestDate` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '认证日期', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 31 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '开发版表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_home_development +-- ---------------------------- +INSERT INTO `t_home_development` VALUES (1, 'Hi3861 HiSpark开发板', 'OpenHarmony 1.1.2 LTS', NULL, 'https://garden.openatom.cn:9089/Hi3861 HiSpark开发板.png', NULL, '润和', 1, 1, '2021/8/6'); +INSERT INTO `t_home_development` VALUES (2, 'GR5515 Starter Kit开发板', 'OpenHarmony 3.0 LTS', NULL, 'https://garden.openatom.cn:9089/GR5515 Starter Kit开发板.png', NULL, '汇顶科技', 1, 2, '2021/11/18'); +INSERT INTO `t_home_development` VALUES (3, 'BearPi-HM Nano开发板', 'OpenHarmony 1.1.0 LTS', NULL, 'https://garden.openatom.cn:9089/BearPi-HM Nano开发板.png', NULL, '小熊派', 1, 3, '2021/7/20'); +INSERT INTO `t_home_development` VALUES (4, 'Genki Pi开发板', 'OpenHarmony 1.1.2 LTS', NULL, 'https://garden.openatom.cn:9089/Genki Pi开发板.png', NULL, '传智教育', 1, 4, '2021/9/30'); +INSERT INTO `t_home_development` VALUES (5, 'Niobe开发板', 'OpenHarmony 3.0 LTS / OpenHarmony 1.1.2 LTS', NULL, 'https://garden.openatom.cn:9089/Niobe开发板.png', NULL, '拓维', 1, 5, '2021/12/7'); +INSERT INTO `t_home_development` VALUES (6, 'XR806开发板', 'OpenHarmony 1.1.2 LTS', NULL, 'https://garden.openatom.cn:9089/XR806开发板.png', NULL, '全志', 1, 7, '2021/9/29'); +INSERT INTO `t_home_development` VALUES (7, 'BK7231M开发板', 'OpenHarmony 1.1.0 LTS', NULL, 'https://garden.openatom.cn:9089/BK2731X开发板.png', NULL, '博通集成', 1, 8, '2021/11/10'); +INSERT INTO `t_home_development` VALUES (8, 'WB01模组', 'OpenHarmony 3.0 LTS', NULL, 'https://garden.openatom.cn:9089/WB01模组.png', NULL, '美的', 1, 9, '2021/11/22'); +INSERT INTO `t_home_development` VALUES (9, 'LYEVK-3861A ', 'OpenHarmony 3.0 LTS', NULL, 'https://garden.openatom.cn:9089/LYEVK-3861A .png', NULL, '深开鸿', 1, 10, '2021/11/10'); +INSERT INTO `t_home_development` VALUES (10, '软通动力启航KP_IOT智能开发套件', 'OpenHarmony 1.1.0 LTS', NULL, 'https://garden.openatom.cn:9089/软通动力启航KP_IOT智能开发套件.png', NULL, '软通动力', 1, 11, '2021/11/8'); +INSERT INTO `t_home_development` VALUES (11, '软通动力启航KS_IOT智能开发套件', 'OpenHarmony 1.1.3 LTS', NULL, 'https://garden.openatom.cn:9089/软通动力启航KS_IOT智能开发套件.png', NULL, '软通动力', 1, 12, '2021/11/8'); +INSERT INTO `t_home_development` VALUES (12, 'Waffle Nano模组', 'OpenHarmony 1.1.0 LTS', NULL, 'https://garden.openatom.cn:9089/Waffle Nano模组.png', NULL, '黑胡桃', 1, 13, '2021/7/27'); +INSERT INTO `t_home_development` VALUES (13, 'Multi-modal V200Z-R', 'OpenHarmony master', NULL, 'https://garden.openatom.cn:9089/bes2600wm.png', NULL, '恒玄科技', 1, 14, '2022/1/17'); +INSERT INTO `t_home_development` VALUES (14, '格物板Gewu:bit', 'OpenHarmony 3.0 LTS', NULL, 'https://garden.openatom.cn:9089/Hi3861V100.png', NULL, '好奇星教育', 1, 15, '2022/1/11'); +INSERT INTO `t_home_development` VALUES (15, 'KHDVK-8910A', 'OpenHarmony v3.0 LTS', NULL, 'https://garden.openatom.cn:9089/KHDVK-8910A.png', NULL, '深开鸿', 1, 16, '2022/1/4'); +INSERT INTO `t_home_development` VALUES (16, 'KHDVK-3861B', 'OpenHarmony v3.0 LTS', NULL, 'https://garden.openatom.cn:9089/KHDVK-3861B.png', NULL, '深开鸿', 1, 17, '2022/1/17'); +INSERT INTO `t_home_development` VALUES (17, '直录播扩展盒', 'OpenHarmony 3.0 LTS', NULL, 'https://garden.openatom.cn:9089/直录播扩展盒.png', NULL, '开鸿智谷', 1, 18, '2022/1/26'); +INSERT INTO `t_home_development` VALUES (18, '教育AI主机', 'OpenHarmony 3.0 LTS', NULL, 'https://garden.openatom.cn:9089/教育AI主机.png', NULL, '开鸿智谷', 1, 19, '2022/1/26'); +INSERT INTO `t_home_development` VALUES (19, 'HiHopeOS IoT Edition软件发行版', 'OpenHarmony 3.0 LTS', NULL, 'https://garden.openatom.cn:9089/image.png', NULL, '润和', 1, 20, '2022/1/24'); + +-- ---------------------------- +-- Table structure for t_home_meeting +-- ---------------------------- +DROP TABLE IF EXISTS `t_home_meeting`; +CREATE TABLE `t_home_meeting` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会议名称', + `description` varchar(4000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会议描述', + `label` int(11) NULL DEFAULT NULL COMMENT '标签(1:线上会议 2:线下会议)', + `date` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '日期', + `startTime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会议开始时间', + `endTime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会议结束时间', + `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会议地址', + `recordUrl` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '视频录像链接', + `contentUrl` varchar(4000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会议纪要链接', + `attachmentUrl` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '查看会议地址', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 67 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '文章表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_home_meeting +-- ---------------------------- +INSERT INTO `t_home_meeting` VALUES (1, 'OpenHarmony PMC 例会', NULL, 1, '2020-9-14', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2020-09-14.md', NULL); +INSERT INTO `t_home_meeting` VALUES (3, 'OpenHarmony PMC 例会', NULL, 1, '2020-10-12', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2020-10-12.md', NULL); +INSERT INTO `t_home_meeting` VALUES (4, 'OpenHarmony PMC 例会', NULL, 1, '2020-11-9', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2020-11-09.md', NULL); +INSERT INTO `t_home_meeting` VALUES (5, 'OpenHarmony PMC 例会', NULL, 1, '2020-12-7', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2020-12-07.md', NULL); +INSERT INTO `t_home_meeting` VALUES (6, 'OpenHarmony PMC 例会', NULL, 1, '2021-1-4', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-01-04.md', NULL); +INSERT INTO `t_home_meeting` VALUES (7, 'OpenHarmony PMC 例会', NULL, 1, '2021-1-18', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-01-18.md', NULL); +INSERT INTO `t_home_meeting` VALUES (8, 'OpenHarmony PMC 例会', NULL, 1, '2021-2-1', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-02-01.md', NULL); +INSERT INTO `t_home_meeting` VALUES (9, 'OpenHarmony PMC 例会', NULL, 1, '2021-3-29', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-03-29.md', NULL); +INSERT INTO `t_home_meeting` VALUES (10, 'OpenHarmony PMC 例会', NULL, 1, '2021-4-13', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-04-13.md', NULL); +INSERT INTO `t_home_meeting` VALUES (11, 'OpenHarmony PMC 例会', NULL, 1, '2021-4-26', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-04-26.md', NULL); +INSERT INTO `t_home_meeting` VALUES (12, 'OpenHarmony PMC 例会', NULL, 1, '2021-5-10', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-05-10.md', NULL); +INSERT INTO `t_home_meeting` VALUES (13, 'OpenHarmony PMC 例会', NULL, 1, '2021-5-26', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-05-26.md', NULL); +INSERT INTO `t_home_meeting` VALUES (14, 'OpenHarmony PMC 例会', NULL, 1, '2021-6-28', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-06-28.md', NULL); +INSERT INTO `t_home_meeting` VALUES (15, 'OpenHarmony PMC 例会', NULL, 1, '2021-7-22', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-07-22.md', NULL); +INSERT INTO `t_home_meeting` VALUES (16, 'OpenHarmony PMC 例会', NULL, 1, '2021-8-19', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-08-19.md', NULL); +INSERT INTO `t_home_meeting` VALUES (17, 'OpenHarmony PMC 例会', NULL, 1, '2021-9-8', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-09-08.md', NULL); +INSERT INTO `t_home_meeting` VALUES (18, 'OpenHarmony PMC 例会', NULL, 1, '2021-9-30', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-09-30.md', NULL); +INSERT INTO `t_home_meeting` VALUES (19, 'OpenHarmony PMC 例会', NULL, 1, '2021-10-14', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-10-14.md', NULL); +INSERT INTO `t_home_meeting` VALUES (20, 'OpenHarmony PMC 例会', NULL, 1, '2021-10-28', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-10-28.md', NULL); +INSERT INTO `t_home_meeting` VALUES (21, 'OpenHarmony PMC 例会', NULL, 1, '2021-11-9', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-11-09.md', NULL); +INSERT INTO `t_home_meeting` VALUES (22, 'OpenHarmony PMC 例会', NULL, 1, '2021-11-25', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-11-25.md', NULL); +INSERT INTO `t_home_meeting` VALUES (23, 'OpenHarmony PMC 例会', NULL, 1, '2021-12-9', '10:00', '11:00', NULL, NULL, 'https://gitee.com/openharmony/community/blob/master/meeting-notes/2021-12-09.md', NULL); +INSERT INTO `t_home_meeting` VALUES (24, 'OpenHarmony Dev-Board-SIG例会', NULL, 1, '2021-11-4', '14:00', '15:30', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/devboard/meetings/2021-11-04-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (25, 'OpenHarmony RISC-V-SIG例会', NULL, 1, '2021-6-15', '14:00', '15:00', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/riscv/meetings/2021-06-15-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (26, 'OpenHarmony Openblock-SIG例会', NULL, 1, '2021-6-21', '20:00', '21:00', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/openblock/meetings/2021-06-21-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (27, 'OpenHarmony RISC-V-SIG例会', NULL, 1, '2021-6-29', '14:00', '15:00', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/riscv/meetings/2021-06-29-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (28, 'OpenHarmony Dev-Board-SIG例会', NULL, 1, '2021-7-3', '15:00', '16:00', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/devboard/meetings/2021-07-03-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (29, 'OpenHarmony RISC-V-SIG例会', NULL, 1, '2021-7-8', '14:30', '15:30', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/riscv/meetings/2021-07-08-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (30, 'OpenHarmony Dev-Board-SIG例会', NULL, 1, '2021-7-15', '10:00', '12:00', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/devboard/meetings/2021-07-15-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (31, 'OpenHarmony Dev-Board-SIG例会', NULL, 1, '2021-7-20', '09:30', '10:30', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/devboard/meetings/2021-07-20-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (32, 'OpenHarmony RISC-V-SIG例会', NULL, 1, '2021-7-22', '14:30', '15:30', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/riscv/meetings/2021-07-22-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (33, 'OpenHarmony Linkboy-SIG例会', NULL, 1, '2021-8-4', '8:00', '9:00', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/linkboy/meetings/2021-08-04-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (34, 'OpenHarmony RISC-V-SIG例会', NULL, 1, '2021-8-5', '14:30', '15:30', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/riscv/meetings/2021-08-05-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (35, 'OpenHarmony Dev-Board-SIG例会', NULL, 1, '2021-8-6', '10:00', '12:00', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/devboard/meetings/2021-08-06-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (36, 'OpenHarmony RISC-V-SIG例会', NULL, 1, '2021-8-25', '14:30', '15:30', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/riscv/meetings/2021-08-25-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (37, 'OpenHarmony Knowledge SIG例会', NULL, 1, '2021-11-2', '15:00', '16:00', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/knowlege/meetings/2021-11-02-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (38, 'OpenHarmony RISC-V-SIG例会', NULL, 1, '2021-11-9', '14:30', '15:30', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/riscv/meetings/2021-11-09-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (39, 'OpenHarmony Knowledge SIG例会', NULL, 1, '2021-11-17', '14:00', '15:00', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/knowlege/meetings/2021-11-17-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (40, 'OpenHarmony Knowledge SIG例会', NULL, 1, '2021-11-30', '15:00', '16:00', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/knowlege/meetings/2021-11-30-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (41, 'OpenHarmony Dev-Board-SIG例会', NULL, 1, '2021-12-10', '14:00', '15:00', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/devboard/meetings/2021-12-10-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (42, 'OpenHarmony Knowledge SIG例会', NULL, 1, '2021-12-14', '15:00', '16:00', NULL, NULL, 'https://gitee.com/openharmony-sig/sig-content/blob/master/knowlege/meetings/2021-12-14-meeting.md', NULL); +INSERT INTO `t_home_meeting` VALUES (43, 'OpenHarmony基础设施组例会', NULL, 1, '2021-12-31', '10:00', '11:00', NULL, NULL, NULL, 'https://meeting.tencent.com/dm/qUZa8Uar0hkV'); +INSERT INTO `t_home_meeting` VALUES (44, 'OpenHarmony基础设施组例会', NULL, 1, '2022-1-7', '10:00', '11:00', NULL, NULL, NULL, 'https://meeting.tencent.com/dm/qUZa8Uar0hkV'); +INSERT INTO `t_home_meeting` VALUES (45, 'OpenHarmony基础设施组例会', NULL, 1, '2022-1-14', '10:00', '11:00', NULL, NULL, NULL, 'https://meeting.tencent.com/dm/qUZa8Uar0hkV'); +INSERT INTO `t_home_meeting` VALUES (46, 'OpenHarmony基础设施组例会', NULL, 1, '2022-1-21', '10:00', '11:00', NULL, NULL, NULL, 'https://meeting.tencent.com/dm/qUZa8Uar0hkV'); +INSERT INTO `t_home_meeting` VALUES (47, 'OpenHarmony基础设施组例会', NULL, 1, '2022-1-28', '10:00', '11:00', NULL, NULL, NULL, 'https://meeting.tencent.com/dm/qUZa8Uar0hkV'); +INSERT INTO `t_home_meeting` VALUES (48, 'OpenHarmony项目群TSC委员研讨会', NULL, 1, '2021-12-29', '9:10', '11:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (49, '兼容性组月度例会', NULL, 1, '2022-1-21', '16:00', '17:00', NULL, NULL, NULL, 'https://welink-zhumu-com/j/178290410?pwd=UUVzK09oWWxOTGlPQzNPQlJsbkJzdz09'); +INSERT INTO `t_home_meeting` VALUES (50, '架构例会', NULL, 1, '2022-1-18', '9:30', '12:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (51, 'PMC例会', NULL, 1, '2022-1-20', '9:30', '11:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (52, '架构SIG例会', NULL, 1, '2022-1-25', '9:30', '12:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (53, '兼容性组例会', NULL, 1, '2022-1-27', '16:00', '17:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (54, '架构SIG例会', NULL, 1, '2022-2-8', '9:30', '12:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (55, 'PMC例会', NULL, 1, '2022-2-10', '9:30', '11:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (56, '兼容性组例会', NULL, 1, '2022-2-10', '16:00', '17:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (57, '架构SIG例会', NULL, 1, '2022-2-15', '9:30', '12:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (58, '兼容性组例会', NULL, 1, '2022-2-17', '16:00', '17:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (59, '架构SIG例会', NULL, 1, '2022-2-22', '9:30', '12:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (60, 'PMC例会', NULL, 1, '2022-2-24', '9:30', '11:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (61, '兼容性组例会', NULL, 1, '2022-2-24', '16:00', '17:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (62, '架构SIG例会', NULL, 1, '2022-3-1', '9:30', '12:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (63, '兼容性组例会', NULL, 1, '2022-3-3', '16:00', '17:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (64, '架构SIG例会', NULL, 1, '2022-3-8', '9:30', '12:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (65, 'PMC例会', NULL, 1, '2022-3-10', '9:30', '11:00', NULL, NULL, NULL, NULL); +INSERT INTO `t_home_meeting` VALUES (66, '兼容性组例会', NULL, 1, '2022-3-10', '16:00', '17:00', NULL, NULL, NULL, NULL); + +-- ---------------------------- +-- Table structure for t_log +-- ---------------------------- +DROP TABLE IF EXISTS `t_log`; +CREATE TABLE `t_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `level` int(11) NULL DEFAULT NULL, + `msg` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `exception` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `logTime` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '日志管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_log +-- ---------------------------- + +-- ---------------------------- +-- Table structure for t_os_type +-- ---------------------------- +DROP TABLE IF EXISTS `t_os_type`; +CREATE TABLE `t_os_type` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'os类型名称', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `reserve1` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `reserve2` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `reserve3` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `createTime` datetime(0) NULL DEFAULT NULL, + `updateTime` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_os_type +-- ---------------------------- +INSERT INTO `t_os_type` VALUES (1, '轻量系统', 1, NULL, NULL, NULL, '2021-12-22 09:58:56', NULL); +INSERT INTO `t_os_type` VALUES (2, '小型系统', 2, NULL, NULL, NULL, '2021-12-22 09:59:07', NULL); +INSERT INTO `t_os_type` VALUES (3, '标准系统', 3, NULL, NULL, NULL, '2021-12-22 09:59:16', NULL); + +-- ---------------------------- +-- Table structure for t_os_version +-- ---------------------------- +DROP TABLE IF EXISTS `t_os_version`; +CREATE TABLE `t_os_version` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'os版本原因', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `reserve1` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `reserve2` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `reserve3` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `createTime` datetime(0) NULL DEFAULT NULL, + `updateTime` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_os_version +-- ---------------------------- +INSERT INTO `t_os_version` VALUES (1, '1.0.1 LTS', 1, NULL, NULL, NULL, '2021-12-22 09:59:38', NULL); +INSERT INTO `t_os_version` VALUES (2, '1.1.0 LTS', 2, NULL, NULL, NULL, '2021-12-22 09:59:50', NULL); +INSERT INTO `t_os_version` VALUES (3, '3.0 LTS', 3, NULL, NULL, NULL, '2021-12-22 10:00:09', NULL); +INSERT INTO `t_os_version` VALUES (4, '3.1 Beta', 4, NULL, NULL, NULL, '2021-12-23 20:10:38', NULL); + +-- ---------------------------- +-- Table structure for t_sample +-- ---------------------------- +DROP TABLE IF EXISTS `t_sample`; +CREATE TABLE `t_sample` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '样例名称', + `imageUrl` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图片地址', + `difficultyLevel` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '难度级别', + `author` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作者', + `summary` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '概述', + `featuresIds` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '二级特性ID,多选,已“,”隔开', + `osTypeId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'os类型id', + `osVersionId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'os版本id', + `busTypeId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '一级特性id', + `titleId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标题id', + `gitUrl` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '仓库地址', + `sign` int(11) NULL DEFAULT 0 COMMENT '标识(0:未推荐 1:已推荐)', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `createTime` datetime(0) NULL DEFAULT NULL, + `updateTime` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2900 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_sample +-- ---------------------------- +INSERT INTO `t_sample` VALUES (2727, '任务交替打印', NULL, '初级', '小熊派', '此样例将演示如何在BearPi-HM_Nano开发板上使用cmsis 2.0 接口进行多线程开发。', '48,35', '1', '2', '9,13', '2', 'https://gitee.com/openharmony/device_board_bearpi/blob/master/bearpi_hm_nano/app/A1_kernal_thread/README.md', 0, 0, '2022-01-13 16:51:00', NULL); +INSERT INTO `t_sample` VALUES (2728, '定时器', NULL, '初级', '小熊派', '此样例将演示如何在BearPi-HM_Nano开发板上使用cmsis 2.0 接口进行定时器开发。', '48,35', '1', '2', '9,13', '2', 'https://gitee.com/openharmony/device_board_bearpi/blob/master/bearpi_hm_nano/app/A2_kernel_timer/README.md', 0, 0, '2022-01-13 16:51:00', NULL); +INSERT INTO `t_sample` VALUES (2729, '事件', NULL, '初级', '小熊派', '此样例将演示如何在BearPi-HM_Nano开发板上使用cmsis 2.0 接口使用事件标志同步线程。', '48,35', '1', '2', '9,13', '2', 'https://gitee.com/openharmony/device_board_bearpi/blob/master/bearpi_hm_nano/app/A3_kernel_event/README.md', 0, 0, '2022-01-13 16:51:00', NULL); +INSERT INTO `t_sample` VALUES (2730, '互斥锁', NULL, '初级', '小熊派', '此样例将演示如何在BearPi-HM_Nano开发板上使用cmsis 2.0 接口使用互斥来同步任务。', '48,35', '1', '2', '9,13', '2', 'https://gitee.com/openharmony/device_board_bearpi/blob/master/bearpi_hm_nano/app/A4_kernel_mutex/README.md', 0, 0, '2022-01-13 16:51:00', NULL); +INSERT INTO `t_sample` VALUES (2731, '信号量', NULL, '初级', '小熊派', '此样例将演示如何在BearPi-HM_Nano开发板上使用cmsis 2.0 接口通过信号量同时从不同的线程访问共享资源。', '48,35', '1', '2', '9,13', '2', 'https://gitee.com/openharmony/device_board_bearpi/blob/master/bearpi_hm_nano/app/A5_kernel_semaphore/README.md', 0, 0, '2022-01-13 16:51:00', NULL); +INSERT INTO `t_sample` VALUES (2758, 'ClickableJsDemo', NULL, '初级', 'OpenHarmony Codelabs团队', '基于OpenHarmony JS UI,使用Image、image-animator,实现图片展示与界面交互的动态效果。', '3', '3', '3', '2', '1', 'https://gitee.com/openharmony/codelabs/tree/master/JSUI/ClickableJsDemo', 0, 0, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_sample` VALUES (2759, 'DialogDemo', NULL, '初级', 'OpenHarmony Codelabs团队', '基于OpenHarmony JS UI,使用dialog组件实现几种常用的弹窗效果。', '3', '3', '3', '2', '1', 'https://gitee.com/openharmony/codelabs/tree/master/JSUI/DialogDemo', 0, 0, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_sample` VALUES (2760, '图片编辑模板', NULL, '初级', 'OpenHarmony Codelabs团队', '此样例将为开发者介绍如何使用ArkUI实现对图片的裁剪和调节。应用主界面包含顶部区域、中间区域和底部区域。顶部区域由后退、撤销、重做以及保存image组件构成;中间区域由预览图、裁剪框构成;底部区域由上至下依次为:用于调节次级功能的编辑参数、用于选择次级功能、用于选择图片编辑功能。', '3', '3', '3', '2', '1', 'https://gitee.com/openharmony/codelabs/tree/master/Media/ImageEditorTemplate', 0, 0, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_sample` VALUES (2761, '图片常见操作', NULL, '中级', 'OpenHarmony Codelabs团队', '此样例使用JS UI中的Image组件,利用CSS实现图片的旋转,剪裁,缩放,镜像效果。', '6,3', '3', '3', '2,3', '1', 'https://gitee.com/openharmony/codelabs/tree/master/Media/ImageJsDemo', 0, 0, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_sample` VALUES (2762, 'InputApplication', NULL, '初级', 'OpenHarmony Codelabs团队', '此样例使用JS UI中的input组件,实现输入框和表单提交。您可以在input输入框输入内容,长按input输入框对输入内容进行翻译、分享、查找等操作,点击提交按钮时对必填项进行校验。', '3', '3', '3', '2', '1', 'https://gitee.com/openharmony/codelabs/tree/master/JSUI/InputApplication', 0, 0, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_sample` VALUES (2763, '自定义组件', NULL, '初级', 'OpenHarmony Codelabs团队', '此样例将使用JS语言进行开发,做一个自定义组件绘制转盘的动画。', '3', '3', '3', '2', '1', 'https://gitee.com/openharmony/codelabs/tree/master/JSUI/JSCanvasComponet', 0, 0, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_sample` VALUES (2764, '分布式新闻客户端', 'https://gitee.com/openharmony/codelabs/raw/master/NewsDemo/screenshots/device/NewsClientDemo.PNG', '高级', 'OpenHarmony Codelabs团队', '此样例是在HarmonyOS 分布式新闻客户端(JAVA)的设计基础上,用JS编程语言重写了一个布局一模一样的新闻客户端,并对OpenHarmony开发板进行了适配。', '33,3', '3', '3', '2,7', '1', 'https://gitee.com/openharmony/codelabs/tree/master/Distributed/NewsDemo', 0, 0, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_sample` VALUES (2766, 'RatingApplication', NULL, '初级', 'OpenHarmony Codelabs团队', '此样例使用JS UI中的rating组件,我们将会通过一个简单的样例,实现一个星级打分的效果', '3', '3', '3', '2', '1', 'https://gitee.com/openharmony/codelabs/tree/master/JSUI/RatingApplication', 0, 0, '2022-01-13 16:51:01', NULL); +INSERT INTO `t_sample` VALUES (2767, '护花使者', 'https://gitee.com/openharmony-sig/vendor_oh_fun/raw/master/bearpi-hm_nano-oh_flower/01_%E6%93%8D%E4%BD%9C%E6%96%87%E6%A1%A3/figures/%E6%A4%8D%E7%89%A9.jpg', '初级', '小熊派', '此样例是用BearPi-HM_Nano开发板加上一块“护花使者“底板及抽水电机等配件,快速DIY出一款具备远程监测土壤湿度并实现远程浇水的设备。该项目具备成本低、耗时少、操作简单等特点,时时刻刻呵护您的植物,伴其茁壮成长。', '44,48,35', '1', '2', '9,12,13', '2', 'https://gitee.com/openharmony-sig/vendor_oh_fun/tree/master/bearpi-hm_nano-oh_flower', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2769, '轻量系统快速开发套件', NULL, '初级', 'OpenHarmony知识体系工作组', '此样例基于QEMU搭建openharmony快速开发环境。可用于线上开发轻量系统设备。', '48,35', '1', '3', '9,13', '2', 'https://gitee.com/openharmony-sig/knowledge/blob/master/%E6%A0%B7%E4%BE%8B/%E8%BD%BB%E9%87%8F%E7%B3%BB%E7%BB%9F/%E8%BD%BB%E9%87%8F%E7%B3%BB%E7%BB%9F%E5%BF%AB%E9%80%9F%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6/%E8%BD%BB%E9%87%8F%E7%B3%BB%E7%BB%9F%E5%BF%AB%E9%80%9F%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6.md', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2770, '小型系统快速开发套件', NULL, '初级', 'OpenHarmony知识体系工作组', '此样例基于QEMU搭建openharmony快速开发环境。可用于线上开发小型系统设备。', '48,36', '2', '3', '9,13', '2', 'https://gitee.com/openharmony-sig/knowledge/blob/master/%E6%A0%B7%E4%BE%8B/%E5%B0%8F%E5%9E%8B%E7%B3%BB%E7%BB%9F/%E5%B0%8F%E5%9E%8B%E5%BF%AB%E9%80%9F%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6/%E5%B0%8F%E5%9E%8B%E5%BF%AB%E9%80%9F%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6.md', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2771, '智能烟感系统', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_smoke_sensation/resource/zhengtixiao.gif', '中级', 'OpenHarmony知识体系工作组', '智能烟感系统通过实时监测环境中烟雾浓度,当烟雾浓度超标时,及时向用户发出警报。在连接网络后,配合数字管家应用,用户可以远程配置智能烟感系统的报警阈值,远程接收智能烟感系统报警信息。实现对危险及时报警,及时处理,守护居家安全。', '44,35,48,42', '1', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_smoke_sensation', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2772, '智能可燃气体检测系统', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_gasdetection/resource/zhenggexiao.gif', '中级', 'OpenHarmony知识体系工作组', '此样例是基于BearPi套件开发的智能可燃气体检测开发样例,该系统内主要由小熊派单板套件和和MQ5可燃气体检测传感器组成。 智能可燃气体检测系统可以通过云和手机建立连接,可以在手机上控制感应的阈值,传感器感知到的可燃气体浓度超过阈值之后,将会通过云传给手机,并报警。', '44,35,48,42', '1', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_gasdetection', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2773, '智能甲醛检测系统', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_tvocdetection/resource/zhenggexiao.gif', '中级', 'OpenHarmony知识体系工作组', '此样例是基于BearPi套件开发的智能甲醛检测系统开发样例,该设备硬件部分主要由小熊派单板套件和和甲醛检测传感器组成。智能甲醛检测系统可以通过云和手机建立连接,可以在手机上设置甲醛浓度阈值,传感器感知到的甲醛浓度超过阈值之后,将会通过云传给手机,并报警。', '44,35,48,42', '1', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_tvocdetection', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2774, '智慧窗帘', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_curtain/resource/operation.gif', '中级', 'OpenHarmony知识体系工作组', '智能窗帘设备不仅接收数字管家应用下发的指令来控制窗帘开启的时间,而且还可以加入到数字管家的日程管理中。通过日程可以设定窗帘开关的时间段,使其在特定的时间段内,窗帘自动打开或者关闭;通过日程管家还可以实现窗帘和其他的智能设备联动。', '44,35,48,42', '1', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/dev/docs/smart_curtain', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2775, '智能扫地机', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_cleaner/resource/caozuo.gif', '中级', 'OpenHarmony知识体系工作组', '此样例采用润和的智能小车套件为硬件模型,通过修改代码具备了扫地机器人简易的避障功能及防跌落功能,并且能通过wifi接入数字管家应用场景。智能扫地机不仅能接收数字管家应用下发的指令启动或停止扫地机器人,而且还可以加入到数字管家的日程管理中。通过日程可以设定智能扫地机启动的时间段,使其在特定的时间段内,智能扫地机自动启动或者停止。', '44,35,48,42', '1', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_cleaner', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2776, '智能养花机', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_flower_machine/resource/kongzhixiao.gif', '中级', 'OpenHarmony知识体系工作组', '智能养花机通过感知花卉、盆栽等植宠生长环境的温度、湿度信息,适时为它们补充水分。在连接网络后,配合数字管家应用,用户可远程进行浇水操作。用户还可在应用中设定日程,有计划的按日、按周进行浇水。在日程中用户可添加其它智能设备(例如:智能窗帘),一起呵护植宠的成长。', '44,35,48,42', '1', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_flower_machine', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2777, '智能垃圾桶', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_trashcan/resource/gif_002.gif', '中级', 'OpenHarmony知识体系工作组', '智能垃圾桶可以通过数字管家应用来监测垃圾桶当前可用容量,提醒主人及时处理垃圾;通过日程管家可以实现和其他智能设备联动。', '44,35,48,42', '1', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_trashcan', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2778, '智能电子牌', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/electronic_borad/resource/opration.gif', '高级', 'OpenHarmony知识体系工作组', '此样例是基于hi3516dv300开发板,使用开源鸿蒙OpenHarmony 开发的应用。通过该应用不仅可以查看时间、日期以及对应的室内外温湿度、空气质量等,还可以查看当日的行程,让我们随时随地把握行程,不会遗漏任何重要的安排。', '44,60,36,48,51,42', '2', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/electronic_borad', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2779, '智能风扇', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_fan/resource/operation.gif', '中级', 'OpenHarmony知识体系工作组', '智能风扇设备不仅接收数字管家应用下发的指令来控制风扇开启的时间,调节风扇挡位,更改风扇定时时间,而且还可以加入到数字管家的日程管理中。通过日程可以设定风扇相关的任务,使其在特定的时间段内,风扇自动打开或者关闭,调节挡位大小和定时时间;通过日程管家还可以实现风扇和其他的智能设备联动。', '44,35,48,42', '1', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_fan', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2780, '智能手表', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_watch/resource/%E4%BA%A7%E5%93%81%E7%A4%BA%E6%84%8F%E5%9B%BE%E2%80%94%E2%80%94%E6%99%BA%E8%83%BD%E5%84%BF%E7%AB%A5%E6%89%8B%E8%A1%A8.png', '中级', 'OpenHarmony知识体系工作组', '此样例是基于BearPi套件开发的智能儿童手表系统,该系统通过与GSM模块(型号:SIM808)的通信来实现通话和定位功能。 智能儿童手表系统可以通过云和手机建立连接,同步时间和获取天气信息,通过手机下达日程安排到儿童手表,并显示在儿童手表的屏幕端,还可以通过SIM808模块获取地理位置信息,接收和拨打电话等功能。', '44,35,48,42', '1', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_watch', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2781, '智能台灯', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_lamp/resource/5.png', '中级', 'OpenHarmony知识体系工作组', '智能台灯设备不仅接收数字管家应用下发的指令来控制台灯的开关及亮度,而且还可以加入到数字管家的日程管理中。通过日程可以设定台灯开关的时间段,使其在特定的时间段内,台灯自动打开或者熄灭,并能自动调节相应时间段台灯的亮度;通过日程管家还可以实现台灯和其他的智能设备联动。', '44,35,48,42', '1', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/dev/docs/smart_lamp', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2782, '智能中控面板', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_cenctrl_board/resource/opration.gif', '高级', 'OpenHarmony知识体系工作组', '此样例是基于Hi3516开发板,使用开源OpenHarmony开发的应用。通过控制面板可以控制同一局域网内的空调,窗帘,灯等智能家居设备。', '44,60,36,48,51', '2', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_cenctrl_board/README.md', 1, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2783, '智能相机', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_camera/resource/opration.gif', '高级', 'OpenHarmony知识体系工作组', '此样例是基于Hi3516开发板,使用开源OpenHarmony3.0 LTS开发的应用。通过获取摄像头数据,实现预览拍照以及路视频等功能。并且通过后台AI服务识别唤醒词来进行语音控制拍照及录视频。', '44,36,48,59,60,51,63', '2', '3', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_camera/README.md', 1, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2784, '智能猫眼3516', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_door_viewer_3516/resource/3516.gif', '高级', 'OpenHarmony知识体系工作组', '此样例是基于Hi3516开发板,使用开源OpenHarmony开发的应用。通过手机应用可以看到Hi3516摄像头捕获的数据。', '44,45,36,48,51,59', '2', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_door_viewer_3516/README.md', 0, 0, '2022-01-14 16:26:37', NULL); +INSERT INTO `t_sample` VALUES (2785, '智能猫眼3518', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_door_viewer_3518/resource/3518.gif', '高级', 'OpenHarmony知识体系工作组', '此样例是基于Hi3518开发板,使用开源OpenHarmony开发的应用。通过手机应用可以看到Hi3518摄像头捕获的数据。', '44,45,36,48,51,59', '2', '1', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_door_viewer_3518/README.md', 0, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2786, '贪吃蛇', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/raw/master/dev/docs/demo_snake/resource/2.gif', '中级', '深开鸿', '此样例是基于LYEVK-3861开发板IOT套件开发的简易贪吃蛇小游戏,使用了套件中的OLED屏幕扩展板和带按键的照明板。用OLED屏幕显示游戏运行界面,按键复用为游戏选择和游戏控制方向键。', '48,35,39', '1', '3', '9,13,10', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/dev/docs/demo_snake', 0, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2787, '音乐播放', NULL, '中级', '深开鸿', '此样例是基于LYEVK-3861开发板IOT套件开发的音乐播放放器,通过不同频率的PWM波驱动蜂鸣器可以产生不同音符的声音,利用这一特点,就可以奏出一段音乐。', '48,35,39', '1', '3', '9,13,10', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/blob/master/dev/docs/demo_beep/README.md', 0, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2788, '智慧停车', NULL, '中级', '深开鸿', '此样例是基于LYEVK-3861A IoT 开发套件开发,通过获取光照强度变化感知是否有车停放。', '44,48,35,39', '1', '3', '9,12,13,10', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/dev/team_x/demo_park', 0, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2789, '基于LYEVK-3861 接入华为IoT平台', NULL, '中级', '深开鸿', '本Demo是基于LYEVK-3861A IoT 开发套件开发,通过温湿度传感器模块获取温度,并上传华为云服务器。', '44,45,35,48', '1', '3', '9,12,13', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/dev/docs/demo_temp', 0, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2790, '智能加湿器', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_humidifier/resource/humidifier_04.gif', '高级', 'OpenHarmony知识体系工作组', '该样例使用JS编写本地设备应用界面,通过JSI机制与HDF交互来控制加湿器和显示当前湿度。样例还显示日期时间、天气和WIFI状态、阈值调解功能。还已接入数字管家应用,支持远程操作和日程安排,语音控制加湿器开关功能。', '44,35,48,51,38', '1', '4', '9,12,13,10', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/dev/docs/smart_humidifier', 1, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2791, '智能门铃', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_door_bell/resource/bell_main_pic.jpg', '高级', 'OpenHarmony知识体系工作组', '该样例人感配合按键监测入户门前状态“无人”,“不明人员逗留”,“访客按门铃”。将这些信息实时同步到室内屏幕上,并且在监测到门前有人时,蜂鸣器会报警,提醒室内用户。如果设备联网的情况下,这些信息也会同步到数字管家,并且数字管家还可以远程一键开锁。', '44,35,48,51,38', '1', '4', '9,12,13,10', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/dev/docs/smart_door_bell', 1, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2792, '智能门锁', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_lock/resources/smart_lock.gif', '中级', 'OpenHarmony知识体系工作组', '通过密码开锁以及开锁密码的管理,支持用户创建修改密码,也支持用户创建一次性密码。本样例还支持检测长时间未关门进行告警,及时通知用户进行关门处理。本样例已接入数字管家,通过操控电机模拟实现远程开关锁操作。', '44,35,48,38', '1', '4', '9,12,13,10', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/dev/docs/smart_lock', 1, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2793, '智能体重秤', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_weight_scale/resource/1.gif', '中级', 'OpenHarmony知识体系工作组', '该样例通过外接称重和超声波模块,实现了称重和测高的功能。本样例已接入数字管家,在FA端提供语音播报,体重周期报表,健康小知识推荐等功能。', '44,35,48,38', '1', '4', '9,12,13,10', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/dev/docs/smart_weight_scale', 1, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2794, '智能保险柜', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/raw/master/dev/docs/smart_safe/resource/6.gif', '中级', 'OpenHarmony知识体系工作组', '该样例利用碰一碰配网接入数字管家,并外接震动传感器,实现保险柜实时监控、报警功能。如果保险柜被震动,则手机会收到告警。', '44,35,40,48,42,39', '1', '4', '9,12,13,10', '2', 'https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/dev/docs/smart_safe', 1, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2795, '传炸弹小游戏', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/raw/master/FA/Entertainment/BombGame/resources/3568_start_game.gif', '高级', 'OpenHarmony知识体系工作组', '此样例基于OpenHarmony系统使用eTS语言进行编写,邀请用户进行设备认证后,用户根据操作提示通过分布式流转实现随机传递炸弹的效果。', '4,33', '3', '4', '2,7', '1', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/FA/Entertainment/BombGame', 1, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2796, '分布式音乐播放器', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/raw/master/FA/Entertainment/DistrubutedMusicPlayer/images/music_3568.gif', '高级', 'OpenHarmony知识体系工作组', '此样例是基于OpenHarmony系统使用eTS语言进行编写,体现音乐播放,分布式流转的能力。', '4,8,33', '3', '4', '2,3,7', '1', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/FA/Entertainment/DistrubutedMusicPlayer', 1, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2797, '井字过三关小游戏', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/raw/master/FA/Entertainment/TicTacToeGame/resource/1.gif', '高级', 'OpenHarmony知识体系工作组', '此样例基于OpenHarmony系统使用eTS语言进行编写,主要通过设备认证,分布式拉起,分布式数据管理等功能来实现。', '4,33,32', '3', '4', '2,7', '1', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/FA/Entertainment/TicTacToeGame', 1, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2798, '分布式购物车', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/raw/master/FA/Shopping/DistributedShoppingCart/resources/3568.gif', '高级', 'OpenHarmony知识体系工作组', '此样例基于OpenHarmony系统使用eTS语言进行编写,模拟的是我们购物时参加满减活动,进行拼单的场景;实现两人拼单时,其他一人添加商品到购物车,另外一人购物车列表能同步更新,且在购物车列表页面结算时,某一人结算对方也能实时知道结算金额和优惠金额。', '4,33,32', '3', '4', '2,7', '1', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/FA/Shopping/DistributedShoppingCart', 1, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2799, '分布式账本', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/raw/master/FA/Shopping/MyAccountBook/resource/zhangdang.gif', '高级', 'OpenHarmony知识体系工作组', '此样例基于OpenHarmony系统使用eTS语言进行编写,主要通过设备认证,分布式拉起,分布式数据管理等功能来实现。', '4,33,32', '3', '4', '2,7', '1', 'https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/FA/Shopping/MyAccountBook', 1, 0, '2022-01-14 16:26:38', NULL); +INSERT INTO `t_sample` VALUES (2880, '动画样式(JS)', NULL, '初级', 'OpenHarmony Codelabs团队', '此样例使用的是通用动画样式,我们通过一个简单的样例,实现了平移、旋转、缩放以及透明度变化的效果。', '3', '3', '3', '2', '1', 'https://gitee.com/openharmony/codelabs/tree/master/JSUI/AnimationDemo', 0, 0, '2022-01-17 17:15:50', NULL); +INSERT INTO `t_sample` VALUES (2881, '蓝牙键盘', 'https://gitee.com/openharmony-sig/vendor_oh_fun/raw/master/hihope_neptune-oh_hid/02_%E6%93%8D%E4%BD%9C%E6%8C%87%E5%AF%BC%E6%96%87%E6%A1%A3/meta/wps6.jpg', '初级', '江苏润和软件股份有限公司', '此样例是基于润和Neptune开发板开发的蓝牙键盘开发样例,搭配USB转串口模块,实现有线键盘转成蓝牙键盘的功能。', '48,35,43', '1', '2', '9,12,13', '2', 'https://gitee.com/openharmony-sig/vendor_oh_fun/tree/master/hihope_neptune-oh_hid', 0, 0, '2022-01-14 16:26:37', NULL); + +-- ---------------------------- +-- Table structure for t_title +-- ---------------------------- +DROP TABLE IF EXISTS `t_title`; +CREATE TABLE `t_title` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `reserve1` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '预留1', + `reserve2` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '预留2', + `reserve3` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `createTime` datetime(0) NULL DEFAULT NULL, + `updateTime` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '菜单管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_title +-- ---------------------------- +INSERT INTO `t_title` VALUES (1, '应用开发', 1, NULL, NULL, NULL, '2021-12-01 10:54:18', NULL); +INSERT INTO `t_title` VALUES (2, '设备开发', 2, NULL, NULL, NULL, '2021-12-01 10:54:35', NULL); + +-- ---------------------------- +-- Table structure for t_user +-- ---------------------------- +DROP TABLE IF EXISTS `t_user`; +CREATE TABLE `t_user` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户表', + `userName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名', + `phoneNumber` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '电话号码', + `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `token` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `createTime` datetime(0) NULL DEFAULT NULL, + `loginTime` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of t_user +-- ---------------------------- +INSERT INTO `t_user` VALUES (1, 'admin', '13588995566', 'fb2d1611193226d43a0c78cdceacd1ea', 'eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFMyNTYiLCJ0eXAiOiJKV1QifQ.eyJsb2dpblVzZXJJZCI6Ik9wZW5oYXJtb255MTIzIiwiZXhwIjoxNjQzMjUzODcxLCJ1c2VybmFtZSI6ImFkbWluIn0.bOdd0teQb7xzZLJ7A1BPOJRkrLEQ62cEzkJetrDkUS8', NULL, '2022-01-20 11:24:32'); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/knowledge-map/src/main/java/com/chinasoft/KnowledgeMapApplication.java b/knowledge-map/src/main/java/com/chinasoft/KnowledgeMapApplication.java new file mode 100644 index 00000000..b51d8add --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/KnowledgeMapApplication.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft; + +import org.apache.catalina.Context; +import org.apache.catalina.connector.Connector; +import org.apache.tomcat.util.descriptor.web.SecurityCollection; +import org.apache.tomcat.util.descriptor.web.SecurityConstraint; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; +import org.springframework.boot.web.servlet.server.ServletWebServerFactory; +import org.springframework.context.annotation.Bean; + +@SpringBootApplication +public class KnowledgeMapApplication { + + private static final int DEFAULT_HTTP_PORT = 8112; + + @Value("${server.port}") + private int serverPort; + + public static void main(String[] args) { + SpringApplication.run(KnowledgeMapApplication.class, args); + } + + /*// SpringBoot2.x配置HTTPS,并实现HTTP访问自动转向HTTPS + @Bean + public ServletWebServerFactory servletContainer() { + TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(){ + @Override + protected void postProcessContext(Context context) { + SecurityConstraint securityConstraint = new SecurityConstraint(); + securityConstraint.setUserConstraint("CONFIDENTIAL"); + SecurityCollection collection = new SecurityCollection(); + collection.addPattern("/*"); + securityConstraint.addCollection(collection); + context.addConstraint(securityConstraint); + } + }; + tomcat.addAdditionalTomcatConnectors(httpConnector()); + return tomcat; + } + + @Bean + public Connector httpConnector() { + Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); + connector.setScheme("http"); + connector.setPort(DEFAULT_HTTP_PORT); // 监听Http的端口 + connector.setSecure(false); + connector.setRedirectPort(serverPort); // 监听Http端口后转向Https端口 + return connector; + }*/ + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/annotation/OperationLog.java b/knowledge-map/src/main/java/com/chinasoft/annotation/OperationLog.java new file mode 100644 index 00000000..22b482fe --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/annotation/OperationLog.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.annotation; + +import java.lang.annotation.*; + +/** + * 操作日志注解 + * @author 崔翔 + * + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface OperationLog { + /** + * 行为 + * @return + */ + String action() default ""; + + /** + * 操作类型 + * @return + */ + String operateType() default ""; + /** + * 描述 + * @return + */ + String operationDesc() default ""; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/BaseInfo.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/BaseInfo.java new file mode 100644 index 00000000..f3be2077 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/BaseInfo.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class BaseInfo extends Basic{ + private Integer id; + private Integer sampleId; + private String versionNo; + private String deviceLevel; + private String sysVersion; + private String reserve1; + private String reserve2; + private String reserve3; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/Basic.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/Basic.java new file mode 100644 index 00000000..2ea4f291 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/Basic.java @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +public class Basic { + + /** + * 开始页 + */ + @JsonIgnore + private Integer start; + /** + * 每页页数 + */ + @JsonIgnore + private Integer pageSize; + /** + * 第几页,默认第1页 + */ + @JsonIgnore + private Integer pageNum; + + //添加时间 + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + @JsonIgnore + private Date createTime; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + @JsonIgnore + private Date updateTime; + + /** + * 查询条件 + */ + @JsonIgnore + private String condition; + + public Integer getStart() { + if (null != pageNum && pageSize > 0){ + start = (pageNum - 1) * pageSize; + } + return start; + } + + public void setStart(Integer start) { + this.start = start; + } + + public Integer getPageNum() { + return pageNum; + } + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; + } + + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public String getCondition() { + return condition; + } + + public void setCondition(String condition) { + this.condition = condition; + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/BusType.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/BusType.java new file mode 100644 index 00000000..e4514a84 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/BusType.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class BusType extends Basic{ + private Integer id; + private Integer busTypeId; + private String name; + private Integer sort; + private Integer titleId; + private Integer levelId; + private String reserve1; + private String reserve2; + private String reserve3; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/Detail.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/Detail.java new file mode 100644 index 00000000..171d340c --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/Detail.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Detail extends Basic{ + private Integer id; + private Integer typeId; + private String name; + private String url; + private String description; + private Integer sampleId; + private Integer sort; + private String reserve1; + private String reserve2; + private String reserve3; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/DetailType.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/DetailType.java new file mode 100644 index 00000000..77536497 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/DetailType.java @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DetailType extends Basic{ + private Integer id; + private String name; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/Features.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/Features.java new file mode 100644 index 00000000..5abc2bee --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/Features.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Features extends Basic{ + private Integer id; + private Integer featuresId; + private String name; + private Integer sort; + private Integer busTypeId; + private String reserve1; + private String reserve2; + private String reserve3; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeAdvertising.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeAdvertising.java new file mode 100644 index 00000000..9eb49704 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeAdvertising.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class HomeAdvertising { + private Integer id; + private int type; + private String imgUrl; + private String url; + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeBanner.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeBanner.java new file mode 100644 index 00000000..5ff27f4f --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeBanner.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class HomeBanner { + private Integer id; + private String imgUrl; + private String url; + private int sort; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeCompany.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeCompany.java new file mode 100644 index 00000000..386f50a9 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeCompany.java @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class HomeCompany { + private Integer id; + private String logoUrl; + private String url; + private int sort; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeContent.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeContent.java new file mode 100644 index 00000000..eec7ec5b --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeContent.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class HomeContent extends Basic{ + private Integer id; + private int type; + private String title; + private String source; + private String content; + private String textDetails; + private String backgroundImage; + private String url; + private String advertiseImage; + private String advertiseUrl; + private String startTime; + private String endTime; + private int label; + private int recommend; + private int likesCount; + private int shareCount; + private int browseCount; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeContentPic.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeContentPic.java new file mode 100644 index 00000000..0a13a9fb --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeContentPic.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class HomeContentPic { + private Integer id; + private Integer type; + private String carouselImage; + private String carouselUrl; + private Integer sort; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeDevelopment.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeDevelopment.java new file mode 100644 index 00000000..dd17bbb9 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeDevelopment.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class HomeDevelopment extends Basic { + private Integer id; + private String name; + private String osVersion; + private String description; + private String logoImage; + private String url; + private String source; + private int attestStatus; + private int sort; + private String attestDate; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeMeeting.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeMeeting.java new file mode 100644 index 00000000..21ed6872 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/HomeMeeting.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class HomeMeeting { + private Integer id; + private String name; + private int label; + private String date; + private String startTime; + private String endTime; + private String address; + private String recordUrl; + private String contentUrl; + private String attachmentUrl; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/Level.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/Level.java new file mode 100644 index 00000000..d618e2e1 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/Level.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Level extends Basic { + private Integer id; + private Integer levelId; + private String name; + private Integer sort; + private String reserve1; + private String reserve2; + private String reserve3; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/OsType.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/OsType.java new file mode 100644 index 00000000..846c6f8a --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/OsType.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class OsType extends Basic { + private Integer id; + private Integer osTypeId; + private String name; + private Integer sort; + private String reserve1; + private String reserve2; + private String reserve3; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/OsVersion.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/OsVersion.java new file mode 100644 index 00000000..e5f1c9fe --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/OsVersion.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class OsVersion extends Basic { + private Integer id; + private Integer osVersionId; + private String name; + private Integer sort; + private String reserve1; + private String reserve2; + private String reserve3; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/PushStrategyPO.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/PushStrategyPO.java new file mode 100644 index 00000000..820eeb36 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/PushStrategyPO.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ApiModel(value = "推送策略") +@Data +public class PushStrategyPO { + + //id + @ApiModelProperty(value = "策略id") + private Integer id; + + //邮件主题 + @ApiModelProperty(value = "邮件主题") + private String submit; + //邮件内容 + @ApiModelProperty(value = "邮件内容") + private String content; + //邮件主送人 + @ApiModelProperty(value = "邮件主送人") + private String recipient; + //邮件主送人 + @ApiModelProperty(value = "邮件抄送人") + private String CC; + + @ApiModelProperty(value = "邮件附件路径") + private String path; + + @ApiModelProperty(value = "邮件附件名称") + private String fileName; + + //删除Del + @ApiModelProperty(value = "逻辑删除,【0】为保存,【1】为删除") + private int isDel; + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/Sample.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/Sample.java new file mode 100644 index 00000000..de8f7dc0 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/Sample.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Sample { + private Integer id; + private String name; + private String author; + private String summary; + private String featuresIds; + private String gitUrl; + private Integer sign; + private Integer sort; + private Date createTime; + private Date updateTime; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/Title.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/Title.java new file mode 100644 index 00000000..99228e8f --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/Title.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Title extends Basic{ + private Integer id; + private Integer titleId; + private String name; + private Integer sort; + private String reserve1; + private String reserve2; + private String reserve3; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/User.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/User.java new file mode 100644 index 00000000..2232f6b7 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/User.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class User extends Basic{ + private Integer id; + private String userName; + private String phoneNumber; + private String password; + private String token; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + private Date loginTime; + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/po/log.java b/knowledge-map/src/main/java/com/chinasoft/bean/po/log.java new file mode 100644 index 00000000..ba5bd2f8 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/po/log.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class log { + private Integer id; + private Integer level; + private String msg; + private String exception; + private Date logTime; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/vo/AddSampleVo.java b/knowledge-map/src/main/java/com/chinasoft/bean/vo/AddSampleVo.java new file mode 100644 index 00000000..361e7bf5 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/vo/AddSampleVo.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AddSampleVo { + private int id; + private String sampleId; + private String name; + private int sign; + private String author; + private String summary; + private String featuresIds; + private String osTypeId; + private String osVersionId; + private String busTypeId; + private String titleId; + private int sort; + private String gitUrl; + private String imageUrl; + private String difficultyLevel; + + //添加时间 + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + @JsonIgnore + private Date createTime; + private List baseInfoList; + private List typeDetailList; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/vo/BaseInfoListVo.java b/knowledge-map/src/main/java/com/chinasoft/bean/vo/BaseInfoListVo.java new file mode 100644 index 00000000..f7f4ebd4 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/vo/BaseInfoListVo.java @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class BaseInfoListVo { + private String versionNo; + private String deviceLevel; + private String sysVersion; + private int sampleId; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/vo/QuerySampleVo.java b/knowledge-map/src/main/java/com/chinasoft/bean/vo/QuerySampleVo.java new file mode 100644 index 00000000..753fbb79 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/vo/QuerySampleVo.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class QuerySampleVo { + private int sampleId; + private String sampleName; + private int featuresId; + private String featuresName; + private int busTypeId; + private String busTypeName; + private int levelId; + private String levelName; + private int titleId; + private String titleName; + private String summary; + private int sign; + private int sort; + private String updateTime; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/bean/vo/TypeDetailListVo.java b/knowledge-map/src/main/java/com/chinasoft/bean/vo/TypeDetailListVo.java new file mode 100644 index 00000000..05419192 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/bean/vo/TypeDetailListVo.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.bean.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class TypeDetailListVo { + private int typeId; + private String name; + private String url; + private String description; + private int sort; + private int sampleId; +} diff --git a/knowledge-map/src/main/java/com/chinasoft/config/MvcConfig.java b/knowledge-map/src/main/java/com/chinasoft/config/MvcConfig.java new file mode 100644 index 00000000..1f75aae9 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/config/MvcConfig.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.config; + +import com.chinasoft.filter.LoginInterceptor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class MvcConfig implements WebMvcConfigurer { + + @Autowired + private UriConfig uriConfig; + + + @Override + public void addInterceptors(InterceptorRegistry registry) { + String myUris = uriConfig.myUris; + String[] split = myUris.split(","); + + registry.addInterceptor(new LoginInterceptor(split)).addPathPatterns("/**"); + + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/config/MyFilterConfig.java b/knowledge-map/src/main/java/com/chinasoft/config/MyFilterConfig.java new file mode 100644 index 00000000..6faf350f --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/config/MyFilterConfig.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.config; + + +import com.chinasoft.filter.MyFilter; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; + +import javax.servlet.Filter; + +/** + * 注册过滤器容器到servlet + * + * @author 杨一康 + * + */ + + +@Configuration +public class MyFilterConfig { + @Bean + public FilterRegistrationBean someFilterRegistration() { + FilterRegistrationBean registration = new FilterRegistrationBean(); + registration.setFilter(myFilter()); + registration.addUrlPatterns("/*"); + registration.setName("myFilter"); + return registration; + } + + @Bean(name = "myFilter") + public Filter myFilter() { + return new MyFilter(); + } + + @Bean(name = "BCryptPasswordEncoder") + public BCryptPasswordEncoder myBCryptPasswordEncoder(){ + return new BCryptPasswordEncoder(); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/config/UriConfig.java b/knowledge-map/src/main/java/com/chinasoft/config/UriConfig.java new file mode 100644 index 00000000..45694ad8 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/config/UriConfig.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class UriConfig { + + public String myUris; + + @Value("${myuri.whites}") + public void setImagePath(String myUris) { + this.myUris = myUris; + } + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/constants/KnowledgeConstants.java b/knowledge-map/src/main/java/com/chinasoft/constants/KnowledgeConstants.java new file mode 100644 index 00000000..cc273c60 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/constants/KnowledgeConstants.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.constants; + +public class KnowledgeConstants { + /** + * 跳转第一个界面 + */ + public final static String PAGE_STATUS_FIRST = "1"; + /** + * 跳转第二个界面 + */ + public final static String PAGE_STATUS_SECOND = "2"; + /** + * 跳转第三个界面 + */ + public final static String PAGE_STATUS_THRID = "3"; + /** + * 跳转第四个界面 + */ + public final static String PAGE_STATUS_FOURTH = "4"; + /** + * 跳转第五个界面 + */ + public final static String PAGE_STATUS_FIFTH = "5"; + + public static class Status { + /** + * 待申请 + */ + public final static int APPLY = 1; + /** + * 审核中 + */ + public final static int REVIEWING = 2; + /** + * 已认领 + */ + public final static int CLAIMED = 3; + /** + * 未过审 + */ + public final static int UNAPPROVED = 4; + } + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/controller/BusTypeController.java b/knowledge-map/src/main/java/com/chinasoft/controller/BusTypeController.java new file mode 100644 index 00000000..79dbaf58 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/controller/BusTypeController.java @@ -0,0 +1,209 @@ +/* + *Copyright(c) 2021 Shenzhen Kaihong Digital Industry DevelopmentCo.,Ltd + *Licensed under the Apache License,Version2.0(the"License"); + *you may not use this file except in compliance with the License. + *You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing,software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.controller; + +import com.chinasoft.annotation.OperationLog; +import com.chinasoft.bean.po.BusType; +import com.chinasoft.service.BusTypeService; +import com.chinasoft.service.BusTypeService; +import com.chinasoft.utils.PageListVO; +import com.chinasoft.utils.ResultVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 业务类型模块 + * + * @author dengtao + */ +@CrossOrigin +@RestController +@RequestMapping("/busType") +@Api(tags = "业务类型",description = "业务类型管理") +public class BusTypeController { + + private static final Logger logger = LoggerFactory.getLogger(BusTypeController.class); + + @Autowired + private BusTypeService busTypeService; + + @ApiOperation(value = "业务类型信息保存") + @PostMapping("/addBusType") + @OperationLog(action = "业务类型信息[保存]", operateType = "busType/save") + public ResultVO save(@RequestBody BusType busType) { + ResultVO resultVo = new ResultVO(); + try { + if (null != busType){ + BusType busTypeVO = busTypeService.find(busType); + if (null != busTypeVO){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("业务类型名称已存在"); + return resultVo; + } + } + int res = busTypeService.add(busType); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("新增成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + + @ApiOperation(value = "业务类型信息修改") + @PostMapping("/editBusType") + @OperationLog(action = "业务类型信息[修改]", operateType = "busType/edit") + public ResultVO edit(@RequestBody BusType busType) { + ResultVO resultVo = new ResultVO(); + try { + if (null == busType){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("参数为空"); + return resultVo; + } + int res = busTypeService.edit(busType); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("编辑成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "业务类型信息删除") + @PostMapping("/delBusType") + @OperationLog(action = "业务类型信息[删除]", operateType = "busType/remove") + public ResultVO remove(@RequestBody BusType busType) { + ResultVO resultVo = new ResultVO(); + try { + if (null == busType || busType.getBusTypeId() == 0){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("参数为空"); + return resultVo; + } + int res = busTypeService.remove(busType.getBusTypeId()); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("删除成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "业务类型信息批量删除") + @GetMapping("/removeBatch") + @OperationLog(action = "业务类型信息[批量删除]", operateType = "busType/removeBatch") + public ResultVO removeBatch(@RequestParam(value = "ids",required = false) String ids) { + ResultVO resultVo = new ResultVO(); + try { + if (null == ids || "".equals(ids)){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("ids or proIds is null"); + return resultVo; + } + int res = busTypeService.removeBatch(ids); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("remove batch busType success"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "业务类型信息单个查看") + @GetMapping("/find") + @OperationLog(action = "业务类型信息[单个查看]", operateType = "busType/find") + public ResultVO find(BusType busType) { + ResultVO resultVo = new ResultVO(); + try { + if (null == busType){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("param is null"); + return resultVo; + } + BusType busTypeVO = busTypeService.find(busType); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("find busType success"); + resultVo.setData(busTypeVO); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + /** + * 分页查询 + * @param busType + * @return pageListVO + */ + @ApiOperation(value = "业务类型信息分页查询") + @GetMapping("/queryBusType") + @OperationLog(action = "业务类型信息[分页查询]", operateType = "busType/findBatch") + public PageListVO> findBatch(BusType busType){ + PageListVO> pageListVO = new PageListVO<>(); + if (null == busType){ + busType = new BusType(); + } + if (null == busType.getPageNum() || busType.getPageNum() <= 0) + busType.setPageNum(1); + if (null == busType.getPageSize()) + busType.setPageSize(10); + List resultList = busTypeService.findBatch(busType); + Integer resultTotal = busTypeService.findTotal(busType); + int page = resultTotal/busType.getPageSize() + (resultTotal%busType.getPageSize() > 0 ? 1 : 0); + pageListVO.setTotalPage(page); + pageListVO.setData(resultList); + pageListVO.setCode(PageListVO.SUCCESS); + pageListVO.setTotalNum(resultTotal); + pageListVO.setPageNum(busType.getPageNum()); + pageListVO.setPageSize(busType.getPageSize()); + return pageListVO; + } + @ApiOperation(value = "业务类型信息单个查看") + @GetMapping("/getAllData") + @OperationLog(action = "业务类型信息[单个查看]", operateType = "busType/find") + public ResultVO getAllData() { + ResultVO resultVo = new ResultVO(); + resultVo.setData(busTypeService.getAllData()); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("查询成功"); + return resultVo; + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/controller/FeaturesController.java b/knowledge-map/src/main/java/com/chinasoft/controller/FeaturesController.java new file mode 100644 index 00000000..4cea3fa4 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/controller/FeaturesController.java @@ -0,0 +1,200 @@ +/* + *Copyright(c) 2021 Shenzhen Kaihong Digital Industry DevelopmentCo.,Ltd + *Licensed under the Apache License,Version2.0(the"License"); + *you may not use this file except in compliance with the License. + *You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing,software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.controller; + +import com.chinasoft.annotation.OperationLog; +import com.chinasoft.bean.po.Features; +import com.chinasoft.bean.vo.QuerySampleVo; +import com.chinasoft.service.FeaturesService; +import com.chinasoft.utils.PageListVO; +import com.chinasoft.utils.ResultVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 特性模块 + * + * @author dengtao + */ +@CrossOrigin +@RestController +@RequestMapping("/features") +@Api(tags = "特性",description = "特性管理") +public class FeaturesController { + + private static final Logger logger = LoggerFactory.getLogger(FeaturesController.class); + + @Autowired + private FeaturesService featuresService; + + @ApiOperation(value = "特性信息保存") + @PostMapping("/addFeatures") + @OperationLog(action = "特性信息[保存]", operateType = "features/save") + public ResultVO save(@RequestBody Features features) { + ResultVO resultVo = new ResultVO(); + try { + if (null != features){ + Features featuresVO = featuresService.find(features); + if (null != featuresVO){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("特性名称已存在"); + return resultVo; + } + } + int res = featuresService.add(features); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("新增成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + + @ApiOperation(value = "特性信息修改") + @PostMapping("/editFeatures") + @OperationLog(action = "特性信息[修改]", operateType = "features/edit") + public ResultVO edit(@RequestBody Features features) { + ResultVO resultVo = new ResultVO(); + try { + if (null == features){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("参数为空"); + return resultVo; + } + int res = featuresService.edit(features); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("编辑成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "特性信息删除") + @PostMapping("/delFeatures") + @OperationLog(action = "特性信息[删除]", operateType = "features/remove") + public ResultVO remove(@RequestBody Features features) { + ResultVO resultVo = new ResultVO(); + try { + if (null == features || features.getFeaturesId() == 0){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("参数为空"); + return resultVo; + } + int res = featuresService.remove(features.getFeaturesId()); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("删除成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "特性信息批量删除") + @GetMapping("/removeBatch") + @OperationLog(action = "特性信息[批量删除]", operateType = "features/removeBatch") + public ResultVO removeBatch(@RequestParam(value = "ids",required = false) String ids) { + ResultVO resultVo = new ResultVO(); + try { + if (null == ids || "".equals(ids)){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("ids or proIds is null"); + return resultVo; + } + int res = featuresService.removeBatch(ids); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("remove batch features success"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "特性信息单个查看") + @GetMapping("/find") + @OperationLog(action = "特性信息[单个查看]", operateType = "features/find") + public ResultVO find(Features features) { + ResultVO resultVo = new ResultVO(); + try { + if (null == features){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("param is null"); + return resultVo; + } + Features featuresVO = featuresService.find(features); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("find features success"); + resultVo.setData(featuresVO); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + /** + * 分页查询 + * @param features + * @return pageListVO + */ + @ApiOperation(value = "特性信息分页查询") + @GetMapping("/queryFeatures") + @OperationLog(action = "特性信息[分页查询]", operateType = "features/findBatch") + public PageListVO> findBatch(Features features){ + PageListVO> pageListVO = new PageListVO<>(); + if (null == features){ + features = new Features(); + } + if (null == features.getPageNum() || features.getPageNum() <= 0) + features.setPageNum(1); + if (null == features.getPageSize()) + features.setPageSize(10); + List resultList = featuresService.findBatch(features); + Integer resultTotal = featuresService.findTotal(features); + int page = resultTotal/features.getPageSize() + (resultTotal%features.getPageSize() > 0 ? 1 : 0); + pageListVO.setTotalPage(page); + pageListVO.setData(resultList); + pageListVO.setCode(PageListVO.SUCCESS); + pageListVO.setTotalNum(resultTotal); + pageListVO.setPageNum(features.getPageNum()); + pageListVO.setPageSize(features.getPageSize()); + return pageListVO; + } + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/controller/FrontPageController.java b/knowledge-map/src/main/java/com/chinasoft/controller/FrontPageController.java new file mode 100644 index 00000000..bb59b023 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/controller/FrontPageController.java @@ -0,0 +1,113 @@ +/* + *Copyright(c) 2021 Shenzhen Kaihong Digital Industry DevelopmentCo.,Ltd + *Licensed under the Apache License,Version2.0(the"License"); + *you may not use this file except in compliance with the License. + *You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing,software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.controller; + +import com.alibaba.fastjson.JSONObject; +import com.chinasoft.annotation.OperationLog; +import com.chinasoft.service.FrontPageService; +import com.chinasoft.utils.PageListVO; +import com.chinasoft.utils.ResultVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; + +/** + * 知识图谱首页 + * @author dengtao + */ + +@CrossOrigin +@RestController +@RequestMapping("/frontPage") +@Api(tags = "首页",description = "知识图谱首页") +public class FrontPageController { + + private static final Logger logger = LoggerFactory.getLogger(FrontPageController.class); + + @Autowired + private FrontPageService frontPageService; + + @ApiOperation(value = "首页初始化数据查询") + @GetMapping("/queryInitialization") + @OperationLog(action = "查询", operateType = "query") + public PageListVO queryInitialization(@RequestParam("pageSize") int pageSize, + @RequestParam("pageNum") int pageNum, + @RequestParam(value = "titleId",required = false)String titleId, + @RequestParam(value = "osTypeId",required = false)String osTypeId, + @RequestParam(value = "osVersionId",required = false)String osVersionId, + //@RequestParam(value = "levelId",required = false)String levelId, + @RequestParam(value = "busTypeId",required = false)String busTypeId, + @RequestParam(value = "featuresId",required = false)String featuresId) { + PageListVO pageListVO = new PageListVO(); + try { + if (pageSize != 9) { + pageListVO.setCode(1); + pageListVO.setMsg("页码大小错误"); + } else if (pageNum < 1) { + pageListVO.setCode(1); + pageListVO.setMsg("请求页码错误"); + } else { + HashMap params = new HashMap<>(); + params.put("pageSize", pageSize + ""); + int start = (pageNum - 1) * pageSize; + params.put("start", start + ""); + params.put("pageNum", pageNum + ""); + params.put("titleId",titleId); + //params.put("levelId",levelId); + params.put("osTypeId",osTypeId); + params.put("osVersionId",osVersionId); + params.put("busTypeId",busTypeId); + params.put("featuresId",featuresId); + JSONObject json=frontPageService.getFrontPageData(params); + pageListVO.setPageNum(pageNum); + pageListVO.setPageSize(pageSize); + //总条数 + pageListVO.setTotalNum(Integer.parseInt(json.get("totalNum").toString())); + //余下条数 + pageListVO.setTotalPage(Integer.parseInt(json.get("totalPage").toString())); + json.remove("totalPage"); + json.remove("totalNum"); + pageListVO.setCode(pageListVO.SUCCESS); + pageListVO.setMsg("查询成功"); + pageListVO.setData(json); + } + } catch (Exception e) { + pageListVO.setCode(pageListVO.FAIL); + pageListVO.setMsg(e.getMessage()); + e.printStackTrace(); + } + return pageListVO; + } + + @ApiOperation(value = "首页开发样例详情查询") + @GetMapping("/querySampleDetail") + @OperationLog(action = "查询", operateType = "query") + public ResultVO querySampleDetail(@RequestParam("sampleId") String sampleId) { + ResultVO resultVo = new ResultVO(); + try { + resultVo.setData(frontPageService.getFrontPageDetailData(sampleId)); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("查询成功"); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/controller/HomePageController.java b/knowledge-map/src/main/java/com/chinasoft/controller/HomePageController.java new file mode 100644 index 00000000..2c042202 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/controller/HomePageController.java @@ -0,0 +1,121 @@ +/* + *Copyright(c) 2021 Shenzhen Kaihong Digital Industry DevelopmentCo.,Ltd + *Licensed under the Apache License,Version2.0(the"License"); + *you may not use this file except in compliance with the License. + *You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing,software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.controller; + +import com.chinasoft.annotation.OperationLog; +import com.chinasoft.service.HomePageService; +import com.chinasoft.utils.ResultVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * 1230官网首页 + * @author dengtao + */ + +@CrossOrigin +@RestController +@RequestMapping("/homePage") +@Api(tags = "首页",description = "1230官网首页") +public class HomePageController { + + private static final Logger logger = LoggerFactory.getLogger(HomePageController.class); + + @Autowired + private HomePageService homePageService; + + @ApiOperation(value = "首页轮播图") + @GetMapping("/queryBanner") + @OperationLog(action = "查询", operateType = "query") + public ResultVO queryBanner(@RequestParam("category") String category) { + ResultVO resultVo = new ResultVO(); + try { + resultVo.setData(homePageService.queryBanner(category)); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("查询成功"); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "首页会议") + @GetMapping("/queryMeeting") + @OperationLog(action = "查询", operateType = "query") + public ResultVO queryMeeting(@RequestParam("date") String date) { + ResultVO resultVo = new ResultVO(); + try { + resultVo.setData(homePageService.queryMeeting(date)); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("查询成功"); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "首页活动、博客、新闻") + @GetMapping("/queryInformation") + @OperationLog(action = "查询", operateType = "query") + public ResultVO queryInformation(@RequestParam("type") String type) { + ResultVO resultVo = new ResultVO(); + try { + resultVo.setData(homePageService.queryInformation(type)); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("查询成功"); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "首页开发板") + @GetMapping("/queryDevelopment") + @OperationLog(action = "查询", operateType = "query") + public ResultVO queryDevelopment() { + ResultVO resultVo = new ResultVO(); + try { + resultVo.setData(homePageService.queryDevelopment()); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("查询成功"); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + @ApiOperation(value = "首页厂商链接 ") + @GetMapping("/queryVendor") + @OperationLog(action = "查询", operateType = "query") + public ResultVO queryVendor() { + ResultVO resultVo = new ResultVO(); + try { + resultVo.setData(homePageService.queryVendor()); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("查询成功"); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/controller/ImportController.java b/knowledge-map/src/main/java/com/chinasoft/controller/ImportController.java new file mode 100644 index 00000000..9154685b --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/controller/ImportController.java @@ -0,0 +1,119 @@ +/* + *Copyright(c) 2021 Shenzhen Kaihong Digital Industry DevelopmentCo.,Ltd + *Licensed under the Apache License,Version2.0(the"License"); + *you may not use this file except in compliance with the License. + *You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing,software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.controller; + +import com.chinasoft.annotation.OperationLog; +import com.chinasoft.service.impl.ExcelHandler; +import com.chinasoft.utils.ResultVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.*; +import java.util.Calendar; +import java.util.Random; + +/** + * 业务类型菜单 + * @author dengtao + */ + +@CrossOrigin +@RestController +@RequestMapping("/data") +@Api(tags = "测试",description = "测试") +public class ImportController { + + private static final Logger logger = LoggerFactory.getLogger(ImportController.class); + + @Autowired + private ExcelHandler excelHandler; + + @ApiOperation(value = "导入") + @PostMapping("/import") + @OperationLog(action = "导入", operateType = "import") + public ResultVO importInit(MultipartFile file) { + ResultVO resultVo = new ResultVO(); + try { + String fileName = wirte(file); + excelHandler.getListByExcel(file.getInputStream(), fileName); + } catch (Exception e) { + e.printStackTrace(); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + private String wirte(MultipartFile file) throws Exception{ + String originalFilename = file.getOriginalFilename(); + String filenameWithoutSuffix = originalFilename.substring(0, originalFilename.lastIndexOf(".")); + String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); + String newFileName = filenameWithoutSuffix + suffix; + String imagePathRoot = "/opt/data/autotool/"; + String os = System.getProperty("os.name"); + if(os.toLowerCase().startsWith("win")){ + imagePathRoot = "C:/ImportData"; + } + isChartPathExist(imagePathRoot); + String packagePathUrl = imagePathRoot + File.separator + newFileName; + System.err.println("packagePathUrl==" + packagePathUrl); + write(packagePathUrl, file.getInputStream()); + return packagePathUrl; + } + + private static String generateRandomFilename() { + String RandomFilename = ""; + Random rand = new Random();//生成随机数 + int random = rand.nextInt(); + Calendar calCurrent = Calendar.getInstance(); + int intDay = calCurrent.get(Calendar.DATE); + int intMonth = calCurrent.get(Calendar.MONTH) + 1; + int intYear = calCurrent.get(Calendar.YEAR); + String now = String.valueOf(intYear) + "_" + String.valueOf(intMonth) + "_" + + String.valueOf(intDay) + "_"; + RandomFilename = now + String.valueOf(random > 0 ? random : (-1) * random); + return RandomFilename; + } + + public static void isChartPathExist(String dirPath) { + File file = new File(dirPath); + if (!file.exists()) { + file.mkdirs(); + } + } + + /** + * 写入文件 + * + * @param target + * @param src + * @throws IOException + */ + public static void write(String target, InputStream src) throws IOException { + OutputStream os = new FileOutputStream(target); + byte[] buf = new byte[1024]; + int len; + while (-1 != (len = src.read(buf))) { + os.write(buf, 0, len); + } + os.flush(); + os.close(); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/controller/LevelController.java b/knowledge-map/src/main/java/com/chinasoft/controller/LevelController.java new file mode 100644 index 00000000..6ecef003 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/controller/LevelController.java @@ -0,0 +1,199 @@ +/* + *Copyright(c) 2021 Shenzhen Kaihong Digital Industry DevelopmentCo.,Ltd + *Licensed under the Apache License,Version2.0(the"License"); + *you may not use this file except in compliance with the License. + *You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing,software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.controller; + +import com.chinasoft.annotation.OperationLog; +import com.chinasoft.bean.po.Level; +import com.chinasoft.service.LevelService; +import com.chinasoft.utils.PageListVO; +import com.chinasoft.utils.ResultVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 级别模块 + * + * @author dengtao + */ +@CrossOrigin +@RestController +@RequestMapping("/level") +@Api(tags = "级别",description = "级别管理") +public class LevelController { + + private static final Logger logger = LoggerFactory.getLogger(LevelController.class); + + @Autowired + private LevelService levelService; + + @ApiOperation(value = "级别信息保存") + @PostMapping("/addLevel") + @OperationLog(action = "级别信息[保存]", operateType = "level/save") + public ResultVO save(@RequestBody Level level) { + ResultVO resultVo = new ResultVO(); + try { + if (null != level){ + Level levelVO = levelService.find(level); + if (null != levelVO){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("级别名称已存在"); + return resultVo; + } + } + int res = levelService.add(level); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("新增成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + + @ApiOperation(value = "级别信息修改") + @PostMapping("/editLevel") + @OperationLog(action = "级别信息[修改]", operateType = "level/edit") + public ResultVO edit(@RequestBody Level level) { + ResultVO resultVo = new ResultVO(); + try { + if (null == level){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("参数为空"); + return resultVo; + } + int res = levelService.edit(level); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("修改成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "级别信息删除") + @PostMapping("/delLevel") + @OperationLog(action = "级别信息[删除]", operateType = "level/remove") + public ResultVO remove(@RequestBody Level level) { + ResultVO resultVo = new ResultVO(); + try { + if (null == level || level.getLevelId() == 0){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("参数为空"); + return resultVo; + } + int res = levelService.remove(level.getLevelId()); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("删除成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "级别信息批量删除") + @GetMapping("/removeBatch") + @OperationLog(action = "级别信息[批量删除]", operateType = "level/removeBatch") + public ResultVO removeBatch(@RequestParam(value = "ids",required = false) String ids) { + ResultVO resultVo = new ResultVO(); + try { + if (null == ids || "".equals(ids)){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("ids or proIds is null"); + return resultVo; + } + int res = levelService.removeBatch(ids); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("remove batch level success"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "级别信息单个查看") + @GetMapping("/find") + @OperationLog(action = "级别信息[单个查看]", operateType = "level/find") + public ResultVO find(Level level) { + ResultVO resultVo = new ResultVO(); + try { + if (null == level){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("param is null"); + return resultVo; + } + Level levelVO = levelService.find(level); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("find level success"); + resultVo.setData(levelVO); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + /** + * 分页查询 + * @param level + * @return pageListVO + */ + @ApiOperation(value = "级别信息分页查询") + @GetMapping("/queryLevel") + @OperationLog(action = "级别信息[分页查询]", operateType = "level/findBatch") + public PageListVO> findBatch(Level level){ + PageListVO> pageListVO = new PageListVO<>(); + if (null == level){ + level = new Level(); + } + if (null == level.getPageNum() || level.getPageNum() <= 0) + level.setPageNum(1); + if (null == level.getPageSize()) + level.setPageSize(10); + List resultList = levelService.findBatch(level); + Integer resultTotal = levelService.findTotal(level); + int page = resultTotal/level.getPageSize() + (resultTotal%level.getPageSize() > 0 ? 1 : 0); + pageListVO.setTotalPage(page); + pageListVO.setData(resultList); + pageListVO.setCode(PageListVO.SUCCESS); + pageListVO.setTotalNum(resultTotal); + pageListVO.setPageNum(level.getPageNum()); + pageListVO.setPageSize(level.getPageSize()); + return pageListVO; + } + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/controller/LoginController.java b/knowledge-map/src/main/java/com/chinasoft/controller/LoginController.java new file mode 100644 index 00000000..45320dd8 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/controller/LoginController.java @@ -0,0 +1,95 @@ +/* + *Copyright(c) 2021 Shenzhen Kaihong Digital Industry DevelopmentCo.,Ltd + *Licensed under the Apache License,Version2.0(the"License"); + *you may not use this file except in compliance with the License. + *You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing,software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.controller; + +import com.chinasoft.annotation.OperationLog; +import com.chinasoft.bean.po.User; +import com.chinasoft.constants.KnowledgeConstants; +import com.chinasoft.service.LoginService; +import com.chinasoft.utils.MD5; +import com.chinasoft.utils.ResultVO; +import com.chinasoft.utils.TokenUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.Comparator; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 登录模块 + * + * @author dengtao + */ +@CrossOrigin +@RestController +@RequestMapping("/login") +@Api(tags = "登录",description = "登录模块") +public class LoginController { + + private static final Logger logger = LoggerFactory.getLogger(LoginController.class); + + @Autowired + private LoginService loginService; + + @ApiOperation(value = "后台系统登录") + @PostMapping("/backstageLogin") + @OperationLog(action = "登录", operateType = "userLogin") + public ResultVO backstageLogin(@RequestBody User user) { + ResultVO resultVo = new ResultVO(); + try { + if (StringUtils.isEmpty(user.getUserName()) || StringUtils.isEmpty(user.getPassword())) { + resultVo.setCode(resultVo.FAIL); + logger.error("userName or password is null!"); + resultVo.setMsg("参数不能为空"); + } + + String pwd = MD5.string2MD5(user.getPassword()); + //查询验证账号手机号是否存在 + List> loginList = loginService.getBackstageLogin(user.getUserName(),pwd); + if(loginList.size() > 0){ + String token = TokenUtils.token(user.getUserName(),user.getPassword() ,"app"); + User user1 = new User(); + user1.setId(Integer.parseInt(String.valueOf(loginList.get(0).get("id")))); + user1.setToken(token); + user1.setLoginTime(new Date()); + loginService.updateUser(user1); + + User resUser = new User(); + resUser.setUserName(user.getUserName()); + resUser.setToken(token); + resUser.setLoginTime(new Date()); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("登录成功"); + resultVo.setData(resUser); + }else{ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("登录失败,账号或密码不存在"); + } + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/controller/SampleController.java b/knowledge-map/src/main/java/com/chinasoft/controller/SampleController.java new file mode 100644 index 00000000..a93fe42b --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/controller/SampleController.java @@ -0,0 +1,161 @@ +/* + *Copyright(c) 2021 Shenzhen Kaihong Digital Industry DevelopmentCo.,Ltd + *Licensed under the Apache License,Version2.0(the"License"); + *you may not use this file except in compliance with the License. + *You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing,software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.controller; + +import com.chinasoft.annotation.OperationLog; +import com.chinasoft.bean.vo.AddSampleVo; +import com.chinasoft.service.SampleService; +import com.chinasoft.utils.PageListVO; +import com.chinasoft.utils.ResultVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; + +/** + * 开发样例菜单 + * @author dengtao + */ + +@CrossOrigin +@RestController +@RequestMapping("/sample") +@Api(tags = "开发样例",description = "开发样例菜单") +public class SampleController { + + private static final Logger logger = LoggerFactory.getLogger(SampleController.class); + + @Autowired + private SampleService sampleService; + + @ApiOperation(value = "开发样例分页查询") + @GetMapping("/querySample") + @OperationLog(action = "查询", operateType = "query") + public PageListVO querySample(@RequestParam("pageSize") int pageSize, + @RequestParam("pageNum") int pageNum, + @RequestParam("featuresId") String featuresId) { + PageListVO resultVo = new PageListVO(); + try { + if (pageSize != 10 && pageSize != 20 && pageSize != 50) { + resultVo.setCode(1); + resultVo.setMsg("页码大小错误"); + } else if (pageNum < 1) { + resultVo.setCode(1); + resultVo.setMsg("请求页码错误"); + } else { + HashMap params = new HashMap<>(); + params.put("pageSize", pageSize + ""); + int start = (pageNum - 1) * pageSize; + System.err.println(start); + params.put("start", start + ""); + params.put("featuresId",featuresId); + resultVo.setPageNum(pageNum); + resultVo.setPageSize(pageSize); + resultVo.initPages(sampleService.queryPageNum(params)); + resultVo.setData(sampleService.querySample(params)); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("查询成功"); + } + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "开发样例特性与相关资料查询") + @GetMapping("/queryInformation") + @OperationLog(action = "查询", operateType = "query") + public ResultVO queryInformation(@RequestParam("busTypeId") String busTypeId) { + ResultVO resultVo = new ResultVO(); + try { + resultVo.setData(sampleService.queryInformation(busTypeId)); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("查询成功"); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + @ApiOperation(value = "特性查询") + @GetMapping("/queryData") + @OperationLog(action = "查询", operateType = "query") + public ResultVO queryData() { + ResultVO resultVo = new ResultVO(); + try { + resultVo.setData(sampleService.queryData()); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("查询成功"); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "开发样例新增") + @PostMapping("/addSample") + @OperationLog(action = "新增", operateType = "add") + public ResultVO addSample(@RequestBody AddSampleVo addSampleVo) { + ResultVO resultVo = new ResultVO(); + try { + sampleService.addSample(addSampleVo); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("新增成功"); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "开发样例编辑") + @PostMapping("/editSample") + @OperationLog(action = "编辑", operateType = "edit") + public ResultVO editSample(@RequestBody AddSampleVo addSampleVo) { + ResultVO resultVo = new ResultVO(); + try { + sampleService.updateSample(addSampleVo); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("编辑成功"); + } catch (Exception e) { + e.printStackTrace(); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "开发样例删除") + @PostMapping("/deleteSample") + @OperationLog(action = "删除", operateType = "delete") + public ResultVO deleteSample(@RequestBody AddSampleVo addSampleVo) { + ResultVO resultVo = new ResultVO(); + try { + sampleService.deleteSample(addSampleVo); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("删除成功"); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/controller/SecondaryPageController.java b/knowledge-map/src/main/java/com/chinasoft/controller/SecondaryPageController.java new file mode 100644 index 00000000..ad2d3ff8 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/controller/SecondaryPageController.java @@ -0,0 +1,165 @@ +/* + *Copyright(c) 2021 Shenzhen Kaihong Digital Industry DevelopmentCo.,Ltd + *Licensed under the Apache License,Version2.0(the"License"); + *you may not use this file except in compliance with the License. + *You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing,software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.controller; + +import com.chinasoft.annotation.OperationLog; +import com.chinasoft.bean.po.HomeContent; +import com.chinasoft.bean.po.HomeContentPic; +import com.chinasoft.bean.po.HomeDevelopment; +import com.chinasoft.service.SecondaryPageService; +import com.chinasoft.utils.PageListVO; +import com.chinasoft.utils.ResultVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 1230官网二级页 + * @author dengtao + */ + +@CrossOrigin +@RestController +@RequestMapping("/secondaryPage") +@Api(tags = "二级页",description = "1230官网首页") +public class SecondaryPageController { + + private static final Logger logger = LoggerFactory.getLogger(SecondaryPageController.class); + + @Autowired + private SecondaryPageService secondaryPageService; + + @ApiOperation(value = "二级页轮播图") + @GetMapping("/queryCarousel") + @OperationLog(action = "查询", operateType = "query") + public ResultVO queryCarousel(@RequestParam("type") Integer type,@RequestParam("category") String category) { + ResultVO resultVo = new ResultVO(); + try { + if (null == type || type <= 0) { + resultVo.setCode(resultVo.FAIL); + logger.error("type is null!"); + resultVo.setMsg("参数不能为空"); + return resultVo; + } + + List resultList = secondaryPageService.queryCarousel(type,category); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("查询成功"); + resultVo.setData(resultList); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + e.printStackTrace(); + } + return resultVo; + } + @ApiOperation(value = "二级页分页查询") + @GetMapping("/queryBatch") + @OperationLog(action = "查询", operateType = "query") + public PageListVO queryBatch(HomeContent content) { + PageListVO> pageListVO = new PageListVO<>(); + if (null == content){ + content = new HomeContent(); + } + if (null == content.getPageNum() || content.getPageNum() <= 0) + content.setPageNum(1); + if (null == content.getPageSize()) + content.setPageSize(10); + List resultList = secondaryPageService.queryBatch(content); + Integer resultTotal = secondaryPageService.queryTotal(content); + int page = resultTotal/content.getPageSize() + (resultTotal%content.getPageSize() > 0 ? 1 : 0); + pageListVO.setTotalPage(page); + pageListVO.setData(resultList); + pageListVO.setCode(PageListVO.SUCCESS); + pageListVO.setTotalNum(resultTotal); + pageListVO.setPageNum(content.getPageNum()); + pageListVO.setPageSize(content.getPageSize()); + return pageListVO; + } + @ApiOperation(value = "三级页详情查询") + @GetMapping("/queryDetails") + @OperationLog(action = "查询", operateType = "query") + public ResultVO queryDetails(@RequestParam("id") Integer id) { + ResultVO resultVo = new ResultVO(); + try { + if (null == id || id <= 0) { + resultVo.setCode(resultVo.FAIL); + logger.error("id is null!"); + resultVo.setMsg("参数不能为空"); + return resultVo; + } + HomeContent homeContent = secondaryPageService.queryDetails(id); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("查询成功"); + resultVo.setData(homeContent); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + @ApiOperation(value = "修改点赞数、浏览量、分享次数") + @PostMapping("/updateCount") + @OperationLog(action = "修改", operateType = "edit") + public ResultVO updateCount(@RequestParam("id") Integer id,@RequestParam("type") Integer type) { + ResultVO resultVo = new ResultVO(); + try { + if (null == id || id <= 0 || null == type || type <= 0) { + resultVo.setCode(resultVo.FAIL); + logger.error("id or type is null!"); + resultVo.setMsg("参数不能为空"); + return resultVo; + } + int res = secondaryPageService.updateCount(id,type); + + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("更新成功"); + resultVo.setData(res); + } catch (Exception e) { + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + @ApiOperation(value = "开发板二级页分页查询") + @GetMapping("/queryDevelopmentBatch") + @OperationLog(action = "查询", operateType = "query") + public PageListVO queryDevelopmentBatch(HomeDevelopment dept) { + PageListVO> pageListVO = new PageListVO<>(); + if (null == dept){ + dept = new HomeDevelopment(); + } + if (null == dept.getPageNum() || dept.getPageNum() <= 0) + dept.setPageNum(1); + if (null == dept.getPageSize()) + dept.setPageSize(10); + List resultList = secondaryPageService.queryDevelopmentBatch(dept); + Integer resultTotal = secondaryPageService.queryDevelopmentTotal(dept); + int page = resultTotal/dept.getPageSize() + (resultTotal%dept.getPageSize() > 0 ? 1 : 0); + pageListVO.setTotalPage(page); + pageListVO.setData(resultList); + pageListVO.setCode(PageListVO.SUCCESS); + pageListVO.setTotalNum(resultTotal); + pageListVO.setPageNum(dept.getPageNum()); + pageListVO.setPageSize(dept.getPageSize()); + return pageListVO; + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/controller/TitleController.java b/knowledge-map/src/main/java/com/chinasoft/controller/TitleController.java new file mode 100644 index 00000000..23c20250 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/controller/TitleController.java @@ -0,0 +1,199 @@ +/* + *Copyright(c) 2021 Shenzhen Kaihong Digital Industry DevelopmentCo.,Ltd + *Licensed under the Apache License,Version2.0(the"License"); + *you may not use this file except in compliance with the License. + *You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing,software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.controller; + +import com.chinasoft.annotation.OperationLog; +import com.chinasoft.bean.po.Title; +import com.chinasoft.service.TitleService; +import com.chinasoft.utils.PageListVO; +import com.chinasoft.utils.ResultVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 标题模块 + * + * @author dengtao + */ +@CrossOrigin +@RestController +@RequestMapping("/title") +@Api(tags = "标题",description = "标题管理") +public class TitleController { + + private static final Logger logger = LoggerFactory.getLogger(TitleController.class); + + @Autowired + private TitleService titleService; + + @ApiOperation(value = "标题信息保存") + @PostMapping("/addTitle") + @OperationLog(action = "标题信息[保存]", operateType = "title/save") + public ResultVO save(@RequestBody Title title) { + ResultVO resultVo = new ResultVO(); + try { + if (null != title){ + Title titleVO = titleService.find(title); + if (null != titleVO){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("标题名称已存在"); + return resultVo; + } + } + int res = titleService.add(title); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("新增成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + + @ApiOperation(value = "标题信息修改") + @PostMapping("/editTitle") + @OperationLog(action = "标题信息[修改]", operateType = "title/edit") + public ResultVO edit(@RequestBody Title title) { + ResultVO resultVo = new ResultVO(); + try { + if (null == title){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("编辑失败"); + return resultVo; + } + int res = titleService.edit(title); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("编辑成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "标题信息删除") + @PostMapping("/delTitle") + @OperationLog(action = "标题信息[删除]", operateType = "title/remove") + public ResultVO remove(@RequestBody Title title) { + ResultVO resultVo = new ResultVO(); + try { + if (null == title || title.getTitleId() == 0){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("参数为空"); + return resultVo; + } + int res = titleService.remove(title.getTitleId()); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("删除成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "标题信息批量删除") + @GetMapping("/removeBatch") + @OperationLog(action = "标题信息[批量删除]", operateType = "title/removeBatch") + public ResultVO removeBatch(@RequestParam(value = "ids",required = false) String ids) { + ResultVO resultVo = new ResultVO(); + try { + if (null == ids || "".equals(ids)){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("参数为空"); + return resultVo; + } + int res = titleService.removeBatch(ids); + logger.info("success > 0,failed <= 0, save result=" + res); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("删除成功"); + resultVo.setData(res); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + @ApiOperation(value = "标题信息单个查看") + @GetMapping("/find") + @OperationLog(action = "标题信息[单个查看]", operateType = "title/find") + public ResultVO find(Title title) { + ResultVO resultVo = new ResultVO(); + try { + if (null == title){ + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg("param is null"); + return resultVo; + } + Title titleVO = titleService.find(title); + resultVo.setCode(resultVo.SUCCESS); + resultVo.setMsg("find title success"); + resultVo.setData(titleVO); + } catch (Exception e) { + logger.error(e.getMessage(),e); + resultVo.setCode(resultVo.FAIL); + resultVo.setMsg(e.getMessage()); + } + return resultVo; + } + + /** + * 分页查询 + * @param title + * @return pageListVO + */ + @ApiOperation(value = "标题信息分页查询") + @GetMapping("/queryTitle") + @OperationLog(action = "标题信息[分页查询]", operateType = "title/findBatch") + public PageListVO> findBatch(Title title){ + PageListVO> pageListVO = new PageListVO<>(); + if (null == title){ + title = new Title(); + } + if (null == title.getPageNum() || title.getPageNum() <= 0) + title.setPageNum(1); + if (null == title.getPageSize()) + title.setPageSize(10); + List resultList = titleService.findBatch(title); + Integer resultTotal = titleService.findTotal(title); + int page = resultTotal/title.getPageSize() + (resultTotal%title.getPageSize() > 0 ? 1 : 0); + pageListVO.setTotalPage(page); + pageListVO.setData(resultList); + pageListVO.setCode(PageListVO.SUCCESS); + pageListVO.setTotalNum(resultTotal); + pageListVO.setPageNum(title.getPageNum()); + pageListVO.setPageSize(title.getPageSize()); + return pageListVO; + } + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/filter/LoginInterceptor.java b/knowledge-map/src/main/java/com/chinasoft/filter/LoginInterceptor.java new file mode 100644 index 00000000..919f0ce6 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/filter/LoginInterceptor.java @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.filter; + + +import com.alibaba.fastjson.JSONObject; +import com.auth0.jwt.interfaces.DecodedJWT; +import com.chinasoft.utils.TokenUtils; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +public class LoginInterceptor implements HandlerInterceptor { + + + private String[] urls; + + private static final Logger logger = LoggerFactory.getLogger(LoginInterceptor.class); + + + public LoginInterceptor(String[] urls) { + this.urls=urls; + } + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception { + + logger.info("the session is "+request.getSession().getId()+",the uri is"+request.getRequestURI()); + + String uri = request.getRequestURI(); + for (String s : urls) { + if (uri.indexOf(s) >= 0){ + return true; + } + } + JSONObject jsonObject = new JSONObject(); + + if(uri.indexOf("/error")>=0){ + response.setStatus(200); + jsonObject.put("code",1); + jsonObject.put("msg","请检查请求路径,参数,方法"); + response.getWriter().write(jsonObject.toJSONString()); + return false; + } + + + String token = request.getHeader("token"); + if(StringUtils.isBlank(token)){ + response.setStatus(200); + jsonObject.put("code",1); + jsonObject.put("msg","请先登录"); + response.getWriter().write(jsonObject.toJSONString()); + return false; + } + + DecodedJWT jwt = TokenUtils.verify(token); + if (null==jwt){ + response.setStatus(403); + jsonObject.put("code",1); + jsonObject.put("msg","token无效"); + response.getWriter().write(jsonObject.toJSONString()); + return false; + } + + String loginUserId = jwt.getClaim("loginUserId").asString(); + + if (StringUtils.isBlank(loginUserId)){ + response.setStatus(403); + jsonObject.put("code",1); + jsonObject.put("msg","token解析出错"); + response.getWriter().write(jsonObject.toJSONString()); + return false; + } + + HttpSession session = request.getSession(); + session.setAttribute("loginUserId",loginUserId); + return true; + } + + @Override + public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { + + } + + public String getUserInfoFromUser(HttpServletRequest request) { + Cookie[] cookies = request.getCookies(); + if (null != cookies) { + for (Cookie cookie : cookies) { + if (cookie.getName().equals("userInfo_myCookies")) { + String userInfo = cookie.getValue(); + if (!StringUtils.isBlank(userInfo)){ + return cookie.getValue(); + }else { + return null; + } + } + } + } + return null; + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/filter/MyFilter.java b/knowledge-map/src/main/java/com/chinasoft/filter/MyFilter.java new file mode 100644 index 00000000..b9767bec --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/filter/MyFilter.java @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.filter; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * 添加过滤器,解决跨域访问 + */ + + +public class MyFilter implements Filter { + + + private static final Logger logger = LoggerFactory.getLogger(MyFilter.class); + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + + } + + @Override + public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException { + // 将ServletResponse转换为HttpServletResponse + HttpServletResponse httpResponse = (HttpServletResponse) res; + HttpServletRequest request=(HttpServletRequest)req; + httpResponse.setHeader("Access-Control-Allow-Origin", "*"); + httpResponse.setContentType("application/json;charset=UTF-8"); + httpResponse.setHeader("Access-Control-Allow-Methods", "*"); + httpResponse.setHeader("Access-Control-Max-Age", "3600"); + httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type,token,access-control-allow-origin,Content-disposition,X-Requested-With"); + // 如果要把Cookie发到服务器,需要指定Access-Control-Allow-Credentials字段为true + httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); + httpResponse.setHeader("Access-Control-Expose-Headers", "*"); + + + String method = request.getMethod(); + if (method.equalsIgnoreCase("OPTIONS")){ + httpResponse.setStatus(HttpServletResponse.SC_OK); + return; + } + try { + chain.doFilter(req, res); + } catch (Exception e) { + logger.error("",e); + } + } + + @Override + public void destroy() { + + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/BaseInfoMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/BaseInfoMapper.java new file mode 100644 index 00000000..59b59085 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/BaseInfoMapper.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.po.BaseInfo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface BaseInfoMapper { + int insert(BaseInfo baseInfo); + int update(BaseInfo baseInfo); + int delete(Integer id); + int deleteBatch(List<Integer> ids); + BaseInfo query(BaseInfo baseInfo); + List<BaseInfo> queryAll(BaseInfo baseInfo); + List<BaseInfo> queryBatch(BaseInfo baseInfo); + int queryTotal(BaseInfo baseInfo); + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/BusTypeMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/BusTypeMapper.java new file mode 100644 index 00000000..8a668c07 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/BusTypeMapper.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.po.BusType; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface BusTypeMapper { + int insert(BusType busType); + int update(BusType busType); + int delete(Integer id); + int deleteBatch(List<Integer> ids); + BusType query(BusType busType); + List<BusType> queryAll(BusType busType); + List<BusType> queryBatch(BusType busType); + int queryTotal(BusType busType); + List<Map<String,Object>> getAllTitleData(); + List<Map<String,Object>> getAllLevelData(); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/DetailMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/DetailMapper.java new file mode 100644 index 00000000..93f7fd00 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/DetailMapper.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.po.Detail; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface DetailMapper { + int insert(Detail detail); + int update(Detail detail); + int delete(Integer id); + int deleteBatch(List<Integer> ids); + Detail query(Detail detail); + List<Detail> queryAll(Detail detail); + List<Detail> queryBatch(Detail detail); + int queryTotal(Detail detail); + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/DetailTypeMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/DetailTypeMapper.java new file mode 100644 index 00000000..90813073 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/DetailTypeMapper.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.po.DetailType; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface DetailTypeMapper { + int insert(DetailType detailType); + int update(DetailType detailType); + int delete(Integer id); + int deleteBatch(List<Integer> ids); + DetailType query(DetailType detailType); + List<DetailType> queryAll(DetailType detailType); + List<DetailType> queryBatch(DetailType detailType); + int queryTotal(DetailType detailType); + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/FeaturesMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/FeaturesMapper.java new file mode 100644 index 00000000..a2201586 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/FeaturesMapper.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.po.Features; +import com.chinasoft.bean.vo.QuerySampleVo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface FeaturesMapper { + int insert(Features features); + int update(Features features); + int delete(Integer id); + int deleteBatch(List<Integer> ids); + Features query(Features features); + List<Features> queryAll(Features features); + List<QuerySampleVo> queryBatch(Features features); + int queryTotal(Features features); + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/FrontPageMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/FrontPageMapper.java new file mode 100644 index 00000000..bea7253a --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/FrontPageMapper.java @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import jdk.nashorn.internal.runtime.arrays.ArrayIndex; +import org.apache.ibatis.annotations.Mapper; + +import java.util.*; + +@Mapper +public interface FrontPageMapper { + + /** + * 首页获取标题数据 + * @return 标题集合 + */ + List<Map<String,Object>> getTitleData(); + + /** + * 首页获取os类型数据 + * @return os类型集合 + */ + List<Map<String,Object>> getOsTypeData(); + + /** + * 首页获取os版本数据 + * @return os版本集合 + */ + List<Map<String,Object>> getOsVersionData(); + + + /** + * 首页获取级别数据 + * @return 级别集合 + */ + List<Map<String,Object>> getLevelData(); + + /** + * 首页通过标题id与级别id获取业务类型数据 + * @param titleId 标题id + * @return 业务类型集合 + */ + List<Map<String,Object>> getBusTypeData(String titleId); + + /** + * 首页通过业务类型id获取特性数据 + * @param busTypeId 业务类型id + * @return 特性集合 + */ + List<Map<String,Object>> getFeaturesData(String busTypeId); + + + /** + * 首页通过特性id获取开发样例数据 + * @param featuresId 特性id + * @return 开发样例集合 + */ + List<Map<String,Object>> getSampleData(String featuresId); + + /** + * 通过开发样例id获取相关类型并合并 + * @param sampleId 开发样例id + * @return 分类名称集合 + */ + String getTypeNameData(String sampleId); + + /** + * 通过开发样例id获取开发样例详情 + * @param sampleId 开发样例id + * @return 开发样例详情集合 + */ + List<Map<String,Object>> getSampleDetail(String sampleId); + + /** + * 通过特性id获取特性名称 + * @param featureId + * @return + */ + String getFeatureNameData(String featureId); + + /** + * 通过开发样例id获取基础信息 + * @param sampleId + * @return + */ + List<Map<String,Object>> getBaseInfoData(String sampleId); + + /** + * 通过开发样例id获取类型数据 + * @param sampleId + * @return + */ + LinkedList getTypeDetailData(String sampleId); + + List<Map<String,Object>> getSample1(String titleId,String osTypeId,String osVersionId,String busTypeId,String featuresId); + List<Map<String,Object>> getSample2(String titleId,String osTypeId,String osVersionId,String busTypeId); + List<Map<String,Object>> getSample3(String titleId,String osTypeId,String osVersionId); + List<Map<String,Object>> getSample4(String titleId,String osTypeId); + List<Map<String,Object>> getSample5(String titleId,String busTypeId); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/HomePageMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/HomePageMapper.java new file mode 100644 index 00000000..3cbc7cfc --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/HomePageMapper.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.po.*; +import org.apache.ibatis.annotations.Mapper; +import java.util.List; +import java.util.Map; + +@Mapper +public interface HomePageMapper { + List<HomeBanner> queryBanner(String category); + List<Map<String,Object>> queryDate(String date); + List<HomeMeeting> queryMeetingByDate(String date); + List<HomeContent> queryInformation(String type); + List<HomeAdvertising> queryAdvertising(String type); + List<HomeDevelopment> queryDevelopment(); + List<HomeCompany> queryVendor(); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/LevelMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/LevelMapper.java new file mode 100644 index 00000000..faed53a7 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/LevelMapper.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.po.Level; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface LevelMapper { + int insert(Level level); + int update(Level level); + int delete(Integer id); + int deleteBatch(List<Integer> ids); + Level query(Level level); + List<Level> queryAll(Level level); + List<Level> queryBatch(Level level); + int queryTotal(Level level); + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/LoginMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/LoginMapper.java new file mode 100644 index 00000000..3d2f0cd5 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/LoginMapper.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.po.User; +import org.apache.ibatis.annotations.Mapper; +import java.util.List; +import java.util.Map; + +@Mapper +public interface LoginMapper { + List<Map<String,Object>> getBackstageLogin(String userName, String phone); + int updateUser(User user); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/OsTypeMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/OsTypeMapper.java new file mode 100644 index 00000000..9beac92e --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/OsTypeMapper.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.po.OsType; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface OsTypeMapper { + int insert(OsType osType); + int update(OsType osType); + int delete(Integer id); + int deleteBatch(List<Integer> ids); + OsType query(OsType osType); + List<OsType> queryAll(OsType osType); + List<OsType> queryBatch(OsType osType); + int queryTotal(OsType osType); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/OsVersionMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/OsVersionMapper.java new file mode 100644 index 00000000..1a1fdda1 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/OsVersionMapper.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.po.OsVersion; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface OsVersionMapper { + int insert(OsVersion osVersion); + int update(OsVersion osVersion); + int delete(Integer id); + int deleteBatch(List<Integer> ids); + OsVersion query(OsVersion osVersion); + List<OsVersion> queryAll(OsVersion osVersion); + List<OsVersion> queryBatch(OsVersion osVersion); + int queryTotal(OsVersion osVersion); + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/SampleMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/SampleMapper.java new file mode 100644 index 00000000..01579c34 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/SampleMapper.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.vo.AddSampleVo; +import com.chinasoft.bean.vo.BaseInfoListVo; +import com.chinasoft.bean.vo.QuerySampleVo; +import com.chinasoft.bean.vo.TypeDetailListVo; +import org.apache.ibatis.annotations.Mapper; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Mapper +public interface SampleMapper { + ArrayList<QuerySampleVo> querySample(HashMap<String, String> params); + List<Map<String,Object>> queryFeatures(String busTypeId); + List<Map<String,Object>> queryDetailType(); + List<Map<String,Object>> queryData(); + int queryPageNum(HashMap<String, String> params); + int addSample(AddSampleVo addSampleVo); + int addBaseInfo(BaseInfoListVo baseInfoListVo); + int addTypeDetail(TypeDetailListVo typeDetailListVo); + int updateSample(AddSampleVo addSampleVo); + void deleteSample(AddSampleVo addSampleVo); + void deleteBaseInfo(AddSampleVo addSampleVo); + void deleteTypeDetail(AddSampleVo addSampleVo); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/SecondaryPageMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/SecondaryPageMapper.java new file mode 100644 index 00000000..36bbd60d --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/SecondaryPageMapper.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.po.HomeContent; +import com.chinasoft.bean.po.HomeContentPic; +import com.chinasoft.bean.po.HomeDevelopment; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface SecondaryPageMapper { + List<HomeContentPic> queryCarousel(int type,String category); + + List<HomeContent> queryBatch(HomeContent content); + int queryTotal(HomeContent content); + + HomeContent queryDetails(int id); + + int updateCount(HomeContent homeContent); + + List<HomeDevelopment> queryDevelopmentBatch(HomeDevelopment dept); + int queryDevelopmentTotal(HomeDevelopment dept); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/mapper/TitleMapper.java b/knowledge-map/src/main/java/com/chinasoft/mapper/TitleMapper.java new file mode 100644 index 00000000..73e18d56 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/mapper/TitleMapper.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.mapper; + +import com.chinasoft.bean.po.Title; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface TitleMapper { + int insert(Title title); + int update(Title title); + int delete(Integer id); + int deleteBatch(List<Integer> ids); + Title query(Title title); + List<Title> queryAll(Title title); + List<Title> queryBatch(Title title); + int queryTotal(Title title); + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/BaseInfoService.java b/knowledge-map/src/main/java/com/chinasoft/service/BaseInfoService.java new file mode 100644 index 00000000..d18a1ed0 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/BaseInfoService.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.chinasoft.bean.po.BaseInfo; + +import java.util.List; + +public interface BaseInfoService { + int add(BaseInfo baseInfo); + int edit(BaseInfo baseInfo); + int remove(Integer id); + int removeBatch(String ids); + BaseInfo find(BaseInfo baseInfo); + List<BaseInfo> findAll(BaseInfo baseInfo); + List<BaseInfo> findBatch(BaseInfo baseInfo); + int findTotal(BaseInfo baseInfo); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/BusTypeService.java b/knowledge-map/src/main/java/com/chinasoft/service/BusTypeService.java new file mode 100644 index 00000000..853f1a94 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/BusTypeService.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.alibaba.fastjson.JSONObject; +import com.chinasoft.bean.po.BusType; + +import java.util.List; + +public interface BusTypeService { + int add(BusType busType); + int edit(BusType busType); + int remove(Integer id); + int removeBatch(String ids); + BusType find(BusType busType); + List<BusType> findAll(BusType busType); + List<BusType> findBatch(BusType busType); + int findTotal(BusType busType); + JSONObject getAllData(); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/DetailService.java b/knowledge-map/src/main/java/com/chinasoft/service/DetailService.java new file mode 100644 index 00000000..3b288fee --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/DetailService.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.chinasoft.bean.po.Detail; + +import java.util.List; + +public interface DetailService { + int add(Detail detail); + int edit(Detail detail); + int remove(Integer id); + int removeBatch(String ids); + Detail find(Detail detail); + List<Detail> findAll(Detail detail); + List<Detail> findBatch(Detail detail); + int findTotal(Detail detail); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/DetailTypeService.java b/knowledge-map/src/main/java/com/chinasoft/service/DetailTypeService.java new file mode 100644 index 00000000..9daa34d6 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/DetailTypeService.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.chinasoft.bean.po.DetailType; + +import java.util.List; + +public interface DetailTypeService { + int add(DetailType detailType); + int edit(DetailType detailType); + int remove(Integer id); + int removeBatch(String ids); + DetailType find(DetailType detailType); + List<DetailType> findAll(DetailType detailType); + List<DetailType> findBatch(DetailType detailType); + int findTotal(DetailType detailType); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/FeaturesService.java b/knowledge-map/src/main/java/com/chinasoft/service/FeaturesService.java new file mode 100644 index 00000000..0b0a23d0 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/FeaturesService.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.chinasoft.bean.po.Features; +import com.chinasoft.bean.vo.QuerySampleVo; + +import java.util.List; + +public interface FeaturesService { + int add(Features features); + int edit(Features features); + int remove(Integer id); + int removeBatch(String ids); + Features find(Features features); + List<Features> findAll(Features features); + List<QuerySampleVo> findBatch(Features features); + int findTotal(Features features); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/FrontPageService.java b/knowledge-map/src/main/java/com/chinasoft/service/FrontPageService.java new file mode 100644 index 00000000..578f7493 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/FrontPageService.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.alibaba.fastjson.JSONObject; +import java.util.HashMap; + +public interface FrontPageService { + /** + * 知识图谱首页初始化数据 + * @param params + * @return + */ + JSONObject getFrontPageData(HashMap<String, String> params); + + /** + * 知识图谱开发样例详情数据 + * @param sampleId + * @return + */ + JSONObject getFrontPageDetailData(String sampleId); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/HomePageService.java b/knowledge-map/src/main/java/com/chinasoft/service/HomePageService.java new file mode 100644 index 00000000..ebe01cb2 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/HomePageService.java @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.chinasoft.bean.po.HomeBanner; +import com.chinasoft.bean.po.HomeCompany; +import com.chinasoft.bean.po.HomeContent; +import com.chinasoft.bean.po.HomeDevelopment; +import java.util.List; + +public interface HomePageService { + List<HomeBanner> queryBanner(String category); + List queryMeeting(String date); + List<HomeContent> queryInformation(String type); + List<HomeDevelopment> queryDevelopment(); + List<HomeCompany> queryVendor(); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/LevelService.java b/knowledge-map/src/main/java/com/chinasoft/service/LevelService.java new file mode 100644 index 00000000..f709cb88 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/LevelService.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.chinasoft.bean.po.Level; + +import java.util.List; + +public interface LevelService { + int add(Level level); + int edit(Level level); + int remove(Integer id); + int removeBatch(String ids); + Level find(Level level); + List<Level> findAll(Level level); + List<Level> findBatch(Level level); + int findTotal(Level level); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/LoginService.java b/knowledge-map/src/main/java/com/chinasoft/service/LoginService.java new file mode 100644 index 00000000..bc01a08f --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/LoginService.java @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.chinasoft.bean.po.User; + +import java.util.List; +import java.util.Map; + +public interface LoginService { + List<Map<String,Object>> getBackstageLogin(String userName,String phone); + int updateUser(User user); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/OsTypeService.java b/knowledge-map/src/main/java/com/chinasoft/service/OsTypeService.java new file mode 100644 index 00000000..d697ca22 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/OsTypeService.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.chinasoft.bean.po.OsType; + +import java.util.List; + +public interface OsTypeService { + int add(OsType osType); + int edit(OsType osType); + int remove(Integer id); + int removeBatch(String ids); + OsType find(OsType osType); + List<OsType> findAll(OsType osType); + List<OsType> findBatch(OsType osType); + int findTotal(OsType osType); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/OsVersionService.java b/knowledge-map/src/main/java/com/chinasoft/service/OsVersionService.java new file mode 100644 index 00000000..f632a11c --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/OsVersionService.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.chinasoft.bean.po.OsVersion; + +import java.util.List; + +public interface OsVersionService { + int add(OsVersion osVersion); + int edit(OsVersion osVersion); + int remove(Integer id); + int removeBatch(String ids); + OsVersion find(OsVersion osVersion); + List<OsVersion> findAll(OsVersion osVersion); + List<OsVersion> findBatch(OsVersion osVersion); + int findTotal(OsVersion osVersion); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/SampleService.java b/knowledge-map/src/main/java/com/chinasoft/service/SampleService.java new file mode 100644 index 00000000..ba899e0a --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/SampleService.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.alibaba.fastjson.JSONObject; +import com.chinasoft.bean.vo.AddSampleVo; +import com.chinasoft.bean.vo.QuerySampleVo; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public interface SampleService { + ArrayList<QuerySampleVo> querySample(HashMap<String, String> params); + JSONObject queryInformation(String busTypeId); + List<Map<String,Object>> queryData(); + int queryPageNum(HashMap<String, String> params); + void addSample(AddSampleVo addSampleVo); + void updateSample(AddSampleVo addSampleVo); + void deleteSample(AddSampleVo addSampleVo); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/SecondaryPageService.java b/knowledge-map/src/main/java/com/chinasoft/service/SecondaryPageService.java new file mode 100644 index 00000000..182b88bb --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/SecondaryPageService.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + + +import com.chinasoft.bean.po.HomeContent; +import com.chinasoft.bean.po.HomeContentPic; +import com.chinasoft.bean.po.HomeDevelopment; + +import java.util.List; + +public interface SecondaryPageService { + List<HomeContentPic> queryCarousel(int type,String category); + + List<HomeContent> queryBatch(HomeContent content); + int queryTotal(HomeContent content); + + HomeContent queryDetails(int id); + + int updateCount(int id,int type); + + List<HomeDevelopment> queryDevelopmentBatch(HomeDevelopment dept); + int queryDevelopmentTotal(HomeDevelopment dept); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/TitleService.java b/knowledge-map/src/main/java/com/chinasoft/service/TitleService.java new file mode 100644 index 00000000..c582b3f7 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/TitleService.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service; + +import com.chinasoft.bean.po.Title; + +import java.util.List; + +public interface TitleService { + int add(Title title); + int edit(Title title); + int remove(Integer id); + int removeBatch(String ids); + Title find(Title title); + List<Title> findAll(Title title); + List<Title> findBatch(Title title); + int findTotal(Title title); +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/BaseInfoServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/BaseInfoServiceImpl.java new file mode 100644 index 00000000..a23f7936 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/BaseInfoServiceImpl.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.chinasoft.bean.po.BaseInfo; +import com.chinasoft.mapper.BaseInfoMapper; +import com.chinasoft.service.BaseInfoService; +import com.google.common.collect.Lists; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class BaseInfoServiceImpl implements BaseInfoService { + + private static Logger logger = Logger.getLogger(BaseInfoServiceImpl.class); + + @Autowired + private BaseInfoMapper baseInfoMapper; + + @Override + public int add(BaseInfo baseInfo) { + return baseInfoMapper.insert(baseInfo); + } + + @Override + public int edit(BaseInfo baseInfo) { + return baseInfoMapper.update(baseInfo); + } + + @Override + public int remove(Integer id) { + if (null == id){ + logger.error("id is null"); + return 0; + } + return baseInfoMapper.delete(id); + } + + @Override + public int removeBatch(String ids) { + if (StringUtils.isEmpty(ids) && StringUtils.isEmpty(ids)){ + logger.error("ids or proIds is null"); + return 0; + } + List<Integer> idsList = new ArrayList<>(); + if (!StringUtils.isEmpty(ids)){ + idsList = Lists.newArrayList(ids.split(",")).stream().map(id->Integer.parseInt(id)).collect(Collectors.toList()); + } + return baseInfoMapper.deleteBatch(idsList); + } + + @Override + public BaseInfo find(BaseInfo baseInfo) { + return baseInfoMapper.query(baseInfo); + } + + @Override + public List<BaseInfo> findAll(BaseInfo baseInfo) { + return baseInfoMapper.queryAll(baseInfo); + } + + @Override + public List<BaseInfo> findBatch(BaseInfo baseInfo) { + return baseInfoMapper.queryBatch(baseInfo); + } + + @Override + public int findTotal(BaseInfo baseInfo) { + return baseInfoMapper.queryTotal(baseInfo); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/BusTypeServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/BusTypeServiceImpl.java new file mode 100644 index 00000000..e15e7e3a --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/BusTypeServiceImpl.java @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.chinasoft.bean.po.BusType; +import com.chinasoft.mapper.BusTypeMapper; +import com.chinasoft.service.BusTypeService; +import com.google.common.collect.Lists; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class BusTypeServiceImpl implements BusTypeService { + + private static Logger logger = Logger.getLogger(BusTypeServiceImpl.class); + + @Autowired + private BusTypeMapper busTypeMapper; + + @Override + public int add(BusType busType) { + return busTypeMapper.insert(busType); + } + + @Override + public int edit(BusType busType) { + return busTypeMapper.update(busType); + } + + @Override + public int remove(Integer id) { + if (null == id){ + logger.error("id is null"); + return 0; + } + return busTypeMapper.delete(id); + } + + @Override + public int removeBatch(String ids) { + if (StringUtils.isEmpty(ids) && StringUtils.isEmpty(ids)){ + logger.error("ids or proIds is null"); + return 0; + } + List<Integer> idsList = new ArrayList<>(); + if (!StringUtils.isEmpty(ids)){ + idsList = Lists.newArrayList(ids.split(",")).stream().map(id->Integer.parseInt(id)).collect(Collectors.toList()); + } + return busTypeMapper.deleteBatch(idsList); + } + + @Override + public BusType find(BusType busType) { + return busTypeMapper.query(busType); + } + + @Override + public List<BusType> findAll(BusType busType) { + return busTypeMapper.queryAll(busType); + } + + @Override + public List<BusType> findBatch(BusType busType) { + return busTypeMapper.queryBatch(busType); + } + + @Override + public int findTotal(BusType busType) { + return busTypeMapper.queryTotal(busType); + } + + @Override + public JSONObject getAllData() { + JSONObject object =new JSONObject(); + object.put("titleList",busTypeMapper.getAllTitleData()); + object.put("levelList",busTypeMapper.getAllLevelData()); + return object; + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/DetailServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/DetailServiceImpl.java new file mode 100644 index 00000000..6eb2fb37 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/DetailServiceImpl.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.chinasoft.bean.po.Detail; +import com.chinasoft.mapper.DetailMapper; +import com.chinasoft.service.DetailService; +import com.google.common.collect.Lists; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class DetailServiceImpl implements DetailService { + + private static Logger logger = Logger.getLogger(DetailServiceImpl.class); + + @Autowired + private DetailMapper detailMapper; + + @Override + public int add(Detail detail) { + return detailMapper.insert(detail); + } + + @Override + public int edit(Detail detail) { + return detailMapper.update(detail); + } + + @Override + public int remove(Integer id) { + if (null == id){ + logger.error("id is null"); + return 0; + } + return detailMapper.delete(id); + } + + @Override + public int removeBatch(String ids) { + if (StringUtils.isEmpty(ids) && StringUtils.isEmpty(ids)){ + logger.error("ids is null"); + return 0; + } + List<Integer> idsList = new ArrayList<>(); + if (!StringUtils.isEmpty(ids)){ + idsList = Lists.newArrayList(ids.split(",")).stream().map(id->Integer.parseInt(id)).collect(Collectors.toList()); + } + return detailMapper.deleteBatch(idsList); + } + + @Override + public Detail find(Detail detail) { + return detailMapper.query(detail); + } + + @Override + public List<Detail> findAll(Detail detail) { + return detailMapper.queryAll(detail); + } + + @Override + public List<Detail> findBatch(Detail detail) { + return detailMapper.queryBatch(detail); + } + + @Override + public int findTotal(Detail detail) { + return detailMapper.queryTotal(detail); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/DetailTypeServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/DetailTypeServiceImpl.java new file mode 100644 index 00000000..794b5294 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/DetailTypeServiceImpl.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.chinasoft.bean.po.DetailType; +import com.chinasoft.mapper.DetailTypeMapper; +import com.chinasoft.mapper.DetailTypeMapper; +import com.chinasoft.service.DetailTypeService; +import com.google.common.collect.Lists; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class DetailTypeServiceImpl implements DetailTypeService { + + private static Logger logger = Logger.getLogger(DetailTypeServiceImpl.class); + + @Autowired + private DetailTypeMapper detailTypeMapper; + + @Override + public int add(DetailType detailType) { + return detailTypeMapper.insert(detailType); + } + + @Override + public int edit(DetailType detailType) { + return detailTypeMapper.update(detailType); + } + + @Override + public int remove(Integer id) { + if (null == id){ + logger.error("id is null"); + return 0; + } + return detailTypeMapper.delete(id); + } + + @Override + public int removeBatch(String ids) { + if (StringUtils.isEmpty(ids) && StringUtils.isEmpty(ids)){ + logger.error("ids is null"); + return 0; + } + List<Integer> idsList = new ArrayList<>(); + if (!StringUtils.isEmpty(ids)){ + idsList = Lists.newArrayList(ids.split(",")).stream().map(id->Integer.parseInt(id)).collect(Collectors.toList()); + } + return detailTypeMapper.deleteBatch(idsList); + } + + @Override + public DetailType find(DetailType detailType) { + return detailTypeMapper.query(detailType); + } + + @Override + public List<DetailType> findAll(DetailType detailType) { + return detailTypeMapper.queryAll(detailType); + } + + @Override + public List<DetailType> findBatch(DetailType detailType) { + return detailTypeMapper.queryBatch(detailType); + } + + @Override + public int findTotal(DetailType detailType) { + return detailTypeMapper.queryTotal(detailType); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/ExcelHandler.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/ExcelHandler.java new file mode 100644 index 00000000..f4f39b45 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/ExcelHandler.java @@ -0,0 +1,651 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.chinasoft.bean.po.*; +import com.chinasoft.bean.vo.AddSampleVo; +import com.chinasoft.mapper.SampleMapper; +import com.chinasoft.service.*; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import org.apache.commons.lang.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFDateUtil; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * Created by Guanzhong Hu + * Date :2020/2/12 + * Description : excel导入工具类 + * Version :1.0 + */ +@Service +public class ExcelHandler { + + private final static String excel2003L =".xls"; //2003- 版本的excel + private final static String excel2007U =".xlsx"; //2007+ 版本的excel + private final static String SIGN_YES = "是"; + private final static String DEVICE_DEV = "设备开发"; + private final static String APP_DEV = "应用开发"; + + @Autowired + private TitleService titleService; + + @Autowired + private OsTypeService osTypeService; + + @Autowired + private OsVersionService osVersionService; + + @Autowired + private BusTypeService busTypeService; + + @Autowired + private FeaturesService featuresService; + + @Autowired + private SampleService sampleService; + + @Autowired + private BaseInfoService baseInfoService; + + @Autowired + private DetailTypeService detailTypeService; + + @Autowired + private DetailService detailService; + + /** + * @Description:获取IO流中的数据,组装成List<List<Object>>对象 + * @param in,fileName + * @return + * @throws IOException + */ + public void getListByExcel(InputStream in, String fileName) throws Exception{ + + //创建Excel工作薄 + Workbook work = getWorkbook(in,fileName); + if(null == work){ + throw new Exception("创建Excel工作薄为空!"); + } + Sheet sheet = null; //页数 + Row row = null; //行数 + Cell cell = null; //列数 + Title title = null; //标题对象 + + List<Title> titleList = titleService.findAll(new Title()); + List<OsType> osTypeList = osTypeService.findAll(new OsType()); + List<OsVersion> osVersionList = osVersionService.findAll(new OsVersion()); + List<Features> featuresList = featuresService.findAll(new Features()); + + + List<DetailType> detailTypeList = detailTypeService.findAll(new DetailType()); + Map<Integer,String> detaialTypeMap = Maps.newHashMap(); + detailTypeList.forEach(vo->detaialTypeMap.put(vo.getId(),vo.getName())); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + //遍历Excel中所有的sheet + for (int i = 0; i < work.getNumberOfSheets(); i++) { + sheet = work.getSheetAt(i); + if(sheet==null){continue;} + + String sheetName = sheet.getSheetName(); + if (StringUtils.isEmpty(sheetName)){ + continue; + } + //获取标题 + long count = titleList.stream().filter(vo-> vo.getName().contains(sheetName)).count(); + if (count <= 0){ + continue; + } + title = titleList.stream().filter(vo-> vo.getName().contains(sheetName)).findFirst().get(); + + DataVO dataVO = new DataVO(); + + //遍历当前sheet中的所有行 + for (int j = sheet.getFirstRowNum(); j <= sheet.getLastRowNum(); j++) { + row = sheet.getRow(j); + if( row == null){ + continue; + } + if (0 == j){ + dataVO = dataList(row,sheet.getRow(j+1)); + continue; + } + if (1 == j){ + continue; + } + List<Object> li = new ArrayList<Object>(); + + AddSampleVo sample = new AddSampleVo(); + //关联标题 + sample.setTitleId(title.getId().toString()); + + List<BaseInfo> baseInfoList = new ArrayList<>(); + baseInfoList.add(new BaseInfo()); + OsVersion osVersion = new OsVersion(); + OsType osType = new OsType(); + + List<Detail> detailList = new ArrayList<>(); + + boolean flagNull = false; + + //遍历所有的列 + for (int y = row.getFirstCellNum(); y < row.getLastCellNum(); y++) { + cell = row.getCell(y); + String value = getValue(cell); + String address = ""; //gitlab地址 + if (0 == y){ + //样例名称为空,则是错误数据 + if (StringUtils.isEmpty(value)){ + flagNull = true; + break; + } + Hyperlink hyperlink = cell.getHyperlink(); + if (null != hyperlink) + address = hyperlink.getAddress(); + } + if (sheetName.contains(DEVICE_DEV)){ + switch (y){ + case 0: + sample.setName(value); + sample.setGitUrl(address); + break; + case 1: + baseInfoList.get(0).setSysVersion(value); + long versionCount = osVersionList.stream().filter(vo-> vo.getName().contains(value)).count(); + if (versionCount > 0){ + osVersion = osVersionList.stream().filter(vo-> vo.getName().contains(value)).findFirst().get(); + sample.setOsVersionId(osVersion.getId().toString()); + } + break; + case 2: + sample.setSummary(value); + break; + case 3: + if (StringUtils.isEmpty(value)){ + sample.setCreateTime(new Date()); + break; + } + if (value.length() <= 4){ + int year = Calendar.getInstance().get(Calendar.YEAR); + String newValue = year + "-" + value.substring(0,2) + "-" + value.substring(2); + sample.setCreateTime(sdf.parse(newValue)); + break; + } + sample.setCreateTime(sdf.parse(value)); + break; + case 4: + if (!StringUtils.isEmpty(value)){ + sample.setImageUrl(value); + } + break; + case 5: + sample.setSign(0); + if (!StringUtils.isEmpty(value) && SIGN_YES.equals(value)){ + sample.setSign(1); + } + break; + case 6: + if (!StringUtils.isEmpty(value)){ + sample.setDifficultyLevel(value); + } + break; + case 7: + baseInfoList.get(0).setDeviceLevel(value); + if (!StringUtils.isEmpty(value)){ + long typeCount = osTypeList.stream().filter(vo-> vo.getName().contains(value)).count(); + if (typeCount > 0){ + osType = osTypeList.stream().filter(vo-> vo.getName().contains(value)).findFirst().get(); + sample.setOsTypeId(osType.getId().toString()); + } + } + break; + case 8: + sample.setAuthor(value); + break; + case 9: + break; + case 10: + versionNoHandler(baseInfoList,value); + break; + case 11: + detailHandler(detailTypeList,detailList,value); + break; + default: + busTypeHandler(sample,dataVO,title.getId(),y,value); + break; + } + } else if(sheetName.contains(APP_DEV)){ + switch (y){ + case 0: + sample.setName(value); + sample.setGitUrl(address); + break; + case 1: + sample.setSummary(value); + break; + case 2: + if (StringUtils.isEmpty(value)){ + sample.setCreateTime(new Date()); + break; + } + if (!StringUtils.isEmpty(value) && value.length() <= 4){ + int year = Calendar.getInstance().get(Calendar.YEAR); + String newValue = year + "-" + value.substring(0,2) + "-" + value.substring(2); + sample.setCreateTime(sdf.parse(newValue)); + break; + } + sample.setCreateTime(sdf.parse(value)); + break; + case 3: + if (!StringUtils.isEmpty(value)){ + sample.setImageUrl(value); + } + break; + case 4: + sample.setSign(0); + if (!StringUtils.isEmpty(value) && SIGN_YES.equals(value)){ + sample.setSign(1); + } + break; + case 5: + if (!StringUtils.isEmpty(value)){ + sample.setDifficultyLevel(value); + } + break; + case 6: + sample.setAuthor(value); + break; + case 7: + break; + case 8: + baseInfoList.get(0).setSysVersion(value); + if (!StringUtils.isEmpty(value)){ + String newValue = value.replace("\r","").trim(); + long versionCount = osVersionList.stream().filter(vo-> vo.getName().contains(newValue)).count(); + if (versionCount > 0){ + osVersion = osVersionList.stream().filter(vo-> vo.getName().contains(newValue)).findFirst().get(); + sample.setOsVersionId(osVersion.getId().toString()); + } + } + break; + case 9: + baseInfoList.get(0).setDeviceLevel(value); + long typeCount = osTypeList.stream().filter(vo-> vo.getName().contains(value)).count(); + if (typeCount > 0){ + osType = osTypeList.stream().filter(vo-> vo.getName().contains(value)).findFirst().get(); + sample.setOsTypeId(osType.getId().toString()); + } + break; + case 10: + versionNoHandler(baseInfoList,value); + break; + case 11: + detailHandler(detailTypeList,detailList,value); + break; + default: + // 业务类型,特性 + busTypeHandler(sample,dataVO,title.getId(),y,value); + break; + } + } + } + if (flagNull){ + continue; + } + + //样例信息 + sampleService.addSample(sample); + + // 保存基本信息 + if (!baseInfoList.isEmpty()){ + baseInfoList.forEach(vo->{ + vo.setSampleId(sample.getId()); + baseInfoService.add(vo); + }); + } + + // 描述信息 + detailList.forEach(vo->{ + vo.setSampleId(sample.getId()); + Detail detail = detailService.find(vo); + if (null == detail || detail.getId() <= 0){ + detailService.add(vo); + } + }); + } + } + } + + /** + * 处理版本 + * @param baseInfoList + * @param value + */ + private void versionNoHandler(List<BaseInfo> baseInfoList,String value){ + if (value.contains("\n")){ + List<String> valueList = Lists.newArrayList(value.split("\n")); + valueList = valueList.stream().filter(str-> !StringUtils.isEmpty(str)).collect(Collectors.toList()); + if (valueList.size() > 1){ + BaseInfo baseInfo = baseInfoList.get(0); + List<String> versionList = Lists.newArrayList(); + if (!StringUtils.isEmpty(baseInfo.getSysVersion()) && baseInfo.getSysVersion().contains("\n")){ + versionList = Lists.newArrayList(baseInfo.getSysVersion().split("\n")).stream().filter(str-> !StringUtils.isEmpty(str)).collect(Collectors.toList()); + } else { + versionList.add(baseInfo.getSysVersion()); + } + List<BaseInfo> newBaseList = Lists.newArrayList(); + for (String item : valueList) { + if (StringUtils.isEmpty(item)) + continue; + int indexOf = valueList.indexOf(item); + BaseInfo info = new BaseInfo(); + info.setDeviceLevel(baseInfo.getDeviceLevel()); + info.setSysVersion(versionList.get(indexOf >= versionList.size() ? versionList.size() - 1 : indexOf)); + info.setVersionNo(item); + newBaseList.add(info); + } + baseInfoList.clear(); + baseInfoList.addAll(newBaseList); + } else { + baseInfoList.get(0).setVersionNo(value); + } + } else { + baseInfoList.get(0).setVersionNo(value); + } + } + + /** + * 处理业务类型 + * @param sample + * @param dataVO + * @param titleId + * @param y + * @param value + */ + private void busTypeHandler(AddSampleVo sample,DataVO dataVO,int titleId,int y, String value) { + if (StringUtils.isEmpty(value)){ + return; + } + String bvalue = dataVO.getBrow().get(y); + BusType busType = new BusType(); + busType.setName(bvalue); + busType.setTitleId(titleId); +// busType.setLevelId(levelId); + BusType find = busTypeService.find(busType); + if (null != find && find.getId() > 0){ + if (!StringUtils.isEmpty(sample.getBusTypeId())){ + Set<String> busTypeSet = Sets.newHashSet(sample.getBusTypeId().split(",")); + busTypeSet.add(find.getId().toString()); + sample.setBusTypeId(busTypeSet.stream().collect(Collectors.joining(","))); + }else { + sample.setBusTypeId(find.getId().toString()); + } + busType.setId(find.getId()); + } + +// if (null == find || find.getId() <= 0){ +// busTypeService.add(busType); +// } else { +// busType.setName(find.getName()); +// busType.setId(find.getId()); +// } + + String fvalue = dataVO.getFrow().get(y); + Features features = new Features(); + features.setName(fvalue); + features.setBusTypeId(busType.getId()); + Features findF = featuresService.find(features); + if (null != findF && findF.getId() > 0){ + if (!StringUtils.isEmpty(sample.getFeaturesIds())){ + Set<String> feaSet = Sets.newHashSet(sample.getFeaturesIds().split(",")); + feaSet.add(findF.getId().toString()); + sample.setFeaturesIds(feaSet.stream().collect(Collectors.joining(","))); + } else { + sample.setFeaturesIds(findF.getId().toString()); + } + } + } + + /** + * 处理学习资料的问题 + * @param detailTypeList + * @param detailList + * @param value + */ + private void detailHandler(List<DetailType> detailTypeList, List<Detail> detailList, String value) { + List<String> resultList = Lists.newArrayList(value.split("\n")); + List<Detail> handlerList = Lists.newArrayList(); + for(String val : resultList) { + if (StringUtils.isEmpty(val) || (!StringUtils.isEmpty(val) && StringUtils.isEmpty(val.trim())) || (!StringUtils.isEmpty(val) && val.equals("\r"))){ + continue; + } + String valstr = val.replace("\r",""); + + long count = detailTypeList.stream().filter(vo-> { + if(valstr.contains(vo.getName()) && valstr.length() <= 6){ + return true; + } + if(valstr.length() >= 4 && valstr.length() <= 6 && (vo.getName().contains(valstr.substring(0,2)) || + vo.getName().contains(valstr.substring(2,valstr.length()).replace(":","")))){ + return true; + } + return false; + }).count(); + if (count > 0){ + DetailType detailType = detailTypeList.stream().filter(vo-> { + if(valstr.contains(vo.getName()) && valstr.length() <= 6){ + return true; + } + if(valstr.length() >= 4 && valstr.length() <= 6 && (vo.getName().contains(valstr.substring(0,2)) || vo.getName().contains(valstr.substring(2,valstr.length()).replace(":","")))){ + return true; + } + return false; + }).findFirst().get(); + Detail detail = new Detail(); + detail.setTypeId(detailType.getId()); + handlerList.add(detail); + } else { + + if (handlerList.isEmpty()){ + Detail detail = new Detail(); + detail.setTypeId(detailTypeList.get(1).getId()); + handlerList.add(detail); + } + Detail detail = handlerList.get(handlerList.size() - 1); + if (StringUtils.isEmpty(detail.getDescription())){ + detail.setDescription(valstr); + continue; + } + if (!StringUtils.isEmpty(detail.getDescription()) && StringUtils.isEmpty(detail.getUrl())){ + detail.setUrl(valstr); + continue; + } + Detail detailVO = new Detail(); + detailVO.setDescription(valstr); + detailVO.setTypeId(detail.getTypeId()); + handlerList.add(detailVO); + } + } + detailList.addAll(handlerList); + } + + static class DataVO { + Map<Integer,String> brow = new HashMap<>(); + Map<Integer,String> frow = new HashMap<>(); + int index; + + public Map<Integer, String> getBrow() { + return brow; + } + + public void setBrow(Map<Integer, String> brow) { + this.brow = brow; + } + + public Map<Integer, String> getFrow() { + return frow; + } + + public void setFrow(Map<Integer, String> frow) { + this.frow = frow; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + } + + /** + * + * @return + */ + private DataVO dataList(Row brow, Row frow){ + DataVO dataVO = new DataVO(); + Map<Integer,String> bmap = new HashMap<>(); + Map<Integer,String> fmap = new HashMap<>(); + boolean flag = true; + for (int i = brow.getFirstCellNum(); i < brow.getLastCellNum(); i++) { + Cell cell = brow.getCell(i); + String value = getValue(cell); + if (!StringUtils.isEmpty(value)){ + if(value.contains("学习材料")){ + flag = false; + continue; + } + } + if (flag){ + dataVO.setIndex(i+1); + continue; + } + + Cell fcell = frow.getCell(i); + String fvalue = getValue(fcell); + if (StringUtils.isEmpty(value) && StringUtils.isEmpty(fvalue)){ + continue; + } + value = StringUtils.isEmpty(value) ? bmap.get(i - 1) : value; + bmap.put(i,value); + fmap.put(i,fvalue); + System.out.println("value=" + value + "---------" + getValue(fcell)); + } + dataVO.setBrow(bmap); + dataVO.setFrow(fmap); + return dataVO; + } + + /** + * @Description:根据文件后缀,自适应上传文件的版本 + * @param inStr,fileName + * @return + * @throws Exception + */ + public Workbook getWorkbook(InputStream inStr,String fileName) throws Exception{ + Workbook wb = null; + String fileType = fileName.substring(fileName.lastIndexOf(".")); + if(excel2003L.equals(fileType)){ + wb = new HSSFWorkbook(inStr); //2003- + }else if(excel2007U.equals(fileType)){ + wb = new XSSFWorkbook(inStr); //2007+ + }else{ + throw new Exception("解析的文件格式有误!"); + } + return wb; + } + + /** + * @Description:对表格中数值进行格式化 + * @param cell + * @return + */ + //解决excel类型问题,获得数值 + public static String getValue(Cell cell) { + String value = ""; + if(null==cell){ + return value; + } + switch (cell.getCellType()) { + //数值型 + case Cell.CELL_TYPE_NUMERIC: + if (HSSFDateUtil.isCellDateFormatted(cell)) { + //如果是date类型则 ,获取该cell的date值 + Date date = HSSFDateUtil.getJavaDate(cell.getNumericCellValue()); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + value = format.format(date);; + }else {// 纯数字 + BigDecimal big=new BigDecimal(cell.getNumericCellValue()); + value = big.toString(); + //解决1234.0 去掉后面的.0 + if(null!=value&&!"".equals(value.trim())){ + String[] item = value.split("[.]"); + if(1<item.length&&"0".equals(item[1])){ + value=item[0]; + } + } + } + break; + //字符串类型 + case Cell.CELL_TYPE_STRING: + value = cell.getStringCellValue().toString(); + break; + // 公式类型 + case Cell.CELL_TYPE_FORMULA: + //读公式计算值 + value = String.valueOf(cell.getNumericCellValue()); + if (value.equals("NaN")) {// 如果获取的数据值为非法值,则转换为获取字符串 + value = cell.getStringCellValue().toString(); + } + break; + // 布尔类型 + case Cell.CELL_TYPE_BOOLEAN: + value = " "+ cell.getBooleanCellValue(); + break; + default: + value = cell.getStringCellValue().toString(); + } + if("null".endsWith(value.trim())){ + value=""; + } + return value; + } + + public static void main(String[] args) throws Exception{ +// String filepath = "C:\\Users\\admin\\Desktop\\开发者成长之路2.0_openharmony_new.xlsx"; +// FileInputStream inputStream = new FileInputStream(new File(filepath)); +// new ExcelHandler().getListByExcel(inputStream, filepath); + String str1 = "视频教程"; + String str2 = "官网资料"; + System.out.println(str1.substring(0,2)); + } +} \ No newline at end of file diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/FeaturesServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/FeaturesServiceImpl.java new file mode 100644 index 00000000..a6a5102e --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/FeaturesServiceImpl.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.chinasoft.bean.po.Features; +import com.chinasoft.bean.vo.QuerySampleVo; +import com.chinasoft.mapper.FeaturesMapper; +import com.chinasoft.service.FeaturesService; +import com.google.common.collect.Lists; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class FeaturesServiceImpl implements FeaturesService { + + private static Logger logger = Logger.getLogger(FeaturesServiceImpl.class); + + @Autowired + private FeaturesMapper featuresMapper; + + @Override + public int add(Features features) { + return featuresMapper.insert(features); + } + + @Override + public int edit(Features features) { + return featuresMapper.update(features); + } + + @Override + public int remove(Integer id) { + if (null == id){ + logger.error("id is null"); + return 0; + } + return featuresMapper.delete(id); + } + + @Override + public int removeBatch(String ids) { + if (StringUtils.isEmpty(ids) && StringUtils.isEmpty(ids)){ + logger.error("ids or proIds is null"); + return 0; + } + List<Integer> idsList = new ArrayList<>(); + if (!StringUtils.isEmpty(ids)){ + idsList = Lists.newArrayList(ids.split(",")).stream().map(id->Integer.parseInt(id)).collect(Collectors.toList()); + } + return featuresMapper.deleteBatch(idsList); + } + + @Override + public Features find(Features features) { + return featuresMapper.query(features); + } + + + @Override + public List<Features> findAll(Features features) { + return featuresMapper.queryAll(features); + } + + @Override + public List<QuerySampleVo> findBatch(Features features) { + return featuresMapper.queryBatch(features); + } + + @Override + public int findTotal(Features features) { + return featuresMapper.queryTotal(features); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/FrontPageServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/FrontPageServiceImpl.java new file mode 100644 index 00000000..5530a426 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/FrontPageServiceImpl.java @@ -0,0 +1,243 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.chinasoft.mapper.FrontPageMapper; +import com.chinasoft.service.FrontPageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.*; + +@Service +public class FrontPageServiceImpl implements FrontPageService { + + @Autowired + private FrontPageMapper frontPageMapper; + + @Override + public JSONObject getFrontPageData(HashMap<String, String> params) { + List<Map<String,Object>> titleList=new ArrayList<>(); + //List<Map<String,Object>> levelList=new ArrayList<>(); + List<Map<String,Object>> osTypeList=new ArrayList<>(); + List<Map<String,Object>> osVersionList=new ArrayList<>(); + List<Map<String,Object>> busTypeList=new ArrayList<>(); + List<Map<String,Object>> featuresList=new ArrayList<>(); + List<Map<String,Object>> sampleList=new ArrayList<>(); + JSONObject object = new JSONObject(); + //标题集合 + titleList=frontPageMapper.getTitleData(); + if(titleList.size()>0){ + object.put("titleList",titleList); + }else{ + object.put("titleList",null); + } + //os类型集合 + osTypeList=frontPageMapper.getOsTypeData(); + if(osTypeList.size()>0){ + object.put("osTypeList",osTypeList); + }else{ + object.put("osTypeList",null); + } + //os版本集合 + osVersionList=frontPageMapper.getOsVersionData(); + if(osVersionList.size()>0){ + object.put("osVersionList",osVersionList); + }else{ + object.put("osVersionList",null); + } + /*//级别集合 + levelList=frontPageMapper.getLevelData(); + if(levelList.size()>0){ + object.put("levelList",levelList); + }else{ + object.put("levelList",null); + }*/ + + //业务类型集合 + if(titleList.size()>0 && osTypeList.size()>0 && osVersionList.size()>0){ + //第一次进入首页时,默认查询第一个标题与第一个级别 + if(params.get("titleId")!=null){ + busTypeList=frontPageMapper.getBusTypeData(params.get("titleId")); + }else{ + busTypeList=frontPageMapper.getBusTypeData(titleList.get(0).get("titleId").toString()); + } + object.put("busTypeList",busTypeList); + }else{ + object.put("busTypeList",null); + } + //特性集合 + if(busTypeList.size()>0){ + if(params.get("busTypeId")!=null){ + featuresList=frontPageMapper.getFeaturesData(params.get("busTypeId")); + }else{ + featuresList=frontPageMapper.getFeaturesData(busTypeList.get(0).get("busTypeId").toString()); + } + object.put("featuresList",featuresList); + }else{ + object.put("featuresList",null); + } + if(params.get("busTypeId")==null){ + frontPageMapper.getBusTypeData(titleList.get(0).get("titleId").toString()); + params.put("busTypeId",busTypeList.get(0).get("busTypeId").toString()); + } + //开发样例集合 + if(featuresList.size()>0){ + /*//为null时代表全部特性 ,不为null时查询单个特性id下面的开发样例 + if(params.get("featuresId")!=null){ + sampleList.addAll(frontPageMapper.getSampleData(params.get("featuresId"))); + }else{ + //查询开发样例数据 + for(int i=0;i<featuresList.size();i++){ + sampleList.addAll(frontPageMapper.getSampleData(featuresList.get(i).get("featuresId").toString())); + } + }*/ + + if(params.get("titleId")!=null && params.get("osTypeId")!=null && params.get("osVersionId")!=null && params.get("busTypeId")!=null && params.get("featuresId")!=null){ + String osTypeIds[]=params.get("osTypeId").split(","); + String osVersionIds[]=params.get("osVersionId").split(","); + for(int i=0;i<osTypeIds.length;i++){ + for(int k=0;k<osVersionIds.length;k++){ + System.err.println("osTypeIds[i]==="+osTypeIds[i]+"----osVersionIds[k]===="+osVersionIds[k]); + sampleList.addAll(frontPageMapper.getSample1(params.get("titleId"),osTypeIds[i],osVersionIds[k],params.get("busTypeId"),params.get("featuresId"))); + } + } + }else if(params.get("titleId")!=null && params.get("osTypeId")!=null && params.get("osVersionId")!=null && params.get("busTypeId")!=null){ + String osTypeIds[]=params.get("osTypeId").split(","); + String osVersionIds[]=params.get("osVersionId").split(","); + for(int i=0;i<osTypeIds.length;i++){ + for(int k=0;k<osVersionIds.length;k++){ + System.err.println("osTypeIds[i]==="+osTypeIds[i]+"----osVersionIds[k]===="+osVersionIds[k]); + sampleList.addAll(frontPageMapper.getSample2(params.get("titleId"),osTypeIds[i],osVersionIds[k],params.get("busTypeId"))); + } + } + }else if(params.get("titleId")!=null && params.get("osTypeId")!=null && params.get("osVersionId")!=null){ + String osTypeIds[]=params.get("osTypeId").split(","); + String osVersionIds[]=params.get("osVersionId").split(","); + for(int i=0;i<osTypeIds.length;i++){ + for(int k=0;k<osVersionIds.length;k++){ + System.err.println("osTypeIds[i]==="+osTypeIds[i]+"----osVersionIds[k]===="+osVersionIds[k]); + sampleList.addAll(frontPageMapper.getSample3(params.get("titleId"),osTypeIds[i],osVersionIds[k])); + } + } + }else if(params.get("titleId")!=null && params.get("osTypeId")!=null){ + String osTypeIds[]=params.get("osTypeId").split(","); + for(int i=0;i<osTypeIds.length;i++){ + sampleList.addAll(frontPageMapper.getSample4(params.get("titleId"),osTypeIds[i])); + } + }else if(params.get("titleId")!=null){ + sampleList.addAll(frontPageMapper.getSample5(params.get("titleId"),params.get("busTypeId"))); + }else{ + sampleList.addAll(frontPageMapper.getSample5(titleList.get(0).get("titleId").toString(),params.get("busTypeId"))); + } + + //删除ArrayList中重复元素,保持顺序 + HashSet hashSet = new HashSet(); + List newList = new ArrayList(); + for (Iterator iter = sampleList.iterator(); iter.hasNext();) { + Object element = iter.next(); + if (hashSet.add(element)) + newList.add(element); + } + sampleList.clear(); + sampleList.addAll(newList); + //循环获取相关类型并放入集合 + for(int k=0;k<sampleList.size();k++){ + String typeName=frontPageMapper.getTypeNameData(sampleList.get(k).get("sampleId").toString()); + sampleList.get(k).put("typeName",typeName); + } + Collections.sort(sampleList, new Comparator<Map<String, Object>>() { + public int compare(Map<String, Object> o1, Map<String, Object> o2) { + Integer name1 = Integer.valueOf(o1.get("sign").toString()) ;//name1是从你list里面拿出来的一个 + Integer name2 = Integer.valueOf(o2.get("sign").toString()) ; //name1是从你list里面拿出来的第二个name + return name2.compareTo(name1); + } + }); + //集合分页 + int size = sampleList.size(); + int count=Integer.parseInt(params.get("pageSize")); + int page=Integer.parseInt(params.get("pageNum")); + int pageCount=size/count; + int fromIndex = count * (page - 1); + int toIndex = fromIndex + count; + if (toIndex >= size) { + toIndex = size; + } + if(page>pageCount+1){ + fromIndex=0; + toIndex=0; + } + object.put("sampleList",sampleList.subList(fromIndex, toIndex)); + //放入总数 + if(sampleList.size()>0){ + object.put("totalNum",sampleList.size()); + int pages = sampleList.size() / count + (sampleList.size() % count > 0 ? 1 : 0); + object.put("totalPage",pages); + }else { + object.put("totalNum",1); + object.put("totalPage",1); + } + }else{ + object.put("sampleList",null); + object.put("totalNum",0); + object.put("totalPage",0); + } + return object; + } + + @Override + public JSONObject getFrontPageDetailData(String sampleId) { + List<Map<String,Object>> sampleDetailList=new ArrayList<>(); + List<Map<String,Object>> baseInfoList=new ArrayList<>(); + LinkedList typeDetailList=new LinkedList(); + JSONObject object = new JSONObject(); + //开发样例详情集合 + sampleDetailList=frontPageMapper.getSampleDetail(sampleId); + if(sampleDetailList.size()>0){ + String featureName=""; + //逗号拆分特性循环查询出特性名称 + String featureIds=sampleDetailList.get(0).get("featuresIds") .toString(); + String str[]=featureIds.split(","); + for(int i=0;i<str.length;i++){ + featureName += frontPageMapper.getFeatureNameData(str[i]) +","; + } + //去除最后一个逗号 + featureName = featureName.substring(0,featureName.length() - 1); + sampleDetailList.get(0).put("featureName",featureName); + object.put("sampleDetailList",sampleDetailList); + }else{ + object.put("sampleDetailList",null); + } + //基础信息集合 + baseInfoList=frontPageMapper.getBaseInfoData(sampleId); + if(baseInfoList.size()>0){ + object.put("baseInfoList",baseInfoList); + }else { + object.put("baseInfoList",null); + } + //相关分类集合 + typeDetailList=frontPageMapper.getTypeDetailData(sampleId); + for(int i=0;i<typeDetailList.size();i++){ + System.err.println("typeDetailList=="+typeDetailList.get(i)); + } + if(typeDetailList.size()>0){ + object.put("typeDetailList",typeDetailList); + }else { + object.put("typeDetailList",null); + } + return object; + } +} + diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/HomePageServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/HomePageServiceImpl.java new file mode 100644 index 00000000..215ca843 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/HomePageServiceImpl.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.chinasoft.bean.po.*; +import com.chinasoft.mapper.HomePageMapper; +import com.chinasoft.service.HomePageService; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Service +public class HomePageServiceImpl implements HomePageService { + + private static Logger logger = Logger.getLogger(HomePageServiceImpl.class); + + @Autowired + private HomePageMapper homePageMapper; + + @Override + public List<HomeBanner> queryBanner(String category) { + return homePageMapper.queryBanner(category); + } + + @Override + public List queryMeeting(String date) { + List<Map<String,Object>> dateList=homePageMapper.queryDate(date); + List list=new ArrayList(); + for(int i=0;i<dateList.size();i++){ + JSONObject object = new JSONObject(true); + object.put("date",dateList.get(i).get("date").toString()); + object.put("data",homePageMapper.queryMeetingByDate(dateList.get(i).get("date").toString())); + list.add(object); + } + return list; + } + + @Override + public List<HomeContent> queryInformation(String type) { + List<HomeContent> list=homePageMapper.queryInformation(type); + List<HomeAdvertising> list2=homePageMapper.queryAdvertising(type); + for(int i=0;i<list.size();i++){ + list.get(i).setAdvertiseImage(list2.get(0).getImgUrl()); + list.get(i).setAdvertiseUrl(list2.get(0).getUrl()); + } + return list; + } + + @Override + public List<HomeDevelopment> queryDevelopment() { + return homePageMapper.queryDevelopment(); + } + + @Override + public List<HomeCompany> queryVendor() { + return homePageMapper.queryVendor(); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/LevelServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/LevelServiceImpl.java new file mode 100644 index 00000000..688f342b --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/LevelServiceImpl.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.chinasoft.bean.po.Level; +import com.chinasoft.mapper.LevelMapper; +import com.chinasoft.service.LevelService; +import com.chinasoft.service.LevelService; +import com.google.common.collect.Lists; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class LevelServiceImpl implements LevelService { + + private static Logger logger = Logger.getLogger(LevelServiceImpl.class); + + @Autowired + private LevelMapper levelMapper; + + @Override + public int add(Level level) { + return levelMapper.insert(level); + } + + @Override + public int edit(Level level) { + return levelMapper.update(level); + } + + @Override + public int remove(Integer id) { + if (null == id){ + logger.error("id is null"); + return 0; + } + return levelMapper.delete(id); + } + + @Override + public int removeBatch(String ids) { + if (StringUtils.isEmpty(ids) && StringUtils.isEmpty(ids)){ + logger.error("ids is null"); + return 0; + } + List<Integer> idsList = new ArrayList<>(); + if (!StringUtils.isEmpty(ids)){ + idsList = Lists.newArrayList(ids.split(",")).stream().map(id->Integer.parseInt(id)).collect(Collectors.toList()); + } + return levelMapper.deleteBatch(idsList); + } + + @Override + public Level find(Level level) { + return levelMapper.query(level); + } + + @Override + public List<Level> findAll(Level level) { + return levelMapper.queryAll(level); + } + + @Override + public List<Level> findBatch(Level level) { + return levelMapper.queryBatch(level); + } + + @Override + public int findTotal(Level level) { + return levelMapper.queryTotal(level); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/LoginServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/LoginServiceImpl.java new file mode 100644 index 00000000..d8a2e2a9 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/LoginServiceImpl.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.chinasoft.bean.po.User; +import com.chinasoft.mapper.LoginMapper; +import com.chinasoft.service.LoginService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Service +public class LoginServiceImpl implements LoginService { + + @Autowired + private LoginMapper loginMapper; + + @Override + public List<Map<String, Object>> getBackstageLogin(String userName, String phone) { + return loginMapper.getBackstageLogin(userName,phone); + } + + + @Override + public int updateUser(User user) { + return loginMapper.updateUser(user); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/OsTypeServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/OsTypeServiceImpl.java new file mode 100644 index 00000000..0f737d22 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/OsTypeServiceImpl.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.chinasoft.bean.po.OsType; +import com.chinasoft.mapper.OsTypeMapper; +import com.chinasoft.service.OsTypeService; +import com.google.common.collect.Lists; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class OsTypeServiceImpl implements OsTypeService { + + private static Logger logger = Logger.getLogger(OsTypeServiceImpl.class); + + @Autowired + private OsTypeMapper osTypeMapper; + + @Override + public int add(OsType osType) { + return osTypeMapper.insert(osType); + } + + @Override + public int edit(OsType osType) { + return osTypeMapper.update(osType); + } + + @Override + public int remove(Integer id) { + if (null == id){ + logger.error("id is null"); + return 0; + } + return osTypeMapper.delete(id); + } + + @Override + public int removeBatch(String ids) { + if (StringUtils.isEmpty(ids) && StringUtils.isEmpty(ids)){ + logger.error("ids or proIds is null"); + return 0; + } + List<Integer> idsList = new ArrayList<>(); + if (!StringUtils.isEmpty(ids)){ + idsList = Lists.newArrayList(ids.split(",")).stream().map(id->Integer.parseInt(id)).collect(Collectors.toList()); + } + return osTypeMapper.deleteBatch(idsList); + } + + @Override + public OsType find(OsType osType) { + return osTypeMapper.query(osType); + } + + @Override + public List<OsType> findAll(OsType osType) { + return osTypeMapper.queryAll(osType); + } + + @Override + public List<OsType> findBatch(OsType osType) { + return osTypeMapper.queryBatch(osType); + } + + @Override + public int findTotal(OsType osType) { + return osTypeMapper.queryTotal(osType); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/OsVersionServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/OsVersionServiceImpl.java new file mode 100644 index 00000000..6ed86c68 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/OsVersionServiceImpl.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.chinasoft.bean.po.OsVersion; +import com.chinasoft.mapper.OsVersionMapper; +import com.chinasoft.service.OsVersionService; +import com.google.common.collect.Lists; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class OsVersionServiceImpl implements OsVersionService { + + private static Logger logger = Logger.getLogger(OsVersionServiceImpl.class); + + @Autowired + private OsVersionMapper osVersionMapper; + + @Override + public int add(OsVersion osVersion) { + return osVersionMapper.insert(osVersion); + } + + @Override + public int edit(OsVersion osVersion) { + return osVersionMapper.update(osVersion); + } + + @Override + public int remove(Integer id) { + if (null == id){ + logger.error("id is null"); + return 0; + } + return osVersionMapper.delete(id); + } + + @Override + public int removeBatch(String ids) { + if (StringUtils.isEmpty(ids) && StringUtils.isEmpty(ids)){ + logger.error("ids or proIds is null"); + return 0; + } + List<Integer> idsList = new ArrayList<>(); + if (!StringUtils.isEmpty(ids)){ + idsList = Lists.newArrayList(ids.split(",")).stream().map(id->Integer.parseInt(id)).collect(Collectors.toList()); + } + return osVersionMapper.deleteBatch(idsList); + } + + @Override + public OsVersion find(OsVersion osVersion) { + return osVersionMapper.query(osVersion); + } + + @Override + public List<OsVersion> findAll(OsVersion osVersion) { + return osVersionMapper.queryAll(osVersion); + } + + @Override + public List<OsVersion> findBatch(OsVersion osVersion) { + return osVersionMapper.queryBatch(osVersion); + } + + @Override + public int findTotal(OsVersion osVersion) { + return osVersionMapper.queryTotal(osVersion); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/SampleServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/SampleServiceImpl.java new file mode 100644 index 00000000..71c7af08 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/SampleServiceImpl.java @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.chinasoft.bean.vo.AddSampleVo; +import com.chinasoft.bean.vo.BaseInfoListVo; +import com.chinasoft.bean.vo.QuerySampleVo; +import com.chinasoft.bean.vo.TypeDetailListVo; +import com.chinasoft.mapper.SampleMapper; +import com.chinasoft.service.SampleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +@Service +public class SampleServiceImpl implements SampleService { + + @Autowired + private SampleMapper sampleMapper; + + @Override + public ArrayList<QuerySampleVo> querySample(HashMap<String, String> params) { + return sampleMapper.querySample(params); + } + + @Override + public JSONObject queryInformation(String busTypeId) { + JSONObject jsonObject=new JSONObject(); + jsonObject.put("featuresList",sampleMapper.queryFeatures(busTypeId)); + jsonObject.put("detailTypeList",sampleMapper.queryDetailType()); + return jsonObject; + } + + @Override + public List<Map<String, Object>> queryData() { + return sampleMapper.queryData(); + } + + @Override + public int queryPageNum(HashMap<String, String> params) { + return sampleMapper.queryPageNum(params); + } + + @Override + public void addSample(AddSampleVo addSampleVo) { + //新增开发样例详情 + sampleMapper.addSample(addSampleVo); + int sampleId=addSampleVo.getId(); + //新增开发样例基本信息 + List<BaseInfoListVo> baseInfoList=addSampleVo.getBaseInfoList(); + if (null != baseInfoList){ + for(int i=0;i<baseInfoList.size();i++){ + BaseInfoListVo baseInfoListVo=new BaseInfoListVo(); + baseInfoListVo.setDeviceLevel(baseInfoList.get(i).getDeviceLevel()); + baseInfoListVo.setSysVersion(baseInfoList.get(i).getSysVersion()); + baseInfoListVo.setVersionNo(baseInfoList.get(i).getVersionNo()); + baseInfoListVo.setSampleId(sampleId); + sampleMapper.addBaseInfo(baseInfoListVo); + } + } + + //新增开发样例相关资料 + List<TypeDetailListVo> typeDetailList=addSampleVo.getTypeDetailList(); + if (null != typeDetailList){ + for(int i=0;i<typeDetailList.size();i++){ + TypeDetailListVo typeDetailListVo=new TypeDetailListVo(); + typeDetailListVo.setTypeId(typeDetailList.get(i).getTypeId()); + typeDetailListVo.setName(typeDetailList.get(i).getName()); + typeDetailListVo.setDescription(typeDetailList.get(i).getDescription()); + typeDetailListVo.setUrl(typeDetailList.get(i).getUrl()); + typeDetailListVo.setSampleId(sampleId); + sampleMapper.addTypeDetail(typeDetailListVo); + } + } + } + + @Override + public void updateSample(AddSampleVo addSampleVo) { + sampleMapper.updateSample(addSampleVo); + //编辑开发样例时,基本信息与相关资料先删后增 + sampleMapper.deleteBaseInfo(addSampleVo); + sampleMapper.deleteTypeDetail(addSampleVo); + //新增开发样例基本信息 + List<BaseInfoListVo> baseInfoList=addSampleVo.getBaseInfoList(); + for(int i=0;i<baseInfoList.size();i++){ + BaseInfoListVo baseInfoListVo=new BaseInfoListVo(); + baseInfoListVo.setDeviceLevel(baseInfoList.get(i).getDeviceLevel()); + baseInfoListVo.setSysVersion(baseInfoList.get(i).getSysVersion()); + baseInfoListVo.setVersionNo(baseInfoList.get(i).getVersionNo()); + baseInfoListVo.setSampleId(Integer.parseInt(addSampleVo.getSampleId())); + sampleMapper.addBaseInfo(baseInfoListVo); + } + //新增开发样例相关资料 + List<TypeDetailListVo> typeDetailList=addSampleVo.getTypeDetailList(); + for(int i=0;i<typeDetailList.size();i++){ + TypeDetailListVo typeDetailListVo=new TypeDetailListVo(); + typeDetailListVo.setTypeId(typeDetailList.get(i).getTypeId()); + typeDetailListVo.setName(typeDetailList.get(i).getName()); + typeDetailListVo.setDescription(typeDetailList.get(i).getDescription()); + typeDetailListVo.setUrl(typeDetailList.get(i).getUrl()); + typeDetailListVo.setSampleId(Integer.parseInt(addSampleVo.getSampleId())); + sampleMapper.addTypeDetail(typeDetailListVo); + } + } + + @Override + public void deleteSample(AddSampleVo addSampleVo) { + sampleMapper.deleteSample(addSampleVo); + sampleMapper.deleteBaseInfo(addSampleVo); + sampleMapper.deleteTypeDetail(addSampleVo); + } +} + diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/SecondaryPageServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/SecondaryPageServiceImpl.java new file mode 100644 index 00000000..12e2c53d --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/SecondaryPageServiceImpl.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.chinasoft.bean.po.HomeContent; +import com.chinasoft.bean.po.HomeContentPic; +import com.chinasoft.bean.po.HomeDevelopment; +import com.chinasoft.mapper.SampleMapper; +import com.chinasoft.mapper.SecondaryPageMapper; +import com.chinasoft.service.SecondaryPageService; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class SecondaryPageServiceImpl implements SecondaryPageService { + + private static Logger logger = Logger.getLogger(SecondaryPageServiceImpl.class); + + @Autowired + private SecondaryPageMapper secondaryPageMapper; + + @Override + public List<HomeContentPic> queryCarousel(int type,String category) { + return secondaryPageMapper.queryCarousel(type,category); + } + + @Override + public List<HomeContent> queryBatch(HomeContent content) { + return secondaryPageMapper.queryBatch(content); + } + + @Override + public int queryTotal(HomeContent content) { + return secondaryPageMapper.queryTotal(content); + } + + @Override + public HomeContent queryDetails(int id) { + return secondaryPageMapper.queryDetails(id); + } + + @Override + public int updateCount(int id, int type) { + HomeContent homeContent = new HomeContent(); + homeContent.setId(id); + homeContent.setType(type); + return secondaryPageMapper.updateCount(homeContent); + } + + @Override + public List<HomeDevelopment> queryDevelopmentBatch(HomeDevelopment dept) { + return secondaryPageMapper.queryDevelopmentBatch(dept); + } + + @Override + public int queryDevelopmentTotal(HomeDevelopment dept) { + return secondaryPageMapper.queryDevelopmentTotal(dept); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/SendEmailServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/SendEmailServiceImpl.java new file mode 100644 index 00000000..42df5aa8 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/SendEmailServiceImpl.java @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + + +import com.chinasoft.bean.po.PushStrategyPO; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.activation.DataHandler; +import javax.activation.FileDataSource; +import javax.mail.Message; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.*; +import java.util.Properties; + + +@Component +public class SendEmailServiceImpl { + + @Value("${mail.transport.protocol}") + private String protocol; + + @Value("${mail.smtp.host}") + private String host; + + @Value("${mail.smtp.port}") + private int port; + @Value("${mail.smtp.auth}") + private String auth; + + @Value("${mail.smtp.ssl.enable}") + private String sslEnable; + + @Value("${mail.debug}") + private String debug; + + @Value("${mail.send.from}") + private String from; + + @Value("${mail.smtp.server.user}") + private String user; + + @Value("${mail.smtp.server.password}") + private String password; + + private static final Logger logger = LoggerFactory.getLogger(SendEmailServiceImpl.class); + + + public void send(PushStrategyPO pushStrategyPO) throws Exception { + Properties properties = new Properties(); + logger.info("64738264738264738 "+protocol); + properties.put("mail.transport.protocol", protocol);//协议 +// properties.put("mail.smtp.host","smtp.qq.com");//主机名 + properties.put("mail.smtp.host", host); + properties.put("mail.smtp.port", port);//端口号 + properties.put("mail.smtp.auth",auth ); + properties.put("mail.smtp.ssl.enable",sslEnable);//设置ssl安全连接 + properties.put("mail.debug", debug);//显示debug信息 + + //会话对象 + Session session = Session.getInstance(properties); + //获取邮件对象 + Message message = new MimeMessage(session); + //设置发件人邮箱地址 + message.setFrom(new InternetAddress(from)); + //设置收件人邮箱地址 + String recipient = pushStrategyPO.getRecipient(); + InternetAddress[] internetAddresses1 = buildArray(recipient); + message.setRecipients(Message.RecipientType.TO, internetAddresses1 + ); + + String cc = pushStrategyPO.getCC(); + //设置抄送人邮箱地址 + if (!StringUtils.isEmpty(cc)) { + InternetAddress[] internetAddresses = buildArray(cc); + message.setRecipients(Message.RecipientType.CC, internetAddresses); + } + //设置邮件标题 + message.setSubject(pushStrategyPO.getSubmit()); + MimeBodyPart mimeBodyPart = new MimeBodyPart(); + + mimeBodyPart.setContent(pushStrategyPO.getContent(), "text/html;charset=utf-8"); + MimeMultipart mm = new MimeMultipart(); + mm.addBodyPart(mimeBodyPart); + //如果为空设置 + if (!StringUtils.isBlank(pushStrategyPO.getPath())){ + MimeBodyPart body1 = new MimeBodyPart(); //附件1 + body1.setDataHandler(new DataHandler(new FileDataSource(pushStrategyPO.getPath()))); + body1.setFileName(MimeUtility.encodeText(pushStrategyPO.getFileName())); + mm.addBodyPart(body1); + } + + message.setContent(mm); + //得到邮箱对象 + Transport transport = session.getTransport(); + //连接smtp服务器 + transport.connect(user, password); + //发送邮件 + transport.sendMessage(message, message.getAllRecipients()); + //关闭邮件对象 + transport.close(); + } + + private InternetAddress[] buildArray(String emails) throws AddressException { + String[] emailArr = emails.trim().split(";"); + InternetAddress[] internetAddresses = new InternetAddress[emailArr.length]; + for (int i = 0; i < emailArr.length; i++) { + internetAddresses[i] = new InternetAddress(emailArr[i]); + } + + return internetAddresses; + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/service/impl/TitleServiceImpl.java b/knowledge-map/src/main/java/com/chinasoft/service/impl/TitleServiceImpl.java new file mode 100644 index 00000000..6a43e25b --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/service/impl/TitleServiceImpl.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.service.impl; + +import com.chinasoft.bean.po.Title; +import com.chinasoft.mapper.TitleMapper; +import com.chinasoft.service.TitleService; +import com.google.common.collect.Lists; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class TitleServiceImpl implements TitleService { + + private static Logger logger = Logger.getLogger(TitleServiceImpl.class); + + @Autowired + private TitleMapper titleMapper; + + @Override + public int add(Title title) { + return titleMapper.insert(title); + } + + @Override + public int edit(Title title) { + return titleMapper.update(title); + } + + @Override + public int remove(Integer id) { + if (null == id){ + logger.error("id is null"); + return 0; + } + return titleMapper.delete(id); + } + + @Override + public int removeBatch(String ids) { + if (StringUtils.isEmpty(ids) && StringUtils.isEmpty(ids)){ + logger.error("ids or proIds is null"); + return 0; + } + List<Integer> idsList = new ArrayList<>(); + if (!StringUtils.isEmpty(ids)){ + idsList = Lists.newArrayList(ids.split(",")).stream().map(id->Integer.parseInt(id)).collect(Collectors.toList()); + } + return titleMapper.deleteBatch(idsList); + } + + @Override + public Title find(Title title) { + return titleMapper.query(title); + } + + @Override + public List<Title> findAll(Title title) { + return titleMapper.queryAll(title); + } + + @Override + public List<Title> findBatch(Title title) { + return titleMapper.queryBatch(title); + } + + @Override + public int findTotal(Title title) { + return titleMapper.queryTotal(title); + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/utils/Constants.java b/knowledge-map/src/main/java/com/chinasoft/utils/Constants.java new file mode 100644 index 00000000..c0cf18fd --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/utils/Constants.java @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.utils; + +public class Constants { + + public static String ROOT_URL = "https://garden.openatom.cn:9089/"; //生产环境 +// public static String ROOT_URL = "http://10.55.20.48:9089/"; //测试环境 + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/utils/MD5.java b/knowledge-map/src/main/java/com/chinasoft/utils/MD5.java new file mode 100644 index 00000000..fe8ed4c8 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/utils/MD5.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.utils; + +import java.security.MessageDigest; + +public class MD5 { + /*** + * MD5加码 生成32位md5码 + */ + public static String string2MD5(String inStr){ + MessageDigest md5 = null; + try{ + md5 = MessageDigest.getInstance("MD5"); + }catch (Exception e){ + System.out.println(e.toString()); + e.printStackTrace(); + return ""; + } + char[] charArray = inStr.toCharArray(); + byte[] byteArray = new byte[charArray.length]; + + for (int i = 0; i < charArray.length; i++) + byteArray[i] = (byte) charArray[i]; + byte[] md5Bytes = md5.digest(byteArray); + StringBuffer hexValue = new StringBuffer(); + for (int i = 0; i < md5Bytes.length; i++){ + int val = ((int) md5Bytes[i]) & 0xff; + if (val < 16) + hexValue.append("0"); + hexValue.append(Integer.toHexString(val)); + } + return hexValue.toString(); + + } + + /** + * 加密解密算法 执行一次加密,两次解密 + */ + public static String convertMD5(String inStr){ + + char[] a = inStr.toCharArray(); + for (int i = 0; i < a.length; i++){ + a[i] = (char) (a[i] ^ 't'); + } + String s = new String(a); + return s; + + } + + // 测试主函数 + public static void main(String args[]) { + String s = "123456"; + System.out.println("初始数字:" + s); + System.out.println("MD5加密后:" + string2MD5(s)); + System.out.println("MD5解密后:" + convertMD5(convertMD5(s))); + + } +} diff --git a/knowledge-map/src/main/java/com/chinasoft/utils/PageListVO.java b/knowledge-map/src/main/java/com/chinasoft/utils/PageListVO.java new file mode 100644 index 00000000..bcbb88ad --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/utils/PageListVO.java @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.utils; + +/** + * + * @author Administrator + * + * @param <T> + */ +public class PageListVO<T> { + public static final Integer SUCCESS = 0; + public static final Integer FAIL = 1; + + // 0成功 1失败 + private Integer code; + + //返回信息 + private String msg; + + //页大小 + private Integer pageSize; + + //页码 + private Integer pageNum; + + //总页数 + private Integer totalPage; + //总记录 + private Integer totalNum; + + private T data; + + public PageListVO() { + this.code = SUCCESS; + this.msg = "成功"; + } + + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + public Integer getPageNum() { + return pageNum; + } + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; + } + + public Integer getTotalPage() { + return totalPage; + } + + public void setTotalPage(Integer totalPage) { + this.totalPage = totalPage; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + public void initPages (Integer totalNum){ + this.totalNum = totalNum; + if(totalNum ==0) + { + + this.totalPage =0; + } + else { + + this.totalPage = totalNum % this.pageSize ==0 ? totalNum / this.pageSize : (totalNum / pageSize )+1; + } + + } + + + public Integer getTotalNum() { + return totalNum; + } + + + public void setTotalNum(Integer totalNum) { + this.totalNum = totalNum; + } + + + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/utils/ResultVO.java b/knowledge-map/src/main/java/com/chinasoft/utils/ResultVO.java new file mode 100644 index 00000000..c77e21c3 --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/utils/ResultVO.java @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.utils; + +public class ResultVO<T> { + + public static final Integer SUCCESS = 0; + public static final Integer FAIL = 1; + // 0成功 1失败 + private Integer code; + + //返回信息 + private String msg; + + + private T data; + + + + + public ResultVO() { + this.code = SUCCESS; + this.msg = "成功"; + + } + + + public Integer getCode() { + return code; + } + + + public void setCode(Integer 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; + } + +} diff --git a/knowledge-map/src/main/java/com/chinasoft/utils/TokenUtils.java b/knowledge-map/src/main/java/com/chinasoft/utils/TokenUtils.java new file mode 100644 index 00000000..c7c8295c --- /dev/null +++ b/knowledge-map/src/main/java/com/chinasoft/utils/TokenUtils.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2021 KaiHong DID Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chinasoft.utils; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class TokenUtils { + //设置过期时间7有效 + private static final long APP_EXPIRE_DATE=1000*60*60*24*7; + private static final long BACK_EXPIRE_DATE=1000*60*30*24*7; + //token秘钥 + private static final String TOKEN_SECRET = "HOJM34NJE98GQHJK3PMGD988WJZK8"; + + public static String token (String username,String userId,String type){ + Date date=null; + String token = ""; + try { + //过期时间 + if (type.equals("back")){ + date = new Date(System.currentTimeMillis()+BACK_EXPIRE_DATE); + } + if (type.equals("app")){ + date = new Date(System.currentTimeMillis()+APP_EXPIRE_DATE); + } + //秘钥及加密算法 + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + //设置头部信息 + Map<String,Object> header = new HashMap<>(); + header.put("type","JWT"); + header.put("alg","HS256"); + //携带username,password信息,生成签名 + token = JWT.create() + .withHeader(header) + .withClaim("username",username) + .withClaim("loginUserId",userId).withExpiresAt(date) + .sign(algorithm); + }catch (Exception e){ + e.printStackTrace(); + return null; + } + return token; + } + + public static DecodedJWT verify(String token){ + /** + * @desc 验证token,通过返回true + * @params [token]需要校验的串 + * + **/ + + try { + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + DecodedJWT jwt = verifier.verify(token); + return jwt; + }catch (Exception e){ + e.printStackTrace(); + return null; + } + } + + +} diff --git a/knowledge-map/src/main/resources/application.properties b/knowledge-map/src/main/resources/application.properties new file mode 100644 index 00000000..9b8ea8f1 --- /dev/null +++ b/knowledge-map/src/main/resources/application.properties @@ -0,0 +1,47 @@ +#Tomcat˿ڣĬ8080 +server.port=9066 +spring.application.name=knowledge +#ĿContextPath +server.servlet.context-path=/knowledge +#ݿ +spring.datasource.url=jdbc:mysql://localhost:3306/knowledge_map?characterEncoding=utf-8&useSSL=false +#spring.datasource.url=jdbc:mysql://localhost:9008/sign?characterEncoding=utf-8&useSSL=false +spring.datasource.username=root +#Ի +spring.datasource.password=123456 +#ӲԻ +spring.datasource.driver-class-name=com.mysql.jdbc.Driver +#ݿӦļ +mybatis.mapper-locations=classpath:mapper/*Mapper.xml +mybatis.type-aliases-package=com.chinasoft.bean +mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl +#swagger +swagger.enabled=true +#ϴС +spring.servlet.multipart.max-file-size=50MB +spring.servlet.multipart.max-request-size=50MB + +#url +myuri.whites:/login/backstageLogin,/frontPage,/sample,/title,/level,/busType,/features,/homePage,/secondaryPage + +#jksλ +#server.ssl.key-store=classpath:scs1634955596056_garden.openatom.cn_server.jks +#ǷSSL֤ +#server.ssl.enabled=true +#Կ +#server.ssl.key-store-password=Dx7#b6m4@DaYjvqE +#Կ(JKS) +#server.ssl.key-store-type=JKS + +mail.transport.protocol=smtp +mail.smtp.host=smtp.exmail.qq.com +mail.smtp.port=465 +mail.smtp.auth=true +mail.smtp.ssl.enable=true +mail.debug=true +mail.send.from=growing@mail.openharmony.io +mail.smtp.server.user=growing@mail.openharmony.io +mail.smtp.server.password=Openharmony123 +mail.test=false + + diff --git a/knowledge-map/src/main/resources/log4j.properties b/knowledge-map/src/main/resources/log4j.properties new file mode 100644 index 00000000..3cb2ec74 --- /dev/null +++ b/knowledge-map/src/main/resources/log4j.properties @@ -0,0 +1,20 @@ +log4j.rootLogger=INFO,CONSOLE,logfile +log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender +log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout +log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - %-4r %-5p [%t] %C:%L %x - %m%n + + +# logfileļ ļСָߴʱµ־ļ +log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender +# ʽ +log4j.appender.logfile.Encoding=UTF-8 +# ļλôΪĿĿ¼µlogsļ +log4j.appender.logfile.File=/root/knowledge/logs/root.log +# ׺KB,MB,GBﵽôС󴴽µ־ļ +log4j.appender.logfile.MaxFileSize=10MB +# ùļֵ3 ָԲroot.log.1root.log.2root.log.3root.logĸ־ļ +log4j.appender.logfile.MaxBackupIndex=3 +# logfileΪԶ岼ģʽ +log4j.appender.logfile.layout=org.apache.log4j.PatternLayout +log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n + diff --git a/knowledge-map/src/main/resources/mapper/BaseInfoMapper.xml b/knowledge-map/src/main/resources/mapper/BaseInfoMapper.xml new file mode 100644 index 00000000..aafcedbf --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/BaseInfoMapper.xml @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.BaseInfoMapper"> + + <insert id="insert"> + INSERT INTO t_base_info(sampleId,versionNo,deviceLevel,sysVersion,reserve1,reserve2,reserve3,createTime) + VALUES(#{sampleId},#{versionNo},#{deviceLevel},#{sysVersion},#{reserve1},#{reserve2},#{reserve3},NOW()) + </insert> + + <update id="update" > + UPDATE t_base_info set versionNo=#{versionNo},deviceLevel=#{deviceLevel},sysVersion=#{sysVersion},reserve1=#{reserve1},reserve2=#{reserve2},reserve3=#{reserve3},updateTime=NOW() + WHERE id = #{id} + </update> + + <delete id="delete" > + DELETE FROM + t_base_info + WHERE id = #{id} + </delete> + + <delete id="deleteBatch"> + DELETE FROM + t_base_info + WHERE id in + <foreach collection="ids" item="id" index="index" open="(" close=")" separator=","> + #{id} + </foreach> + </delete> + + <select id="query" resultType="com.chinasoft.bean.po.BaseInfo"> + SELECT + id,sampleId,versionNo,deviceLevel,sysVersion,reserve1,reserve2,reserve3,createTime,updatTime + FROM + t_base_info + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="versionNo != null and versionNo != ''"> + and versionNo = #{versionNo} + </if> + <if test="deviceLevel != null and deviceLevel != ''"> + and deviceLevel = #{deviceLevel} + </if> + <if test="sysVersion != null and sysVersion != ''"> + and sysVersion = #{sysVersion} + </if> + limit 0,1 + </select> + + <select id="queryAll" resultType="com.chinasoft.bean.po.BaseInfo"> + SELECT + id,sampleId,versionNo,deviceLevel,sysVersion,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_base_info + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="versionNo != null and versionNo != ''"> + and versionNo = #{versionNo} + </if> + <if test="deviceLevel != null and deviceLevel != ''"> + and deviceLevel = #{deviceLevel} + </if> + <if test="sysVersion != null and sysVersion != ''"> + and sysVersion = #{sysVersion} + </if> + </select> + + <select id="queryBatch" resultType="com.chinasoft.bean.po.BaseInfo"> + SELECT + id,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_base_info + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="versionNo != null and versionNo != ''"> + and versionNo = #{versionNo} + </if> + <if test="deviceLevel != null and deviceLevel != ''"> + and deviceLevel = #{deviceLevel} + </if> + <if test="sysVersion != null and sysVersion != ''"> + and sysVersion = #{sysVersion} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(id,''),IFNULL(versionNo,''),IFNULL(deviceLevel,''),IFNULL(sysVersion,'')) like CONCAT('%', #{condition}, '%') + </if> + <if test="start != null and pageSize != null"> + limit #{start},#{pageSize} + </if> + </select> + + <select id="queryTotal" resultType="java.lang.Integer"> + SELECT + count(*) + FROM + t_base_info + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="versionNo != null and versionNo != ''"> + and versionNo = #{versionNo} + </if> + <if test="deviceLevel != null and deviceLevel != ''"> + and deviceLevel = #{deviceLevel} + </if> + <if test="sysVersion != null and sysVersion != ''"> + and sysVersion = #{sysVersion} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(id,''),IFNULL(versionNo,''),IFNULL(deviceLevel,''),IFNULL(sysVersion,'')) like CONCAT('%', #{condition}, '%') + </if> + </select> +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/BusTypeMapper.xml b/knowledge-map/src/main/resources/mapper/BusTypeMapper.xml new file mode 100644 index 00000000..5e09ed65 --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/BusTypeMapper.xml @@ -0,0 +1,113 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.BusTypeMapper"> + + <insert id="insert" useGeneratedKeys="true" keyProperty="id"> + INSERT INTO t_bus_type(name,sort,titleId,reserve1,reserve2,reserve3,createTime) + VALUES(#{name},#{sort},#{titleId},#{levelId},#{reserve1},#{reserve2},#{reserve3},NOW()) + </insert> + + <update id="update" > + UPDATE t_bus_type set name=#{name},sort=#{sort},titleId=#{titleId},updateTime=NOW() + WHERE id = #{busTypeId} + </update> + + <delete id="delete" > + DELETE FROM + t_bus_type + WHERE id = #{id} + </delete> + + <delete id="deleteBatch"> + DELETE FROM + t_bus_type + WHERE id in + <foreach collection="ids" item="id" index="index" open="(" close=")" separator=","> + #{id} + </foreach> + </delete> + + <select id="query" resultType="com.chinasoft.bean.po.BusType"> + SELECT + id,name,sort,titleId,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_bus_type + WHERE 1=1 + <if test="id != null"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="titleId != null"> + and titleId = #{titleId} + </if> + limit 0,1 + </select> + + <select id="queryAll" resultType="com.chinasoft.bean.po.BusType"> + SELECT + id,name,sort,titleId,levelId,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_bus_type + WHERE 1=1 + <if test="id != null"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="titleId != null"> + and titleId = #{titleId} + </if> + </select> + + <select id="queryBatch" resultType="com.chinasoft.bean.po.BusType"> + SELECT + id busTypeId,name,sort,titleId,levelId,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_bus_type + WHERE 1=1 + <if test="id != null"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="titleId != null"> + and titleId = #{titleId} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(name,'')) like CONCAT('%', #{condition}, '%') + </if> + <if test="start != null and pageSize != null"> + limit #{start},#{pageSize} + </if> + </select> + + <select id="queryTotal" resultType="java.lang.Integer"> + SELECT + count(*) + FROM + t_bus_type + WHERE 1=1 + <if test="id != null"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="titleId != null"> + and titleId = #{titleId} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(name,'')) like CONCAT('%', #{condition}, '%') + </if> + </select> + <select id="getAllTitleData" resultType="java.util.HashMap"> + select id titleId,name,sort from t_title + </select> + <select id="getAllLevelData" resultType="java.util.HashMap"> + select id levelId,name,sort from t_level + </select> +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/DetailMapper.xml b/knowledge-map/src/main/resources/mapper/DetailMapper.xml new file mode 100644 index 00000000..3e22bf62 --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/DetailMapper.xml @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.DetailMapper"> + + <insert id="insert"> + INSERT INTO t_detail(typeId,name,url,description,sampleId,sort,reserve1,reserve2,reserve3,createTime) + VALUES(#{typeId},#{name},#{url},#{description},#{sampleId},#{sort},#{reserve1},#{reserve2},#{reserve3},NOW()) + </insert> + + <update id="update" > + UPDATE t_detail set name=#{name},url=#{url},description=#{description},sampleId=#{sampleId}, + sort=#{sort},reserve1=#{reserve1},reserve2=#{reserve2},reserve3=#{reserve3},updateTime=NOW() + WHERE id = #{id} + </update> + + <delete id="delete" > + DELETE FROM + t_detail + WHERE id = #{id} + </delete> + + <delete id="deleteBatch"> + DELETE FROM + t_detail + WHERE id in + <foreach collection="ids" item="id" index="index" open="(" close=")" separator=","> + #{id} + </foreach> + </delete> + + <select id="query" resultType="com.chinasoft.bean.po.Detail"> + SELECT + id,typeId,name,url,description,sampleId,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_detail + WHERE 1=1 + <if test="id != null"> + and id = #{id} + </if> + <if test="typeId != null"> + and typeId = #{typeId} + </if> + <if test="sampleId != null"> + and sampleId = #{sampleId} + </if> + <if test="name != null and name != ''"> + and description = #{description} + </if> + <if test="url != null and url != ''"> + and url = #{url} + </if> + limit 0,1 + </select> + + <select id="queryAll" resultType="com.chinasoft.bean.po.Detail"> + SELECT + id,typeId,name,url,description,sampleId,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_detail + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="typeId != null"> + and typeId = #{typeId} + </if> + <if test="sampleId != null"> + and sampleId = #{sampleId} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + </select> + + <select id="queryBatch" resultType="com.chinasoft.bean.po.Detail"> + SELECT + id,typeId,name,url,description,sampleId,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_detail + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="typeId != null"> + and typeId = #{typeId} + </if> + <if test="sampleId != null"> + and sampleId = #{sampleId} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(name,''),IFNULL(description,'')) like CONCAT('%', #{condition}, '%') + </if> + <if test="start != null and pageSize != null"> + limit #{start},#{pageSize} + </if> + </select> + + <select id="queryTotal" resultType="java.lang.Integer"> + SELECT + count(*) + FROM + t_detail + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="typeId != null"> + and typeId = #{typeId} + </if> + <if test="sampleId != null"> + and sampleId = #{sampleId} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(name,''),IFNULL(description,'')) like CONCAT('%', #{condition}, '%') + </if> + </select> +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/DetailTypeMapper.xml b/knowledge-map/src/main/resources/mapper/DetailTypeMapper.xml new file mode 100644 index 00000000..0f79c8f1 --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/DetailTypeMapper.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.DetailTypeMapper"> + + <insert id="insert"> + INSERT INTO t_detail_type(name,createTime) + VALUES(#{name},NOW()) + </insert> + + <update id="update" > + UPDATE t_detail_type set name=#{name},updateTime=NOW() + WHERE id = #{id} + </update> + + <delete id="delete" > + DELETE FROM + t_detail_type + WHERE id = #{id} + </delete> + + <delete id="deleteBatch"> + DELETE FROM + t_detail_type + WHERE id in + <foreach collection="ids" item="id" index="index" open="(" close=")" separator=","> + #{id} + </foreach> + </delete> + + <select id="query" resultType="com.chinasoft.bean.po.DetailType"> + SELECT + id,name,createTime,updatTime + FROM + t_detail_type + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + limit 0,1 + </select> + + <select id="queryAll" resultType="com.chinasoft.bean.po.DetailType"> + SELECT + id,name,createTime,updateTime + FROM + t_detail_type + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + </select> + + <select id="queryBatch" resultType="com.chinasoft.bean.po.DetailType"> + SELECT + id,name,createTime,updateTime + FROM + t_detail_type + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(id,''),IFNULL(name,'')) like CONCAT('%', #{condition}, '%') + </if> + <if test="start != null and pageSize != null"> + limit #{start},#{pageSize} + </if> + </select> + + <select id="queryTotal" resultType="java.lang.Integer"> + SELECT + count(*) + FROM + t_detail_type + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(id,''),IFNULL(name,'')) like CONCAT('%', #{condition}, '%') + </if> + </select> +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/FeaturesMapper.xml b/knowledge-map/src/main/resources/mapper/FeaturesMapper.xml new file mode 100644 index 00000000..31a31cbb --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/FeaturesMapper.xml @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.FeaturesMapper"> + + <insert id="insert" useGeneratedKeys="true" keyProperty="id"> + INSERT INTO t_features(name,sort,busTypeId,reserve1,reserve2,reserve3,createTime) + VALUES(#{name},#{sort},#{busTypeId},#{reserve1},#{reserve2},#{reserve3},NOW()) + </insert> + + <update id="update" > + UPDATE t_features set name=#{name},sort=#{sort},busTypeId=#{busTypeId},reserve1=#{reserve1},reserve2=#{reserve2},reserve3=#{reserve3},updateTime=NOW() + WHERE id = #{featuresId} + </update> + + <delete id="delete" > + DELETE FROM + t_features + WHERE id = #{id} + </delete> + + <delete id="deleteBatch"> + DELETE FROM + t_features + WHERE id in + <foreach collection="ids" item="id" index="index" open="(" close=")" separator=","> + #{id} + </foreach> + </delete> + + <select id="query" resultType="com.chinasoft.bean.po.Features"> + SELECT + id,name,sort,busTypeId,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_features + WHERE 1=1 + <if test="id != null"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="busTypeId != null"> + and busTypeId = #{busTypeId} + </if> + limit 0,1 + </select> + + <select id="queryAll" resultType="com.chinasoft.bean.po.Features"> + SELECT + id,name,sort,busTypeId,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_features + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + </select> + + <select id="queryBatch" resultType="com.chinasoft.bean.vo.QuerySampleVo"> + select tf.id featuresId,tf.name featuresName, + tb.id busTypeId,tb.name busTypeName,tl.id levelId,tl.name levelName, + tt.id titleId, tt.name titleName,tf.sort,tf.updateTime + from t_features tf + left join t_bus_type tb on tf.busTypeId=tb.id + left join t_level tl on tb.levelId=tl.id + left join t_title tt on tb.titleId=tt.id + where 1=1 + <if test="id != null"> + and tf.id = #{id} + </if> + <if test="name != null and name != ''"> + and tf.name = #{name} + </if> + <if test="busTypeId != null"> + and tf.busTypeId = #{busTypeId} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(name,''),IFNULL(busTypeId,'')) like CONCAT('%', #{condition}, '%') + </if> + ORDER BY tf.sort asc,tf.createTime desc + <if test="start != null and pageSize != null"> + limit #{start},#{pageSize} + </if> + + </select> + + <select id="queryTotal" resultType="java.lang.Integer"> + SELECT + count(*) + FROM + t_features + WHERE 1=1 + <if test="id != null"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="busTypeId != null"> + and busTypeId = #{busTypeId} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(name,''),IFNULL(busTypeId,'')) like CONCAT('%', #{condition}, '%') + </if> + </select> +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/FrontPageMapper.xml b/knowledge-map/src/main/resources/mapper/FrontPageMapper.xml new file mode 100644 index 00000000..f7b50f59 --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/FrontPageMapper.xml @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.FrontPageMapper"> + <select id="getTitleData" resultType="java.util.HashMap"> + SELECT id titleId,name,sort + from t_title + ORDER BY sort asc,createTime desc + </select> + <select id="getOsTypeData" resultType="java.util.HashMap"> + select id osTypeId,name,sort + from t_os_type + ORDER BY sort asc,createTime desc + </select> + <select id="getOsVersionData" resultType="java.util.HashMap"> + select id osVersionId,name,sort + from t_os_version + ORDER BY sort asc,createTime desc + </select> + <select id="getLevelData" resultType="java.util.HashMap"> + select id levelId,name,sort + from t_level + ORDER BY sort asc,createTime desc + </select> + <select id="getBusTypeData" resultType="java.util.HashMap"> + select id busTypeId,name,sort + from t_bus_type + where 1=1 + and titleId=#{titleId} + ORDER BY sort asc,createTime desc + </select> + <select id="getFeaturesData" resultType="java.util.HashMap"> + select id featuresId,name,sort + from t_features + where 1=1 + and busTypeId=#{busTypeId} + ORDER BY sort asc,createTime desc + </select> + + <select id="getSampleData" resultType="java.util.HashMap"> + select id sampleId,name,summary,sign,sort + from t_sample + where 1=1 + and FIND_IN_SET(#{featuresId},replace(replace(featuresIds,'[',''),']','')) + ORDER BY sign desc,sort asc,createTime desc + </select> + <select id="getTypeNameData" resultType="java.lang.String"> + select GROUP_CONCAT(DISTINCT ty.name SEPARATOR ' | ')typeName + from t_detail td + left join t_detail_type ty on td.typeId=ty.id + where td.sampleId=#{sampleId} + </select> + <select id="getSampleDetail" resultType="java.util.HashMap"> + select ts.id sampleId,ts.name,ts.difficultyLevel,ts.imageUrl,ts.sign,ts.featuresIds,ts.author,ts.summary,ts.gitUrl,ts.sort,tt.id titleId,tt.name titleName + from t_sample ts + LEFT JOIN t_title tt on ts.titleId=tt.id + where ts.id=#{sampleId} + </select> + <select id="getFeatureNameData" resultType="java.lang.String"> + select name featureName + from t_features + where id=#{featureId} + </select> + <select id="getBaseInfoData" resultType="java.util.HashMap"> + select versionNo,deviceLevel,sysVersion + from t_base_info + where sampleId=#{sampleId} + </select> + <select id="getTypeDetailData" resultType="java.util.HashMap"> + select ty.id typeId,ty.`name`, + GROUP_CONCAT(td.description SEPARATOR ',') description, + GROUP_CONCAT(td.url SEPARATOR ',') url, + GROUP_CONCAT(td.sort SEPARATOR ',') sort + from t_detail td + left join t_detail_type ty on td.typeId=ty.id + where td.sampleId=#{sampleId} + GROUP BY ty.name + ORDER BY td.sort,td.createTime + </select> + <select id="getSample1" resultType="java.util.HashMap"> + SELECT id sampleId,name,summary,sign,sort FROM t_sample + where 1=1 + and titleId =#{titleId} + and osTypeId=#{osTypeId} + and osVersionId=#{osVersionId} + and FIND_IN_SET(#{busTypeId},replace(replace(busTypeId,'[',''),']','')) + and FIND_IN_SET(#{featuresId},replace(replace(featuresIds,'[',''),']','')) + </select> + <select id="getSample2" resultType="java.util.HashMap"> + SELECT id sampleId,name,summary,sign,sort FROM t_sample + where 1=1 + and titleId =#{titleId} + and osTypeId=#{osTypeId} + and osVersionId=#{osVersionId} + and FIND_IN_SET(#{busTypeId},replace(replace(busTypeId,'[',''),']','')) + </select> + <select id="getSample3" resultType="java.util.HashMap"> + SELECT id sampleId,name,summary,sign,sort FROM t_sample + where 1=1 + and titleId =#{titleId} + and osTypeId=#{osTypeId} + and osVersionId=#{osVersionId} + </select> + <select id="getSample4" resultType="java.util.HashMap"> + SELECT id sampleId,name,summary,sign,sort FROM t_sample + where 1=1 + and titleId =#{titleId} + and osTypeId=#{osTypeId} + </select> + <select id="getSample5" resultType="java.util.HashMap"> + SELECT id sampleId,name,summary,sign,sort FROM t_sample + where 1=1 + and titleId =#{titleId} + and FIND_IN_SET(#{busTypeId},replace(replace(busTypeId,'[',''),']','')) + </select> +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/HomePageMapper.xml b/knowledge-map/src/main/resources/mapper/HomePageMapper.xml new file mode 100644 index 00000000..17582353 --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/HomePageMapper.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.HomePageMapper"> + <select id="queryBanner" resultType="com.chinasoft.bean.po.HomeBanner"> + SELECT * FROM t_home_banner + where category=#{category} + </select> + <select id="queryDate" resultType="java.util.HashMap"> + select date from t_home_meeting + where 1=1 + and date LIKE concat('%',#{date},'%') + GROUP BY date + </select> + <select id="queryMeetingByDate" resultType="com.chinasoft.bean.po.HomeMeeting"> + select * from t_home_meeting + where date=#{date} + </select> + <select id="queryInformation" resultType="com.chinasoft.bean.po.HomeContent"> + select *,DATE_FORMAT( startTime,'%Y-%m-%d %H:%i:%S') day + from t_home_content + where type=#{type} + ORDER BY day desc + limit 0,3 + </select> + <select id="queryAdvertising" resultType="com.chinasoft.bean.po.HomeAdvertising"> + select * from t_home_advertising + where type=#{type} + </select> + <select id="queryDevelopment" resultType="com.chinasoft.bean.po.HomeDevelopment"> + select *,DATE_FORMAT( attestDate,'%Y/%m/%d %H:%i:%S') day + from t_home_development + ORDER BY day desc + </select> + <select id="queryVendor" resultType="com.chinasoft.bean.po.HomeCompany"> + SELECT * FROM t_home_company + </select> +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/LevelMapper.xml b/knowledge-map/src/main/resources/mapper/LevelMapper.xml new file mode 100644 index 00000000..775e4a24 --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/LevelMapper.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.LevelMapper"> + + <insert id="insert"> + INSERT INTO t_level(name,sort,reserve1,reserve2,reserve3,createTime) + VALUES(#{name},#{sort},#{reserve1},#{reserve2},#{reserve3},NOW()) + </insert> + + <update id="update" > + UPDATE t_level set name=#{name},sort=#{sort},reserve1=#{reserve1},reserve2=#{reserve2},reserve3=#{reserve3},updateTime=NOW() + WHERE id = #{levelId} + </update> + + <delete id="delete" > + DELETE FROM + t_level + WHERE id = #{id} + </delete> + + <delete id="deleteBatch"> + DELETE FROM + t_level + WHERE id in + <foreach collection="ids" item="id" index="index" open="(" close=")" separator=","> + #{id} + </foreach> + </delete> + + <select id="query" resultType="com.chinasoft.bean.po.Level"> + SELECT + id,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_level + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + limit 0,1 + </select> + + <select id="queryAll" resultType="com.chinasoft.bean.po.Level"> + SELECT + id,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_level + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + </select> + + <select id="queryBatch" resultType="com.chinasoft.bean.po.Level"> + SELECT + id levelId,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_level + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(id,''),IFNULL(name,'')) like CONCAT('%', #{condition}, '%') + </if> + <if test="start != null and pageSize != null"> + limit #{start},#{pageSize} + </if> + </select> + + <select id="queryTotal" resultType="java.lang.Integer"> + SELECT + count(*) + FROM + t_level + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(id,''),IFNULL(name,'')) like CONCAT('%', #{condition}, '%') + </if> + </select> +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/LoginMapper.xml b/knowledge-map/src/main/resources/mapper/LoginMapper.xml new file mode 100644 index 00000000..33bafe2d --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/LoginMapper.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.LoginMapper"> + <select id="getBackstageLogin" resultType="java.util.HashMap"> + SELECT * FROM t_user + where 1=1 + and userName=#{userName} + and password=#{phone} + </select> + + <update id="updateUser" > + update t_user set token=#{token},loginTime=#{loginTime} where id = #{id} + </update> +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/OsTypeMapper.xml b/knowledge-map/src/main/resources/mapper/OsTypeMapper.xml new file mode 100644 index 00000000..084a66eb --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/OsTypeMapper.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.OsTypeMapper"> + + <insert id="insert"> + INSERT INTO t_os_type(name,sort,reserve1,reserve2,reserve3,createTime) + VALUES(#{name},#{sort},#{reserve1},#{reserve2},#{reserve3},NOW()) + </insert> + + <update id="update" > + UPDATE t_os_type set name=#{name},sort=#{sort},reserve1=#{reserve1},reserve2=#{reserve2},reserve3=#{reserve3},updateTime=NOW() + WHERE id = #{titleId} + </update> + + <delete id="delete" > + DELETE FROM + t_os_type + WHERE id = #{id} + </delete> + + <delete id="deleteBatch"> + DELETE FROM + t_os_type + WHERE id in + <foreach collection="ids" item="id" index="index" open="(" close=")" separator=","> + #{id} + </foreach> + </delete> + + <select id="query" resultType="com.chinasoft.bean.po.OsType"> + SELECT + id,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_os_type + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + limit 0,1 + </select> + + <select id="queryAll" resultType="com.chinasoft.bean.po.OsType"> + SELECT + id,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_os_type + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + </select> + + <select id="queryBatch" resultType="com.chinasoft.bean.po.OsType"> + SELECT + id titleId,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_os_type + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(id,''),IFNULL(name,'')) like CONCAT('%', #{condition}, '%') + </if> + <if test="start != null and pageSize != null"> + limit #{start},#{pageSize} + </if> + </select> + + <select id="queryTotal" resultType="java.lang.Integer"> + SELECT + count(*) + FROM + t_os_type + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(id,''),IFNULL(name,'')) like CONCAT('%', #{condition}, '%') + </if> + </select> +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/OsVersionMapper.xml b/knowledge-map/src/main/resources/mapper/OsVersionMapper.xml new file mode 100644 index 00000000..b9730d57 --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/OsVersionMapper.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.OsVersionMapper"> + + <insert id="insert"> + INSERT INTO t_os_version(name,sort,reserve1,reserve2,reserve3,createTime) + VALUES(#{name},#{sort},#{reserve1},#{reserve2},#{reserve3},NOW()) + </insert> + + <update id="update" > + UPDATE t_os_version set name=#{name},sort=#{sort},reserve1=#{reserve1},reserve2=#{reserve2},reserve3=#{reserve3},updateTime=NOW() + WHERE id = #{titleId} + </update> + + <delete id="delete" > + DELETE FROM + t_os_version + WHERE id = #{id} + </delete> + + <delete id="deleteBatch"> + DELETE FROM + t_os_version + WHERE id in + <foreach collection="ids" item="id" index="index" open="(" close=")" separator=","> + #{id} + </foreach> + </delete> + + <select id="query" resultType="com.chinasoft.bean.po.OsVersion"> + SELECT + id,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_os_version + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + limit 0,1 + </select> + + <select id="queryAll" resultType="com.chinasoft.bean.po.OsVersion"> + SELECT + id,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_os_version + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + </select> + + <select id="queryBatch" resultType="com.chinasoft.bean.po.OsVersion"> + SELECT + id titleId,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_os_version + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(id,''),IFNULL(name,'')) like CONCAT('%', #{condition}, '%') + </if> + <if test="start != null and pageSize != null"> + limit #{start},#{pageSize} + </if> + </select> + + <select id="queryTotal" resultType="java.lang.Integer"> + SELECT + count(*) + FROM + t_os_version + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(id,''),IFNULL(name,'')) like CONCAT('%', #{condition}, '%') + </if> + </select> +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/SampleMapper.xml b/knowledge-map/src/main/resources/mapper/SampleMapper.xml new file mode 100644 index 00000000..e30fef1c --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/SampleMapper.xml @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.SampleMapper"> + <select id="querySample" resultType="com.chinasoft.bean.vo.QuerySampleVo"> + select ts.id sampleId,ts.name sampleName,tf.id featuresId,tf.name featuresName, + tb.id busTypeId,tb.name busTypeName,tl.id levelId,tl.name levelName, + tt.id titleId, tt.name titleName, + ts.summary,ts.sign,ts.sort,ts.updateTime + from t_sample ts + left join t_features tf on tf.id=1 + left join t_bus_type tb on tf.busTypeId=tb.id + left join t_level tl on tb.levelId=tl.id + left join t_title tt on tb.titleId=tt.id + where 1=1 + and FIND_IN_SET(#{featuresId},replace(replace(featuresIds,'[',''),']','')) + ORDER BY ts.sign desc,ts.sort asc,ts.createTime desc + limit ${start},${pageSize} + </select> + <select id="queryPageNum" resultType="java.lang.Integer"> + select count(1) + from t_sample ts + left join t_features tf on tf.id=1 + left join t_bus_type tb on tf.busTypeId=tb.id + left join t_level tl on tb.levelId=tl.id + left join t_title tt on tb.titleId=tt.id + where 1=1 + and FIND_IN_SET(#{featuresId},replace(replace(featuresIds,'[',''),']','')) + </select> + <select id="queryFeatures" resultType="java.util.HashMap"> + select id featuresId,name + from t_features + where busTypeId=#{busTypeId} + ORDER BY sort + </select> + <select id="queryDetailType" resultType="java.util.HashMap"> + select id typeId,name from t_detail_type + </select> + <insert id="addSample" useGeneratedKeys="true" keyProperty="id"> + insert into t_sample(name,sign,author,summary,featuresIds,imageUrl,difficultyLevel,osTypeId,osVersionId,busTypeId,titleId,sort,gitUrl,createTime) + VALUES(#{name},#{sign},#{author},#{summary},#{featuresIds},#{imageUrl},#{difficultyLevel},#{osTypeId},#{osVersionId},#{busTypeId},#{titleId},#{sort},#{gitUrl},NOW()) + </insert> + <insert id="addBaseInfo"> + insert into t_base_info(versionNo,deviceLevel,sysVersion,sampleId,createTime) + VALUES(#{versionNo},#{deviceLevel},#{sysVersion},#{sampleId},NOW()) + </insert> + <insert id="addTypeDetail"> + insert into t_detail(typeId,name,url,description,sampleId,sort,createTime) + VALUES(#{typeId},#{name},#{url},#{description},#{sampleId},#{sort},NOW()) + </insert> + <update id="updateSample"> + update t_sample set + name=#{name},author=#{author},summary=#{summary}, + featuresIds=#{featuresIds},gitUrl=#{gitUrl}, + sign=#{sign},sort=#{sort},updateTime=NOW() + where id=#{sampleId} + </update> + <delete id="deleteSample"> + delete from t_sample + where id =#{sampleId} + </delete> + <delete id="deleteBaseInfo"> + delete from t_base_info + where sampleId=#{sampleId} + </delete> + <delete id="deleteTypeDetail"> + delete from t_detail + where sampleId=#{sampleId} + </delete> + <select id="queryData" resultType="java.util.HashMap"> + SELECT tf.id featuresId,tf.name featuresName,ty.name busTypeName,tl.name levelName,tt.name titleName + FROM t_features tf + left join t_bus_type ty on tf.busTypeId=ty.id + left join t_level tl on ty.levelId=tl.id + left join t_title tt on ty.titleId=tt.id + ORDER BY tt.name,tl.name,ty.name + </select> +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/SecondaryPageMapper.xml b/knowledge-map/src/main/resources/mapper/SecondaryPageMapper.xml new file mode 100644 index 00000000..6a0527a8 --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/SecondaryPageMapper.xml @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.SecondaryPageMapper"> + + <select id="queryCarousel" resultType="com.chinasoft.bean.po.HomeContentPic"> + SELECT + id,type,carouselImage,carouselUrl,sort + FROM + t_home_content_pic + WHERE type = #{type} + and category=#{category} + </select> + + <select id="queryBatch" resultType="com.chinasoft.bean.po.HomeContent"> + SELECT + id,type,title,source,content,textDetails,backgroundImage, + DATE_FORMAT( startTime,'%Y-%m-%d %H:%i:%S') day, + url,advertiseImage,advertiseUrl,startTime, + endTime,label,recommend,likesCount,shareCount,browseCount + FROM + t_home_content + WHERE 1=1 + <if test="id != null"> + and id = #{id} + </if> + <if test="type != null"> + and type = #{type} + </if> + <if test="type != null and type == '5'.toString() " > + ORDER BY id + </if> + <if test="type != null and type == '4'.toString() " > + ORDER BY day desc + </if> + <if test="type != null and type == '3'.toString() " > + ORDER BY day desc + </if> + <if test="type != null and type == '2'.toString() " > + ORDER BY day desc + </if> + <if test="type != null and type == '1'.toString() " > + ORDER BY day desc + </if> + <if test="start != null and pageSize != null"> + limit #{start},#{pageSize} + </if> + </select> + + <select id="queryTotal" resultType="java.lang.Integer"> + SELECT + count(*) + FROM + t_home_content + WHERE 1=1 + <if test="id != null"> + and id = #{id} + </if> + <if test="type != null"> + and type = #{type} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(title,''),IFNULL(content,'')) like CONCAT('%', #{condition}, '%') + </if> + </select> + + <select id="queryDetails" resultType="com.chinasoft.bean.po.HomeContent"> + SELECT + * + FROM + t_home_content + WHERE id = #{id} + limit 1 + </select> + + <update id="updateCount" > + UPDATE t_home_content set + <if test="type != null and type == 1"> + browseCount = IFNULL(browseCount,0) + 1 + </if> + <if test="type != null and type == 2"> + likesCount = IFNULL(likesCount,0) + 1 + </if> + <if test="type != null and type == 3"> + shareCount = IFNULL(shareCount,0) + 1 + </if> + WHERE id = #{id} + </update> + + <select id="queryDevelopmentBatch" resultType="com.chinasoft.bean.po.HomeDevelopment"> + SELECT + id,name,description,logoImage,osVersion,attestDate, + url,source,attestStatus,sort,DATE_FORMAT( attestDate,'%Y/%m/%d %H:%i:%S') day + FROM + t_home_development + WHERE 1=1 + <if test="id != null"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(name,''),IFNULL(description,'')) like CONCAT('%', #{condition}, '%') + </if> + ORDER BY day desc + <if test="start != null and pageSize != null"> + limit #{start},#{pageSize} + </if> + </select> + + <select id="queryDevelopmentTotal" resultType="java.lang.Integer"> + SELECT + count(*) + FROM + t_home_development + WHERE 1=1 + <if test="id != null"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(title,''),IFNULL(content,'')) like CONCAT('%', #{condition}, '%') + </if> + </select> + +</mapper> diff --git a/knowledge-map/src/main/resources/mapper/TitleMapper.xml b/knowledge-map/src/main/resources/mapper/TitleMapper.xml new file mode 100644 index 00000000..3115439a --- /dev/null +++ b/knowledge-map/src/main/resources/mapper/TitleMapper.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.chinasoft.mapper.TitleMapper"> + + <insert id="insert"> + INSERT INTO t_title(name,sort,reserve1,reserve2,reserve3,createTime) + VALUES(#{name},#{sort},#{reserve1},#{reserve2},#{reserve3},NOW()) + </insert> + + <update id="update" > + UPDATE t_title set name=#{name},sort=#{sort},reserve1=#{reserve1},reserve2=#{reserve2},reserve3=#{reserve3},updateTime=NOW() + WHERE id = #{titleId} + </update> + + <delete id="delete" > + DELETE FROM + t_title + WHERE id = #{id} + </delete> + + <delete id="deleteBatch"> + DELETE FROM + t_title + WHERE id in + <foreach collection="ids" item="id" index="index" open="(" close=")" separator=","> + #{id} + </foreach> + </delete> + + <select id="query" resultType="com.chinasoft.bean.po.Title"> + SELECT + id,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_title + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + limit 0,1 + </select> + + <select id="queryAll" resultType="com.chinasoft.bean.po.Title"> + SELECT + id,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_title + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + </select> + + <select id="queryBatch" resultType="com.chinasoft.bean.po.Title"> + SELECT + id titleId,name,sort,reserve1,reserve2,reserve3,createTime,updateTime + FROM + t_title + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(id,''),IFNULL(name,'')) like CONCAT('%', #{condition}, '%') + </if> + <if test="start != null and pageSize != null"> + limit #{start},#{pageSize} + </if> + </select> + + <select id="queryTotal" resultType="java.lang.Integer"> + SELECT + count(*) + FROM + t_title + WHERE 1=1 + <if test="id != null and id != ''"> + and id = #{id} + </if> + <if test="name != null and name != ''"> + and name = #{name} + </if> + <if test="condition != null and condition != ''"> + and CONCAT(IFNULL(id,''),IFNULL(name,'')) like CONCAT('%', #{condition}, '%') + </if> + </select> +</mapper> diff --git a/knowledge-map/src/main/resources/scs1634955596056_garden.openatom.cn_keystorePass.txt b/knowledge-map/src/main/resources/scs1634955596056_garden.openatom.cn_keystorePass.txt new file mode 100644 index 00000000..3139ef36 --- /dev/null +++ b/knowledge-map/src/main/resources/scs1634955596056_garden.openatom.cn_keystorePass.txt @@ -0,0 +1 @@ +Dx7#b6m4@DaYjvqE \ No newline at end of file diff --git a/knowledge-map/src/main/resources/scs1634955596056_garden.openatom.cn_server.jks b/knowledge-map/src/main/resources/scs1634955596056_garden.openatom.cn_server.jks new file mode 100644 index 0000000000000000000000000000000000000000..6d4221540aaed7beba8588d4e32ef7f1cba06193 GIT binary patch literal 4096 zcmcha3p7;i{>NwUnQ?F2FS!oo9`?94E-@Hn+zl$Z4xum%Vaj!4O7033q39iHN+?ND zl1K_gQgSJ`LLrw_az<~xr}wP$U+2HpS?kPN&zkw|=evK;>^<N8{XFx1_WLXh1_N0G z_%YZb{3%iX6jm8qxvJ3#gCXG%4Y3ZP*tk^L00f`{@&f=8hM*y)uSo~?E{(^bX#?1A zpNBu*2zViMa?N3+D-`d#OSHU--KZy!E7W}Wbr?I&==?psrI$9nVZiv;uOm27tL?F# z<fLS^_}2P}Tx4)EMUnU61Ld+E!jq|A3=Aie;<UUKg4}P2dfw^CuXfor!(k(A9BsXF zU-)RO$?F>wke(7dsdQ3`@3VMkx;u8dplCQboe|}As9~<YjXbL>el5dWuGcx3qIOz8 zJG+zp$dcPRzYhwdhShlkaf9WJg;n`=#}d!9C5e}4Y4V&j1wDJ}-fHDerOVsrTAU?s z4p-1V0;@*+A&u8SKk;g!DyNJ9J=3>pT&ykM1}WX!Z&PckJ=V4veQ%_tq(OCcX>p7( zk2}R}WtxFCml^eVm>PR)m!cj$Xv~;Aq`N#f*f_eZIOEEAa9wFKe)OrWe#IH*;@Xx` zgzQ%H1pZeZ+*5>uqNy{S{MHB0bm|G4x#(w!qYo3G6ntTn93sU$)-SZ5<K#akGbc?I z-4?Uu0qw+*7;;YMT^#kO-FrgDdOp%HyRyLX1gfVweva>ML20eT;<{Lz2vU5^pn+GV zE&F@B;(<MhZ+NrPCrX4MYW#~%j`v*>&*r?duWGqCjkS1-5ZTz#1GVHxI~qJ#=z1SU zDSFj9Tl4^)UBRB=aqPrc;QPk~D7f9%!s{R6ILW-B`Oh#hay*~Td66P~@v(0u6x~KP zNf)?8bCt|}til<MU3ZU`Am5peaS%z~ws;d6us>=&)vb5u*9=R#etVnm7C{r;4;@Bb zXXP&6Ss|CH6t)^=3d-v4ms0P27}b^gt<E^p`+?rGfvE>Z;dvb0CXnRb36<9^wq714 zP5cv<T{W}Y+Fr~xU^hJ!Uh2D1nYFF`k|J9YTjtv3r%|TmgXvQ((u+Pox5r1sIn`(r zOv1>#sJd?YwP?~|oXRsV_yyu-_2n_OuCJ{$Nkn4JyNj>c7}}If5uv_bMknL5$<f^> zHQO&#O%6WIQjVuCJetVM3AErB1FuL4*<3EhU)n>=xJxuteq&<9ZFrHxoFYDEmfjb- zEk>!3Q%cI4uWw;{O~z~IVv%=g%~c5o09=lJBo3Yzx!C-9CP0Gj=({feKHbN@I!4MG zb?e4rYD7WRr-9jWTgGgE{Ejc~5*o>lqA|ycvC1OFW%yoyr5t-iK~t>*2wd`^emw<q zM82137I!2s7j-O7eY1(MB1(L-oo}7wlYf`iC7qSkX?Qk9p*|?CP(-Np$?PfIyfLh5 zn4nU&(!qb{zL8%dgVf))>6owKH{>UQm~f@m*M-1CZBMHX(G=NTrcPW|bsDfWmE0Ac z_Ptfjt-V%jn(jAahQ{!6M@#4rIv5Gu7*B${vNC5Q8{(P(^NgGF;iFH6(&%z^&xg-z zdovB654`kTOSt0eLP_t;5xiBRvR=u2<&qb+P@tbZeookRpMNYLL8tKk(*algnCro} zy-+eCI7>fyrH^@C*Z~a>x8ZkNPDr|QPQqFO?d8}j<}`S|(&pvmPZiMXZb?nN;#&=F z=og;HICLuYR_rE3wOWZ-^`xn)kD8}$H*K#Z$l^nH4EpGYH(jU<p{Jo|UKlW$T0%~Z z*mGIQ6=SbP4+|U*aJrsrw>h($EM2Y@SEjZ5Li&u)k`I)a39dyFh!vEc?pVJF?&hhg z*aPW{zFxK?KOz#jOI-)TvJ!C(q9IpVsW@5+2LTY|<0gt**M5?-)_ymBB@)$Q3T<NJ zRH0kZS2h6vHxdSgVz?nrHn<CdO%QZ(#t1`#8wHmjk9kl)keNRv61_8&gxL&<ZXD(o z<cp4uR`+8~kyumeBytEw4N~2hf(vfNhmt7Nu*e{CC>qa-X=-$!KgAzy?usVbIHS#Q zXf?DY29g%tq=~^mnp)70*B(}>xlw9r>0ouRdmt%{1ho0jh5`XT6hHq^b#j=0s81w0 zM4c20(Ez#MuYi^Ia2mi1V;$!LX#fCQWO#9f*<l!bbw$ENIx0x(NqV>cWx)X?6EB9r zIwey5()f2`_6R1_t@^E|PVRRYo0N;}8eAZm3nuimro7m1CEVBQ_X1Mvk0kZ+JeA)q z58u<YF0LjbhG)0?NJy!CI&-+f_<~YOO@`heXZb0#8E49~ROd~BAUy1o9K&sdz&$S! zb^nc^Z;ilLcEu2bMj1ml=X<Iy4u(qy=i>j^RKNAO-}%z0FN<W}N6eke>1rQKFyWd* zS`{J5=CZ{+yy+B4O|g8&Hs7Y1N3OG<nP=k^G;?<+Hmmb*e{tD55RGGS6Z@K*eD35s zTV1^CdHUA*mnM&$rG>Taj&FJT^(F`hU_coSd;`(IAxMUGBc-+=#2}GGA(u$|8jAgr zcY{Mu|Agb-Gr&>ten@IVfI^5Mg!F=ij@%-WRNhpea&jrU9K@C`u|KEz5h9Qf?ce<v zsExCE0bm`0fP=`=KjrcpayAYYkda7sIPlje5ZbXJM<etg9Y~9fEg*>p00BrDQv4+W z0TGG7$jC5#4UK<wnTDBzGnAD0O9=poNQeS${Z&H%UF_$XWKu-f-wX;_|D^)yJASH2 zJ{$gx_?uAUpZ@))ea&52<~75qSz^>ll*k`Xij*J%gf<)(|8v{%oC+d91Pusfjr~9% zEDEMfZJH~_VrA!CBT7gYqQ{%u;)=YvKCjw(DD0K@XiNUFgZaF3D-4E!!z>{@i1upD z@ojN?;V0t8hic!_<7(?T)4i)!@@oC|!?Tl5d#piOSU>l%Ai{~aVF$q0nUYU<hH9uc zdOdYN(>$xxaUP+*3l<G?EW5h222hJ!L+bTnvUti5bxJ5cS}8tedS=u2-ZbR+&vny& ztZM~Xu(}qFQa$ozo2Kols@k79u3B=}n6KSD_;z8z5;b=JeBfo4ByY<>n8&$wtbe_p zv9GAX5_aFTnzswF4XAG{bOgB~VFzKj_KxadISXsP2j}!TO^<roVbUbv)6;~uz`1PS ze75DE3$p@>b-@;pIfz!^e=k<@y-x7#e(4&Y*nDrD;-<^h7BL|%o?eQdoRE(}G>71Q zx9MPa>ID^r>il-ET}F?mu5RyRmN1TVn2!%crT?A-tR!RQ0048Ii{nYjC>zhv>pa9e zG2b|)8G;+sR4dt0XMvjs@5~zHM8Lzr&ZF_FNs<=#p4FkA3n;j_DVcs~l(7vEE}Ex% z?`<v;S@ZPqaw_u<O6C_h&=_6BKQ|L5+hgmRl>W#cxjbB{sJ3}_b>|U2xypr;>W8Ak zEyuCiprf03QHtEybk^hXNAIC9v0mZRDF%m_zRP~ERI!t`?$IC_N)d9HyiDE~NUD2Y ze`jDxC6HZ<3F3*fQ<;4hUpRKC+Ld<%o#pO-H??^sviG)6!nl0|wd|Czc|24oSw53i z)JuzNVz^Vs)OBp{SyZ@Ug>0(3FQ&Ei57tz@J-~MHgE9^Fivx%&ECy6UG<fb$4uDi9 zKCQV1e`z(*`SG^G>VLU=kk5b10W>7ddcIj45dDiBmce9SpJ22TnH<T=|BdL!=wUFL zdKgV@T@17l{lAz0a}@n2medXzGq(mc=|pdpeeYXTdg$_ywpDAW4Qgf0Oexdyx|b-} zFv(!{;CyA9KI^@7EFNs_vl8pXTp2pEo7fhZciX3s;YxUR{JW!Pa+!1Y1jkZk`IOhm z*}M8#LbNaFW}{ds(c?3N<rGF#c1b1akF%7j8sJ@~)}6-W!=J_jzF$&3ugHDjqUz2r z;spPP1YgwKp<X+VRx?0mab<XRv}1H7YGowVALV5Ay8OXHYeIpp+s%4YxpoP;k+fIg z(7A<M=VRsMCcOJ|&P-yA6`Pkqw@Y8L_1tpm+01L0md8WGYeIr6kLBR1Z|3UWXz)4= z=0u!+PJPsZELiz+)~1~ICrbc(R@M=IL&d)($?vFv4>{<#_SoFoH&^yXLZYRh#;C`I z^(XB&SOE0@1Pg%;x!?v{I3PCG8wkK4?O#dG%6}zD;s2TcrW>7P5C#wy(ks;|)uLm5 zL4Xph^>+gNa_*nT-SDj$j+Ohtkj+L9Gy)HqL3(VQ-gGN~z7`CCkP4*q>pQXNCArZ! z;{U=I$6w6*`xfj+aH)o0oL;71s!Q6}>GeH%hmCPF0eJ(kL)cW&ackwGx|?%u-?ZA( z7WqY?AvQ`<vM<$AR{Xe(IEO*v!E5dj@+QdVTGp#-gs0a#z74>hdp~>WtgaTgRpH_J zc%n>03;)b@rBZ!jhUmVACX{N@jBo2y-e_{tvnUnDfoR(aORXM(cmnfdYWKs?cjf`L zS!4I!rkn1EWt+@=(ha^3Tgxp{d3d!)7j@D_lk!cGiNn8`(7$^_kHJ@eDaYe>^Fs#` zS1D}aHK9AJv6<q@tX&YOUtr$L59BADUbq8`z>l6fcXvKB;<mm+v=%b2ZJa-1>%d&g lI74NuYYT4ptmC)*ioDu(<ySYh*`5@uKxs6?oJcOQ{{Y;OWsv{? literal 0 HcmV?d00001 -- Gitee