From f213391e0cd79309a2a20aa8811cb9f792ba2df3 Mon Sep 17 00:00:00 2001 From: ASxx <2075995406@qq.com> Date: Thu, 10 Aug 2023 13:11:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 71 +- ruoyi-admin/pom.xml | 34 +- .../main/java/com/ruoyi/RuoYiApplication.java | 36 +- .../controller/common/CaptchaController.java | 16 +- .../controller/common/CommonController.java | 66 +- .../controller/monitor/CacheController.java | 67 ++ .../monitor/SysLogininforController.java | 23 +- .../monitor/SysOperlogController.java | 10 +- .../monitor/SysUserOnlineController.java | 23 +- .../system/SysConfigController.java | 24 +- .../controller/system/SysDeptController.java | 65 +- .../system/SysDictDataController.java | 11 +- .../system/SysDictTypeController.java | 22 +- .../controller/system/SysMenuController.java | 24 +- .../system/SysNoticeController.java | 2 +- .../controller/system/SysPostController.java | 28 +- .../system/SysProfileController.java | 38 +- .../system/SysRegisterController.java | 2 +- .../controller/system/SysRoleController.java | 58 +- .../controller/system/SysUserController.java | 68 +- .../web/controller/tool/TestController.java | 46 +- .../ruoyi/web/core/config/SwaggerConfig.java | 83 +- .../controller/TcCommentatorController.java | 106 +++ .../controller/TcDataSourceController.java | 106 +++ .../controller/TcDengbaoSystemController.java | 106 +++ .../controller/TcDengbaoUnitController.java | 106 +++ .../TcExtworkSafetyadminController.java | 107 +++ .../controller/TcGovernmentWebController.java | 106 +++ .../controller/TcIdcUnitController.java | 106 +++ .../TcNetworkArticleController.java | 106 +++ .../TcNetworkEvaluateController.java | 106 +++ .../TcNetworkMqPrincipalController.java | 106 +++ .../TcNetworkPingtaiController.java | 106 +++ .../controller/TcNetworkReportController.java | 106 +++ .../TcNetworkSentimentController.java | 106 +++ .../TcNetworkSupportUnitController.java | 106 +++ .../TcNetworkVolunteerController.java | 106 +++ .../TcQinglangZhuanxiangController.java | 106 +++ .../controller/TcSafetyDangerController.java | 106 +++ .../TcSafetyDetectionController.java | 107 +++ .../zongzhi/controller/TcTownController.java | 107 +++ .../controller/TcWorkDongtaiController.java | 107 +++ .../TcZhongdianDomainController.java | 107 +++ .../TcZhongdianEnterpriseController.java | 107 +++ .../controller/TcZhongdianWorkController.java | 107 +++ .../ruoyi/zongzhi/domain/TcCommentator.java | 111 +++ .../ruoyi/zongzhi/domain/TcDataSource.java | 128 +++ .../ruoyi/zongzhi/domain/TcDengbaoSystem.java | 170 ++++ .../ruoyi/zongzhi/domain/TcDengbaoUnit.java | 144 ++++ .../zongzhi/domain/TcExtworkSafetyadmin.java | 236 ++++++ .../ruoyi/zongzhi/domain/TcGovernmentWeb.java | 67 ++ .../com/ruoyi/zongzhi/domain/TcIdcUnit.java | 67 ++ .../zongzhi/domain/TcNetworkArticle.java | 88 ++ .../zongzhi/domain/TcNetworkEvaluate.java | 119 +++ .../zongzhi/domain/TcNetworkMqPrincipal.java | 89 ++ .../zongzhi/domain/TcNetworkPingtai.java | 128 +++ .../ruoyi/zongzhi/domain/TcNetworkReport.java | 120 +++ .../zongzhi/domain/TcNetworkSentiment.java | 140 ++++ .../zongzhi/domain/TcNetworkSupportUnit.java | 67 ++ .../zongzhi/domain/TcNetworkVolunteer.java | 96 +++ .../zongzhi/domain/TcQinglangZhuanxiang.java | 85 ++ .../ruoyi/zongzhi/domain/TcSafetyDanger.java | 142 ++++ .../zongzhi/domain/TcSafetyDetection.java | 155 ++++ .../java/com/ruoyi/zongzhi/domain/TcTown.java | 52 ++ .../ruoyi/zongzhi/domain/TcWorkDongtai.java | 84 ++ .../zongzhi/domain/TcZhongdianDomain.java | 62 ++ .../zongzhi/domain/TcZhongdianEnterprise.java | 82 ++ .../ruoyi/zongzhi/domain/TcZhongdianWork.java | 93 +++ .../zongzhi/mapper/TcCommentatorMapper.java | 61 ++ .../zongzhi/mapper/TcDataSourceMapper.java | 61 ++ .../zongzhi/mapper/TcDengbaoSystemMapper.java | 61 ++ .../zongzhi/mapper/TcDengbaoUnitMapper.java | 61 ++ .../mapper/TcExtworkSafetyadminMapper.java | 61 ++ .../zongzhi/mapper/TcGovernmentWebMapper.java | 61 ++ .../ruoyi/zongzhi/mapper/TcIdcUnitMapper.java | 61 ++ .../mapper/TcNetworkArticleMapper.java | 61 ++ .../mapper/TcNetworkEvaluateMapper.java | 61 ++ .../mapper/TcNetworkMqPrincipalMapper.java | 61 ++ .../mapper/TcNetworkPingtaiMapper.java | 61 ++ .../zongzhi/mapper/TcNetworkReportMapper.java | 61 ++ .../mapper/TcNetworkSentimentMapper.java | 61 ++ .../mapper/TcNetworkSupportUnitMapper.java | 61 ++ .../mapper/TcNetworkVolunteerMapper.java | 61 ++ .../mapper/TcQinglangZhuanxiangMapper.java | 61 ++ .../zongzhi/mapper/TcSafetyDangerMapper.java | 61 ++ .../mapper/TcSafetyDetectionMapper.java | 61 ++ .../ruoyi/zongzhi/mapper/TcTownMapper.java | 61 ++ .../zongzhi/mapper/TcWorkDongtaiMapper.java | 61 ++ .../mapper/TcZhongdianDomainMapper.java | 61 ++ .../mapper/TcZhongdianEnterpriseMapper.java | 61 ++ .../zongzhi/mapper/TcZhongdianWorkMapper.java | 61 ++ .../service/ITcCommentatorService.java | 61 ++ .../zongzhi/service/ITcDataSourceService.java | 61 ++ .../service/ITcDengbaoSystemService.java | 61 ++ .../service/ITcDengbaoUnitService.java | 61 ++ .../service/ITcExtworkSafetyadminService.java | 61 ++ .../service/ITcGovernmentWebService.java | 61 ++ .../zongzhi/service/ITcIdcUnitService.java | 61 ++ .../service/ITcNetworkArticleService.java | 61 ++ .../service/ITcNetworkEvaluateService.java | 61 ++ .../service/ITcNetworkMqPrincipalService.java | 61 ++ .../service/ITcNetworkPingtaiService.java | 61 ++ .../service/ITcNetworkReportService.java | 61 ++ .../service/ITcNetworkSentimentService.java | 61 ++ .../service/ITcNetworkSupportUnitService.java | 61 ++ .../service/ITcNetworkVolunteerService.java | 61 ++ .../service/ITcQinglangZhuanxiangService.java | 61 ++ .../service/ITcSafetyDangerService.java | 61 ++ .../service/ITcSafetyDetectionService.java | 61 ++ .../ruoyi/zongzhi/service/ITcTownService.java | 61 ++ .../service/ITcWorkDongtaiService.java | 61 ++ .../service/ITcZhongdianDomainService.java | 61 ++ .../ITcZhongdianEnterpriseService.java | 61 ++ .../service/ITcZhongdianWorkService.java | 61 ++ .../impl/TcCommentatorServiceImpl.java | 96 +++ .../service/impl/TcDataSourceServiceImpl.java | 96 +++ .../impl/TcDengbaoSystemServiceImpl.java | 96 +++ .../impl/TcDengbaoUnitServiceImpl.java | 96 +++ .../impl/TcExtworkSafetyadminServiceImpl.java | 96 +++ .../impl/TcGovernmentWebServiceImpl.java | 96 +++ .../service/impl/TcIdcUnitServiceImpl.java | 96 +++ .../impl/TcNetworkArticleServiceImpl.java | 96 +++ .../impl/TcNetworkEvaluateServiceImpl.java | 96 +++ .../impl/TcNetworkMqPrincipalServiceImpl.java | 96 +++ .../impl/TcNetworkPingtaiServiceImpl.java | 96 +++ .../impl/TcNetworkReportServiceImpl.java | 96 +++ .../impl/TcNetworkSentimentServiceImpl.java | 96 +++ .../impl/TcNetworkSupportUnitServiceImpl.java | 96 +++ .../impl/TcNetworkVolunteerServiceImpl.java | 95 +++ .../impl/TcQinglangZhuanxiangServiceImpl.java | 96 +++ .../impl/TcSafetyDangerServiceImpl.java | 96 +++ .../impl/TcSafetyDetectionServiceImpl.java | 96 +++ .../service/impl/TcTownServiceImpl.java | 95 +++ .../impl/TcWorkDongtaiServiceImpl.java | 96 +++ .../impl/TcZhongdianDomainServiceImpl.java | 96 +++ .../TcZhongdianEnterpriseServiceImpl.java | 96 +++ .../impl/TcZhongdianWorkServiceImpl.java | 96 +++ .../src/main/resources/application-druid.yml | 20 +- .../src/main/resources/application.yml | 101 ++- .../main/resources/i18n/messages.properties | 3 +- .../main/resources/mybatis/mybatis-config.xml | 19 +- ruoyi-common/pom.xml | 31 +- .../ruoyi/common/annotation/DataScope.java | 5 + .../com/ruoyi/common/annotation/Excel.java | 66 +- .../java/com/ruoyi/common/annotation/Log.java | 12 +- .../ruoyi/common/annotation/RateLimiter.java | 4 +- .../ruoyi/common/annotation/RepeatSubmit.java | 8 + .../com/ruoyi/common/config/RuoYiConfig.java | 11 + .../com/ruoyi/common/constant/Constants.java | 53 +- .../ruoyi/common/constant/GenConstants.java | 3 + .../com/ruoyi/common/constant/HttpStatus.java | 5 + .../ruoyi/common/constant/UserConstants.java | 6 +- .../core/controller/BaseController.java | 35 +- .../ruoyi/common/core/domain/AjaxResult.java | 76 +- .../ruoyi/common/core/domain/BaseEntity.java | 4 + .../java/com/ruoyi/common/core/domain/R.java | 28 +- .../common/core/domain/entity/SysDept.java | 9 +- .../core/domain/entity/SysDictData.java | 2 +- .../core/domain/entity/SysDictType.java | 2 + .../common/core/domain/entity/SysMenu.java | 11 +- .../common/core/domain/entity/SysRole.java | 25 +- .../common/core/domain/entity/SysUser.java | 25 +- .../common/core/domain/model/LoginBody.java | 2 +- .../common/core/domain/model/LoginUser.java | 54 +- .../ruoyi/common/core/page/TableSupport.java | 5 +- .../ruoyi/common/core/redis/RedisCache.java | 38 +- .../com/ruoyi/common/core/text/Convert.java | 15 +- .../common/exception/GlobalException.java | 2 +- .../common/exception/ServiceException.java | 1 + .../file/InvalidExtensionException.java | 3 +- .../filter/RepeatedlyRequestWrapper.java | 7 +- .../com/ruoyi/common/filter/XssFilter.java | 3 +- .../filter/XssHttpServletRequestWrapper.java | 6 +- .../com/ruoyi/common/utils/DateUtils.java | 46 +- .../com/ruoyi/common/utils/DictUtils.java | 43 +- .../com/ruoyi/common/utils/ExceptionUtil.java | 3 +- .../com/ruoyi/common/utils/SecurityUtils.java | 1 + .../com/ruoyi/common/utils/ServletUtils.java | 82 +- .../com/ruoyi/common/utils/StringUtils.java | 82 +- .../java/com/ruoyi/common/utils/Threads.java | 2 +- .../common/utils/bean/BeanValidators.java | 2 +- .../common/utils/file/FileUploadUtils.java | 27 +- .../ruoyi/common/utils/file/FileUtils.java | 41 +- .../ruoyi/common/utils/file/ImageUtils.java | 5 +- .../ruoyi/common/utils/html/EscapeUtil.java | 34 +- .../ruoyi/common/utils/html/HTMLFilter.java | 4 +- .../ruoyi/common/utils/http/HttpHelper.java | 4 +- .../ruoyi/common/utils/http/HttpUtils.java | 24 +- .../ruoyi/common/utils/ip/AddressUtils.java | 8 +- .../com/ruoyi/common/utils/ip/IpUtils.java | 203 ++++- .../com/ruoyi/common/utils/poi/ExcelUtil.java | 767 ++++++++++++++---- .../com/ruoyi/common/utils/sign/Md5Utils.java | 3 +- .../common/utils/spring/SpringUtils.java | 12 + .../com/ruoyi/common/utils/sql/SqlUtil.java | 24 + .../java/com/ruoyi/common/utils/uuid/Seq.java | 10 +- .../com/ruoyi/common/utils/uuid/UUID.java | 10 +- .../com/ruoyi/common/xss/XssValidator.java | 15 +- ruoyi-framework/pom.xml | 6 +- .../framework/aspectj/DataScopeAspect.java | 75 +- .../ruoyi/framework/aspectj/LogAspect.java | 134 +-- .../framework/aspectj/RateLimiterAspect.java | 41 +- .../config/FastJson2JsonRedisSerializer.java | 35 +- .../ruoyi/framework/config/FilterConfig.java | 2 +- .../framework/config/KaptchaTextCreator.java | 15 +- .../ruoyi/framework/config/RedisConfig.java | 14 +- .../framework/config/ResourcesConfig.java | 18 +- .../framework/config/SecurityConfig.java | 63 +- .../framework/config/ThreadPoolConfig.java | 11 +- .../config/properties/DruidProperties.java | 12 + .../properties/PermitAllUrlProperties.java | 20 +- .../DynamicDataSourceContextHolder.java | 2 +- .../interceptor/RepeatSubmitInterceptor.java | 16 +- .../impl/SameUrlDataInterceptor.java | 39 +- .../manager/factory/AsyncFactory.java | 2 +- .../context/PermissionContextHolder.java | 14 +- .../handle/AuthenticationEntryPointImpl.java | 2 +- .../handle/LogoutSuccessHandlerImpl.java | 5 +- .../framework/web/domain/server/Jvm.java | 10 +- .../web/service/PermissionService.java | 5 +- .../web/service/SysLoginService.java | 98 ++- .../web/service/SysPasswordService.java | 11 +- .../web/service/SysPermissionService.java | 19 +- .../web/service/SysRegisterService.java | 34 +- .../framework/web/service/TokenService.java | 5 +- .../web/service/UserDetailsServiceImpl.java | 5 + ruoyi-generator/pom.xml | 4 +- .../generator/controller/GenController.java | 24 +- .../service/GenTableServiceImpl.java | 39 +- .../com/ruoyi/generator/util/GenUtils.java | 7 +- .../generator/util/VelocityInitializer.java | 3 +- .../ruoyi/generator/util/VelocityUtils.java | 52 +- .../src/main/resources/generator.yml | 6 +- .../mapper/generator/GenTableColumnMapper.xml | 44 +- .../main/resources/vm/java/controller.java.vm | 33 +- .../src/main/resources/vm/java/domain.java.vm | 3 + .../src/main/resources/vm/java/mapper.java.vm | 2 +- .../resources/vm/java/serviceImpl.java.vm | 3 + .../src/main/resources/vm/js/api.js.vm | 9 +- .../main/resources/vm/vue/index-tree.vue.vm | 168 ++-- .../src/main/resources/vm/vue/index.vue.vm | 203 +++-- .../resources/vm/vue/v3/index-tree.vue.vm | 4 +- .../src/main/resources/vm/vue/v3/index.vue.vm | 4 +- .../src/main/resources/vm/xml/mapper.xml.vm | 10 +- ruoyi-quartz/pom.xml | 2 +- .../ruoyi/quartz/config/ScheduleConfig.java | 114 +-- .../quartz/controller/SysJobController.java | 48 +- .../controller/SysJobLogController.java | 14 +- .../ruoyi/quartz/service/ISysJobService.java | 2 +- .../service/impl/SysJobServiceImpl.java | 11 +- .../com/ruoyi/quartz/util/JobInvokeUtil.java | 30 +- .../com/ruoyi/quartz/util/ScheduleUtils.java | 30 +- ruoyi-system/pom.xml | 26 +- .../com/ruoyi/system/domain/SysNotice.java | 2 + .../com/ruoyi/system/domain/SysOperLog.java | 14 + .../java/com/ruoyi/system/domain/SysPost.java | 9 +- .../ruoyi/system/mapper/SysConfigMapper.java | 8 + .../ruoyi/system/mapper/SysDeptMapper.java | 2 +- .../system/mapper/SysDictTypeMapper.java | 2 - .../ruoyi/system/mapper/SysMenuMapper.java | 10 +- .../ruoyi/system/mapper/SysPostMapper.java | 2 +- .../ruoyi/system/mapper/SysRoleMapper.java | 2 +- .../ruoyi/system/mapper/SysUserMapper.java | 4 +- .../system/service/ISysConfigService.java | 5 +- .../ruoyi/system/service/ISysDeptService.java | 12 +- .../system/service/ISysDictDataService.java | 1 - .../system/service/ISysDictTypeService.java | 3 +- .../system/service/ISysLogininforService.java | 2 +- .../ruoyi/system/service/ISysMenuService.java | 12 +- .../ruoyi/system/service/ISysPostService.java | 7 +- .../ruoyi/system/service/ISysRoleService.java | 6 +- .../ruoyi/system/service/ISysUserService.java | 8 +- .../service/impl/SysConfigServiceImpl.java | 33 +- .../service/impl/SysDeptServiceImpl.java | 30 +- .../service/impl/SysDictDataServiceImpl.java | 1 - .../service/impl/SysDictTypeServiceImpl.java | 25 +- .../impl/SysLogininforServiceImpl.java | 2 +- .../service/impl/SysMenuServiceImpl.java | 61 +- .../service/impl/SysPostServiceImpl.java | 7 +- .../service/impl/SysRoleServiceImpl.java | 9 +- .../service/impl/SysUserServiceImpl.java | 90 +- .../mapper/system/SysConfigMapper.xml | 5 + .../resources/mapper/system/SysDeptMapper.xml | 28 +- .../mapper/system/SysDictDataMapper.xml | 6 +- .../mapper/system/SysDictTypeMapper.xml | 3 +- .../mapper/system/SysLogininforMapper.xml | 4 +- .../resources/mapper/system/SysMenuMapper.xml | 27 +- .../mapper/system/SysOperLogMapper.xml | 13 +- .../resources/mapper/system/SysPostMapper.xml | 8 +- .../resources/mapper/system/SysRoleMapper.xml | 12 +- .../resources/mapper/system/SysUserMapper.xml | 106 ++- .../mapper/zongzhi/TcCommentatorMapper.xml | 131 +++ .../mapper/zongzhi/TcDataSourceMapper.xml | 141 ++++ .../mapper/zongzhi/TcDengbaoSystemMapper.xml | 171 ++++ .../mapper/zongzhi/TcDengbaoUnitMapper.xml | 156 ++++ .../zongzhi/TcExtworkSafetyadminMapper.xml | 133 +++ .../mapper/zongzhi/TcGovernmentWebMapper.xml | 101 +++ .../mapper/zongzhi/TcIdcUnitMapper.xml | 101 +++ .../mapper/zongzhi/TcNetworkArticleMapper.xml | 113 +++ .../zongzhi/TcNetworkEvaluateMapper.xml | 136 ++++ .../zongzhi/TcNetworkMqPrincipalMapper.xml | 116 +++ .../mapper/zongzhi/TcNetworkPingtaiMapper.xml | 136 ++++ .../zongzhi/TcNetworkSentimentMapper.xml | 151 ++++ .../zongzhi/TcNetworkSupportUnitMapper.xml | 101 +++ .../zongzhi/TcNetworkVolunteerMapper.xml | 117 +++ .../zongzhi/TcQinglangZhuanxiangMapper.xml | 111 +++ .../mapper/zongzhi/TcSafetyDangerMapper.xml | 146 ++++ .../zongzhi/TcSafetyDetectionMapper.xml | 156 ++++ .../resources/mapper/zongzhi/TcTownMapper.xml | 97 +++ .../mapper/zongzhi/TcWorkDongtaiMapper.xml | 113 +++ .../zongzhi/TcZhongdianDomainMapper.xml | 111 +++ .../zongzhi/TcZhongdianEnterpriseMapper.xml | 131 +++ .../mapper/zongzhi/TcZhongdianWorkMapper.xml | 121 +++ 312 files changed, 16071 insertions(+), 1859 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcCommentatorController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcDataSourceController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcDengbaoSystemController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcDengbaoUnitController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcExtworkSafetyadminController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcGovernmentWebController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcIdcUnitController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkArticleController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkEvaluateController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkMqPrincipalController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkPingtaiController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkReportController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkSentimentController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkSupportUnitController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkVolunteerController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcQinglangZhuanxiangController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcSafetyDangerController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcSafetyDetectionController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcTownController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcWorkDongtaiController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcZhongdianDomainController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcZhongdianEnterpriseController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcZhongdianWorkController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcCommentator.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcDataSource.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcDengbaoSystem.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcDengbaoUnit.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcExtworkSafetyadmin.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcGovernmentWeb.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcIdcUnit.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkArticle.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkEvaluate.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkMqPrincipal.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkPingtai.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkReport.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkSentiment.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkSupportUnit.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkVolunteer.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcQinglangZhuanxiang.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcSafetyDanger.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcSafetyDetection.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcTown.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcWorkDongtai.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcZhongdianDomain.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcZhongdianEnterprise.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcZhongdianWork.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcCommentatorMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcDataSourceMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcDengbaoSystemMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcDengbaoUnitMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcExtworkSafetyadminMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcGovernmentWebMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcIdcUnitMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkArticleMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkEvaluateMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkMqPrincipalMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkPingtaiMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkReportMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkSentimentMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkSupportUnitMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkVolunteerMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcQinglangZhuanxiangMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcSafetyDangerMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcSafetyDetectionMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcTownMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcWorkDongtaiMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcZhongdianDomainMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcZhongdianEnterpriseMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcZhongdianWorkMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcCommentatorService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcDataSourceService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcDengbaoSystemService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcDengbaoUnitService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcExtworkSafetyadminService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcGovernmentWebService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcIdcUnitService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkArticleService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkEvaluateService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkMqPrincipalService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkPingtaiService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkReportService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkSentimentService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkSupportUnitService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkVolunteerService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcQinglangZhuanxiangService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcSafetyDangerService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcSafetyDetectionService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcTownService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcWorkDongtaiService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcZhongdianDomainService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcZhongdianEnterpriseService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcZhongdianWorkService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcCommentatorServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcDataSourceServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcDengbaoSystemServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcDengbaoUnitServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcExtworkSafetyadminServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcGovernmentWebServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcIdcUnitServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkArticleServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkEvaluateServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkMqPrincipalServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkPingtaiServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkReportServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkSentimentServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkSupportUnitServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkVolunteerServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcQinglangZhuanxiangServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcSafetyDangerServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcSafetyDetectionServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcTownServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcWorkDongtaiServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcZhongdianDomainServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcZhongdianEnterpriseServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcZhongdianWorkServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcCommentatorMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcDataSourceMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcDengbaoSystemMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcDengbaoUnitMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcExtworkSafetyadminMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcGovernmentWebMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcIdcUnitMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcNetworkArticleMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcNetworkEvaluateMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcNetworkMqPrincipalMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcNetworkPingtaiMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcNetworkSentimentMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcNetworkSupportUnitMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcNetworkVolunteerMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcQinglangZhuanxiangMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcSafetyDangerMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcSafetyDetectionMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcTownMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcWorkDongtaiMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcZhongdianDomainMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcZhongdianEnterpriseMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/zongzhi/TcZhongdianWorkMapper.xml diff --git a/pom.xml b/pom.xml index 10960d9..8465219 100644 --- a/pom.xml +++ b/pom.xml @@ -6,32 +6,28 @@ com.ruoyi ruoyi - 3.7.0 + 3.8.6 ruoyi http://www.ruoyi.vip 若依管理系统 - 3.7.0 + 3.8.6 UTF-8 UTF-8 1.8 3.1.1 - 1.2.6 + 1.2.16 1.21 - 3.0.0 - 2.3.2 - 2.1.4 - 1.3.1 - 1.2.76 - 5.8.0 - 5.8.0 + 2.3.3 + 1.4.6 + 2.0.34 + 6.4.3 2.11.0 - 1.4 3.2.2 4.1.2 - 1.7 + 2.3 0.9.1 @@ -43,7 +39,7 @@ org.springframework.boot spring-boot-dependencies - 2.2.13.RELEASE + 2.5.15 pom import @@ -62,13 +58,6 @@ ${bitwalker.version} - - - org.mybatis.spring.boot - mybatis-spring-boot-starter - ${mybatis-spring-boot.version} - - com.github.pagehelper @@ -83,18 +72,6 @@ ${oshi.version} - - net.java.dev.jna - jna - ${jna.version} - - - - net.java.dev.jna - jna-platform - ${jna.version} - - io.springfox @@ -115,13 +92,6 @@ ${commons.io.version} - - - commons-fileupload - commons-fileupload - ${commons.fileupload.version} - - org.apache.poi @@ -132,14 +102,8 @@ org.apache.velocity - velocity + velocity-engine-core ${velocity.version} - - - commons-collections - commons-collections - - @@ -151,8 +115,8 @@ - com.alibaba - fastjson + com.alibaba.fastjson2 + fastjson2 ${fastjson.version} @@ -165,7 +129,7 @@ - com.github.penggle + pro.fessional kaptcha ${kaptcha.version} @@ -218,11 +182,6 @@ pom - - - - - @@ -242,7 +201,7 @@ public aliyun nexus - http://maven.aliyun.com/nexus/content/groups/public/ + https://maven.aliyun.com/repository/public true @@ -253,7 +212,7 @@ public aliyun nexus - http://maven.aliyun.com/nexus/content/groups/public/ + https://maven.aliyun.com/repository/public true diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index f24ab34..6c46c99 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -5,7 +5,7 @@ ruoyi com.ruoyi - 3.7.0 + 3.8.6 4.0.0 jar @@ -14,6 +14,9 @@ web服务入口 + + 4.0.0 + @@ -24,20 +27,21 @@ true - - io.springfox - springfox-boot-starter + com.github.xiaoymin + knife4j-openapi2-spring-boot-starter + ${knife4j.version} - - io.swagger - swagger-models - 1.6.2 + org.projectlombok + lombok - + + + + mysql mysql-connector-java @@ -80,15 +84,15 @@ - - org.apache.maven.plugins - maven-war-plugin - 3.1.0 + + org.apache.maven.plugins + maven-war-plugin + 3.1.0 false ${project.artifactId} - - + + ${project.artifactId} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index 32eb6f1..4906d77 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -3,6 +3,11 @@ package com.ruoyi; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.env.Environment; + +import java.net.InetAddress; +import java.net.UnknownHostException; /** * 启动程序 @@ -12,19 +17,22 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) public class RuoYiApplication { - public static void main(String[] args) - { - // System.setProperty("spring.devtools.restart.enabled", "false"); - SpringApplication.run(RuoYiApplication.class, args); - System.out.println("(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙ \n" + - " .-------. ____ __ \n" + - " | _ _ \\ \\ \\ / / \n" + - " | ( ' ) | \\ _. / ' \n" + - " |(_ o _) / _( )_ .' \n" + - " | (_,_).' __ ___(_ o _)' \n" + - " | |\\ \\ | || |(_,_)' \n" + - " | | \\ `' /| `-' / \n" + - " | | \\ / \\ / \n" + - " ''-' `'-' `-..-' "); + public static void main(String[] args) { + ConfigurableApplicationContext application = SpringApplication.run(RuoYiApplication.class, args); + Environment env = application.getEnvironment(); + String ip = null; + try { + ip = InetAddress.getLocalHost().getHostAddress(); + } catch (UnknownHostException e) { + throw new RuntimeException(e); + } + String port = env.getProperty("server.port"); + String path = env.getProperty("server.servlet.context-path"); + path = path.isEmpty() ? "" : path; + System.out.println("\n----------------------------------------------------------\n\t" + + "Application is running! Access URLs:\n\t" + + "swagger-ui: http://localhost:" + port + path + "doc.html\n\t" + + "swagger-ui: http://" + ip + ":" + port + path + "doc.html\n\t" + + "----------------------------------------------------------"); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java index 0aad226..d2d6e8c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java @@ -7,11 +7,12 @@ import javax.annotation.Resource; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.util.FastByteArrayOutputStream; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import com.google.code.kaptcha.Producer; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.redis.RedisCache; @@ -36,10 +37,6 @@ public class CaptchaController @Autowired private RedisCache redisCache; - // 验证码类型 - @Value("${ruoyi.captchaType}") - private String captchaType; - @Autowired private ISysConfigService configService; /** @@ -49,21 +46,22 @@ public class CaptchaController public AjaxResult getCode(HttpServletResponse response) throws IOException { AjaxResult ajax = AjaxResult.success(); - boolean captchaOnOff = configService.selectCaptchaOnOff(); - ajax.put("captchaOnOff", captchaOnOff); - if (!captchaOnOff) + boolean captchaEnabled = configService.selectCaptchaEnabled(); + ajax.put("captchaEnabled", captchaEnabled); + if (!captchaEnabled) { return ajax; } // 保存验证码信息 String uuid = IdUtils.simpleUUID(); - String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid; String capStr = null, code = null; BufferedImage image = null; // 生成验证码 + String captchaType = RuoYiConfig.getCaptchaType(); if ("math".equals(captchaType)) { String capText = captchaProducerMath.createText(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java index e0c728f..bf076b5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java @@ -1,13 +1,20 @@ package com.ruoyi.web.controller.common; +import java.util.ArrayList; +import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.common.core.controller.BaseController; +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.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.config.RuoYiConfig; @@ -24,20 +31,25 @@ import com.ruoyi.framework.config.ServerConfig; * @author ruoyi */ @RestController -public class CommonController +@Api(tags = "通用请求处理") +@RequestMapping("/zongzhi/common") +public class CommonController extends BaseController { private static final Logger log = LoggerFactory.getLogger(CommonController.class); @Autowired private ServerConfig serverConfig; + private static final String FILE_DELIMETER = ","; + /** * 通用下载请求 * * @param fileName 文件名称 * @param delete 是否删除 */ - @GetMapping("common/download") + @ApiOperation("通用下载请求") + @GetMapping("/download") public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) { try @@ -64,9 +76,10 @@ public class CommonController } /** - * 通用上传请求 + * 通用上传请求(单个) */ - @PostMapping("/common/upload") + @ApiOperation("通用上传请求(单个)") + @PostMapping("/upload") public AjaxResult uploadFile(MultipartFile file) throws Exception { try @@ -77,8 +90,48 @@ public class CommonController String fileName = FileUploadUtils.upload(filePath, file); String url = serverConfig.getUrl() + fileName; AjaxResult ajax = AjaxResult.success(); - ajax.put("fileName", fileName); ajax.put("url", url); + ajax.put("fileName", fileName); + ajax.put("newFileName", FileUtils.getName(fileName)); + ajax.put("originalFilename", file.getOriginalFilename()); + return ajax; + } + catch (Exception e) + { + return AjaxResult.error(e.getMessage()); + } + } + + /** + * 通用上传请求(多个) + */ + @ApiOperation("通用上传请求(多个)") + @PostMapping("/uploads") + public AjaxResult uploadFiles(List files) throws Exception + { + try + { + // 上传文件路径 + String filePath = RuoYiConfig.getUploadPath(); + List urls = new ArrayList(); + List fileNames = new ArrayList(); + List newFileNames = new ArrayList(); + List originalFilenames = new ArrayList(); + for (MultipartFile file : files) + { + // 上传并返回新文件名称 + String fileName = FileUploadUtils.upload(filePath, file); + String url = serverConfig.getUrl() + fileName; + urls.add(url); + fileNames.add(fileName); + newFileNames.add(FileUtils.getName(fileName)); + originalFilenames.add(file.getOriginalFilename()); + } + AjaxResult ajax = AjaxResult.success(); + ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER)); + ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER)); + ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER)); + ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER)); return ajax; } catch (Exception e) @@ -90,7 +143,8 @@ public class CommonController /** * 本地资源通用下载 */ - @GetMapping("/common/download/resource") + @ApiOperation("本地资源通用下载") + @GetMapping("/download/resource") public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response) throws Exception { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java index 7b97de2..69470d0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java @@ -1,19 +1,25 @@ package com.ruoyi.web.controller.monitor; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.SysCache; /** * 缓存监控 @@ -27,6 +33,17 @@ public class CacheController @Autowired private RedisTemplate redisTemplate; + private final static List caches = new ArrayList(); + { + caches.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "用户信息")); + caches.add(new SysCache(CacheConstants.SYS_CONFIG_KEY, "配置信息")); + caches.add(new SysCache(CacheConstants.SYS_DICT_KEY, "数据字典")); + caches.add(new SysCache(CacheConstants.CAPTCHA_CODE_KEY, "验证码")); + caches.add(new SysCache(CacheConstants.REPEAT_SUBMIT_KEY, "防重提交")); + caches.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "限流处理")); + caches.add(new SysCache(CacheConstants.PWD_ERR_CNT_KEY, "密码错误次数")); + } + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") @GetMapping() public AjaxResult getInfo() throws Exception @@ -50,4 +67,54 @@ public class CacheController result.put("commandStats", pieList); return AjaxResult.success(result); } + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @GetMapping("/getNames") + public AjaxResult cache() + { + return AjaxResult.success(caches); + } + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @GetMapping("/getKeys/{cacheName}") + public AjaxResult getCacheKeys(@PathVariable String cacheName) + { + Set cacheKeys = redisTemplate.keys(cacheName + "*"); + return AjaxResult.success(cacheKeys); + } + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @GetMapping("/getValue/{cacheName}/{cacheKey}") + public AjaxResult getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey) + { + String cacheValue = redisTemplate.opsForValue().get(cacheKey); + SysCache sysCache = new SysCache(cacheName, cacheKey, cacheValue); + return AjaxResult.success(sysCache); + } + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @DeleteMapping("/clearCacheName/{cacheName}") + public AjaxResult clearCacheName(@PathVariable String cacheName) + { + Collection cacheKeys = redisTemplate.keys(cacheName + "*"); + redisTemplate.delete(cacheKeys); + return AjaxResult.success(); + } + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @DeleteMapping("/clearCacheKey/{cacheKey}") + public AjaxResult clearCacheKey(@PathVariable String cacheKey) + { + redisTemplate.delete(cacheKey); + return AjaxResult.success(); + } + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @DeleteMapping("/clearCacheAll") + public AjaxResult clearCacheAll() + { + Collection cacheKeys = redisTemplate.keys("*"); + redisTemplate.delete(cacheKeys); + return AjaxResult.success(); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java index 339f242..e0175f4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java @@ -1,11 +1,13 @@ package com.ruoyi.web.controller.monitor; import java.util.List; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; @@ -14,6 +16,7 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.framework.web.service.SysPasswordService; import com.ruoyi.system.domain.SysLogininfor; import com.ruoyi.system.service.ISysLogininforService; @@ -29,6 +32,9 @@ public class SysLogininforController extends BaseController @Autowired private ISysLogininforService logininforService; + @Autowired + private SysPasswordService passwordService; + @PreAuthorize("@ss.hasPermi('monitor:logininfor:list')") @GetMapping("/list") public TableDataInfo list(SysLogininfor logininfor) @@ -40,12 +46,12 @@ public class SysLogininforController extends BaseController @Log(title = "登录日志", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('monitor:logininfor:export')") - @GetMapping("/export") - public AjaxResult export(SysLogininfor logininfor) + @PostMapping("/export") + public void export(HttpServletResponse response, SysLogininfor logininfor) { List list = logininforService.selectLogininforList(logininfor); ExcelUtil util = new ExcelUtil(SysLogininfor.class); - return util.exportExcel(list, "登录日志"); + util.exportExcel(response, list, "登录日志"); } @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')") @@ -62,6 +68,15 @@ public class SysLogininforController extends BaseController public AjaxResult clean() { logininforService.cleanLogininfor(); - return AjaxResult.success(); + return success(); + } + + @PreAuthorize("@ss.hasPermi('monitor:logininfor:unlock')") + @Log(title = "账户解锁", businessType = BusinessType.OTHER) + @GetMapping("/unlock/{userName}") + public AjaxResult unlock(@PathVariable("userName") String userName) + { + passwordService.clearLoginRecordCache(userName); + return success(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java index 1d7eb02..6ca78cf 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java @@ -1,11 +1,13 @@ package com.ruoyi.web.controller.monitor; import java.util.List; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; @@ -40,12 +42,12 @@ public class SysOperlogController extends BaseController @Log(title = "操作日志", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('monitor:operlog:export')") - @GetMapping("/export") - public AjaxResult export(SysOperLog operLog) + @PostMapping("/export") + public void export(HttpServletResponse response, SysOperLog operLog) { List list = operLogService.selectOperLogList(operLog); ExcelUtil util = new ExcelUtil(SysOperLog.class); - return util.exportExcel(list, "操作日志"); + util.exportExcel(response, list, "操作日志"); } @Log(title = "操作日志", businessType = BusinessType.DELETE) @@ -62,6 +64,6 @@ public class SysOperlogController extends BaseController public AjaxResult clean() { operLogService.cleanOperLog(); - return AjaxResult.success(); + return success(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java index 9b157ea..a442863 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.model.LoginUser; @@ -42,31 +42,22 @@ public class SysUserOnlineController extends BaseController @GetMapping("/list") public TableDataInfo list(String ipaddr, String userName) { - Collection keys = redisCache.keys(Constants.LOGIN_TOKEN_KEY + "*"); + Collection keys = redisCache.keys(CacheConstants.LOGIN_TOKEN_KEY + "*"); List userOnlineList = new ArrayList(); for (String key : keys) { LoginUser user = redisCache.getCacheObject(key); if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) { - if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername())) - { - userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user)); - } + userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user)); } else if (StringUtils.isNotEmpty(ipaddr)) { - if (StringUtils.equals(ipaddr, user.getIpaddr())) - { - userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user)); - } + userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user)); } else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser())) { - if (StringUtils.equals(userName, user.getUsername())) - { - userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user)); - } + userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user)); } else { @@ -86,7 +77,7 @@ public class SysUserOnlineController extends BaseController @DeleteMapping("/{tokenId}") public AjaxResult forceLogout(@PathVariable String tokenId) { - redisCache.deleteObject(Constants.LOGIN_TOKEN_KEY + tokenId); - return AjaxResult.success(); + redisCache.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId); + return success(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java index f44c392..ab4653d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.system; import java.util.List; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -13,8 +14,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.annotation.RepeatSubmit; -import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; @@ -49,12 +48,12 @@ public class SysConfigController extends BaseController @Log(title = "参数管理", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:config:export')") - @GetMapping("/export") - public AjaxResult export(SysConfig config) + @PostMapping("/export") + public void export(HttpServletResponse response, SysConfig config) { List list = configService.selectConfigList(config); ExcelUtil util = new ExcelUtil(SysConfig.class); - return util.exportExcel(list, "参数数据"); + util.exportExcel(response, list, "参数数据"); } /** @@ -64,7 +63,7 @@ public class SysConfigController extends BaseController @GetMapping(value = "/{configId}") public AjaxResult getInfo(@PathVariable Long configId) { - return AjaxResult.success(configService.selectConfigById(configId)); + return success(configService.selectConfigById(configId)); } /** @@ -73,7 +72,7 @@ public class SysConfigController extends BaseController @GetMapping(value = "/configKey/{configKey}") public AjaxResult getConfigKey(@PathVariable String configKey) { - return AjaxResult.success(configService.selectConfigByKey(configKey)); + return success(configService.selectConfigByKey(configKey)); } /** @@ -82,12 +81,11 @@ public class SysConfigController extends BaseController @PreAuthorize("@ss.hasPermi('system:config:add')") @Log(title = "参数管理", businessType = BusinessType.INSERT) @PostMapping - @RepeatSubmit public AjaxResult add(@Validated @RequestBody SysConfig config) { - if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) + if (!configService.checkConfigKeyUnique(config)) { - return AjaxResult.error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); + return error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); } config.setCreateBy(getUsername()); return toAjax(configService.insertConfig(config)); @@ -101,9 +99,9 @@ public class SysConfigController extends BaseController @PutMapping public AjaxResult edit(@Validated @RequestBody SysConfig config) { - if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) + if (!configService.checkConfigKeyUnique(config)) { - return AjaxResult.error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); + return error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); } config.setUpdateBy(getUsername()); return toAjax(configService.updateConfig(config)); @@ -130,6 +128,6 @@ public class SysConfigController extends BaseController public AjaxResult refreshCache() { configService.resetConfigCache(); - return AjaxResult.success(); + return success(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java index a6030ea..59e7588 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.system; -import java.util.Iterator; import java.util.List; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -43,7 +42,7 @@ public class SysDeptController extends BaseController public AjaxResult list(SysDept dept) { List depts = deptService.selectDeptList(dept); - return AjaxResult.success(depts); + return success(depts); } /** @@ -54,17 +53,8 @@ public class SysDeptController extends BaseController public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) { List depts = deptService.selectDeptList(new SysDept()); - Iterator it = depts.iterator(); - while (it.hasNext()) - { - SysDept d = (SysDept) it.next(); - if (d.getDeptId().intValue() == deptId - || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")) - { - it.remove(); - } - } - return AjaxResult.success(depts); + depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")); + return success(depts); } /** @@ -75,30 +65,7 @@ public class SysDeptController extends BaseController public AjaxResult getInfo(@PathVariable Long deptId) { deptService.checkDeptDataScope(deptId); - return AjaxResult.success(deptService.selectDeptById(deptId)); - } - - /** - * 获取部门下拉树列表 - */ - @GetMapping("/treeselect") - public AjaxResult treeselect(SysDept dept) - { - List depts = deptService.selectDeptList(dept); - return AjaxResult.success(deptService.buildDeptTreeSelect(depts)); - } - - /** - * 加载对应角色部门列表树 - */ - @GetMapping(value = "/roleDeptTreeselect/{roleId}") - public AjaxResult roleDeptTreeselect(@PathVariable("roleId") Long roleId) - { - List depts = deptService.selectDeptList(new SysDept()); - AjaxResult ajax = AjaxResult.success(); - ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); - ajax.put("depts", deptService.buildDeptTreeSelect(depts)); - return ajax; + return success(deptService.selectDeptById(deptId)); } /** @@ -109,9 +76,9 @@ public class SysDeptController extends BaseController @PostMapping public AjaxResult add(@Validated @RequestBody SysDept dept) { - if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) + if (!deptService.checkDeptNameUnique(dept)) { - return AjaxResult.error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); + return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); } dept.setCreateBy(getUsername()); return toAjax(deptService.insertDept(dept)); @@ -125,18 +92,19 @@ public class SysDeptController extends BaseController @PutMapping public AjaxResult edit(@Validated @RequestBody SysDept dept) { - if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) + Long deptId = dept.getDeptId(); + deptService.checkDeptDataScope(deptId); + if (!deptService.checkDeptNameUnique(dept)) { - return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); + return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); } - else if (dept.getParentId().equals(dept.getDeptId())) + else if (dept.getParentId().equals(deptId)) { - return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); + return error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); } - else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) - && deptService.selectNormalChildrenDeptById(dept.getDeptId()) > 0) + else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) { - return AjaxResult.error("该部门包含未停用的子部门!"); + return error("该部门包含未停用的子部门!"); } dept.setUpdateBy(getUsername()); return toAjax(deptService.updateDept(dept)); @@ -152,12 +120,13 @@ public class SysDeptController extends BaseController { if (deptService.hasChildByDeptId(deptId)) { - return AjaxResult.error("存在下级部门,不允许删除"); + return warn("存在下级部门,不允许删除"); } if (deptService.checkDeptExistUser(deptId)) { - return AjaxResult.error("部门存在用户,不允许删除"); + return warn("部门存在用户,不允许删除"); } + deptService.checkDeptDataScope(deptId); return toAjax(deptService.deleteDeptById(deptId)); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java index 7609689..59becaf 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java @@ -2,6 +2,7 @@ package com.ruoyi.web.controller.system; import java.util.ArrayList; import java.util.List; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -50,12 +51,12 @@ public class SysDictDataController extends BaseController @Log(title = "字典数据", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:dict:export')") - @GetMapping("/export") - public AjaxResult export(SysDictData dictData) + @PostMapping("/export") + public void export(HttpServletResponse response, SysDictData dictData) { List list = dictDataService.selectDictDataList(dictData); ExcelUtil util = new ExcelUtil(SysDictData.class); - return util.exportExcel(list, "字典数据"); + util.exportExcel(response, list, "字典数据"); } /** @@ -65,7 +66,7 @@ public class SysDictDataController extends BaseController @GetMapping(value = "/{dictCode}") public AjaxResult getInfo(@PathVariable Long dictCode) { - return AjaxResult.success(dictDataService.selectDictDataById(dictCode)); + return success(dictDataService.selectDictDataById(dictCode)); } /** @@ -79,7 +80,7 @@ public class SysDictDataController extends BaseController { data = new ArrayList(); } - return AjaxResult.success(data); + return success(data); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java index c2e4d74..c53867c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.system; import java.util.List; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -13,7 +14,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysDictType; @@ -45,12 +45,12 @@ public class SysDictTypeController extends BaseController @Log(title = "字典类型", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:dict:export')") - @GetMapping("/export") - public AjaxResult export(SysDictType dictType) + @PostMapping("/export") + public void export(HttpServletResponse response, SysDictType dictType) { List list = dictTypeService.selectDictTypeList(dictType); ExcelUtil util = new ExcelUtil(SysDictType.class); - return util.exportExcel(list, "字典类型"); + util.exportExcel(response, list, "字典类型"); } /** @@ -60,7 +60,7 @@ public class SysDictTypeController extends BaseController @GetMapping(value = "/{dictId}") public AjaxResult getInfo(@PathVariable Long dictId) { - return AjaxResult.success(dictTypeService.selectDictTypeById(dictId)); + return success(dictTypeService.selectDictTypeById(dictId)); } /** @@ -71,9 +71,9 @@ public class SysDictTypeController extends BaseController @PostMapping public AjaxResult add(@Validated @RequestBody SysDictType dict) { - if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) + if (!dictTypeService.checkDictTypeUnique(dict)) { - return AjaxResult.error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); + return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); } dict.setCreateBy(getUsername()); return toAjax(dictTypeService.insertDictType(dict)); @@ -87,9 +87,9 @@ public class SysDictTypeController extends BaseController @PutMapping public AjaxResult edit(@Validated @RequestBody SysDictType dict) { - if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) + if (!dictTypeService.checkDictTypeUnique(dict)) { - return AjaxResult.error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); + return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); } dict.setUpdateBy(getUsername()); return toAjax(dictTypeService.updateDictType(dict)); @@ -116,7 +116,7 @@ public class SysDictTypeController extends BaseController public AjaxResult refreshCache() { dictTypeService.resetDictCache(); - return AjaxResult.success(); + return success(); } /** @@ -126,6 +126,6 @@ public class SysDictTypeController extends BaseController public AjaxResult optionselect() { List dictTypes = dictTypeService.selectDictTypeAll(); - return AjaxResult.success(dictTypes); + return success(dictTypes); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java index 4a9f73f..03b6b65 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java @@ -41,7 +41,7 @@ public class SysMenuController extends BaseController public AjaxResult list(SysMenu menu) { List menus = menuService.selectMenuList(menu, getUserId()); - return AjaxResult.success(menus); + return success(menus); } /** @@ -51,7 +51,7 @@ public class SysMenuController extends BaseController @GetMapping(value = "/{menuId}") public AjaxResult getInfo(@PathVariable Long menuId) { - return AjaxResult.success(menuService.selectMenuById(menuId)); + return success(menuService.selectMenuById(menuId)); } /** @@ -61,7 +61,7 @@ public class SysMenuController extends BaseController public AjaxResult treeselect(SysMenu menu) { List menus = menuService.selectMenuList(menu, getUserId()); - return AjaxResult.success(menuService.buildMenuTreeSelect(menus)); + return success(menuService.buildMenuTreeSelect(menus)); } /** @@ -85,13 +85,13 @@ public class SysMenuController extends BaseController @PostMapping public AjaxResult add(@Validated @RequestBody SysMenu menu) { - if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) + if (!menuService.checkMenuNameUnique(menu)) { - return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); + return error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) { - return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + return error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); } menu.setCreateBy(getUsername()); return toAjax(menuService.insertMenu(menu)); @@ -105,17 +105,17 @@ public class SysMenuController extends BaseController @PutMapping public AjaxResult edit(@Validated @RequestBody SysMenu menu) { - if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) + if (!menuService.checkMenuNameUnique(menu)) { - return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); + return error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) { - return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + return error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); } else if (menu.getMenuId().equals(menu.getParentId())) { - return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); + return error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); } menu.setUpdateBy(getUsername()); return toAjax(menuService.updateMenu(menu)); @@ -131,11 +131,11 @@ public class SysMenuController extends BaseController { if (menuService.hasChildByMenuId(menuId)) { - return AjaxResult.error("存在子菜单,不允许删除"); + return warn("存在子菜单,不允许删除"); } if (menuService.checkMenuExistRole(menuId)) { - return AjaxResult.error("菜单已分配,不允许删除"); + return warn("菜单已分配,不允许删除"); } return toAjax(menuService.deleteMenuById(menuId)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java index 4da9f04..8622828 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java @@ -51,7 +51,7 @@ public class SysNoticeController extends BaseController @GetMapping(value = "/{noticeId}") public AjaxResult getInfo(@PathVariable Long noticeId) { - return AjaxResult.success(noticeService.selectNoticeById(noticeId)); + return success(noticeService.selectNoticeById(noticeId)); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java index c2501c7..c37a543 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.system; import java.util.List; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -13,7 +14,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; @@ -48,12 +48,12 @@ public class SysPostController extends BaseController @Log(title = "岗位管理", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:post:export')") - @GetMapping("/export") - public AjaxResult export(SysPost post) + @PostMapping("/export") + public void export(HttpServletResponse response, SysPost post) { List list = postService.selectPostList(post); ExcelUtil util = new ExcelUtil(SysPost.class); - return util.exportExcel(list, "岗位数据"); + util.exportExcel(response, list, "岗位数据"); } /** @@ -63,7 +63,7 @@ public class SysPostController extends BaseController @GetMapping(value = "/{postId}") public AjaxResult getInfo(@PathVariable Long postId) { - return AjaxResult.success(postService.selectPostById(postId)); + return success(postService.selectPostById(postId)); } /** @@ -74,13 +74,13 @@ public class SysPostController extends BaseController @PostMapping public AjaxResult add(@Validated @RequestBody SysPost post) { - if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) + if (!postService.checkPostNameUnique(post)) { - return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); + return error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); } - else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) + else if (!postService.checkPostCodeUnique(post)) { - return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + return error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); } post.setCreateBy(getUsername()); return toAjax(postService.insertPost(post)); @@ -94,13 +94,13 @@ public class SysPostController extends BaseController @PutMapping public AjaxResult edit(@Validated @RequestBody SysPost post) { - if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) + if (!postService.checkPostNameUnique(post)) { - return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); + return error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); } - else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) + else if (!postService.checkPostCodeUnique(post)) { - return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + return error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); } post.setUpdateBy(getUsername()); return toAjax(postService.updatePost(post)); @@ -124,6 +124,6 @@ public class SysPostController extends BaseController public AjaxResult optionselect() { List posts = postService.selectPostAll(); - return AjaxResult.success(posts); + return success(posts); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index 90eb8f3..87a6e60 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.system; -import java.io.IOException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -12,7 +11,6 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; @@ -21,6 +19,7 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.FileUploadUtils; +import com.ruoyi.common.utils.file.MimeTypeUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.service.ISysUserService; @@ -60,20 +59,21 @@ public class SysProfileController extends BaseController @PutMapping public AjaxResult updateProfile(@RequestBody SysUser user) { - if (StringUtils.isNotEmpty(user.getPhonenumber()) - && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) + LoginUser loginUser = getLoginUser(); + SysUser sysUser = loginUser.getUser(); + user.setUserName(sysUser.getUserName()); + if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); + return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); } - if (StringUtils.isNotEmpty(user.getEmail()) - && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) + if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } - LoginUser loginUser = getLoginUser(); - SysUser sysUser = loginUser.getUser(); user.setUserId(sysUser.getUserId()); user.setPassword(null); + user.setAvatar(null); + user.setDeptId(null); if (userService.updateUserProfile(user) > 0) { // 更新缓存用户信息 @@ -82,9 +82,9 @@ public class SysProfileController extends BaseController sysUser.setEmail(user.getEmail()); sysUser.setSex(user.getSex()); tokenService.setLoginUser(loginUser); - return AjaxResult.success(); + return success(); } - return AjaxResult.error("修改个人信息异常,请联系管理员"); + return error("修改个人信息异常,请联系管理员"); } /** @@ -99,20 +99,20 @@ public class SysProfileController extends BaseController String password = loginUser.getPassword(); if (!SecurityUtils.matchesPassword(oldPassword, password)) { - return AjaxResult.error("修改密码失败,旧密码错误"); + return error("修改密码失败,旧密码错误"); } if (SecurityUtils.matchesPassword(newPassword, password)) { - return AjaxResult.error("新密码不能与旧密码相同"); + return error("新密码不能与旧密码相同"); } if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) { // 更新缓存用户密码 loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword)); tokenService.setLoginUser(loginUser); - return AjaxResult.success(); + return success(); } - return AjaxResult.error("修改密码异常,请联系管理员"); + return error("修改密码异常,请联系管理员"); } /** @@ -120,12 +120,12 @@ public class SysProfileController extends BaseController */ @Log(title = "用户头像", businessType = BusinessType.UPDATE) @PostMapping("/avatar") - public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException + public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception { if (!file.isEmpty()) { LoginUser loginUser = getLoginUser(); - String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file); + String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION); if (userService.updateUserAvatar(loginUser.getUsername(), avatar)) { AjaxResult ajax = AjaxResult.success(); @@ -136,6 +136,6 @@ public class SysProfileController extends BaseController return ajax; } } - return AjaxResult.error("上传图片异常,请联系管理员"); + return error("上传图片异常,请联系管理员"); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java index 762f1d9..fe19249 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java @@ -1,13 +1,13 @@ package com.ruoyi.web.controller.system; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.model.RegisterBody; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.service.SysRegisterService; import com.ruoyi.system.service.ISysConfigService; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java index 4a876ab..232c5fa 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.system; import java.util.List; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -13,9 +14,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; @@ -26,6 +27,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.web.service.SysPermissionService; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; @@ -43,13 +45,16 @@ public class SysRoleController extends BaseController @Autowired private TokenService tokenService; - + @Autowired private SysPermissionService permissionService; - + @Autowired private ISysUserService userService; + @Autowired + private ISysDeptService deptService; + @PreAuthorize("@ss.hasPermi('system:role:list')") @GetMapping("/list") public TableDataInfo list(SysRole role) @@ -61,12 +66,12 @@ public class SysRoleController extends BaseController @Log(title = "角色管理", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:role:export')") - @GetMapping("/export") - public AjaxResult export(SysRole role) + @PostMapping("/export") + public void export(HttpServletResponse response, SysRole role) { List list = roleService.selectRoleList(role); ExcelUtil util = new ExcelUtil(SysRole.class); - return util.exportExcel(list, "角色数据"); + util.exportExcel(response, list, "角色数据"); } /** @@ -77,7 +82,7 @@ public class SysRoleController extends BaseController public AjaxResult getInfo(@PathVariable Long roleId) { roleService.checkRoleDataScope(roleId); - return AjaxResult.success(roleService.selectRoleById(roleId)); + return success(roleService.selectRoleById(roleId)); } /** @@ -88,13 +93,13 @@ public class SysRoleController extends BaseController @PostMapping public AjaxResult add(@Validated @RequestBody SysRole role) { - if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) + if (!roleService.checkRoleNameUnique(role)) { - return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); + return error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); } - else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) + else if (!roleService.checkRoleKeyUnique(role)) { - return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); + return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); } role.setCreateBy(getUsername()); return toAjax(roleService.insertRole(role)); @@ -110,13 +115,14 @@ public class SysRoleController extends BaseController public AjaxResult edit(@Validated @RequestBody SysRole role) { roleService.checkRoleAllowed(role); - if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) + roleService.checkRoleDataScope(role.getRoleId()); + if (!roleService.checkRoleNameUnique(role)) { - return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); + return error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); } - else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) + else if (!roleService.checkRoleKeyUnique(role)) { - return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); + return error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); } role.setUpdateBy(getUsername()); @@ -130,9 +136,9 @@ public class SysRoleController extends BaseController loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName())); tokenService.setLoginUser(loginUser); } - return AjaxResult.success(); + return success(); } - return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); + return error("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); } /** @@ -144,6 +150,7 @@ public class SysRoleController extends BaseController public AjaxResult dataScope(@RequestBody SysRole role) { roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); return toAjax(roleService.authDataScope(role)); } @@ -156,6 +163,7 @@ public class SysRoleController extends BaseController public AjaxResult changeStatus(@RequestBody SysRole role) { roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); role.setUpdateBy(getUsername()); return toAjax(roleService.updateRoleStatus(role)); } @@ -178,7 +186,7 @@ public class SysRoleController extends BaseController @GetMapping("/optionselect") public AjaxResult optionselect() { - return AjaxResult.success(roleService.selectRoleAll()); + return success(roleService.selectRoleAll()); } /** @@ -235,6 +243,20 @@ public class SysRoleController extends BaseController @PutMapping("/authUser/selectAll") public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) { + roleService.checkRoleDataScope(roleId); return toAjax(roleService.insertAuthUsers(roleId, userIds)); } + + /** + * 获取对应角色部门树列表 + */ + @PreAuthorize("@ss.hasPermi('system:role:query')") + @GetMapping(value = "/deptTree/{roleId}") + public AjaxResult deptTree(@PathVariable("roleId") Long roleId) + { + AjaxResult ajax = AjaxResult.success(); + ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); + ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); + return ajax; + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 619f6f1..256367b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -2,6 +2,7 @@ package com.ruoyi.web.controller.system; import java.util.List; import java.util.stream.Collectors; +import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -16,9 +17,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.TableDataInfo; @@ -26,6 +27,7 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysPostService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; @@ -45,6 +47,9 @@ public class SysUserController extends BaseController @Autowired private ISysRoleService roleService; + @Autowired + private ISysDeptService deptService; + @Autowired private ISysPostService postService; @@ -62,12 +67,12 @@ public class SysUserController extends BaseController @Log(title = "用户管理", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:user:export')") - @GetMapping("/export") - public AjaxResult export(SysUser user) + @PostMapping("/export") + public void export(HttpServletResponse response, SysUser user) { List list = userService.selectUserList(user); ExcelUtil util = new ExcelUtil(SysUser.class); - return util.exportExcel(list, "用户数据"); + util.exportExcel(response, list, "用户数据"); } @Log(title = "用户管理", businessType = BusinessType.IMPORT) @@ -79,14 +84,14 @@ public class SysUserController extends BaseController List userList = util.importExcel(file.getInputStream()); String operName = getUsername(); String message = userService.importUser(userList, updateSupport, operName); - return AjaxResult.success(message); + return success(message); } - @GetMapping("/importTemplate") - public AjaxResult importTemplate() + @PostMapping("/importTemplate") + public void importTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil(SysUser.class); - return util.importTemplateExcel("用户数据"); + util.importTemplateExcel(response, "用户数据"); } /** @@ -103,9 +108,10 @@ public class SysUserController extends BaseController ajax.put("posts", postService.selectPostAll()); if (StringUtils.isNotNull(userId)) { - ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId)); + SysUser sysUser = userService.selectUserById(userId); + ajax.put(AjaxResult.DATA_TAG, sysUser); ajax.put("postIds", postService.selectPostListByUserId(userId)); - ajax.put("roleIds", roleService.selectRoleListByUserId(userId)); + ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); } return ajax; } @@ -118,19 +124,17 @@ public class SysUserController extends BaseController @PostMapping public AjaxResult add(@Validated @RequestBody SysUser user) { - if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) + if (!userService.checkUserNameUnique(user)) { - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); + return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); } - else if (StringUtils.isNotEmpty(user.getPhonenumber()) - && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) + else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); + return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); } - else if (StringUtils.isNotEmpty(user.getEmail()) - && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) + else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setCreateBy(getUsername()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); @@ -146,15 +150,18 @@ public class SysUserController extends BaseController public AjaxResult edit(@Validated @RequestBody SysUser user) { userService.checkUserAllowed(user); - if (StringUtils.isNotEmpty(user.getPhonenumber()) - && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) + userService.checkUserDataScope(user.getUserId()); + if (!userService.checkUserNameUnique(user)) + { + return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在"); + } + else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); + return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); } - else if (StringUtils.isNotEmpty(user.getEmail()) - && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) + else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setUpdateBy(getUsername()); return toAjax(userService.updateUser(user)); @@ -184,6 +191,7 @@ public class SysUserController extends BaseController public AjaxResult resetPwd(@RequestBody SysUser user) { userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); user.setUpdateBy(getUsername()); return toAjax(userService.resetPwd(user)); @@ -198,6 +206,7 @@ public class SysUserController extends BaseController public AjaxResult changeStatus(@RequestBody SysUser user) { userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); user.setUpdateBy(getUsername()); return toAjax(userService.updateUserStatus(user)); } @@ -225,7 +234,18 @@ public class SysUserController extends BaseController @PutMapping("/authRole") public AjaxResult insertAuthRole(Long userId, Long[] roleIds) { + userService.checkUserDataScope(userId); userService.insertUserAuth(userId, roleIds); return success(); } + + /** + * 获取部门树列表 + */ + @PreAuthorize("@ss.hasPermi('system:user:list')") + @GetMapping("/deptTree") + public AjaxResult deptTree(SysDept dept) + { + return success(deptService.selectDeptTreeList(dept)); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java index 381ab13..b4f6bac 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java @@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.StringUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -40,73 +40,75 @@ public class TestController extends BaseController @ApiOperation("获取用户列表") @GetMapping("/list") - public AjaxResult userList() + public R> userList() { List userList = new ArrayList(users.values()); - return AjaxResult.success(userList); + return R.ok(userList); } @ApiOperation("获取用户详细") - @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path") + @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class) @GetMapping("/{userId}") - public AjaxResult getUser(@PathVariable Integer userId) + public R getUser(@PathVariable Integer userId) { if (!users.isEmpty() && users.containsKey(userId)) { - return AjaxResult.success(users.get(userId)); + return R.ok(users.get(userId)); } else { - return error("用户不存在"); + return R.fail("用户不存在"); } } @ApiOperation("新增用户") @ApiImplicitParams({ - @ApiImplicitParam(name = "userId", value = "用户id", dataType = "Integer"), - @ApiImplicitParam(name = "username", value = "用户名称", dataType = "String"), - @ApiImplicitParam(name = "password", value = "用户密码", dataType = "String"), - @ApiImplicitParam(name = "mobile", value = "用户手机", dataType = "String") + @ApiImplicitParam(name = "userId", value = "用户id", dataType = "Integer", dataTypeClass = Integer.class), + @ApiImplicitParam(name = "username", value = "用户名称", dataType = "String", dataTypeClass = String.class), + @ApiImplicitParam(name = "password", value = "用户密码", dataType = "String", dataTypeClass = String.class), + @ApiImplicitParam(name = "mobile", value = "用户手机", dataType = "String", dataTypeClass = String.class) }) @PostMapping("/save") - public AjaxResult save(UserEntity user) + public R save(UserEntity user) { if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId())) { - return error("用户ID不能为空"); + return R.fail("用户ID不能为空"); } - return AjaxResult.success(users.put(user.getUserId(), user)); + users.put(user.getUserId(), user); + return R.ok(); } @ApiOperation("更新用户") @PutMapping("/update") - public AjaxResult update(@RequestBody UserEntity user) + public R update(@RequestBody UserEntity user) { if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId())) { - return error("用户ID不能为空"); + return R.fail("用户ID不能为空"); } if (users.isEmpty() || !users.containsKey(user.getUserId())) { - return error("用户不存在"); + return R.fail("用户不存在"); } users.remove(user.getUserId()); - return AjaxResult.success(users.put(user.getUserId(), user)); + users.put(user.getUserId(), user); + return R.ok(); } @ApiOperation("删除用户信息") - @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path") + @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class) @DeleteMapping("/{userId}") - public AjaxResult delete(@PathVariable Integer userId) + public R delete(@PathVariable Integer userId) { if (!users.isEmpty() && users.containsKey(userId)) { users.remove(userId); - return success(); + return R.ok(); } else { - return error("用户不存在"); + return R.fail("用户不存在"); } } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java index ae1c3ec..4b5425d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java @@ -1,44 +1,43 @@ package com.ruoyi.web.core.config; -import java.util.ArrayList; -import java.util.List; +import com.ruoyi.common.config.RuoYiConfig; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import com.ruoyi.common.config.RuoYiConfig; -import io.swagger.annotations.ApiOperation; -import io.swagger.models.auth.In; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.ApiKey; -import springfox.documentation.service.AuthorizationScope; import springfox.documentation.service.Contact; -import springfox.documentation.service.SecurityReference; -import springfox.documentation.service.SecurityScheme; import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; /** * Swagger2的接口配置 - * + * * @author ruoyi */ @Configuration -public class SwaggerConfig -{ - /** 系统基础配置 */ +@EnableSwagger2WebMvc +public class SwaggerConfig { + /** + * 系统基础配置 + */ @Autowired private RuoYiConfig ruoyiConfig; - /** 是否开启swagger */ + /** + * 是否开启swagger + */ @Value("${swagger.enabled}") private boolean enabled; - /** 设置请求的统一前缀 */ + /** + * 设置请求的统一前缀 + */ @Value("${swagger.pathMapping}") private String pathMapping; @@ -46,11 +45,12 @@ public class SwaggerConfig * 创建API */ @Bean - public Docket createRestApi() - { - return new Docket(DocumentationType.OAS_30) + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) // 是否启用Swagger .enable(enabled) + //分组名称 + .groupName("木渎") // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息) .apiInfo(apiInfo()) // 设置哪些接口暴露给Swagger展示 @@ -62,60 +62,21 @@ public class SwaggerConfig // 扫描所有 .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build() - /* 设置安全模式,swagger可以设置访问token */ - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()) .pathMapping(pathMapping); - } - - /** - * 安全模式,这里指定token通过Authorization头请求头传递 - */ - private List securitySchemes() - { - List apiKeyList = new ArrayList(); - apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue())); - return apiKeyList; - } - /** - * 安全上下文 - */ - private List securityContexts() - { - List securityContexts = new ArrayList<>(); - securityContexts.add( - SecurityContext.builder() - .securityReferences(defaultAuth()) - .operationSelector(o -> o.requestMappingPattern().matches("/.*")) - .build()); - return securityContexts; } - /** - * 默认的安全上引用 - */ - private List defaultAuth() - { - AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); - AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; - authorizationScopes[0] = authorizationScope; - List securityReferences = new ArrayList<>(); - securityReferences.add(new SecurityReference("Authorization", authorizationScopes)); - return securityReferences; - } /** * 添加摘要信息 */ - private ApiInfo apiInfo() - { + private ApiInfo apiInfo() { // 用ApiInfoBuilder进行定制 return new ApiInfoBuilder() // 设置标题 - .title("标题:若依管理系统_接口文档") + .title("木渎管理系统_接口文档") // 描述 - .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") + .description("描述:用于木渎管理系统") // 作者信息 .contact(new Contact(ruoyiConfig.getName(), null, null)) // 版本 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcCommentatorController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcCommentatorController.java new file mode 100644 index 0000000..976ade5 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcCommentatorController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcCommentator; +import com.ruoyi.zongzhi.service.ITcCommentatorService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 网评员Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/commentator") +@Api(tags = " 网评员") +public class TcCommentatorController extends BaseController +{ + @Autowired + private ITcCommentatorService tcCommentatorService; + + /** + * 查询网评员列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:commentator:list')") + @GetMapping("/list") + public TableDataInfo list(TcCommentator tcCommentator) + { + startPage(); + List list = tcCommentatorService.selectTcCommentatorList(tcCommentator); + return getDataTable(list); + } + + /** + * 导出网评员列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:commentator:export')") + @Log(title = "网评员", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcCommentator tcCommentator) + { + List list = tcCommentatorService.selectTcCommentatorList(tcCommentator); + ExcelUtil util = new ExcelUtil(TcCommentator.class); + util.exportExcel(response, list, "网评员数据"); + } + + /** + * 获取网评员详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:commentator:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcCommentatorService.selectTcCommentatorById(id)); + } + + /** + * 新增网评员 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:commentator:add')") + @Log(title = "网评员", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcCommentator tcCommentator) + { + return toAjax(tcCommentatorService.insertTcCommentator(tcCommentator)); + } + + /** + * 修改网评员 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:commentator:edit')") + @Log(title = "网评员", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcCommentator tcCommentator) + { + return toAjax(tcCommentatorService.updateTcCommentator(tcCommentator)); + } + + /** + * 删除网评员 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:commentator:remove')") + @Log(title = "网评员", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcCommentatorService.deleteTcCommentatorByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcDataSourceController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcDataSourceController.java new file mode 100644 index 0000000..a032791 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcDataSourceController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcDataSource; +import com.ruoyi.zongzhi.service.ITcDataSourceService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 数据来源Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/source") +@Api(tags = " 数据来源") +public class TcDataSourceController extends BaseController +{ + @Autowired + private ITcDataSourceService tcDataSourceService; + + /** + * 查询数据来源列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:source:list')") + @GetMapping("/list") + public TableDataInfo list(TcDataSource tcDataSource) + { + startPage(); + List list = tcDataSourceService.selectTcDataSourceList(tcDataSource); + return getDataTable(list); + } + + /** + * 导出数据来源列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:source:export')") + @Log(title = "数据来源", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcDataSource tcDataSource) + { + List list = tcDataSourceService.selectTcDataSourceList(tcDataSource); + ExcelUtil util = new ExcelUtil(TcDataSource.class); + util.exportExcel(response, list, "数据来源数据"); + } + + /** + * 获取数据来源详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:source:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcDataSourceService.selectTcDataSourceById(id)); + } + + /** + * 新增数据来源 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:source:add')") + @Log(title = "数据来源", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcDataSource tcDataSource) + { + return toAjax(tcDataSourceService.insertTcDataSource(tcDataSource)); + } + + /** + * 修改数据来源 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:source:edit')") + @Log(title = "数据来源", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcDataSource tcDataSource) + { + return toAjax(tcDataSourceService.updateTcDataSource(tcDataSource)); + } + + /** + * 删除数据来源 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:source:remove')") + @Log(title = "数据来源", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcDataSourceService.deleteTcDataSourceByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcDengbaoSystemController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcDengbaoSystemController.java new file mode 100644 index 0000000..f68bf53 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcDengbaoSystemController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcDengbaoSystem; +import com.ruoyi.zongzhi.service.ITcDengbaoSystemService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 等保系统Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/system") +@Api(tags = " 等保系统") +public class TcDengbaoSystemController extends BaseController +{ + @Autowired + private ITcDengbaoSystemService tcDengbaoSystemService; + + /** + * 查询等保系统列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:system:list')") + @GetMapping("/list") + public TableDataInfo list(TcDengbaoSystem tcDengbaoSystem) + { + startPage(); + List list = tcDengbaoSystemService.selectTcDengbaoSystemList(tcDengbaoSystem); + return getDataTable(list); + } + + /** + * 导出等保系统列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:system:export')") + @Log(title = "等保系统", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcDengbaoSystem tcDengbaoSystem) + { + List list = tcDengbaoSystemService.selectTcDengbaoSystemList(tcDengbaoSystem); + ExcelUtil util = new ExcelUtil(TcDengbaoSystem.class); + util.exportExcel(response, list, "等保系统数据"); + } + + /** + * 获取等保系统详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:system:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcDengbaoSystemService.selectTcDengbaoSystemById(id)); + } + + /** + * 新增等保系统 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:system:add')") + @Log(title = "等保系统", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcDengbaoSystem tcDengbaoSystem) + { + return toAjax(tcDengbaoSystemService.insertTcDengbaoSystem(tcDengbaoSystem)); + } + + /** + * 修改等保系统 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:system:edit')") + @Log(title = "等保系统", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcDengbaoSystem tcDengbaoSystem) + { + return toAjax(tcDengbaoSystemService.updateTcDengbaoSystem(tcDengbaoSystem)); + } + + /** + * 删除等保系统 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:system:remove')") + @Log(title = "等保系统", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcDengbaoSystemService.deleteTcDengbaoSystemByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcDengbaoUnitController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcDengbaoUnitController.java new file mode 100644 index 0000000..84e3c92 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcDengbaoUnitController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcDengbaoUnit; +import com.ruoyi.zongzhi.service.ITcDengbaoUnitService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 等保单位Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/dengbaounit") +@Api(tags = " 等保单位") +public class TcDengbaoUnitController extends BaseController +{ + @Autowired + private ITcDengbaoUnitService tcDengbaoUnitService; + + /** + * 查询等保单位列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:list')") + @GetMapping("/list") + public TableDataInfo list(TcDengbaoUnit tcDengbaoUnit) + { + startPage(); + List list = tcDengbaoUnitService.selectTcDengbaoUnitList(tcDengbaoUnit); + return getDataTable(list); + } + + /** + * 导出等保单位列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:export')") + @Log(title = "等保单位", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcDengbaoUnit tcDengbaoUnit) + { + List list = tcDengbaoUnitService.selectTcDengbaoUnitList(tcDengbaoUnit); + ExcelUtil util = new ExcelUtil(TcDengbaoUnit.class); + util.exportExcel(response, list, "等保单位数据"); + } + + /** + * 获取等保单位详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcDengbaoUnitService.selectTcDengbaoUnitById(id)); + } + + /** + * 新增等保单位 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:add')") + @Log(title = "等保单位", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcDengbaoUnit tcDengbaoUnit) + { + return toAjax(tcDengbaoUnitService.insertTcDengbaoUnit(tcDengbaoUnit)); + } + + /** + * 修改等保单位 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:edit')") + @Log(title = "等保单位", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcDengbaoUnit tcDengbaoUnit) + { + return toAjax(tcDengbaoUnitService.updateTcDengbaoUnit(tcDengbaoUnit)); + } + + /** + * 删除等保单位 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:remove')") + @Log(title = "等保单位", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcDengbaoUnitService.deleteTcDengbaoUnitByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcExtworkSafetyadminController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcExtworkSafetyadminController.java new file mode 100644 index 0000000..c46aa91 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcExtworkSafetyadminController.java @@ -0,0 +1,107 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import io.swagger.annotations.Api; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcExtworkSafetyadmin; +import com.ruoyi.zongzhi.service.ITcExtworkSafetyadminService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 网络安全官Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/safetyadmin") +@Api(tags = "网络安全官") +public class TcExtworkSafetyadminController extends BaseController +{ + @Autowired + private ITcExtworkSafetyadminService tcExtworkSafetyadminService; + + /** + * 查询网络安全官列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:safetyadmin:list')") + @GetMapping("/list") + public TableDataInfo list(TcExtworkSafetyadmin tcExtworkSafetyadmin) + { + startPage(); + List list = tcExtworkSafetyadminService.selectTcExtworkSafetyadminList(tcExtworkSafetyadmin); + return getDataTable(list); + } + + /** + * 导出网络安全官列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:safetyadmin:export')") + @Log(title = "网络安全官", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcExtworkSafetyadmin tcExtworkSafetyadmin) + { + List list = tcExtworkSafetyadminService.selectTcExtworkSafetyadminList(tcExtworkSafetyadmin); + ExcelUtil util = new ExcelUtil(TcExtworkSafetyadmin.class); + util.exportExcel(response, list, "网络安全官数据"); + } + + /** + * 获取网络安全官详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:safetyadmin:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcExtworkSafetyadminService.selectTcExtworkSafetyadminById(id)); + } + + /** + * 新增网络安全官 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:safetyadmin:add')") + @Log(title = "网络安全官", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcExtworkSafetyadmin tcExtworkSafetyadmin) + { + return toAjax(tcExtworkSafetyadminService.insertTcExtworkSafetyadmin(tcExtworkSafetyadmin)); + } + + /** + * 修改网络安全官 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:safetyadmin:edit')") + @Log(title = "网络安全官", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcExtworkSafetyadmin tcExtworkSafetyadmin) + { + return toAjax(tcExtworkSafetyadminService.updateTcExtworkSafetyadmin(tcExtworkSafetyadmin)); + } + + /** + * 删除网络安全官 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:safetyadmin:remove')") + @Log(title = "网络安全官", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcExtworkSafetyadminService.deleteTcExtworkSafetyadminByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcGovernmentWebController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcGovernmentWebController.java new file mode 100644 index 0000000..a733dc4 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcGovernmentWebController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcGovernmentWeb; +import com.ruoyi.zongzhi.service.ITcGovernmentWebService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 政府网站Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/web") +@Api(tags = " 政府网站") +public class TcGovernmentWebController extends BaseController +{ + @Autowired + private ITcGovernmentWebService tcGovernmentWebService; + + /** + * 查询政府网站列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:web:list')") + @GetMapping("/list") + public TableDataInfo list(TcGovernmentWeb tcGovernmentWeb) + { + startPage(); + List list = tcGovernmentWebService.selectTcGovernmentWebList(tcGovernmentWeb); + return getDataTable(list); + } + + /** + * 导出政府网站列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:web:export')") + @Log(title = "政府网站", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcGovernmentWeb tcGovernmentWeb) + { + List list = tcGovernmentWebService.selectTcGovernmentWebList(tcGovernmentWeb); + ExcelUtil util = new ExcelUtil(TcGovernmentWeb.class); + util.exportExcel(response, list, "政府网站数据"); + } + + /** + * 获取政府网站详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:web:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcGovernmentWebService.selectTcGovernmentWebById(id)); + } + + /** + * 新增政府网站 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:web:add')") + @Log(title = "政府网站", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcGovernmentWeb tcGovernmentWeb) + { + return toAjax(tcGovernmentWebService.insertTcGovernmentWeb(tcGovernmentWeb)); + } + + /** + * 修改政府网站 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:web:edit')") + @Log(title = "政府网站", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcGovernmentWeb tcGovernmentWeb) + { + return toAjax(tcGovernmentWebService.updateTcGovernmentWeb(tcGovernmentWeb)); + } + + /** + * 删除政府网站 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:web:remove')") + @Log(title = "政府网站", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcGovernmentWebService.deleteTcGovernmentWebByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcIdcUnitController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcIdcUnitController.java new file mode 100644 index 0000000..4214968 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcIdcUnitController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcIdcUnit; +import com.ruoyi.zongzhi.service.ITcIdcUnitService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * IDC单位Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/unit") +@Api(tags = " IDC单位") +public class TcIdcUnitController extends BaseController +{ + @Autowired + private ITcIdcUnitService tcIdcUnitService; + + /** + * 查询IDC单位列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:list')") + @GetMapping("/list") + public TableDataInfo list(TcIdcUnit tcIdcUnit) + { + startPage(); + List list = tcIdcUnitService.selectTcIdcUnitList(tcIdcUnit); + return getDataTable(list); + } + + /** + * 导出IDC单位列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:export')") + @Log(title = "IDC单位", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcIdcUnit tcIdcUnit) + { + List list = tcIdcUnitService.selectTcIdcUnitList(tcIdcUnit); + ExcelUtil util = new ExcelUtil(TcIdcUnit.class); + util.exportExcel(response, list, "IDC单位数据"); + } + + /** + * 获取IDC单位详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcIdcUnitService.selectTcIdcUnitById(id)); + } + + /** + * 新增IDC单位 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:add')") + @Log(title = "IDC单位", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcIdcUnit tcIdcUnit) + { + return toAjax(tcIdcUnitService.insertTcIdcUnit(tcIdcUnit)); + } + + /** + * 修改IDC单位 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:edit')") + @Log(title = "IDC单位", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcIdcUnit tcIdcUnit) + { + return toAjax(tcIdcUnitService.updateTcIdcUnit(tcIdcUnit)); + } + + /** + * 删除IDC单位 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:remove')") + @Log(title = "IDC单位", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcIdcUnitService.deleteTcIdcUnitByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkArticleController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkArticleController.java new file mode 100644 index 0000000..f219b5f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkArticleController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcNetworkArticle; +import com.ruoyi.zongzhi.service.ITcNetworkArticleService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 网络文章Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/article") +@Api(tags = " 网络文章") +public class TcNetworkArticleController extends BaseController +{ + @Autowired + private ITcNetworkArticleService tcNetworkArticleService; + + /** + * 查询网络文章列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:article:list')") + @GetMapping("/list") + public TableDataInfo list(TcNetworkArticle tcNetworkArticle) + { + startPage(); + List list = tcNetworkArticleService.selectTcNetworkArticleList(tcNetworkArticle); + return getDataTable(list); + } + + /** + * 导出网络文章列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:article:export')") + @Log(title = "网络文章", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcNetworkArticle tcNetworkArticle) + { + List list = tcNetworkArticleService.selectTcNetworkArticleList(tcNetworkArticle); + ExcelUtil util = new ExcelUtil(TcNetworkArticle.class); + util.exportExcel(response, list, "网络文章数据"); + } + + /** + * 获取网络文章详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:article:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcNetworkArticleService.selectTcNetworkArticleById(id)); + } + + /** + * 新增网络文章 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:article:add')") + @Log(title = "网络文章", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcNetworkArticle tcNetworkArticle) + { + return toAjax(tcNetworkArticleService.insertTcNetworkArticle(tcNetworkArticle)); + } + + /** + * 修改网络文章 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:article:edit')") + @Log(title = "网络文章", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcNetworkArticle tcNetworkArticle) + { + return toAjax(tcNetworkArticleService.updateTcNetworkArticle(tcNetworkArticle)); + } + + /** + * 删除网络文章 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:article:remove')") + @Log(title = "网络文章", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcNetworkArticleService.deleteTcNetworkArticleByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkEvaluateController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkEvaluateController.java new file mode 100644 index 0000000..e0617c9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkEvaluateController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcNetworkEvaluate; +import com.ruoyi.zongzhi.service.ITcNetworkEvaluateService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 网评Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/evaluate") +@Api(tags = " 网评") +public class TcNetworkEvaluateController extends BaseController +{ + @Autowired + private ITcNetworkEvaluateService tcNetworkEvaluateService; + + /** + * 查询网评列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:evaluate:list')") + @GetMapping("/list") + public TableDataInfo list(TcNetworkEvaluate tcNetworkEvaluate) + { + startPage(); + List list = tcNetworkEvaluateService.selectTcNetworkEvaluateList(tcNetworkEvaluate); + return getDataTable(list); + } + + /** + * 导出网评列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:evaluate:export')") + @Log(title = "网评", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcNetworkEvaluate tcNetworkEvaluate) + { + List list = tcNetworkEvaluateService.selectTcNetworkEvaluateList(tcNetworkEvaluate); + ExcelUtil util = new ExcelUtil(TcNetworkEvaluate.class); + util.exportExcel(response, list, "网评数据"); + } + + /** + * 获取网评详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:evaluate:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcNetworkEvaluateService.selectTcNetworkEvaluateById(id)); + } + + /** + * 新增网评 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:evaluate:add')") + @Log(title = "网评", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcNetworkEvaluate tcNetworkEvaluate) + { + return toAjax(tcNetworkEvaluateService.insertTcNetworkEvaluate(tcNetworkEvaluate)); + } + + /** + * 修改网评 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:evaluate:edit')") + @Log(title = "网评", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcNetworkEvaluate tcNetworkEvaluate) + { + return toAjax(tcNetworkEvaluateService.updateTcNetworkEvaluate(tcNetworkEvaluate)); + } + + /** + * 删除网评 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:evaluate:remove')") + @Log(title = "网评", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcNetworkEvaluateService.deleteTcNetworkEvaluateByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkMqPrincipalController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkMqPrincipalController.java new file mode 100644 index 0000000..4c49997 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkMqPrincipalController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcNetworkMqPrincipal; +import com.ruoyi.zongzhi.service.ITcNetworkMqPrincipalService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 网络民情责任人Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/principal") +@Api(tags = " 网络民情责任人") +public class TcNetworkMqPrincipalController extends BaseController +{ + @Autowired + private ITcNetworkMqPrincipalService tcNetworkMqPrincipalService; + + /** + * 查询网络民情责任人列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:principal:list')") + @GetMapping("/list") + public TableDataInfo list(TcNetworkMqPrincipal tcNetworkMqPrincipal) + { + startPage(); + List list = tcNetworkMqPrincipalService.selectTcNetworkMqPrincipalList(tcNetworkMqPrincipal); + return getDataTable(list); + } + + /** + * 导出网络民情责任人列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:principal:export')") + @Log(title = "网络民情责任人", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcNetworkMqPrincipal tcNetworkMqPrincipal) + { + List list = tcNetworkMqPrincipalService.selectTcNetworkMqPrincipalList(tcNetworkMqPrincipal); + ExcelUtil util = new ExcelUtil(TcNetworkMqPrincipal.class); + util.exportExcel(response, list, "网络民情责任人数据"); + } + + /** + * 获取网络民情责任人详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:principal:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcNetworkMqPrincipalService.selectTcNetworkMqPrincipalById(id)); + } + + /** + * 新增网络民情责任人 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:principal:add')") + @Log(title = "网络民情责任人", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcNetworkMqPrincipal tcNetworkMqPrincipal) + { + return toAjax(tcNetworkMqPrincipalService.insertTcNetworkMqPrincipal(tcNetworkMqPrincipal)); + } + + /** + * 修改网络民情责任人 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:principal:edit')") + @Log(title = "网络民情责任人", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcNetworkMqPrincipal tcNetworkMqPrincipal) + { + return toAjax(tcNetworkMqPrincipalService.updateTcNetworkMqPrincipal(tcNetworkMqPrincipal)); + } + + /** + * 删除网络民情责任人 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:principal:remove')") + @Log(title = "网络民情责任人", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcNetworkMqPrincipalService.deleteTcNetworkMqPrincipalByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkPingtaiController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkPingtaiController.java new file mode 100644 index 0000000..378249d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkPingtaiController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcNetworkPingtai; +import com.ruoyi.zongzhi.service.ITcNetworkPingtaiService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 网络平台Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/pingtai") +@Api(tags = " 网络平台") +public class TcNetworkPingtaiController extends BaseController +{ + @Autowired + private ITcNetworkPingtaiService tcNetworkPingtaiService; + + /** + * 查询网络平台列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:pingtai:list')") + @GetMapping("/list") + public TableDataInfo list(TcNetworkPingtai tcNetworkPingtai) + { + startPage(); + List list = tcNetworkPingtaiService.selectTcNetworkPingtaiList(tcNetworkPingtai); + return getDataTable(list); + } + + /** + * 导出网络平台列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:pingtai:export')") + @Log(title = "网络平台", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcNetworkPingtai tcNetworkPingtai) + { + List list = tcNetworkPingtaiService.selectTcNetworkPingtaiList(tcNetworkPingtai); + ExcelUtil util = new ExcelUtil(TcNetworkPingtai.class); + util.exportExcel(response, list, "网络平台数据"); + } + + /** + * 获取网络平台详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:pingtai:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcNetworkPingtaiService.selectTcNetworkPingtaiById(id)); + } + + /** + * 新增网络平台 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:pingtai:add')") + @Log(title = "网络平台", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcNetworkPingtai tcNetworkPingtai) + { + return toAjax(tcNetworkPingtaiService.insertTcNetworkPingtai(tcNetworkPingtai)); + } + + /** + * 修改网络平台 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:pingtai:edit')") + @Log(title = "网络平台", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcNetworkPingtai tcNetworkPingtai) + { + return toAjax(tcNetworkPingtaiService.updateTcNetworkPingtai(tcNetworkPingtai)); + } + + /** + * 删除网络平台 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:pingtai:remove')") + @Log(title = "网络平台", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcNetworkPingtaiService.deleteTcNetworkPingtaiByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkReportController.java new file mode 100644 index 0000000..cc47b0f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkReportController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcNetworkReport; +import com.ruoyi.zongzhi.service.ITcNetworkReportService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 网络举报Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/report") +@Api(tags = " 网络举报") +public class TcNetworkReportController extends BaseController +{ + @Autowired + private ITcNetworkReportService tcNetworkReportService; + + /** + * 查询网络举报列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:report:list')") + @GetMapping("/list") + public TableDataInfo list(TcNetworkReport tcNetworkReport) + { + startPage(); + List list = tcNetworkReportService.selectTcNetworkReportList(tcNetworkReport); + return getDataTable(list); + } + + /** + * 导出网络举报列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:report:export')") + @Log(title = "网络举报", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcNetworkReport tcNetworkReport) + { + List list = tcNetworkReportService.selectTcNetworkReportList(tcNetworkReport); + ExcelUtil util = new ExcelUtil(TcNetworkReport.class); + util.exportExcel(response, list, "网络举报数据"); + } + + /** + * 获取网络举报详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:report:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcNetworkReportService.selectTcNetworkReportById(id)); + } + + /** + * 新增网络举报 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:report:add')") + @Log(title = "网络举报", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcNetworkReport tcNetworkReport) + { + return toAjax(tcNetworkReportService.insertTcNetworkReport(tcNetworkReport)); + } + + /** + * 修改网络举报 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:report:edit')") + @Log(title = "网络举报", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcNetworkReport tcNetworkReport) + { + return toAjax(tcNetworkReportService.updateTcNetworkReport(tcNetworkReport)); + } + + /** + * 删除网络举报 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:report:remove')") + @Log(title = "网络举报", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcNetworkReportService.deleteTcNetworkReportByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkSentimentController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkSentimentController.java new file mode 100644 index 0000000..06d9481 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkSentimentController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcNetworkSentiment; +import com.ruoyi.zongzhi.service.ITcNetworkSentimentService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 网络舆情Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/sentiment") +@Api(tags = " 网络舆情") +public class TcNetworkSentimentController extends BaseController +{ + @Autowired + private ITcNetworkSentimentService tcNetworkSentimentService; + + /** + * 查询网络舆情列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:sentiment:list')") + @GetMapping("/list") + public TableDataInfo list(TcNetworkSentiment tcNetworkSentiment) + { + startPage(); + List list = tcNetworkSentimentService.selectTcNetworkSentimentList(tcNetworkSentiment); + return getDataTable(list); + } + + /** + * 导出网络舆情列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:sentiment:export')") + @Log(title = "网络舆情", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcNetworkSentiment tcNetworkSentiment) + { + List list = tcNetworkSentimentService.selectTcNetworkSentimentList(tcNetworkSentiment); + ExcelUtil util = new ExcelUtil(TcNetworkSentiment.class); + util.exportExcel(response, list, "网络舆情数据"); + } + + /** + * 获取网络舆情详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:sentiment:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcNetworkSentimentService.selectTcNetworkSentimentById(id)); + } + + /** + * 新增网络舆情 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:sentiment:add')") + @Log(title = "网络舆情", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcNetworkSentiment tcNetworkSentiment) + { + return toAjax(tcNetworkSentimentService.insertTcNetworkSentiment(tcNetworkSentiment)); + } + + /** + * 修改网络舆情 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:sentiment:edit')") + @Log(title = "网络舆情", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcNetworkSentiment tcNetworkSentiment) + { + return toAjax(tcNetworkSentimentService.updateTcNetworkSentiment(tcNetworkSentiment)); + } + + /** + * 删除网络舆情 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:sentiment:remove')") + @Log(title = "网络舆情", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcNetworkSentimentService.deleteTcNetworkSentimentByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkSupportUnitController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkSupportUnitController.java new file mode 100644 index 0000000..413287e --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkSupportUnitController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcNetworkSupportUnit; +import com.ruoyi.zongzhi.service.ITcNetworkSupportUnitService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 网络安全支持单位Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/supportunit") +@Api(tags = " 网络安全支持单位") +public class TcNetworkSupportUnitController extends BaseController +{ + @Autowired + private ITcNetworkSupportUnitService tcNetworkSupportUnitService; + + /** + * 查询网络安全支持单位列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:list')") + @GetMapping("/list") + public TableDataInfo list(TcNetworkSupportUnit tcNetworkSupportUnit) + { + startPage(); + List list = tcNetworkSupportUnitService.selectTcNetworkSupportUnitList(tcNetworkSupportUnit); + return getDataTable(list); + } + + /** + * 导出网络安全支持单位列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:export')") + @Log(title = "网络安全支持单位", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcNetworkSupportUnit tcNetworkSupportUnit) + { + List list = tcNetworkSupportUnitService.selectTcNetworkSupportUnitList(tcNetworkSupportUnit); + ExcelUtil util = new ExcelUtil(TcNetworkSupportUnit.class); + util.exportExcel(response, list, "网络安全支持单位数据"); + } + + /** + * 获取网络安全支持单位详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcNetworkSupportUnitService.selectTcNetworkSupportUnitById(id)); + } + + /** + * 新增网络安全支持单位 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:add')") + @Log(title = "网络安全支持单位", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcNetworkSupportUnit tcNetworkSupportUnit) + { + return toAjax(tcNetworkSupportUnitService.insertTcNetworkSupportUnit(tcNetworkSupportUnit)); + } + + /** + * 修改网络安全支持单位 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:edit')") + @Log(title = "网络安全支持单位", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcNetworkSupportUnit tcNetworkSupportUnit) + { + return toAjax(tcNetworkSupportUnitService.updateTcNetworkSupportUnit(tcNetworkSupportUnit)); + } + + /** + * 删除网络安全支持单位 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:unit:remove')") + @Log(title = "网络安全支持单位", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcNetworkSupportUnitService.deleteTcNetworkSupportUnitByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkVolunteerController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkVolunteerController.java new file mode 100644 index 0000000..344df4d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcNetworkVolunteerController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcNetworkVolunteer; +import com.ruoyi.zongzhi.service.ITcNetworkVolunteerService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 网络文明自愿者Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/volunteer") +@Api(tags = " 网络文明自愿者") +public class TcNetworkVolunteerController extends BaseController +{ + @Autowired + private ITcNetworkVolunteerService tcNetworkVolunteerService; + + /** + * 查询网络文明自愿者列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:volunteer:list')") + @GetMapping("/list") + public TableDataInfo list(TcNetworkVolunteer tcNetworkVolunteer) + { + startPage(); + List list = tcNetworkVolunteerService.selectTcNetworkVolunteerList(tcNetworkVolunteer); + return getDataTable(list); + } + + /** + * 导出网络文明自愿者列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:volunteer:export')") + @Log(title = "网络文明自愿者", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcNetworkVolunteer tcNetworkVolunteer) + { + List list = tcNetworkVolunteerService.selectTcNetworkVolunteerList(tcNetworkVolunteer); + ExcelUtil util = new ExcelUtil(TcNetworkVolunteer.class); + util.exportExcel(response, list, "网络文明自愿者数据"); + } + + /** + * 获取网络文明自愿者详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:volunteer:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcNetworkVolunteerService.selectTcNetworkVolunteerById(id)); + } + + /** + * 新增网络文明自愿者 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:volunteer:add')") + @Log(title = "网络文明自愿者", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcNetworkVolunteer tcNetworkVolunteer) + { + return toAjax(tcNetworkVolunteerService.insertTcNetworkVolunteer(tcNetworkVolunteer)); + } + + /** + * 修改网络文明自愿者 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:volunteer:edit')") + @Log(title = "网络文明自愿者", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcNetworkVolunteer tcNetworkVolunteer) + { + return toAjax(tcNetworkVolunteerService.updateTcNetworkVolunteer(tcNetworkVolunteer)); + } + + /** + * 删除网络文明自愿者 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:volunteer:remove')") + @Log(title = "网络文明自愿者", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcNetworkVolunteerService.deleteTcNetworkVolunteerByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcQinglangZhuanxiangController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcQinglangZhuanxiangController.java new file mode 100644 index 0000000..3eca875 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcQinglangZhuanxiangController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcQinglangZhuanxiang; +import com.ruoyi.zongzhi.service.ITcQinglangZhuanxiangService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 清朗专项Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/zhuanxiang") +@Api(tags = " 清朗专项") +public class TcQinglangZhuanxiangController extends BaseController +{ + @Autowired + private ITcQinglangZhuanxiangService tcQinglangZhuanxiangService; + + /** + * 查询清朗专项列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:zhuanxiang:list')") + @GetMapping("/list") + public TableDataInfo list(TcQinglangZhuanxiang tcQinglangZhuanxiang) + { + startPage(); + List list = tcQinglangZhuanxiangService.selectTcQinglangZhuanxiangList(tcQinglangZhuanxiang); + return getDataTable(list); + } + + /** + * 导出清朗专项列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:zhuanxiang:export')") + @Log(title = "清朗专项", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcQinglangZhuanxiang tcQinglangZhuanxiang) + { + List list = tcQinglangZhuanxiangService.selectTcQinglangZhuanxiangList(tcQinglangZhuanxiang); + ExcelUtil util = new ExcelUtil(TcQinglangZhuanxiang.class); + util.exportExcel(response, list, "清朗专项数据"); + } + + /** + * 获取清朗专项详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:zhuanxiang:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcQinglangZhuanxiangService.selectTcQinglangZhuanxiangById(id)); + } + + /** + * 新增清朗专项 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:zhuanxiang:add')") + @Log(title = "清朗专项", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcQinglangZhuanxiang tcQinglangZhuanxiang) + { + return toAjax(tcQinglangZhuanxiangService.insertTcQinglangZhuanxiang(tcQinglangZhuanxiang)); + } + + /** + * 修改清朗专项 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:zhuanxiang:edit')") + @Log(title = "清朗专项", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcQinglangZhuanxiang tcQinglangZhuanxiang) + { + return toAjax(tcQinglangZhuanxiangService.updateTcQinglangZhuanxiang(tcQinglangZhuanxiang)); + } + + /** + * 删除清朗专项 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:zhuanxiang:remove')") + @Log(title = "清朗专项", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcQinglangZhuanxiangService.deleteTcQinglangZhuanxiangByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcSafetyDangerController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcSafetyDangerController.java new file mode 100644 index 0000000..346eecc --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcSafetyDangerController.java @@ -0,0 +1,106 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcSafetyDanger; +import com.ruoyi.zongzhi.service.ITcSafetyDangerService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 监管单位Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/danger") +@Api(tags = " 监管单位") +public class TcSafetyDangerController extends BaseController +{ + @Autowired + private ITcSafetyDangerService tcSafetyDangerService; + + /** + * 查询监管单位列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:danger:list')") + @GetMapping("/list") + public TableDataInfo list(TcSafetyDanger tcSafetyDanger) + { + startPage(); + List list = tcSafetyDangerService.selectTcSafetyDangerList(tcSafetyDanger); + return getDataTable(list); + } + + /** + * 导出监管单位列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:danger:export')") + @Log(title = "监管单位", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcSafetyDanger tcSafetyDanger) + { + List list = tcSafetyDangerService.selectTcSafetyDangerList(tcSafetyDanger); + ExcelUtil util = new ExcelUtil(TcSafetyDanger.class); + util.exportExcel(response, list, "监管单位数据"); + } + + /** + * 获取监管单位详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:danger:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcSafetyDangerService.selectTcSafetyDangerById(id)); + } + + /** + * 新增监管单位 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:danger:add')") + @Log(title = "监管单位", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcSafetyDanger tcSafetyDanger) + { + return toAjax(tcSafetyDangerService.insertTcSafetyDanger(tcSafetyDanger)); + } + + /** + * 修改监管单位 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:danger:edit')") + @Log(title = "监管单位", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcSafetyDanger tcSafetyDanger) + { + return toAjax(tcSafetyDangerService.updateTcSafetyDanger(tcSafetyDanger)); + } + + /** + * 删除监管单位 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:danger:remove')") + @Log(title = "监管单位", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcSafetyDangerService.deleteTcSafetyDangerByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcSafetyDetectionController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcSafetyDetectionController.java new file mode 100644 index 0000000..daa3a8b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcSafetyDetectionController.java @@ -0,0 +1,107 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import io.swagger.annotations.Api; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcSafetyDetection; +import com.ruoyi.zongzhi.service.ITcSafetyDetectionService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 安全检测Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/detection") +@Api(tags = "安全检测") +public class TcSafetyDetectionController extends BaseController +{ + @Autowired + private ITcSafetyDetectionService tcSafetyDetectionService; + + /** + * 查询安全检测列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:detection:list')") + @GetMapping("/list") + public TableDataInfo list(TcSafetyDetection tcSafetyDetection) + { + startPage(); + List list = tcSafetyDetectionService.selectTcSafetyDetectionList(tcSafetyDetection); + return getDataTable(list); + } + + /** + * 导出安全检测列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:detection:export')") + @Log(title = "安全检测", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcSafetyDetection tcSafetyDetection) + { + List list = tcSafetyDetectionService.selectTcSafetyDetectionList(tcSafetyDetection); + ExcelUtil util = new ExcelUtil(TcSafetyDetection.class); + util.exportExcel(response, list, "安全检测数据"); + } + + /** + * 获取安全检测详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:detection:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcSafetyDetectionService.selectTcSafetyDetectionById(id)); + } + + /** + * 新增安全检测 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:detection:add')") + @Log(title = "安全检测", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcSafetyDetection tcSafetyDetection) + { + return toAjax(tcSafetyDetectionService.insertTcSafetyDetection(tcSafetyDetection)); + } + + /** + * 修改安全检测 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:detection:edit')") + @Log(title = "安全检测", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcSafetyDetection tcSafetyDetection) + { + return toAjax(tcSafetyDetectionService.updateTcSafetyDetection(tcSafetyDetection)); + } + + /** + * 删除安全检测 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:detection:remove')") + @Log(title = "安全检测", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcSafetyDetectionService.deleteTcSafetyDetectionByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcTownController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcTownController.java new file mode 100644 index 0000000..467a971 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcTownController.java @@ -0,0 +1,107 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import io.swagger.annotations.Api; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcTown; +import com.ruoyi.zongzhi.service.ITcTownService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 区域Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/town") +@Api(tags = "区域") +public class TcTownController extends BaseController +{ + @Autowired + private ITcTownService tcTownService; + + /** + * 查询区域列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:town:list')") + @GetMapping("/list") + public TableDataInfo list(TcTown tcTown) + { + startPage(); + List list = tcTownService.selectTcTownList(tcTown); + return getDataTable(list); + } + + /** + * 导出区域列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:town:export')") + @Log(title = "区域", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcTown tcTown) + { + List list = tcTownService.selectTcTownList(tcTown); + ExcelUtil util = new ExcelUtil(TcTown.class); + util.exportExcel(response, list, "区域数据"); + } + + /** + * 获取区域详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:town:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcTownService.selectTcTownById(id)); + } + + /** + * 新增区域 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:town:add')") + @Log(title = "区域", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcTown tcTown) + { + return toAjax(tcTownService.insertTcTown(tcTown)); + } + + /** + * 修改区域 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:town:edit')") + @Log(title = "区域", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcTown tcTown) + { + return toAjax(tcTownService.updateTcTown(tcTown)); + } + + /** + * 删除区域 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:town:remove')") + @Log(title = "区域", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcTownService.deleteTcTownByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcWorkDongtaiController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcWorkDongtaiController.java new file mode 100644 index 0000000..190adeb --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcWorkDongtaiController.java @@ -0,0 +1,107 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import io.swagger.annotations.Api; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcWorkDongtai; +import com.ruoyi.zongzhi.service.ITcWorkDongtaiService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 工作动态Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/dongtai") +@Api(tags = "工作动态") +public class TcWorkDongtaiController extends BaseController +{ + @Autowired + private ITcWorkDongtaiService tcWorkDongtaiService; + + /** + * 查询工作动态列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:dongtai:list')") + @GetMapping("/list") + public TableDataInfo list(TcWorkDongtai tcWorkDongtai) + { + startPage(); + List list = tcWorkDongtaiService.selectTcWorkDongtaiList(tcWorkDongtai); + return getDataTable(list); + } + + /** + * 导出工作动态列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:dongtai:export')") + @Log(title = "工作动态", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcWorkDongtai tcWorkDongtai) + { + List list = tcWorkDongtaiService.selectTcWorkDongtaiList(tcWorkDongtai); + ExcelUtil util = new ExcelUtil(TcWorkDongtai.class); + util.exportExcel(response, list, "工作动态数据"); + } + + /** + * 获取工作动态详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:dongtai:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcWorkDongtaiService.selectTcWorkDongtaiById(id)); + } + + /** + * 新增工作动态 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:dongtai:add')") + @Log(title = "工作动态", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcWorkDongtai tcWorkDongtai) + { + return toAjax(tcWorkDongtaiService.insertTcWorkDongtai(tcWorkDongtai)); + } + + /** + * 修改工作动态 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:dongtai:edit')") + @Log(title = "工作动态", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcWorkDongtai tcWorkDongtai) + { + return toAjax(tcWorkDongtaiService.updateTcWorkDongtai(tcWorkDongtai)); + } + + /** + * 删除工作动态 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:dongtai:remove')") + @Log(title = "工作动态", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcWorkDongtaiService.deleteTcWorkDongtaiByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcZhongdianDomainController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcZhongdianDomainController.java new file mode 100644 index 0000000..d05019b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcZhongdianDomainController.java @@ -0,0 +1,107 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import io.swagger.annotations.Api; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcZhongdianDomain; +import com.ruoyi.zongzhi.service.ITcZhongdianDomainService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 重点领域监管Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/domain") +@Api(tags = "重点领域监管") +public class TcZhongdianDomainController extends BaseController +{ + @Autowired + private ITcZhongdianDomainService tcZhongdianDomainService; + + /** + * 查询重点领域监管列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:domain:list')") + @GetMapping("/list") + public TableDataInfo list(TcZhongdianDomain tcZhongdianDomain) + { + startPage(); + List list = tcZhongdianDomainService.selectTcZhongdianDomainList(tcZhongdianDomain); + return getDataTable(list); + } + + /** + * 导出重点领域监管列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:domain:export')") + @Log(title = "重点领域监管", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcZhongdianDomain tcZhongdianDomain) + { + List list = tcZhongdianDomainService.selectTcZhongdianDomainList(tcZhongdianDomain); + ExcelUtil util = new ExcelUtil(TcZhongdianDomain.class); + util.exportExcel(response, list, "重点领域监管数据"); + } + + /** + * 获取重点领域监管详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:domain:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcZhongdianDomainService.selectTcZhongdianDomainById(id)); + } + + /** + * 新增重点领域监管 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:domain:add')") + @Log(title = "重点领域监管", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcZhongdianDomain tcZhongdianDomain) + { + return toAjax(tcZhongdianDomainService.insertTcZhongdianDomain(tcZhongdianDomain)); + } + + /** + * 修改重点领域监管 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:domain:edit')") + @Log(title = "重点领域监管", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcZhongdianDomain tcZhongdianDomain) + { + return toAjax(tcZhongdianDomainService.updateTcZhongdianDomain(tcZhongdianDomain)); + } + + /** + * 删除重点领域监管 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:domain:remove')") + @Log(title = "重点领域监管", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcZhongdianDomainService.deleteTcZhongdianDomainByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcZhongdianEnterpriseController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcZhongdianEnterpriseController.java new file mode 100644 index 0000000..b623779 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcZhongdianEnterpriseController.java @@ -0,0 +1,107 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import io.swagger.annotations.Api; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcZhongdianEnterprise; +import com.ruoyi.zongzhi.service.ITcZhongdianEnterpriseService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 重点企业名录Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/enterprise") +@Api(tags = "重点企业名录") +public class TcZhongdianEnterpriseController extends BaseController +{ + @Autowired + private ITcZhongdianEnterpriseService tcZhongdianEnterpriseService; + + /** + * 查询重点企业名录列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:enterprise:list')") + @GetMapping("/list") + public TableDataInfo list(TcZhongdianEnterprise tcZhongdianEnterprise) + { + startPage(); + List list = tcZhongdianEnterpriseService.selectTcZhongdianEnterpriseList(tcZhongdianEnterprise); + return getDataTable(list); + } + + /** + * 导出重点企业名录列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:enterprise:export')") + @Log(title = "重点企业名录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcZhongdianEnterprise tcZhongdianEnterprise) + { + List list = tcZhongdianEnterpriseService.selectTcZhongdianEnterpriseList(tcZhongdianEnterprise); + ExcelUtil util = new ExcelUtil(TcZhongdianEnterprise.class); + util.exportExcel(response, list, "重点企业名录数据"); + } + + /** + * 获取重点企业名录详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:enterprise:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcZhongdianEnterpriseService.selectTcZhongdianEnterpriseById(id)); + } + + /** + * 新增重点企业名录 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:enterprise:add')") + @Log(title = "重点企业名录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcZhongdianEnterprise tcZhongdianEnterprise) + { + return toAjax(tcZhongdianEnterpriseService.insertTcZhongdianEnterprise(tcZhongdianEnterprise)); + } + + /** + * 修改重点企业名录 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:enterprise:edit')") + @Log(title = "重点企业名录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcZhongdianEnterprise tcZhongdianEnterprise) + { + return toAjax(tcZhongdianEnterpriseService.updateTcZhongdianEnterprise(tcZhongdianEnterprise)); + } + + /** + * 删除重点企业名录 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:enterprise:remove')") + @Log(title = "重点企业名录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcZhongdianEnterpriseService.deleteTcZhongdianEnterpriseByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcZhongdianWorkController.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcZhongdianWorkController.java new file mode 100644 index 0000000..e7936e9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/controller/TcZhongdianWorkController.java @@ -0,0 +1,107 @@ +package com.ruoyi.zongzhi.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import io.swagger.annotations.Api; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.zongzhi.domain.TcZhongdianWork; +import com.ruoyi.zongzhi.service.ITcZhongdianWorkService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 重点工作项目Controller + * + * @author ruoyi + * @date 2023-08-10 + */ +@RestController +@RequestMapping("/zongzhi/work") +@Api(tags = "重点工作项目") +public class TcZhongdianWorkController extends BaseController +{ + @Autowired + private ITcZhongdianWorkService tcZhongdianWorkService; + + /** + * 查询重点工作项目列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:work:list')") + @GetMapping("/list") + public TableDataInfo list(TcZhongdianWork tcZhongdianWork) + { + startPage(); + List list = tcZhongdianWorkService.selectTcZhongdianWorkList(tcZhongdianWork); + return getDataTable(list); + } + + /** + * 导出重点工作项目列表 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:work:export')") + @Log(title = "重点工作项目", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TcZhongdianWork tcZhongdianWork) + { + List list = tcZhongdianWorkService.selectTcZhongdianWorkList(tcZhongdianWork); + ExcelUtil util = new ExcelUtil(TcZhongdianWork.class); + util.exportExcel(response, list, "重点工作项目数据"); + } + + /** + * 获取重点工作项目详细信息 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:work:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tcZhongdianWorkService.selectTcZhongdianWorkById(id)); + } + + /** + * 新增重点工作项目 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:work:add')") + @Log(title = "重点工作项目", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TcZhongdianWork tcZhongdianWork) + { + return toAjax(tcZhongdianWorkService.insertTcZhongdianWork(tcZhongdianWork)); + } + + /** + * 修改重点工作项目 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:work:edit')") + @Log(title = "重点工作项目", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TcZhongdianWork tcZhongdianWork) + { + return toAjax(tcZhongdianWorkService.updateTcZhongdianWork(tcZhongdianWork)); + } + + /** + * 删除重点工作项目 + */ + @PreAuthorize("@ss.hasPermi('zongzhi:work:remove')") + @Log(title = "重点工作项目", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tcZhongdianWorkService.deleteTcZhongdianWorkByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcCommentator.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcCommentator.java new file mode 100644 index 0000000..d493dae --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcCommentator.java @@ -0,0 +1,111 @@ +package com.ruoyi.zongzhi.domain; + +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 网评员对象 tc_commentator + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcCommentator extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 姓名 + */ + @Excel(name = "姓名") + @ApiModelProperty(value = "姓名") + private String name; + + /** + * 性别 + */ + @Excel(name = "性别") + @ApiModelProperty(value = "性别") + private String sex; + + /** + * 年龄 + */ + @Excel(name = "年龄") + @ApiModelProperty(value = "年龄") + private Long age; + + /** + * 民族 + */ + @Excel(name = "民族") + @ApiModelProperty(value = "民族") + private String nationality; + + /** + * 政治面貌 + */ + @Excel(name = "政治面貌") + @ApiModelProperty(value = "政治面貌") + private String politicsStatus; + + /** + * 单位 + */ + @Excel(name = "单位") + @ApiModelProperty(value = "单位") + private String unit; + + /** + * 移动电话 + */ + @Excel(name = "移动电话") + @ApiModelProperty(value = "移动电话") + private String phoneNum; + + /** + * 微信号 + */ + @Excel(name = "微信号") + @ApiModelProperty(value = "微信号") + private String vxNum; + + /** + * 类别1. 核心网评员 + * 2. 骨干网评员 + * 3. 普通网评员 + */ + @Excel(name = "类别") + @ApiModelProperty(value = "类别1.核心网评员 2. 骨干网评员 3. 普通网评员") + private Long type; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcDataSource.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcDataSource.java new file mode 100644 index 0000000..0ecb5dc --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcDataSource.java @@ -0,0 +1,128 @@ +package com.ruoyi.zongzhi.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 数据来源对象 tc_data_source + * + * @author ruoyi + * @date 2023-08-10 + */ +public class TcDataSource extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 1. 云断监管 + * 2. APT(M) + * 3. 硬探针 + * 4. 软探针 + * 5. 系统检测 + */ + @ApiModelProperty(value = "1.云断监管 2.APT") + @Excel(name = "类型") + private Long type; + + /** + * 资产名称 + */ + @Excel(name = "资产名称") + @ApiModelProperty(value = "资产名称") + private String assetName; + + /** + * 所属单位 + */ + @Excel(name = "所属单位") + @ApiModelProperty(value = "所属单位") + private String affUnit; + + /** + * 所属分组 + */ + @Excel(name = "所属分组") + @ApiModelProperty(value = "所属分组") + private String affGroups; + + /** + * 网站/系统名称 + */ + @Excel(name = "网站/系统名称") + @ApiModelProperty(value = "网站/系统名称") + private String systeamName; + + /** + * 网站地址 + */ + @Excel(name = "网站地址") + @ApiModelProperty(value = "网站地址") + private String url; + + /** + * IP地址 + */ + @Excel(name = "IP地址") + @ApiModelProperty(value = "IP地址") + private String ipAddress; + + /** + * 操作系统1:Linux,2:windows + */ + @Excel(name = "操作系统1:Linux,2:windows") + @ApiModelProperty(value = "操作系统1:Linux,2:windows") + private Long os; + + /** + * 版本 + */ + @Excel(name = "版本") + @ApiModelProperty(value = "版本") + private String versions; + + /** + * 1.是 + * 2.否 + */ + @Excel(name = "是否关注重点") + @ApiModelProperty(value = "是否关注重点1.是 2.否 ") + private Long isFocus; + + /** + * 1.一级 + * 2.二级 + * 3.三级 + */ + @Excel(name = "级别") + @ApiModelProperty(value = "级别1.一级 2.二级 3.三级 ") + private Long level; + + /** + * $column.columnComment + */ + @ApiModelProperty(value = "创建者id") + @Excel(name = "创建者id") + private Long createId; + + /** + * $column.columnComment + */ + @ApiModelProperty(value = "修改者") + @Excel(name = "修改者") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcDengbaoSystem.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcDengbaoSystem.java new file mode 100644 index 0000000..56757b6 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcDengbaoSystem.java @@ -0,0 +1,170 @@ +package com.ruoyi.zongzhi.domain; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 等保系统对象 tc_dengbao_system + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcDengbaoSystem extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 系统名称 + */ + @Excel(name = "系统名称") + @ApiModelProperty(value = "系统名称") + private String steamName; + + /** + * 备案编号 + */ + @Excel(name = "备案编号") + @ApiModelProperty(value = "备案编号") + private String beianNum; + + /** + * 信息系统安全保护等级 + */ + @Excel(name = "信息系统安全保护等级") + @ApiModelProperty(value = "信息系统安全保护等级") + private String safetyLevel; + + /** + * 单位名称 + */ + @Excel(name = "单位名称") + @ApiModelProperty(value = "单位名称") + private String unitName; + + /** + * 业务类型 + */ + @Excel(name = "业务类型") + @ApiModelProperty(value = "业务类型") + private String yewuType; + + /** + * 服务范围 + */ + @Excel(name = "服务范围") + @ApiModelProperty(value = "服务范围") + private String servicesArea; + + /** + * 服务对象 + */ + @Excel(name = "服务对象") + @ApiModelProperty(value = "服务对象") + private String servicesObj; + + /** + * 覆盖范围 + */ + @Excel(name = "覆盖范围") + @ApiModelProperty(value = "覆盖范围") + private String coverageArea; + + /** + * 网络性质 + */ + @Excel(name = "网络性质") + @ApiModelProperty(value = "网络性质") + private String networkNature; + + /** + * 系统互联情况 + */ + @Excel(name = "系统互联情况") + @ApiModelProperty(value = "系统互联情况") + private String systemSitutation; + + /** + * 投入运行使用日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "投入运行使用日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date useTime; + + /** + * 系统是否分级 + */ + @Excel(name = "系统是否分级") + @ApiModelProperty(value = "系统是否分级") + private String isRate; + + /** + * 系统定级时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "系统定级时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date rankTime; + + /** + * 专家评审情况 + */ + @Excel(name = "专家评审情况") + @ApiModelProperty(value = "专家评审情况") + private String reviewCase; + + /** + * 是否有主管部门 + */ + @Excel(name = "是否有主管部门") + @ApiModelProperty(value = "是否有主管部门") + private String isParent; + + /** + * 系统定级报告 + */ + @Excel(name = "系统定级报告") + @ApiModelProperty(value = "系统定级报告") + private String rankReport; + + /** + * 系统状态 + * 1:已备案、2:已发证 + */ + @Excel(name = "系统状态 ") + @ApiModelProperty(value = "系统状态 ") + private Long systemState; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcDengbaoUnit.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcDengbaoUnit.java new file mode 100644 index 0000000..8b2c5aa --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcDengbaoUnit.java @@ -0,0 +1,144 @@ +package com.ruoyi.zongzhi.domain; + +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 等保单位对象 tc_dengbao_unit + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcDengbaoUnit extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 单位名称 + */ + @Excel(name = "单位名称") + @ApiModelProperty(value = "单位名称") + private String unitName; + + /** + * 邮政编码 + */ + @Excel(name = "邮政编码") + @ApiModelProperty(value = "邮政编码") + private String postCode; + + /** + * 单位地址(省) + */ + @ApiModelProperty(value = "单位地址") + @Excel(name = "单位地址", readConverterExp = "省=") + private String unitProvince; + + /** + * 单位地址(市) + */ + @ApiModelProperty(value = "单位地址") + @Excel(name = "单位地址", readConverterExp = "市=") + private String unitCity; + + /** + * 单位地址(区/县) + */ + @ApiModelProperty(value = "单位地址") + @Excel(name = "单位地址", readConverterExp = "区=/县") + private String unitCounty; + + /** + * 单位地址(街道) + */ + @ApiModelProperty(value = "单位地址") + @Excel(name = "单位地址", readConverterExp = "街=道") + private String unitStreet; + + /** + * 行政区域代码 + */ + @Excel(name = "行政区域代码") + @ApiModelProperty(value = "行政区域代码") + private String areaCode; + + /** + * 隶属关系 + */ + @Excel(name = "隶属关系") + @ApiModelProperty(value = "隶属关系") + private String affiliation; + + /** + * 单位类型 + */ + @Excel(name = "单位类型") + @ApiModelProperty(value = "单位类型") + private String unitType; + + /** + * 行业类型 + */ + @Excel(name = "行业类型") + @ApiModelProperty(value = "行业类型") + private String tmtType; + + /** + * 单位责任人—姓名 + */ + @Excel(name = "单位责任人—姓名") + @ApiModelProperty(value = "单位责任人—姓名") + private String fuzeName; + + /** + * 单位责任人—职务 + */ + @Excel(name = "单位责任人—职务") + @ApiModelProperty(value = "单位责任人—职务") + private String fuzeDuty; + + /** + * 单位责任人—办公电话 + */ + @Excel(name = "单位责任人—办公电话") + @ApiModelProperty(value = "单位责任人—办公电话") + private String fuzeTel; + + /** + * 单位责任人—电子邮件 + */ + @Excel(name = "单位责任人—电子邮件") + @ApiModelProperty(value = "单位责任人—电子邮件") + private String fuzeEmail; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcExtworkSafetyadmin.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcExtworkSafetyadmin.java new file mode 100644 index 0000000..b38f23f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcExtworkSafetyadmin.java @@ -0,0 +1,236 @@ +package com.ruoyi.zongzhi.domain; + +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 网络安全官对象 tc_extwork_safetyadmin + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcExtworkSafetyadmin extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 单位 + */ + @Excel(name = "单位") + @ApiModelProperty(value = "单位") + private String unit; + + /** + * 第一负责人 + */ + @Excel(name = "第一负责人") + @ApiModelProperty(value = "第一负责人") + private String firstPrincipal; + + /** + * 职务 + */ + @Excel(name = "职务") + @ApiModelProperty(value = "职务") + private String duty; + + /** + * 直接负责人 + */ + @Excel(name = "直接负责人") + @ApiModelProperty(value = "直接负责人") + private String directPrincipal; + + /** + * 职务_1 + */ + @Excel(name = "职务_1") + @ApiModelProperty(value = "职务_1") + private String duty1; + + /** + * 负责科室 + */ + @Excel(name = "负责科室") + @ApiModelProperty(value = "负责科室") + private String fuzeKeshi; + + /** + * 网络安全官 + */ + @Excel(name = "网络安全官") + @ApiModelProperty(value = "网络安全官") + private String networkAqg; + + /** + * 职务_2 + */ + @Excel(name = "职务_2") + @ApiModelProperty(value = "职务_2") + private String duty2; + + /** + * 电话 + */ + @Excel(name = "电话") + @ApiModelProperty(value = "电话") + private String tel; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setAreaId(Long areaId) { + this.areaId = areaId; + } + + public Long getAreaId() { + return areaId; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getUnit() { + return unit; + } + + public void setFirstPrincipal(String firstPrincipal) { + this.firstPrincipal = firstPrincipal; + } + + public String getFirstPrincipal() { + return firstPrincipal; + } + + public void setDuty(String duty) { + this.duty = duty; + } + + public String getDuty() { + return duty; + } + + public void setDirectPrincipal(String directPrincipal) { + this.directPrincipal = directPrincipal; + } + + public String getDirectPrincipal() { + return directPrincipal; + } + + public void setDuty1(String duty1) { + this.duty1 = duty1; + } + + public String getDuty1() { + return duty1; + } + + public void setFuzeKeshi(String fuzeKeshi) { + this.fuzeKeshi = fuzeKeshi; + } + + public String getFuzeKeshi() { + return fuzeKeshi; + } + + public void setNetworkAqg(String networkAqg) { + this.networkAqg = networkAqg; + } + + public String getNetworkAqg() { + return networkAqg; + } + + public void setDuty2(String duty2) { + this.duty2 = duty2; + } + + public String getDuty2() { + return duty2; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getTel() { + return tel; + } + + public void setCreateId(Long createId) { + this.createId = createId; + } + + public Long getCreateId() { + return createId; + } + + public void setUpdateId(Long updateId) { + this.updateId = updateId; + } + + public Long getUpdateId() { + return updateId; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("areaId", getAreaId()) + .append("unit", getUnit()) + .append("firstPrincipal", getFirstPrincipal()) + .append("duty", getDuty()) + .append("directPrincipal", getDirectPrincipal()) + .append("duty1", getDuty1()) + .append("fuzeKeshi", getFuzeKeshi()) + .append("networkAqg", getNetworkAqg()) + .append("duty2", getDuty2()) + .append("tel", getTel()) + .append("createId", getCreateId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateId", getUpdateId()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcGovernmentWeb.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcGovernmentWeb.java new file mode 100644 index 0000000..40d872e --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcGovernmentWeb.java @@ -0,0 +1,67 @@ +package com.ruoyi.zongzhi.domain; + +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 政府网站对象 tc_government_web + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcGovernmentWeb extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 网址 + */ + @Excel(name = "网址") + @ApiModelProperty(value = "网址") + private String url; + + /** + * 资产名称 + */ + @Excel(name = "资产名称") + @ApiModelProperty(value = "资产名称") + private String assetName; + + /** + * 资产重要等级 + */ + @Excel(name = "资产重要等级") + @ApiModelProperty(value = "资产重要等级") + private String assetLevel; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcIdcUnit.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcIdcUnit.java new file mode 100644 index 0000000..2e0c0c7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcIdcUnit.java @@ -0,0 +1,67 @@ +package com.ruoyi.zongzhi.domain; + +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * IDC单位对象 tc_idc_unit + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcIdcUnit extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 名称 + */ + @Excel(name = "名称") + @ApiModelProperty(value = "名称") + private String unitName; + + /** + * 所属区域 + */ + @Excel(name = "所属区域") + @ApiModelProperty(value = "所属区域") + private String area; + + /** + * IP段信息 + */ + @Excel(name = "IP段信息") + @ApiModelProperty(value = "IP段信息") + private String ipData; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkArticle.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkArticle.java new file mode 100644 index 0000000..82d1198 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkArticle.java @@ -0,0 +1,88 @@ +package com.ruoyi.zongzhi.domain; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 网络文章对象 tc_network_article + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcNetworkArticle extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 文章类型1. 本地录用 + * 2. 苏州级录用 + * 3. 省级级以上录用 + * 4. 上级媒体 + * 5. 本地发布 + */ + @Excel(name = "文章类型") + @ApiModelProperty(value = "文章类型 1.本地录用,2.苏州级录用,3.省级级以上录用,4,上级媒体,5本地发布") + private Long type; + + /** + * 文章标题 + */ + @Excel(name = "文章标题") + @ApiModelProperty(value = "文章标题") + private String articleTitle; + + /** + * 发布时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date releaseTime; + + /** + * 来源 + */ + @Excel(name = "来源") + @ApiModelProperty(value = "来源") + private String source; + + /** + * 文章地址 + */ + @Excel(name = "文章地址") + @ApiModelProperty(value = "文章地址") + private String url; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkEvaluate.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkEvaluate.java new file mode 100644 index 0000000..e53af3c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkEvaluate.java @@ -0,0 +1,119 @@ +package com.ruoyi.zongzhi.domain; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 网评对象 tc_network_evaluate + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcNetworkEvaluate extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 文章ID + */ + @Excel(name = "文章ID") + @ApiModelProperty(value = "文章ID") + private Long articleId; + + /** + * 文章类型 + */ + @Excel(name = "文章类型") + @ApiModelProperty(value = "文章类型") + private Long articleType; + + /** + * 评价人ID + */ + @Excel(name = "评价人ID") + @ApiModelProperty(value = "评价人ID") + private Long appraiserId; + + /** + * 评价人名字 + */ + @Excel(name = "评价人名字") + @ApiModelProperty(value = "评价人名字") + private String appraiserName; + + /** + * 文章标题 + */ + @Excel(name = "文章标题") + @ApiModelProperty(value = "文章标题") + private String articleTitle; + + /** + * 文章内容 + */ + @Excel(name = "文章内容") + @ApiModelProperty(value = "文章内容") + private String articleContent; + + /** + * 来源 + */ + @Excel(name = "来源") + @ApiModelProperty(value = "来源") + private String articleSource; + + /** + * 文章地址 + */ + @Excel(name = "文章地址") + @ApiModelProperty(value = "文章地址") + private String articleUrl; + + /** + * 评价内容 + */ + @Excel(name = "评价内容") + @ApiModelProperty(value = "评价内容") + private String pjContent; + + /** + * 评价时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "评价时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date pjTime; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkMqPrincipal.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkMqPrincipal.java new file mode 100644 index 0000000..ebebfa6 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkMqPrincipal.java @@ -0,0 +1,89 @@ +package com.ruoyi.zongzhi.domain; + +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 网络民情责任人对象 tc_network_mq_principal + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcNetworkMqPrincipal extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 单位名称 + */ + @Excel(name = "单位名称") + @ApiModelProperty(value = "单位名称") + private String unitName; + + /** + * 民情负责人 + */ + @Excel(name = "民情负责人") + @ApiModelProperty(value = "民情负责人") + private String fuzeMan; + + /** + * 职务 + */ + @Excel(name = "职务") + @ApiModelProperty(value = "职务") + private String duty; + + /** + * 联系电话 + */ + @Excel(name = "联系电话") + @ApiModelProperty(value = "联系电话") + private String tel; + + /** + * fax_num + */ + @Excel(name = "fax_num") + @ApiModelProperty(value = "fax_num") + private String faxNum; + + /** + * 手机号 + */ + @Excel(name = "手机号") + @ApiModelProperty(value = "手机号") + private String phoneNum; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkPingtai.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkPingtai.java new file mode 100644 index 0000000..31a6548 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkPingtai.java @@ -0,0 +1,128 @@ +package com.ruoyi.zongzhi.domain; + +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 网络平台对象 tc_network_pingtai + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcNetworkPingtai extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 平台类别1. 网址 + * 2. 抖音 + * 3. 微信 + * 4. 微博 + * 5. 今日头条 + * 6. 快手 + * 7. B站 + * 8. 小红书 + */ + @Excel(name = "平台类别") + @ApiModelProperty(value = "平台类别") + private Long type; + + /** + * 账号名称 + */ + @Excel(name = "账号名称") + @ApiModelProperty(value = "账号名称") + private String name; + + /** + * 属性1. 房产 + * 2. 汽车 + * 3. 自媒体 + * 4. 餐饮 + * 5. 电子竞技 + * 6. 财务 + */ + @Excel(name = "属性") + @ApiModelProperty(value = "属性 1.房产,2.汽车,3.自媒体,4.餐饮,5.电子竞技,6.财务") + private Long props; + + /** + * 粉丝数 + */ + @Excel(name = "粉丝数") + @ApiModelProperty(value = "粉丝数") + private Long fansNum; + + /** + * 网站域名(1) + */ + @ApiModelProperty(value = "网站域名") + @Excel(name = "网站域名") + private String dns; + + /** + * 真实IP(1) + */ + @ApiModelProperty(value = "真实IP") + @Excel(name = "真实IP") + private String ipAddress; + + /** + * 备案许可证号(1) + */ + @ApiModelProperty(value = "备案许可证号") + @Excel(name = "备案许可证号") + private String licenceNum; + + /** + * 认证(4) + */ + @ApiModelProperty(value = "认证") + @Excel(name = "认证") + private String authentication; + + /** + * 地区(4) + */ + @ApiModelProperty(value = "地区") + @Excel(name = "地区") + private String area; + + /** + * 简介 + */ + @Excel(name = "简介") + @ApiModelProperty(value = "简介") + private String intro; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkReport.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkReport.java new file mode 100644 index 0000000..1bc9775 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkReport.java @@ -0,0 +1,120 @@ +package com.ruoyi.zongzhi.domain; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 网络举报对象 tc_network_report + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcNetworkReport extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 举报人 + */ + @Excel(name = "举报人") + @ApiModelProperty(value = "举报人") + private String jbMan; + + /** + * 被举报对象 + */ + @Excel(name = "被举报对象") + @ApiModelProperty(value = "被举报对象") + private String jbdx; + + /** + * 苏州编号 + */ + @Excel(name = "苏州编号") + @ApiModelProperty(value = "苏州编号") + private String jbbh; + + /** + * 举报时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "举报时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date jbTime; + + /** + * 经度 + */ + @Excel(name = "经度") + @ApiModelProperty(value = "经度") + private String longitude; + + /** + * 纬度 + */ + @Excel(name = "纬度") + @ApiModelProperty(value = "纬度") + private String latitude; + + /** + * 地址 + */ + @Excel(name = "地址") + @ApiModelProperty(value = "地址") + private String address; + + /** + * 举报内容 + */ + @Excel(name = "举报内容") + @ApiModelProperty(value = "举报内容") + private String content; + + /** + * 状态1. 待处理 + * 2. 已处理 + */ + @Excel(name = "状态") + @ApiModelProperty(value = "状态") + private Long state; + + /** + * 来源1.上级下发 2.部门转发 3.小程序 4无效 + */ + @Excel(name = "来源1.上级下发 2.部门转发 3.小程序 4无效") + @ApiModelProperty(value = "来源1.上级下发 2.部门转发 3.小程序 4无效") + private Long source; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkSentiment.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkSentiment.java new file mode 100644 index 0000000..9fc34ee --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkSentiment.java @@ -0,0 +1,140 @@ +package com.ruoyi.zongzhi.domain; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 网络舆情对象 tc_network_sentiment + * + * @author ruoyi + * @date 2023-08-10 + */ +public class TcNetworkSentiment extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 舆情名称 + */ + @Excel(name = "舆情名称") + @ApiModelProperty(value = "舆情名称") + private String sentimentName; + + /** + * 舆情内容 + */ + @Excel(name = "舆情内容") + @ApiModelProperty(value = "舆情内容") + private String sentimentContent; + + /** + * 部门名称 + */ + @Excel(name = "部门名称") + @ApiModelProperty(value = "部门名称") + private String depName; + + /** + * 发布时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date publishTime; + + /** + * 舆情状态1. 待处理 2处理中 3已处理 + */ + @Excel(name = "舆情状态1. 待处理 2处理中 3已处理") + @ApiModelProperty(value = "舆情状态1. 待处理 2处理中 3已处理") + private Long sentimentState; + + /** + * 媒体类型1. 报刊 2.网媒 3.微信 4.博 + * 4. APP 6.论坛 7.短视频 8.其他 + */ + @Excel(name = "媒体类型") + @ApiModelProperty(value = "媒体类型") + private Long mediaType; + + /** + * 涉事类型1. 治安维护 2.医疗卫生 3.执政形象 4.市场监督 5.自然灾害 6.安全事故 7.社会保证 8.市政管理 + */ + @Excel(name = "涉事类型1. 治安维护 2.医疗卫生 3.执政形象 4.市场监督 5.自然灾害 6.安全事故 7.社会保证 8.市政管理") + @ApiModelProperty(value = "涉事类型1. 治安维护 2.医疗卫生 3.执政形象 4.市场监督 5.自然灾害 6.安全事故 7.社会保证 8.市政管理") + private Long eventType; + + /** + * 舆情类型1.敏感 2.非敏感 3.本地相关信息 + * 4.推送预警信息 5.聚焦本地媒体信息 + */ + @Excel(name = "舆情类型") + @ApiModelProperty(value = "舆情类型1.敏感 2.非敏感 3.本地相关信息 4.推送预警信息 5.聚焦本地媒体信息 ") + private Long sentimentType; + + /** + * 词云类别1.开门红 2.城乡文明融合………. + */ + @Excel(name = "词云类别1.开门红 2.城乡文明融合……….") + @ApiModelProperty(value = "词云类别1.开门红 2.城乡文明融合……….") + private Long yuciType; + + /** + * 来源1.微博 2.抖音 …. + */ + @Excel(name = "来源1.微博 2.抖音 ….") + @ApiModelProperty(value = "来源1.微博 2.抖音 ….") + private Long source; + + /** + * 是否转办1是 2否 + */ + @Excel(name = "是否转办1是 2否") + @ApiModelProperty(value = "是否转办1是 2否") + private Long isturn; + + /** + * 文件名称 + */ + @Excel(name = "文件名称") + @ApiModelProperty(value = "文件名称") + private String fileName; + + /** + * 文件地址 + */ + @Excel(name = "文件地址") + @ApiModelProperty(value = "文件地址") + private String fileUrl; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkSupportUnit.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkSupportUnit.java new file mode 100644 index 0000000..75dde0a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkSupportUnit.java @@ -0,0 +1,67 @@ +package com.ruoyi.zongzhi.domain; + +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 网络安全支持单位对象 tc_network_support_unit + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcNetworkSupportUnit extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 单位名称 + */ + @Excel(name = "单位名称") + @ApiModelProperty(value = "单位名称") + private String name; + + /** + * 联系人 + */ + @Excel(name = "联系人") + @ApiModelProperty(value = "联系人") + private String linkMan; + + /** + * 联系电话 + */ + @Excel(name = "联系电话") + @ApiModelProperty(value = "联系电话") + private String phoneNum; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkVolunteer.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkVolunteer.java new file mode 100644 index 0000000..cc1b95a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcNetworkVolunteer.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.domain; + +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 网络文明自愿者对象 tc_network_volunteer + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcNetworkVolunteer extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 类别1. 银龄生活 + * 2. 凌云燕 + */ + @Excel(name = "类别") + @ApiModelProperty(value = "类别1.银龄生活 2.凌云燕") + private Long type; + + /** + * 姓名 + */ + @Excel(name = "姓名") + @ApiModelProperty(value = "姓名") + private String name; + + /** + * 年龄 + */ + @Excel(name = "年龄") + @ApiModelProperty(value = "年龄") + private Long age; + + /** + * 活动内容 + */ + @Excel(name = "活动内容") + @ApiModelProperty(value = "活动内容") + private String content; + + /** + * 单位 + */ + @Excel(name = "单位") + @ApiModelProperty(value = "单位") + private String unit; + + /** + * 职务 + */ + @Excel(name = "职务") + @ApiModelProperty(value = "职务") + private String duty; + + /** + * 联系方式 + */ + @Excel(name = "联系方式") + @ApiModelProperty(value = "联系方式") + private Long phoneNum; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcQinglangZhuanxiang.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcQinglangZhuanxiang.java new file mode 100644 index 0000000..50f9531 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcQinglangZhuanxiang.java @@ -0,0 +1,85 @@ +package com.ruoyi.zongzhi.domain; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 清朗专项对象 tc_qinglang_zhuanxiang + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcQinglangZhuanxiang extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 专项标题 + */ + @Excel(name = "专项标题") + @ApiModelProperty(value = "专项标题") + private String zhuanxiangTitle; + + /** + * 发布时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date zhuanxiangTime; + + /** + * 专项内容 + */ + @Excel(name = "专项内容") + @ApiModelProperty(value = "专项内容") + private String zhuanxiangContent; + + /** + * 专项图片 + */ + @Excel(name = "专项图片") + @ApiModelProperty(value = "专项图片") + private String zhuanxiangImg; + + /** + * 处理类型1. 处理有害信息 + * 2. 关闭直播平台违规账号 + */ + @Excel(name = "处理类型") + @ApiModelProperty(value = "处理类型") + private Long zhuanxiangType; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcSafetyDanger.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcSafetyDanger.java new file mode 100644 index 0000000..49625da --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcSafetyDanger.java @@ -0,0 +1,142 @@ +package com.ruoyi.zongzhi.domain; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 监管单位对象 tc_safety_danger + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcSafetyDanger extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 隐患类型1. 敏感信息泄露漏洞 + * 2. 权限许可和访问控制 + * 3. 未加密登录请求 + * 4. 应用程序测试脚本漏洞 + * 5. 文件上传漏洞 + * 6. 其他 + */ + @Excel(name = "隐患类型1. 敏感信息泄露漏洞 ") + @ApiModelProperty(value = "隐患类型1. 敏感信息泄露漏洞 2.权限许可和访问控制 3.未加密登录请求 4. 应用程序测试脚本漏洞 5. 文件上传漏洞 6.其他 ") + private Long type; + + /** + * 单位名称 + */ + @Excel(name = "单位名称") + @ApiModelProperty(value = "单位名称") + private String unitName; + + /** + * 隐患名称 + */ + @Excel(name = "隐患名称") + @ApiModelProperty(value = "隐患名称") + private String riskName; + + /** + * 等级1. 低级 + * 2. 中级 + * 3. 高级 + */ + @Excel(name = "等级") + @ApiModelProperty(value = "等级1.低级 2.中级 3.高级") + private Long level; + + /** + * 隐患来源1. 众测 + * 2. 态势感知平台 + * 3. 网信办 + */ + @Excel(name = "隐患来源") + @ApiModelProperty(value = "隐患来源1. 众测 2.态势感知平台 3.网信办 ") + private Long riskSource; + + /** + * 目标IP/域名 + */ + @Excel(name = "目标IP/域名") + @ApiModelProperty(value = "目标IP/域名") + private String ipDns; + + /** + * 处置情况1.已归档,2.未归档 + */ + @Excel(name = "处置情况1.已归档,2.未归档") + @ApiModelProperty(value = "处置情况1.已归档,2.未归档") + private Long state; + + /** + * 文件名称 + */ + @Excel(name = "文件名称") + @ApiModelProperty(value = "文件名称") + private String fileName; + + /** + * 文件地址 + */ + @Excel(name = "文件地址") + @ApiModelProperty(value = "文件地址") + private String fileUrl; + + /** + * 部门 + */ + @Excel(name = "部门") + @ApiModelProperty(value = "部门") + private String depName; + + /** + * 隐患开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "隐患开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date startTime; + + /** + * 隐患结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "隐患结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcSafetyDetection.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcSafetyDetection.java new file mode 100644 index 0000000..ab3130a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcSafetyDetection.java @@ -0,0 +1,155 @@ +package com.ruoyi.zongzhi.domain; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 安全检测对象 tc_safety_detection + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcSafetyDetection extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 攻击发起时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "攻击发起时间", width = 30, dateFormat = "yyyy-MM-dd") + @ApiModelProperty(value = "攻击发起时间") + private Date attackTime; + + /** + * 攻击源ID + */ + @Excel(name = "攻击源ID") + @ApiModelProperty(value = "攻击源ID") + private String sourceIp; + + /** + * 攻击源经度 + */ + @Excel(name = "攻击源经度") + @ApiModelProperty(value = "攻击源经度") + private String attackedLongitude; + + /** + * 攻击源纬度 + */ + @Excel(name = "攻击源纬度") + @ApiModelProperty(value = "攻击源纬度") + private String attackedLatitude; + + /** + * 攻击类型 + * 1.入侵攻击 + * 2.恶意扫描 + * 3僵木蠕病毒 + * 4.挖矿 + * 5.网络爬虫 + */ + @Excel(name = "攻击类型") + @ApiModelProperty(value = "攻击类型") + private Long attackType; + + /** + * 攻击源IP地址区域 + */ + @Excel(name = "攻击源IP地址区域") + @ApiModelProperty(value = "攻击源IP地址区域") + private String attackIpRegion; + + /** + * 受攻击IP + */ + @Excel(name = "受攻击IP") + @ApiModelProperty(value = "受攻击IP") + private String attackedIp; + + /** + * 受攻击IP区域 + */ + @Excel(name = "受攻击IP区域") + @ApiModelProperty(value = "受攻击IP区域") + private String attackedIpRegion; + + /** + * 受攻击经度 + */ + @Excel(name = "受攻击经度") + @ApiModelProperty(value = "受攻击经度") + private String attackLongitude; + + /** + * 受攻击纬度 + */ + @Excel(name = "受攻击纬度") + @ApiModelProperty(value = "受攻击纬度") + private String attackLatitude; + + /** + * 网络安全等级 + * 1. 一级 + * 2. 二级 + * 3. 三级 + */ + @Excel(name = "网络安全等级") + @ApiModelProperty(value = "网络安全等级") + private Long level; + + /** + * 所属单位 + */ + @ApiModelProperty(value = "所属单位") + @Excel(name = "所属单位") + private String affUnit; + + /** + * 联系电话 + */ + @ApiModelProperty(value = "联系电话") + @Excel(name = "联系电话") + private String phoneNum; + + /** + * 联系人 + */ + @Excel(name = "联系人") + @ApiModelProperty(value = "联系人") + private String linkMan; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcTown.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcTown.java new file mode 100644 index 0000000..7679ba8 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcTown.java @@ -0,0 +1,52 @@ +package com.ruoyi.zongzhi.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 区域对象 tc_town + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcTown extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 区域名称 */ + @Excel(name = "区域名称") + @ApiModelProperty(value = "区域名称") + private String name; + + /** 上级区域名称 */ + @Excel(name = "上级区域名称") + @ApiModelProperty(value = "上级区域名称") + private String parentName; + + /** 上级区域id */ + @Excel(name = "上级区域id") + @ApiModelProperty(value = "上级区域id") + private Long parentId; + + /** 层级1:市,2:镇,3:村 */ + @Excel(name = "层级1:市,2:镇,3:村") + @ApiModelProperty(value = "层级") + private Long level; + + /** 创建人id */ + @Excel(name = "创建人id") + private Long createId; + + /** 修改人ID */ + @Excel(name = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcWorkDongtai.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcWorkDongtai.java new file mode 100644 index 0000000..57f03f4 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcWorkDongtai.java @@ -0,0 +1,84 @@ +package com.ruoyi.zongzhi.domain; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 工作动态对象 tc_work_dongtai + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcWorkDongtai extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 类型 + */ + @Excel(name = "类型") + @ApiModelProperty(value = "类型") + private String type; + + /** + * 材料名称 + */ + @Excel(name = "材料名称") + @ApiModelProperty(value = "材料名称") + private String materialsName; + + /** + * 发布时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date fabuTime; + + /** + * 材料文件名称 + */ + @Excel(name = "材料文件名称") + @ApiModelProperty(value = "材料文件名称") + private String materialsFileName; + + /** + * 材料文件URL + */ + @Excel(name = "材料文件URL") + @ApiModelProperty(value = "材料文件URL") + private String materialsFileUrl; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + @ApiModelProperty(value = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + @ApiModelProperty(value = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcZhongdianDomain.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcZhongdianDomain.java new file mode 100644 index 0000000..b0bee4b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcZhongdianDomain.java @@ -0,0 +1,62 @@ +package com.ruoyi.zongzhi.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 重点领域监管对象 tc_zhongdian_domain + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcZhongdianDomain extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 区域id */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** 企业类型 */ + @Excel(name = "企业类型") + @ApiModelProperty(value = "企业类型") + private Long enterpriseType; + + /** 重点监管内容 */ + @Excel(name = "重点监管内容") + @ApiModelProperty(value = "重点监管内容") + private String zdjgContent; + + /** 法律法规明令禁止的有关行为 */ + @Excel(name = "法律法规明令禁止的有关行为") + @ApiModelProperty(value = "法律法规明令禁止的有关行为") + private String weifaXingwei; + + /** 主要监管部门 */ + @Excel(name = "主要监管部门") + @ApiModelProperty(value = "主要监管部门") + private String dep; + + /** 主要依据 */ + @Excel(name = "主要依据") + @ApiModelProperty(value = "主要依据") + private String zhuyaoYiju; + + /** 创建人ID */ + @Excel(name = "创建人ID") + private Long createId; + + /** 修改人ID */ + @Excel(name = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcZhongdianEnterprise.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcZhongdianEnterprise.java new file mode 100644 index 0000000..113b1c8 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcZhongdianEnterprise.java @@ -0,0 +1,82 @@ +package com.ruoyi.zongzhi.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 重点企业名录对象 tc_zhongdian_enterprise + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcZhongdianEnterprise extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 区域id */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** 企业名称 */ + @Excel(name = "企业名称") + @ApiModelProperty(value = "企业名称") + private String enterpriseName; + + /** 企业类型 */ + @Excel(name = "企业类型") + @ApiModelProperty(value = "企业类型") + private Long enterpriseType; + + /** 互联网业务1.直播,2.论坛bbs,3短视频,4.电子商务销售,5.信息展示 */ + @ApiModelProperty(value = "互联网业务") + @Excel(name = "互联网业务1.直播,2.论坛bbs,3短视频,4.电子商务销售,5.信息展示") + private Long networkYewu; + + /** 监管部门 */ + @Excel(name = "监管部门") + @ApiModelProperty(value = "监管部门") + private String jianguanBumen; + + /** 单位地址 */ + @Excel(name = "单位地址") + @ApiModelProperty(value = "单位地址") + private String address; + + /** 联系人 */ + @Excel(name = "联系人") + @ApiModelProperty(value = "联系人") + private String linkMan; + + /** 联系电话 */ + @Excel(name = "联系电话") + @ApiModelProperty(value = "联系电话") + private String phoneNum; + + /** 网站或平台名称 */ + @Excel(name = "网站或平台名称") + @ApiModelProperty(value = "网站或平台名称") + private String productName; + + /** 域名 */ + @Excel(name = "域名") + @ApiModelProperty(value = "域名") + private String dns; + + /** 创建人ID */ + @Excel(name = "创建人ID") + private Long createId; + + /** 修改人ID */ + @Excel(name = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcZhongdianWork.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcZhongdianWork.java new file mode 100644 index 0000000..9319d24 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/domain/TcZhongdianWork.java @@ -0,0 +1,93 @@ +package com.ruoyi.zongzhi.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 重点工作项目对象 tc_zhongdian_work + * + * @author ruoyi + * @date 2023-08-10 + */ +@Data +public class TcZhongdianWork extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 区域id + */ + @Excel(name = "区域id") + @ApiModelProperty(value = "区域id") + private Long areaId; + + /** + * 推进单位 + */ + @Excel(name = "推进单位") + @ApiModelProperty(value = "推进单位") + private String unitName; + + /** + * 项目名称 + */ + @Excel(name = "项目名称") + @ApiModelProperty(value = "项目名称") + private String projectName; + + /** + * 项目内容 + */ + @ApiModelProperty(value = "项目内容") + @Excel(name = "项目内容") + private String projectContent; + + /** + * 项目类型 + */ + @ApiModelProperty(value = "项目类型") + @Excel(name = "项目类型") + private Long projectType; + + /** + * 项目联系人 + */ + @Excel(name = "项目联系人") + @ApiModelProperty(value = "项目联系人") + private String projectLinkMan; + + /** + * 联系电话 + */ + @Excel(name = "联系电话") + @ApiModelProperty(value = "联系电话") + private String phoneNum; + + /** + * 联系人职务 + */ + @Excel(name = "联系人职务") + @ApiModelProperty(value = "联系人职务") + private String linkManDuty; + + /** + * 创建人ID + */ + @Excel(name = "创建人ID") + private Long createId; + + /** + * 修改人ID + */ + @Excel(name = "修改人ID") + private Long updateId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcCommentatorMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcCommentatorMapper.java new file mode 100644 index 0000000..3b77cb5 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcCommentatorMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcCommentator; + +/** + * 网评员Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcCommentatorMapper +{ + /** + * 查询网评员 + * + * @param id 网评员主键 + * @return 网评员 + */ + public TcCommentator selectTcCommentatorById(Long id); + + /** + * 查询网评员列表 + * + * @param tcCommentator 网评员 + * @return 网评员集合 + */ + public List selectTcCommentatorList(TcCommentator tcCommentator); + + /** + * 新增网评员 + * + * @param tcCommentator 网评员 + * @return 结果 + */ + public int insertTcCommentator(TcCommentator tcCommentator); + + /** + * 修改网评员 + * + * @param tcCommentator 网评员 + * @return 结果 + */ + public int updateTcCommentator(TcCommentator tcCommentator); + + /** + * 删除网评员 + * + * @param id 网评员主键 + * @return 结果 + */ + public int deleteTcCommentatorById(Long id); + + /** + * 批量删除网评员 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcCommentatorByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcDataSourceMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcDataSourceMapper.java new file mode 100644 index 0000000..5f70289 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcDataSourceMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcDataSource; + +/** + * 数据来源Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcDataSourceMapper +{ + /** + * 查询数据来源 + * + * @param id 数据来源主键 + * @return 数据来源 + */ + public TcDataSource selectTcDataSourceById(Long id); + + /** + * 查询数据来源列表 + * + * @param tcDataSource 数据来源 + * @return 数据来源集合 + */ + public List selectTcDataSourceList(TcDataSource tcDataSource); + + /** + * 新增数据来源 + * + * @param tcDataSource 数据来源 + * @return 结果 + */ + public int insertTcDataSource(TcDataSource tcDataSource); + + /** + * 修改数据来源 + * + * @param tcDataSource 数据来源 + * @return 结果 + */ + public int updateTcDataSource(TcDataSource tcDataSource); + + /** + * 删除数据来源 + * + * @param id 数据来源主键 + * @return 结果 + */ + public int deleteTcDataSourceById(Long id); + + /** + * 批量删除数据来源 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcDataSourceByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcDengbaoSystemMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcDengbaoSystemMapper.java new file mode 100644 index 0000000..0823c80 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcDengbaoSystemMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcDengbaoSystem; + +/** + * 等保系统Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcDengbaoSystemMapper +{ + /** + * 查询等保系统 + * + * @param id 等保系统主键 + * @return 等保系统 + */ + public TcDengbaoSystem selectTcDengbaoSystemById(Long id); + + /** + * 查询等保系统列表 + * + * @param tcDengbaoSystem 等保系统 + * @return 等保系统集合 + */ + public List selectTcDengbaoSystemList(TcDengbaoSystem tcDengbaoSystem); + + /** + * 新增等保系统 + * + * @param tcDengbaoSystem 等保系统 + * @return 结果 + */ + public int insertTcDengbaoSystem(TcDengbaoSystem tcDengbaoSystem); + + /** + * 修改等保系统 + * + * @param tcDengbaoSystem 等保系统 + * @return 结果 + */ + public int updateTcDengbaoSystem(TcDengbaoSystem tcDengbaoSystem); + + /** + * 删除等保系统 + * + * @param id 等保系统主键 + * @return 结果 + */ + public int deleteTcDengbaoSystemById(Long id); + + /** + * 批量删除等保系统 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcDengbaoSystemByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcDengbaoUnitMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcDengbaoUnitMapper.java new file mode 100644 index 0000000..a0f8e90 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcDengbaoUnitMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcDengbaoUnit; + +/** + * 等保单位Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcDengbaoUnitMapper +{ + /** + * 查询等保单位 + * + * @param id 等保单位主键 + * @return 等保单位 + */ + public TcDengbaoUnit selectTcDengbaoUnitById(Long id); + + /** + * 查询等保单位列表 + * + * @param tcDengbaoUnit 等保单位 + * @return 等保单位集合 + */ + public List selectTcDengbaoUnitList(TcDengbaoUnit tcDengbaoUnit); + + /** + * 新增等保单位 + * + * @param tcDengbaoUnit 等保单位 + * @return 结果 + */ + public int insertTcDengbaoUnit(TcDengbaoUnit tcDengbaoUnit); + + /** + * 修改等保单位 + * + * @param tcDengbaoUnit 等保单位 + * @return 结果 + */ + public int updateTcDengbaoUnit(TcDengbaoUnit tcDengbaoUnit); + + /** + * 删除等保单位 + * + * @param id 等保单位主键 + * @return 结果 + */ + public int deleteTcDengbaoUnitById(Long id); + + /** + * 批量删除等保单位 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcDengbaoUnitByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcExtworkSafetyadminMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcExtworkSafetyadminMapper.java new file mode 100644 index 0000000..6d9c68c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcExtworkSafetyadminMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcExtworkSafetyadmin; + +/** + * 网络安全官Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcExtworkSafetyadminMapper +{ + /** + * 查询网络安全官 + * + * @param id 网络安全官主键 + * @return 网络安全官 + */ + public TcExtworkSafetyadmin selectTcExtworkSafetyadminById(Long id); + + /** + * 查询网络安全官列表 + * + * @param tcExtworkSafetyadmin 网络安全官 + * @return 网络安全官集合 + */ + public List selectTcExtworkSafetyadminList(TcExtworkSafetyadmin tcExtworkSafetyadmin); + + /** + * 新增网络安全官 + * + * @param tcExtworkSafetyadmin 网络安全官 + * @return 结果 + */ + public int insertTcExtworkSafetyadmin(TcExtworkSafetyadmin tcExtworkSafetyadmin); + + /** + * 修改网络安全官 + * + * @param tcExtworkSafetyadmin 网络安全官 + * @return 结果 + */ + public int updateTcExtworkSafetyadmin(TcExtworkSafetyadmin tcExtworkSafetyadmin); + + /** + * 删除网络安全官 + * + * @param id 网络安全官主键 + * @return 结果 + */ + public int deleteTcExtworkSafetyadminById(Long id); + + /** + * 批量删除网络安全官 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcExtworkSafetyadminByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcGovernmentWebMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcGovernmentWebMapper.java new file mode 100644 index 0000000..5950dcc --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcGovernmentWebMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcGovernmentWeb; + +/** + * 政府网站Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcGovernmentWebMapper +{ + /** + * 查询政府网站 + * + * @param id 政府网站主键 + * @return 政府网站 + */ + public TcGovernmentWeb selectTcGovernmentWebById(Long id); + + /** + * 查询政府网站列表 + * + * @param tcGovernmentWeb 政府网站 + * @return 政府网站集合 + */ + public List selectTcGovernmentWebList(TcGovernmentWeb tcGovernmentWeb); + + /** + * 新增政府网站 + * + * @param tcGovernmentWeb 政府网站 + * @return 结果 + */ + public int insertTcGovernmentWeb(TcGovernmentWeb tcGovernmentWeb); + + /** + * 修改政府网站 + * + * @param tcGovernmentWeb 政府网站 + * @return 结果 + */ + public int updateTcGovernmentWeb(TcGovernmentWeb tcGovernmentWeb); + + /** + * 删除政府网站 + * + * @param id 政府网站主键 + * @return 结果 + */ + public int deleteTcGovernmentWebById(Long id); + + /** + * 批量删除政府网站 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcGovernmentWebByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcIdcUnitMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcIdcUnitMapper.java new file mode 100644 index 0000000..3f906b9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcIdcUnitMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcIdcUnit; + +/** + * IDC单位Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcIdcUnitMapper +{ + /** + * 查询IDC单位 + * + * @param id IDC单位主键 + * @return IDC单位 + */ + public TcIdcUnit selectTcIdcUnitById(Long id); + + /** + * 查询IDC单位列表 + * + * @param tcIdcUnit IDC单位 + * @return IDC单位集合 + */ + public List selectTcIdcUnitList(TcIdcUnit tcIdcUnit); + + /** + * 新增IDC单位 + * + * @param tcIdcUnit IDC单位 + * @return 结果 + */ + public int insertTcIdcUnit(TcIdcUnit tcIdcUnit); + + /** + * 修改IDC单位 + * + * @param tcIdcUnit IDC单位 + * @return 结果 + */ + public int updateTcIdcUnit(TcIdcUnit tcIdcUnit); + + /** + * 删除IDC单位 + * + * @param id IDC单位主键 + * @return 结果 + */ + public int deleteTcIdcUnitById(Long id); + + /** + * 批量删除IDC单位 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcIdcUnitByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkArticleMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkArticleMapper.java new file mode 100644 index 0000000..c2fef41 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkArticleMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkArticle; + +/** + * 网络文章Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcNetworkArticleMapper +{ + /** + * 查询网络文章 + * + * @param id 网络文章主键 + * @return 网络文章 + */ + public TcNetworkArticle selectTcNetworkArticleById(Long id); + + /** + * 查询网络文章列表 + * + * @param tcNetworkArticle 网络文章 + * @return 网络文章集合 + */ + public List selectTcNetworkArticleList(TcNetworkArticle tcNetworkArticle); + + /** + * 新增网络文章 + * + * @param tcNetworkArticle 网络文章 + * @return 结果 + */ + public int insertTcNetworkArticle(TcNetworkArticle tcNetworkArticle); + + /** + * 修改网络文章 + * + * @param tcNetworkArticle 网络文章 + * @return 结果 + */ + public int updateTcNetworkArticle(TcNetworkArticle tcNetworkArticle); + + /** + * 删除网络文章 + * + * @param id 网络文章主键 + * @return 结果 + */ + public int deleteTcNetworkArticleById(Long id); + + /** + * 批量删除网络文章 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcNetworkArticleByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkEvaluateMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkEvaluateMapper.java new file mode 100644 index 0000000..4495209 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkEvaluateMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkEvaluate; + +/** + * 网评Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcNetworkEvaluateMapper +{ + /** + * 查询网评 + * + * @param id 网评主键 + * @return 网评 + */ + public TcNetworkEvaluate selectTcNetworkEvaluateById(Long id); + + /** + * 查询网评列表 + * + * @param tcNetworkEvaluate 网评 + * @return 网评集合 + */ + public List selectTcNetworkEvaluateList(TcNetworkEvaluate tcNetworkEvaluate); + + /** + * 新增网评 + * + * @param tcNetworkEvaluate 网评 + * @return 结果 + */ + public int insertTcNetworkEvaluate(TcNetworkEvaluate tcNetworkEvaluate); + + /** + * 修改网评 + * + * @param tcNetworkEvaluate 网评 + * @return 结果 + */ + public int updateTcNetworkEvaluate(TcNetworkEvaluate tcNetworkEvaluate); + + /** + * 删除网评 + * + * @param id 网评主键 + * @return 结果 + */ + public int deleteTcNetworkEvaluateById(Long id); + + /** + * 批量删除网评 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcNetworkEvaluateByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkMqPrincipalMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkMqPrincipalMapper.java new file mode 100644 index 0000000..c17c780 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkMqPrincipalMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkMqPrincipal; + +/** + * 网络民情责任人Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcNetworkMqPrincipalMapper +{ + /** + * 查询网络民情责任人 + * + * @param id 网络民情责任人主键 + * @return 网络民情责任人 + */ + public TcNetworkMqPrincipal selectTcNetworkMqPrincipalById(Long id); + + /** + * 查询网络民情责任人列表 + * + * @param tcNetworkMqPrincipal 网络民情责任人 + * @return 网络民情责任人集合 + */ + public List selectTcNetworkMqPrincipalList(TcNetworkMqPrincipal tcNetworkMqPrincipal); + + /** + * 新增网络民情责任人 + * + * @param tcNetworkMqPrincipal 网络民情责任人 + * @return 结果 + */ + public int insertTcNetworkMqPrincipal(TcNetworkMqPrincipal tcNetworkMqPrincipal); + + /** + * 修改网络民情责任人 + * + * @param tcNetworkMqPrincipal 网络民情责任人 + * @return 结果 + */ + public int updateTcNetworkMqPrincipal(TcNetworkMqPrincipal tcNetworkMqPrincipal); + + /** + * 删除网络民情责任人 + * + * @param id 网络民情责任人主键 + * @return 结果 + */ + public int deleteTcNetworkMqPrincipalById(Long id); + + /** + * 批量删除网络民情责任人 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcNetworkMqPrincipalByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkPingtaiMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkPingtaiMapper.java new file mode 100644 index 0000000..b1295d4 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkPingtaiMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkPingtai; + +/** + * 网络平台Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcNetworkPingtaiMapper +{ + /** + * 查询网络平台 + * + * @param id 网络平台主键 + * @return 网络平台 + */ + public TcNetworkPingtai selectTcNetworkPingtaiById(Long id); + + /** + * 查询网络平台列表 + * + * @param tcNetworkPingtai 网络平台 + * @return 网络平台集合 + */ + public List selectTcNetworkPingtaiList(TcNetworkPingtai tcNetworkPingtai); + + /** + * 新增网络平台 + * + * @param tcNetworkPingtai 网络平台 + * @return 结果 + */ + public int insertTcNetworkPingtai(TcNetworkPingtai tcNetworkPingtai); + + /** + * 修改网络平台 + * + * @param tcNetworkPingtai 网络平台 + * @return 结果 + */ + public int updateTcNetworkPingtai(TcNetworkPingtai tcNetworkPingtai); + + /** + * 删除网络平台 + * + * @param id 网络平台主键 + * @return 结果 + */ + public int deleteTcNetworkPingtaiById(Long id); + + /** + * 批量删除网络平台 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcNetworkPingtaiByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkReportMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkReportMapper.java new file mode 100644 index 0000000..73e772e --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkReportMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkReport; + +/** + * 网络举报Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcNetworkReportMapper +{ + /** + * 查询网络举报 + * + * @param id 网络举报主键 + * @return 网络举报 + */ + public TcNetworkReport selectTcNetworkReportById(Long id); + + /** + * 查询网络举报列表 + * + * @param tcNetworkReport 网络举报 + * @return 网络举报集合 + */ + public List selectTcNetworkReportList(TcNetworkReport tcNetworkReport); + + /** + * 新增网络举报 + * + * @param tcNetworkReport 网络举报 + * @return 结果 + */ + public int insertTcNetworkReport(TcNetworkReport tcNetworkReport); + + /** + * 修改网络举报 + * + * @param tcNetworkReport 网络举报 + * @return 结果 + */ + public int updateTcNetworkReport(TcNetworkReport tcNetworkReport); + + /** + * 删除网络举报 + * + * @param id 网络举报主键 + * @return 结果 + */ + public int deleteTcNetworkReportById(Long id); + + /** + * 批量删除网络举报 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcNetworkReportByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkSentimentMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkSentimentMapper.java new file mode 100644 index 0000000..25fad7a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkSentimentMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkSentiment; + +/** + * 网络舆情Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcNetworkSentimentMapper +{ + /** + * 查询网络舆情 + * + * @param id 网络舆情主键 + * @return 网络舆情 + */ + public TcNetworkSentiment selectTcNetworkSentimentById(Long id); + + /** + * 查询网络舆情列表 + * + * @param tcNetworkSentiment 网络舆情 + * @return 网络舆情集合 + */ + public List selectTcNetworkSentimentList(TcNetworkSentiment tcNetworkSentiment); + + /** + * 新增网络舆情 + * + * @param tcNetworkSentiment 网络舆情 + * @return 结果 + */ + public int insertTcNetworkSentiment(TcNetworkSentiment tcNetworkSentiment); + + /** + * 修改网络舆情 + * + * @param tcNetworkSentiment 网络舆情 + * @return 结果 + */ + public int updateTcNetworkSentiment(TcNetworkSentiment tcNetworkSentiment); + + /** + * 删除网络舆情 + * + * @param id 网络舆情主键 + * @return 结果 + */ + public int deleteTcNetworkSentimentById(Long id); + + /** + * 批量删除网络舆情 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcNetworkSentimentByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkSupportUnitMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkSupportUnitMapper.java new file mode 100644 index 0000000..e5cd2d8 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkSupportUnitMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkSupportUnit; + +/** + * 网络安全支持单位Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcNetworkSupportUnitMapper +{ + /** + * 查询网络安全支持单位 + * + * @param id 网络安全支持单位主键 + * @return 网络安全支持单位 + */ + public TcNetworkSupportUnit selectTcNetworkSupportUnitById(Long id); + + /** + * 查询网络安全支持单位列表 + * + * @param tcNetworkSupportUnit 网络安全支持单位 + * @return 网络安全支持单位集合 + */ + public List selectTcNetworkSupportUnitList(TcNetworkSupportUnit tcNetworkSupportUnit); + + /** + * 新增网络安全支持单位 + * + * @param tcNetworkSupportUnit 网络安全支持单位 + * @return 结果 + */ + public int insertTcNetworkSupportUnit(TcNetworkSupportUnit tcNetworkSupportUnit); + + /** + * 修改网络安全支持单位 + * + * @param tcNetworkSupportUnit 网络安全支持单位 + * @return 结果 + */ + public int updateTcNetworkSupportUnit(TcNetworkSupportUnit tcNetworkSupportUnit); + + /** + * 删除网络安全支持单位 + * + * @param id 网络安全支持单位主键 + * @return 结果 + */ + public int deleteTcNetworkSupportUnitById(Long id); + + /** + * 批量删除网络安全支持单位 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcNetworkSupportUnitByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkVolunteerMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkVolunteerMapper.java new file mode 100644 index 0000000..23060ba --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcNetworkVolunteerMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkVolunteer; + +/** + * 网络文明自愿者Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcNetworkVolunteerMapper +{ + /** + * 查询网络文明自愿者 + * + * @param id 网络文明自愿者主键 + * @return 网络文明自愿者 + */ + public TcNetworkVolunteer selectTcNetworkVolunteerById(Long id); + + /** + * 查询网络文明自愿者列表 + * + * @param tcNetworkVolunteer 网络文明自愿者 + * @return 网络文明自愿者集合 + */ + public List selectTcNetworkVolunteerList(TcNetworkVolunteer tcNetworkVolunteer); + + /** + * 新增网络文明自愿者 + * + * @param tcNetworkVolunteer 网络文明自愿者 + * @return 结果 + */ + public int insertTcNetworkVolunteer(TcNetworkVolunteer tcNetworkVolunteer); + + /** + * 修改网络文明自愿者 + * + * @param tcNetworkVolunteer 网络文明自愿者 + * @return 结果 + */ + public int updateTcNetworkVolunteer(TcNetworkVolunteer tcNetworkVolunteer); + + /** + * 删除网络文明自愿者 + * + * @param id 网络文明自愿者主键 + * @return 结果 + */ + public int deleteTcNetworkVolunteerById(Long id); + + /** + * 批量删除网络文明自愿者 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcNetworkVolunteerByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcQinglangZhuanxiangMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcQinglangZhuanxiangMapper.java new file mode 100644 index 0000000..57a5617 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcQinglangZhuanxiangMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcQinglangZhuanxiang; + +/** + * 清朗专项Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcQinglangZhuanxiangMapper +{ + /** + * 查询清朗专项 + * + * @param id 清朗专项主键 + * @return 清朗专项 + */ + public TcQinglangZhuanxiang selectTcQinglangZhuanxiangById(Long id); + + /** + * 查询清朗专项列表 + * + * @param tcQinglangZhuanxiang 清朗专项 + * @return 清朗专项集合 + */ + public List selectTcQinglangZhuanxiangList(TcQinglangZhuanxiang tcQinglangZhuanxiang); + + /** + * 新增清朗专项 + * + * @param tcQinglangZhuanxiang 清朗专项 + * @return 结果 + */ + public int insertTcQinglangZhuanxiang(TcQinglangZhuanxiang tcQinglangZhuanxiang); + + /** + * 修改清朗专项 + * + * @param tcQinglangZhuanxiang 清朗专项 + * @return 结果 + */ + public int updateTcQinglangZhuanxiang(TcQinglangZhuanxiang tcQinglangZhuanxiang); + + /** + * 删除清朗专项 + * + * @param id 清朗专项主键 + * @return 结果 + */ + public int deleteTcQinglangZhuanxiangById(Long id); + + /** + * 批量删除清朗专项 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcQinglangZhuanxiangByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcSafetyDangerMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcSafetyDangerMapper.java new file mode 100644 index 0000000..7acddb3 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcSafetyDangerMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcSafetyDanger; + +/** + * 监管单位Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcSafetyDangerMapper +{ + /** + * 查询监管单位 + * + * @param id 监管单位主键 + * @return 监管单位 + */ + public TcSafetyDanger selectTcSafetyDangerById(Long id); + + /** + * 查询监管单位列表 + * + * @param tcSafetyDanger 监管单位 + * @return 监管单位集合 + */ + public List selectTcSafetyDangerList(TcSafetyDanger tcSafetyDanger); + + /** + * 新增监管单位 + * + * @param tcSafetyDanger 监管单位 + * @return 结果 + */ + public int insertTcSafetyDanger(TcSafetyDanger tcSafetyDanger); + + /** + * 修改监管单位 + * + * @param tcSafetyDanger 监管单位 + * @return 结果 + */ + public int updateTcSafetyDanger(TcSafetyDanger tcSafetyDanger); + + /** + * 删除监管单位 + * + * @param id 监管单位主键 + * @return 结果 + */ + public int deleteTcSafetyDangerById(Long id); + + /** + * 批量删除监管单位 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcSafetyDangerByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcSafetyDetectionMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcSafetyDetectionMapper.java new file mode 100644 index 0000000..3353019 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcSafetyDetectionMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcSafetyDetection; + +/** + * 安全检测Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcSafetyDetectionMapper +{ + /** + * 查询安全检测 + * + * @param id 安全检测主键 + * @return 安全检测 + */ + public TcSafetyDetection selectTcSafetyDetectionById(Long id); + + /** + * 查询安全检测列表 + * + * @param tcSafetyDetection 安全检测 + * @return 安全检测集合 + */ + public List selectTcSafetyDetectionList(TcSafetyDetection tcSafetyDetection); + + /** + * 新增安全检测 + * + * @param tcSafetyDetection 安全检测 + * @return 结果 + */ + public int insertTcSafetyDetection(TcSafetyDetection tcSafetyDetection); + + /** + * 修改安全检测 + * + * @param tcSafetyDetection 安全检测 + * @return 结果 + */ + public int updateTcSafetyDetection(TcSafetyDetection tcSafetyDetection); + + /** + * 删除安全检测 + * + * @param id 安全检测主键 + * @return 结果 + */ + public int deleteTcSafetyDetectionById(Long id); + + /** + * 批量删除安全检测 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcSafetyDetectionByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcTownMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcTownMapper.java new file mode 100644 index 0000000..0e2295a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcTownMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcTown; + +/** + * 区域Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcTownMapper +{ + /** + * 查询区域 + * + * @param id 区域主键 + * @return 区域 + */ + public TcTown selectTcTownById(Long id); + + /** + * 查询区域列表 + * + * @param tcTown 区域 + * @return 区域集合 + */ + public List selectTcTownList(TcTown tcTown); + + /** + * 新增区域 + * + * @param tcTown 区域 + * @return 结果 + */ + public int insertTcTown(TcTown tcTown); + + /** + * 修改区域 + * + * @param tcTown 区域 + * @return 结果 + */ + public int updateTcTown(TcTown tcTown); + + /** + * 删除区域 + * + * @param id 区域主键 + * @return 结果 + */ + public int deleteTcTownById(Long id); + + /** + * 批量删除区域 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcTownByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcWorkDongtaiMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcWorkDongtaiMapper.java new file mode 100644 index 0000000..ba08354 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcWorkDongtaiMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcWorkDongtai; + +/** + * 工作动态Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcWorkDongtaiMapper +{ + /** + * 查询工作动态 + * + * @param id 工作动态主键 + * @return 工作动态 + */ + public TcWorkDongtai selectTcWorkDongtaiById(Long id); + + /** + * 查询工作动态列表 + * + * @param tcWorkDongtai 工作动态 + * @return 工作动态集合 + */ + public List selectTcWorkDongtaiList(TcWorkDongtai tcWorkDongtai); + + /** + * 新增工作动态 + * + * @param tcWorkDongtai 工作动态 + * @return 结果 + */ + public int insertTcWorkDongtai(TcWorkDongtai tcWorkDongtai); + + /** + * 修改工作动态 + * + * @param tcWorkDongtai 工作动态 + * @return 结果 + */ + public int updateTcWorkDongtai(TcWorkDongtai tcWorkDongtai); + + /** + * 删除工作动态 + * + * @param id 工作动态主键 + * @return 结果 + */ + public int deleteTcWorkDongtaiById(Long id); + + /** + * 批量删除工作动态 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcWorkDongtaiByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcZhongdianDomainMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcZhongdianDomainMapper.java new file mode 100644 index 0000000..00a6e2b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcZhongdianDomainMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcZhongdianDomain; + +/** + * 重点领域监管Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcZhongdianDomainMapper +{ + /** + * 查询重点领域监管 + * + * @param id 重点领域监管主键 + * @return 重点领域监管 + */ + public TcZhongdianDomain selectTcZhongdianDomainById(Long id); + + /** + * 查询重点领域监管列表 + * + * @param tcZhongdianDomain 重点领域监管 + * @return 重点领域监管集合 + */ + public List selectTcZhongdianDomainList(TcZhongdianDomain tcZhongdianDomain); + + /** + * 新增重点领域监管 + * + * @param tcZhongdianDomain 重点领域监管 + * @return 结果 + */ + public int insertTcZhongdianDomain(TcZhongdianDomain tcZhongdianDomain); + + /** + * 修改重点领域监管 + * + * @param tcZhongdianDomain 重点领域监管 + * @return 结果 + */ + public int updateTcZhongdianDomain(TcZhongdianDomain tcZhongdianDomain); + + /** + * 删除重点领域监管 + * + * @param id 重点领域监管主键 + * @return 结果 + */ + public int deleteTcZhongdianDomainById(Long id); + + /** + * 批量删除重点领域监管 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcZhongdianDomainByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcZhongdianEnterpriseMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcZhongdianEnterpriseMapper.java new file mode 100644 index 0000000..6209780 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcZhongdianEnterpriseMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcZhongdianEnterprise; + +/** + * 重点企业名录Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcZhongdianEnterpriseMapper +{ + /** + * 查询重点企业名录 + * + * @param id 重点企业名录主键 + * @return 重点企业名录 + */ + public TcZhongdianEnterprise selectTcZhongdianEnterpriseById(Long id); + + /** + * 查询重点企业名录列表 + * + * @param tcZhongdianEnterprise 重点企业名录 + * @return 重点企业名录集合 + */ + public List selectTcZhongdianEnterpriseList(TcZhongdianEnterprise tcZhongdianEnterprise); + + /** + * 新增重点企业名录 + * + * @param tcZhongdianEnterprise 重点企业名录 + * @return 结果 + */ + public int insertTcZhongdianEnterprise(TcZhongdianEnterprise tcZhongdianEnterprise); + + /** + * 修改重点企业名录 + * + * @param tcZhongdianEnterprise 重点企业名录 + * @return 结果 + */ + public int updateTcZhongdianEnterprise(TcZhongdianEnterprise tcZhongdianEnterprise); + + /** + * 删除重点企业名录 + * + * @param id 重点企业名录主键 + * @return 结果 + */ + public int deleteTcZhongdianEnterpriseById(Long id); + + /** + * 批量删除重点企业名录 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcZhongdianEnterpriseByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcZhongdianWorkMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcZhongdianWorkMapper.java new file mode 100644 index 0000000..8ba9ec7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/mapper/TcZhongdianWorkMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.mapper; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcZhongdianWork; + +/** + * 重点工作项目Mapper接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface TcZhongdianWorkMapper +{ + /** + * 查询重点工作项目 + * + * @param id 重点工作项目主键 + * @return 重点工作项目 + */ + public TcZhongdianWork selectTcZhongdianWorkById(Long id); + + /** + * 查询重点工作项目列表 + * + * @param tcZhongdianWork 重点工作项目 + * @return 重点工作项目集合 + */ + public List selectTcZhongdianWorkList(TcZhongdianWork tcZhongdianWork); + + /** + * 新增重点工作项目 + * + * @param tcZhongdianWork 重点工作项目 + * @return 结果 + */ + public int insertTcZhongdianWork(TcZhongdianWork tcZhongdianWork); + + /** + * 修改重点工作项目 + * + * @param tcZhongdianWork 重点工作项目 + * @return 结果 + */ + public int updateTcZhongdianWork(TcZhongdianWork tcZhongdianWork); + + /** + * 删除重点工作项目 + * + * @param id 重点工作项目主键 + * @return 结果 + */ + public int deleteTcZhongdianWorkById(Long id); + + /** + * 批量删除重点工作项目 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTcZhongdianWorkByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcCommentatorService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcCommentatorService.java new file mode 100644 index 0000000..31d4cc4 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcCommentatorService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcCommentator; + +/** + * 网评员Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcCommentatorService +{ + /** + * 查询网评员 + * + * @param id 网评员主键 + * @return 网评员 + */ + public TcCommentator selectTcCommentatorById(Long id); + + /** + * 查询网评员列表 + * + * @param tcCommentator 网评员 + * @return 网评员集合 + */ + public List selectTcCommentatorList(TcCommentator tcCommentator); + + /** + * 新增网评员 + * + * @param tcCommentator 网评员 + * @return 结果 + */ + public int insertTcCommentator(TcCommentator tcCommentator); + + /** + * 修改网评员 + * + * @param tcCommentator 网评员 + * @return 结果 + */ + public int updateTcCommentator(TcCommentator tcCommentator); + + /** + * 批量删除网评员 + * + * @param ids 需要删除的网评员主键集合 + * @return 结果 + */ + public int deleteTcCommentatorByIds(Long[] ids); + + /** + * 删除网评员信息 + * + * @param id 网评员主键 + * @return 结果 + */ + public int deleteTcCommentatorById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcDataSourceService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcDataSourceService.java new file mode 100644 index 0000000..555aad7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcDataSourceService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcDataSource; + +/** + * 数据来源Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcDataSourceService +{ + /** + * 查询数据来源 + * + * @param id 数据来源主键 + * @return 数据来源 + */ + public TcDataSource selectTcDataSourceById(Long id); + + /** + * 查询数据来源列表 + * + * @param tcDataSource 数据来源 + * @return 数据来源集合 + */ + public List selectTcDataSourceList(TcDataSource tcDataSource); + + /** + * 新增数据来源 + * + * @param tcDataSource 数据来源 + * @return 结果 + */ + public int insertTcDataSource(TcDataSource tcDataSource); + + /** + * 修改数据来源 + * + * @param tcDataSource 数据来源 + * @return 结果 + */ + public int updateTcDataSource(TcDataSource tcDataSource); + + /** + * 批量删除数据来源 + * + * @param ids 需要删除的数据来源主键集合 + * @return 结果 + */ + public int deleteTcDataSourceByIds(Long[] ids); + + /** + * 删除数据来源信息 + * + * @param id 数据来源主键 + * @return 结果 + */ + public int deleteTcDataSourceById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcDengbaoSystemService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcDengbaoSystemService.java new file mode 100644 index 0000000..7e75e02 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcDengbaoSystemService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcDengbaoSystem; + +/** + * 等保系统Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcDengbaoSystemService +{ + /** + * 查询等保系统 + * + * @param id 等保系统主键 + * @return 等保系统 + */ + public TcDengbaoSystem selectTcDengbaoSystemById(Long id); + + /** + * 查询等保系统列表 + * + * @param tcDengbaoSystem 等保系统 + * @return 等保系统集合 + */ + public List selectTcDengbaoSystemList(TcDengbaoSystem tcDengbaoSystem); + + /** + * 新增等保系统 + * + * @param tcDengbaoSystem 等保系统 + * @return 结果 + */ + public int insertTcDengbaoSystem(TcDengbaoSystem tcDengbaoSystem); + + /** + * 修改等保系统 + * + * @param tcDengbaoSystem 等保系统 + * @return 结果 + */ + public int updateTcDengbaoSystem(TcDengbaoSystem tcDengbaoSystem); + + /** + * 批量删除等保系统 + * + * @param ids 需要删除的等保系统主键集合 + * @return 结果 + */ + public int deleteTcDengbaoSystemByIds(Long[] ids); + + /** + * 删除等保系统信息 + * + * @param id 等保系统主键 + * @return 结果 + */ + public int deleteTcDengbaoSystemById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcDengbaoUnitService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcDengbaoUnitService.java new file mode 100644 index 0000000..fd3fee3 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcDengbaoUnitService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcDengbaoUnit; + +/** + * 等保单位Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcDengbaoUnitService +{ + /** + * 查询等保单位 + * + * @param id 等保单位主键 + * @return 等保单位 + */ + public TcDengbaoUnit selectTcDengbaoUnitById(Long id); + + /** + * 查询等保单位列表 + * + * @param tcDengbaoUnit 等保单位 + * @return 等保单位集合 + */ + public List selectTcDengbaoUnitList(TcDengbaoUnit tcDengbaoUnit); + + /** + * 新增等保单位 + * + * @param tcDengbaoUnit 等保单位 + * @return 结果 + */ + public int insertTcDengbaoUnit(TcDengbaoUnit tcDengbaoUnit); + + /** + * 修改等保单位 + * + * @param tcDengbaoUnit 等保单位 + * @return 结果 + */ + public int updateTcDengbaoUnit(TcDengbaoUnit tcDengbaoUnit); + + /** + * 批量删除等保单位 + * + * @param ids 需要删除的等保单位主键集合 + * @return 结果 + */ + public int deleteTcDengbaoUnitByIds(Long[] ids); + + /** + * 删除等保单位信息 + * + * @param id 等保单位主键 + * @return 结果 + */ + public int deleteTcDengbaoUnitById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcExtworkSafetyadminService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcExtworkSafetyadminService.java new file mode 100644 index 0000000..794daad --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcExtworkSafetyadminService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcExtworkSafetyadmin; + +/** + * 网络安全官Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcExtworkSafetyadminService +{ + /** + * 查询网络安全官 + * + * @param id 网络安全官主键 + * @return 网络安全官 + */ + public TcExtworkSafetyadmin selectTcExtworkSafetyadminById(Long id); + + /** + * 查询网络安全官列表 + * + * @param tcExtworkSafetyadmin 网络安全官 + * @return 网络安全官集合 + */ + public List selectTcExtworkSafetyadminList(TcExtworkSafetyadmin tcExtworkSafetyadmin); + + /** + * 新增网络安全官 + * + * @param tcExtworkSafetyadmin 网络安全官 + * @return 结果 + */ + public int insertTcExtworkSafetyadmin(TcExtworkSafetyadmin tcExtworkSafetyadmin); + + /** + * 修改网络安全官 + * + * @param tcExtworkSafetyadmin 网络安全官 + * @return 结果 + */ + public int updateTcExtworkSafetyadmin(TcExtworkSafetyadmin tcExtworkSafetyadmin); + + /** + * 批量删除网络安全官 + * + * @param ids 需要删除的网络安全官主键集合 + * @return 结果 + */ + public int deleteTcExtworkSafetyadminByIds(Long[] ids); + + /** + * 删除网络安全官信息 + * + * @param id 网络安全官主键 + * @return 结果 + */ + public int deleteTcExtworkSafetyadminById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcGovernmentWebService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcGovernmentWebService.java new file mode 100644 index 0000000..3ffd556 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcGovernmentWebService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcGovernmentWeb; + +/** + * 政府网站Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcGovernmentWebService +{ + /** + * 查询政府网站 + * + * @param id 政府网站主键 + * @return 政府网站 + */ + public TcGovernmentWeb selectTcGovernmentWebById(Long id); + + /** + * 查询政府网站列表 + * + * @param tcGovernmentWeb 政府网站 + * @return 政府网站集合 + */ + public List selectTcGovernmentWebList(TcGovernmentWeb tcGovernmentWeb); + + /** + * 新增政府网站 + * + * @param tcGovernmentWeb 政府网站 + * @return 结果 + */ + public int insertTcGovernmentWeb(TcGovernmentWeb tcGovernmentWeb); + + /** + * 修改政府网站 + * + * @param tcGovernmentWeb 政府网站 + * @return 结果 + */ + public int updateTcGovernmentWeb(TcGovernmentWeb tcGovernmentWeb); + + /** + * 批量删除政府网站 + * + * @param ids 需要删除的政府网站主键集合 + * @return 结果 + */ + public int deleteTcGovernmentWebByIds(Long[] ids); + + /** + * 删除政府网站信息 + * + * @param id 政府网站主键 + * @return 结果 + */ + public int deleteTcGovernmentWebById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcIdcUnitService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcIdcUnitService.java new file mode 100644 index 0000000..4621a47 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcIdcUnitService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcIdcUnit; + +/** + * IDC单位Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcIdcUnitService +{ + /** + * 查询IDC单位 + * + * @param id IDC单位主键 + * @return IDC单位 + */ + public TcIdcUnit selectTcIdcUnitById(Long id); + + /** + * 查询IDC单位列表 + * + * @param tcIdcUnit IDC单位 + * @return IDC单位集合 + */ + public List selectTcIdcUnitList(TcIdcUnit tcIdcUnit); + + /** + * 新增IDC单位 + * + * @param tcIdcUnit IDC单位 + * @return 结果 + */ + public int insertTcIdcUnit(TcIdcUnit tcIdcUnit); + + /** + * 修改IDC单位 + * + * @param tcIdcUnit IDC单位 + * @return 结果 + */ + public int updateTcIdcUnit(TcIdcUnit tcIdcUnit); + + /** + * 批量删除IDC单位 + * + * @param ids 需要删除的IDC单位主键集合 + * @return 结果 + */ + public int deleteTcIdcUnitByIds(Long[] ids); + + /** + * 删除IDC单位信息 + * + * @param id IDC单位主键 + * @return 结果 + */ + public int deleteTcIdcUnitById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkArticleService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkArticleService.java new file mode 100644 index 0000000..a70320e --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkArticleService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkArticle; + +/** + * 网络文章Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcNetworkArticleService +{ + /** + * 查询网络文章 + * + * @param id 网络文章主键 + * @return 网络文章 + */ + public TcNetworkArticle selectTcNetworkArticleById(Long id); + + /** + * 查询网络文章列表 + * + * @param tcNetworkArticle 网络文章 + * @return 网络文章集合 + */ + public List selectTcNetworkArticleList(TcNetworkArticle tcNetworkArticle); + + /** + * 新增网络文章 + * + * @param tcNetworkArticle 网络文章 + * @return 结果 + */ + public int insertTcNetworkArticle(TcNetworkArticle tcNetworkArticle); + + /** + * 修改网络文章 + * + * @param tcNetworkArticle 网络文章 + * @return 结果 + */ + public int updateTcNetworkArticle(TcNetworkArticle tcNetworkArticle); + + /** + * 批量删除网络文章 + * + * @param ids 需要删除的网络文章主键集合 + * @return 结果 + */ + public int deleteTcNetworkArticleByIds(Long[] ids); + + /** + * 删除网络文章信息 + * + * @param id 网络文章主键 + * @return 结果 + */ + public int deleteTcNetworkArticleById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkEvaluateService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkEvaluateService.java new file mode 100644 index 0000000..ad45731 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkEvaluateService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkEvaluate; + +/** + * 网评Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcNetworkEvaluateService +{ + /** + * 查询网评 + * + * @param id 网评主键 + * @return 网评 + */ + public TcNetworkEvaluate selectTcNetworkEvaluateById(Long id); + + /** + * 查询网评列表 + * + * @param tcNetworkEvaluate 网评 + * @return 网评集合 + */ + public List selectTcNetworkEvaluateList(TcNetworkEvaluate tcNetworkEvaluate); + + /** + * 新增网评 + * + * @param tcNetworkEvaluate 网评 + * @return 结果 + */ + public int insertTcNetworkEvaluate(TcNetworkEvaluate tcNetworkEvaluate); + + /** + * 修改网评 + * + * @param tcNetworkEvaluate 网评 + * @return 结果 + */ + public int updateTcNetworkEvaluate(TcNetworkEvaluate tcNetworkEvaluate); + + /** + * 批量删除网评 + * + * @param ids 需要删除的网评主键集合 + * @return 结果 + */ + public int deleteTcNetworkEvaluateByIds(Long[] ids); + + /** + * 删除网评信息 + * + * @param id 网评主键 + * @return 结果 + */ + public int deleteTcNetworkEvaluateById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkMqPrincipalService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkMqPrincipalService.java new file mode 100644 index 0000000..b72927c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkMqPrincipalService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkMqPrincipal; + +/** + * 网络民情责任人Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcNetworkMqPrincipalService +{ + /** + * 查询网络民情责任人 + * + * @param id 网络民情责任人主键 + * @return 网络民情责任人 + */ + public TcNetworkMqPrincipal selectTcNetworkMqPrincipalById(Long id); + + /** + * 查询网络民情责任人列表 + * + * @param tcNetworkMqPrincipal 网络民情责任人 + * @return 网络民情责任人集合 + */ + public List selectTcNetworkMqPrincipalList(TcNetworkMqPrincipal tcNetworkMqPrincipal); + + /** + * 新增网络民情责任人 + * + * @param tcNetworkMqPrincipal 网络民情责任人 + * @return 结果 + */ + public int insertTcNetworkMqPrincipal(TcNetworkMqPrincipal tcNetworkMqPrincipal); + + /** + * 修改网络民情责任人 + * + * @param tcNetworkMqPrincipal 网络民情责任人 + * @return 结果 + */ + public int updateTcNetworkMqPrincipal(TcNetworkMqPrincipal tcNetworkMqPrincipal); + + /** + * 批量删除网络民情责任人 + * + * @param ids 需要删除的网络民情责任人主键集合 + * @return 结果 + */ + public int deleteTcNetworkMqPrincipalByIds(Long[] ids); + + /** + * 删除网络民情责任人信息 + * + * @param id 网络民情责任人主键 + * @return 结果 + */ + public int deleteTcNetworkMqPrincipalById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkPingtaiService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkPingtaiService.java new file mode 100644 index 0000000..e8c90d0 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkPingtaiService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkPingtai; + +/** + * 网络平台Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcNetworkPingtaiService +{ + /** + * 查询网络平台 + * + * @param id 网络平台主键 + * @return 网络平台 + */ + public TcNetworkPingtai selectTcNetworkPingtaiById(Long id); + + /** + * 查询网络平台列表 + * + * @param tcNetworkPingtai 网络平台 + * @return 网络平台集合 + */ + public List selectTcNetworkPingtaiList(TcNetworkPingtai tcNetworkPingtai); + + /** + * 新增网络平台 + * + * @param tcNetworkPingtai 网络平台 + * @return 结果 + */ + public int insertTcNetworkPingtai(TcNetworkPingtai tcNetworkPingtai); + + /** + * 修改网络平台 + * + * @param tcNetworkPingtai 网络平台 + * @return 结果 + */ + public int updateTcNetworkPingtai(TcNetworkPingtai tcNetworkPingtai); + + /** + * 批量删除网络平台 + * + * @param ids 需要删除的网络平台主键集合 + * @return 结果 + */ + public int deleteTcNetworkPingtaiByIds(Long[] ids); + + /** + * 删除网络平台信息 + * + * @param id 网络平台主键 + * @return 结果 + */ + public int deleteTcNetworkPingtaiById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkReportService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkReportService.java new file mode 100644 index 0000000..bb4038c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkReportService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkReport; + +/** + * 网络举报Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcNetworkReportService +{ + /** + * 查询网络举报 + * + * @param id 网络举报主键 + * @return 网络举报 + */ + public TcNetworkReport selectTcNetworkReportById(Long id); + + /** + * 查询网络举报列表 + * + * @param tcNetworkReport 网络举报 + * @return 网络举报集合 + */ + public List selectTcNetworkReportList(TcNetworkReport tcNetworkReport); + + /** + * 新增网络举报 + * + * @param tcNetworkReport 网络举报 + * @return 结果 + */ + public int insertTcNetworkReport(TcNetworkReport tcNetworkReport); + + /** + * 修改网络举报 + * + * @param tcNetworkReport 网络举报 + * @return 结果 + */ + public int updateTcNetworkReport(TcNetworkReport tcNetworkReport); + + /** + * 批量删除网络举报 + * + * @param ids 需要删除的网络举报主键集合 + * @return 结果 + */ + public int deleteTcNetworkReportByIds(Long[] ids); + + /** + * 删除网络举报信息 + * + * @param id 网络举报主键 + * @return 结果 + */ + public int deleteTcNetworkReportById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkSentimentService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkSentimentService.java new file mode 100644 index 0000000..0f74600 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkSentimentService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkSentiment; + +/** + * 网络舆情Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcNetworkSentimentService +{ + /** + * 查询网络舆情 + * + * @param id 网络舆情主键 + * @return 网络舆情 + */ + public TcNetworkSentiment selectTcNetworkSentimentById(Long id); + + /** + * 查询网络舆情列表 + * + * @param tcNetworkSentiment 网络舆情 + * @return 网络舆情集合 + */ + public List selectTcNetworkSentimentList(TcNetworkSentiment tcNetworkSentiment); + + /** + * 新增网络舆情 + * + * @param tcNetworkSentiment 网络舆情 + * @return 结果 + */ + public int insertTcNetworkSentiment(TcNetworkSentiment tcNetworkSentiment); + + /** + * 修改网络舆情 + * + * @param tcNetworkSentiment 网络舆情 + * @return 结果 + */ + public int updateTcNetworkSentiment(TcNetworkSentiment tcNetworkSentiment); + + /** + * 批量删除网络舆情 + * + * @param ids 需要删除的网络舆情主键集合 + * @return 结果 + */ + public int deleteTcNetworkSentimentByIds(Long[] ids); + + /** + * 删除网络舆情信息 + * + * @param id 网络舆情主键 + * @return 结果 + */ + public int deleteTcNetworkSentimentById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkSupportUnitService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkSupportUnitService.java new file mode 100644 index 0000000..4807ea4 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkSupportUnitService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkSupportUnit; + +/** + * 网络安全支持单位Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcNetworkSupportUnitService +{ + /** + * 查询网络安全支持单位 + * + * @param id 网络安全支持单位主键 + * @return 网络安全支持单位 + */ + public TcNetworkSupportUnit selectTcNetworkSupportUnitById(Long id); + + /** + * 查询网络安全支持单位列表 + * + * @param tcNetworkSupportUnit 网络安全支持单位 + * @return 网络安全支持单位集合 + */ + public List selectTcNetworkSupportUnitList(TcNetworkSupportUnit tcNetworkSupportUnit); + + /** + * 新增网络安全支持单位 + * + * @param tcNetworkSupportUnit 网络安全支持单位 + * @return 结果 + */ + public int insertTcNetworkSupportUnit(TcNetworkSupportUnit tcNetworkSupportUnit); + + /** + * 修改网络安全支持单位 + * + * @param tcNetworkSupportUnit 网络安全支持单位 + * @return 结果 + */ + public int updateTcNetworkSupportUnit(TcNetworkSupportUnit tcNetworkSupportUnit); + + /** + * 批量删除网络安全支持单位 + * + * @param ids 需要删除的网络安全支持单位主键集合 + * @return 结果 + */ + public int deleteTcNetworkSupportUnitByIds(Long[] ids); + + /** + * 删除网络安全支持单位信息 + * + * @param id 网络安全支持单位主键 + * @return 结果 + */ + public int deleteTcNetworkSupportUnitById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkVolunteerService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkVolunteerService.java new file mode 100644 index 0000000..0658941 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcNetworkVolunteerService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcNetworkVolunteer; + +/** + * 网络文明自愿者Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcNetworkVolunteerService +{ + /** + * 查询网络文明自愿者 + * + * @param id 网络文明自愿者主键 + * @return 网络文明自愿者 + */ + public TcNetworkVolunteer selectTcNetworkVolunteerById(Long id); + + /** + * 查询网络文明自愿者列表 + * + * @param tcNetworkVolunteer 网络文明自愿者 + * @return 网络文明自愿者集合 + */ + public List selectTcNetworkVolunteerList(TcNetworkVolunteer tcNetworkVolunteer); + + /** + * 新增网络文明自愿者 + * + * @param tcNetworkVolunteer 网络文明自愿者 + * @return 结果 + */ + public int insertTcNetworkVolunteer(TcNetworkVolunteer tcNetworkVolunteer); + + /** + * 修改网络文明自愿者 + * + * @param tcNetworkVolunteer 网络文明自愿者 + * @return 结果 + */ + public int updateTcNetworkVolunteer(TcNetworkVolunteer tcNetworkVolunteer); + + /** + * 批量删除网络文明自愿者 + * + * @param ids 需要删除的网络文明自愿者主键集合 + * @return 结果 + */ + public int deleteTcNetworkVolunteerByIds(Long[] ids); + + /** + * 删除网络文明自愿者信息 + * + * @param id 网络文明自愿者主键 + * @return 结果 + */ + public int deleteTcNetworkVolunteerById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcQinglangZhuanxiangService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcQinglangZhuanxiangService.java new file mode 100644 index 0000000..e1f1fe7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcQinglangZhuanxiangService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcQinglangZhuanxiang; + +/** + * 清朗专项Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcQinglangZhuanxiangService +{ + /** + * 查询清朗专项 + * + * @param id 清朗专项主键 + * @return 清朗专项 + */ + public TcQinglangZhuanxiang selectTcQinglangZhuanxiangById(Long id); + + /** + * 查询清朗专项列表 + * + * @param tcQinglangZhuanxiang 清朗专项 + * @return 清朗专项集合 + */ + public List selectTcQinglangZhuanxiangList(TcQinglangZhuanxiang tcQinglangZhuanxiang); + + /** + * 新增清朗专项 + * + * @param tcQinglangZhuanxiang 清朗专项 + * @return 结果 + */ + public int insertTcQinglangZhuanxiang(TcQinglangZhuanxiang tcQinglangZhuanxiang); + + /** + * 修改清朗专项 + * + * @param tcQinglangZhuanxiang 清朗专项 + * @return 结果 + */ + public int updateTcQinglangZhuanxiang(TcQinglangZhuanxiang tcQinglangZhuanxiang); + + /** + * 批量删除清朗专项 + * + * @param ids 需要删除的清朗专项主键集合 + * @return 结果 + */ + public int deleteTcQinglangZhuanxiangByIds(Long[] ids); + + /** + * 删除清朗专项信息 + * + * @param id 清朗专项主键 + * @return 结果 + */ + public int deleteTcQinglangZhuanxiangById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcSafetyDangerService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcSafetyDangerService.java new file mode 100644 index 0000000..9a7b2e9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcSafetyDangerService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcSafetyDanger; + +/** + * 监管单位Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcSafetyDangerService +{ + /** + * 查询监管单位 + * + * @param id 监管单位主键 + * @return 监管单位 + */ + public TcSafetyDanger selectTcSafetyDangerById(Long id); + + /** + * 查询监管单位列表 + * + * @param tcSafetyDanger 监管单位 + * @return 监管单位集合 + */ + public List selectTcSafetyDangerList(TcSafetyDanger tcSafetyDanger); + + /** + * 新增监管单位 + * + * @param tcSafetyDanger 监管单位 + * @return 结果 + */ + public int insertTcSafetyDanger(TcSafetyDanger tcSafetyDanger); + + /** + * 修改监管单位 + * + * @param tcSafetyDanger 监管单位 + * @return 结果 + */ + public int updateTcSafetyDanger(TcSafetyDanger tcSafetyDanger); + + /** + * 批量删除监管单位 + * + * @param ids 需要删除的监管单位主键集合 + * @return 结果 + */ + public int deleteTcSafetyDangerByIds(Long[] ids); + + /** + * 删除监管单位信息 + * + * @param id 监管单位主键 + * @return 结果 + */ + public int deleteTcSafetyDangerById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcSafetyDetectionService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcSafetyDetectionService.java new file mode 100644 index 0000000..489bd3b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcSafetyDetectionService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcSafetyDetection; + +/** + * 安全检测Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcSafetyDetectionService +{ + /** + * 查询安全检测 + * + * @param id 安全检测主键 + * @return 安全检测 + */ + public TcSafetyDetection selectTcSafetyDetectionById(Long id); + + /** + * 查询安全检测列表 + * + * @param tcSafetyDetection 安全检测 + * @return 安全检测集合 + */ + public List selectTcSafetyDetectionList(TcSafetyDetection tcSafetyDetection); + + /** + * 新增安全检测 + * + * @param tcSafetyDetection 安全检测 + * @return 结果 + */ + public int insertTcSafetyDetection(TcSafetyDetection tcSafetyDetection); + + /** + * 修改安全检测 + * + * @param tcSafetyDetection 安全检测 + * @return 结果 + */ + public int updateTcSafetyDetection(TcSafetyDetection tcSafetyDetection); + + /** + * 批量删除安全检测 + * + * @param ids 需要删除的安全检测主键集合 + * @return 结果 + */ + public int deleteTcSafetyDetectionByIds(Long[] ids); + + /** + * 删除安全检测信息 + * + * @param id 安全检测主键 + * @return 结果 + */ + public int deleteTcSafetyDetectionById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcTownService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcTownService.java new file mode 100644 index 0000000..1d80337 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcTownService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcTown; + +/** + * 区域Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcTownService +{ + /** + * 查询区域 + * + * @param id 区域主键 + * @return 区域 + */ + public TcTown selectTcTownById(Long id); + + /** + * 查询区域列表 + * + * @param tcTown 区域 + * @return 区域集合 + */ + public List selectTcTownList(TcTown tcTown); + + /** + * 新增区域 + * + * @param tcTown 区域 + * @return 结果 + */ + public int insertTcTown(TcTown tcTown); + + /** + * 修改区域 + * + * @param tcTown 区域 + * @return 结果 + */ + public int updateTcTown(TcTown tcTown); + + /** + * 批量删除区域 + * + * @param ids 需要删除的区域主键集合 + * @return 结果 + */ + public int deleteTcTownByIds(Long[] ids); + + /** + * 删除区域信息 + * + * @param id 区域主键 + * @return 结果 + */ + public int deleteTcTownById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcWorkDongtaiService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcWorkDongtaiService.java new file mode 100644 index 0000000..9b8fbfe --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcWorkDongtaiService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcWorkDongtai; + +/** + * 工作动态Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcWorkDongtaiService +{ + /** + * 查询工作动态 + * + * @param id 工作动态主键 + * @return 工作动态 + */ + public TcWorkDongtai selectTcWorkDongtaiById(Long id); + + /** + * 查询工作动态列表 + * + * @param tcWorkDongtai 工作动态 + * @return 工作动态集合 + */ + public List selectTcWorkDongtaiList(TcWorkDongtai tcWorkDongtai); + + /** + * 新增工作动态 + * + * @param tcWorkDongtai 工作动态 + * @return 结果 + */ + public int insertTcWorkDongtai(TcWorkDongtai tcWorkDongtai); + + /** + * 修改工作动态 + * + * @param tcWorkDongtai 工作动态 + * @return 结果 + */ + public int updateTcWorkDongtai(TcWorkDongtai tcWorkDongtai); + + /** + * 批量删除工作动态 + * + * @param ids 需要删除的工作动态主键集合 + * @return 结果 + */ + public int deleteTcWorkDongtaiByIds(Long[] ids); + + /** + * 删除工作动态信息 + * + * @param id 工作动态主键 + * @return 结果 + */ + public int deleteTcWorkDongtaiById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcZhongdianDomainService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcZhongdianDomainService.java new file mode 100644 index 0000000..988ab43 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcZhongdianDomainService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcZhongdianDomain; + +/** + * 重点领域监管Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcZhongdianDomainService +{ + /** + * 查询重点领域监管 + * + * @param id 重点领域监管主键 + * @return 重点领域监管 + */ + public TcZhongdianDomain selectTcZhongdianDomainById(Long id); + + /** + * 查询重点领域监管列表 + * + * @param tcZhongdianDomain 重点领域监管 + * @return 重点领域监管集合 + */ + public List selectTcZhongdianDomainList(TcZhongdianDomain tcZhongdianDomain); + + /** + * 新增重点领域监管 + * + * @param tcZhongdianDomain 重点领域监管 + * @return 结果 + */ + public int insertTcZhongdianDomain(TcZhongdianDomain tcZhongdianDomain); + + /** + * 修改重点领域监管 + * + * @param tcZhongdianDomain 重点领域监管 + * @return 结果 + */ + public int updateTcZhongdianDomain(TcZhongdianDomain tcZhongdianDomain); + + /** + * 批量删除重点领域监管 + * + * @param ids 需要删除的重点领域监管主键集合 + * @return 结果 + */ + public int deleteTcZhongdianDomainByIds(Long[] ids); + + /** + * 删除重点领域监管信息 + * + * @param id 重点领域监管主键 + * @return 结果 + */ + public int deleteTcZhongdianDomainById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcZhongdianEnterpriseService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcZhongdianEnterpriseService.java new file mode 100644 index 0000000..e7ee024 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcZhongdianEnterpriseService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcZhongdianEnterprise; + +/** + * 重点企业名录Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcZhongdianEnterpriseService +{ + /** + * 查询重点企业名录 + * + * @param id 重点企业名录主键 + * @return 重点企业名录 + */ + public TcZhongdianEnterprise selectTcZhongdianEnterpriseById(Long id); + + /** + * 查询重点企业名录列表 + * + * @param tcZhongdianEnterprise 重点企业名录 + * @return 重点企业名录集合 + */ + public List selectTcZhongdianEnterpriseList(TcZhongdianEnterprise tcZhongdianEnterprise); + + /** + * 新增重点企业名录 + * + * @param tcZhongdianEnterprise 重点企业名录 + * @return 结果 + */ + public int insertTcZhongdianEnterprise(TcZhongdianEnterprise tcZhongdianEnterprise); + + /** + * 修改重点企业名录 + * + * @param tcZhongdianEnterprise 重点企业名录 + * @return 结果 + */ + public int updateTcZhongdianEnterprise(TcZhongdianEnterprise tcZhongdianEnterprise); + + /** + * 批量删除重点企业名录 + * + * @param ids 需要删除的重点企业名录主键集合 + * @return 结果 + */ + public int deleteTcZhongdianEnterpriseByIds(Long[] ids); + + /** + * 删除重点企业名录信息 + * + * @param id 重点企业名录主键 + * @return 结果 + */ + public int deleteTcZhongdianEnterpriseById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcZhongdianWorkService.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcZhongdianWorkService.java new file mode 100644 index 0000000..bc4bc3d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/ITcZhongdianWorkService.java @@ -0,0 +1,61 @@ +package com.ruoyi.zongzhi.service; + +import java.util.List; +import com.ruoyi.zongzhi.domain.TcZhongdianWork; + +/** + * 重点工作项目Service接口 + * + * @author ruoyi + * @date 2023-08-10 + */ +public interface ITcZhongdianWorkService +{ + /** + * 查询重点工作项目 + * + * @param id 重点工作项目主键 + * @return 重点工作项目 + */ + public TcZhongdianWork selectTcZhongdianWorkById(Long id); + + /** + * 查询重点工作项目列表 + * + * @param tcZhongdianWork 重点工作项目 + * @return 重点工作项目集合 + */ + public List selectTcZhongdianWorkList(TcZhongdianWork tcZhongdianWork); + + /** + * 新增重点工作项目 + * + * @param tcZhongdianWork 重点工作项目 + * @return 结果 + */ + public int insertTcZhongdianWork(TcZhongdianWork tcZhongdianWork); + + /** + * 修改重点工作项目 + * + * @param tcZhongdianWork 重点工作项目 + * @return 结果 + */ + public int updateTcZhongdianWork(TcZhongdianWork tcZhongdianWork); + + /** + * 批量删除重点工作项目 + * + * @param ids 需要删除的重点工作项目主键集合 + * @return 结果 + */ + public int deleteTcZhongdianWorkByIds(Long[] ids); + + /** + * 删除重点工作项目信息 + * + * @param id 重点工作项目主键 + * @return 结果 + */ + public int deleteTcZhongdianWorkById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcCommentatorServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcCommentatorServiceImpl.java new file mode 100644 index 0000000..2aa0da8 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcCommentatorServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcCommentatorMapper; +import com.ruoyi.zongzhi.domain.TcCommentator; +import com.ruoyi.zongzhi.service.ITcCommentatorService; + +/** + * 网评员Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcCommentatorServiceImpl implements ITcCommentatorService +{ + @Autowired + private TcCommentatorMapper tcCommentatorMapper; + + /** + * 查询网评员 + * + * @param id 网评员主键 + * @return 网评员 + */ + @Override + public TcCommentator selectTcCommentatorById(Long id) + { + return tcCommentatorMapper.selectTcCommentatorById(id); + } + + /** + * 查询网评员列表 + * + * @param tcCommentator 网评员 + * @return 网评员 + */ + @Override + public List selectTcCommentatorList(TcCommentator tcCommentator) + { + return tcCommentatorMapper.selectTcCommentatorList(tcCommentator); + } + + /** + * 新增网评员 + * + * @param tcCommentator 网评员 + * @return 结果 + */ + @Override + public int insertTcCommentator(TcCommentator tcCommentator) + { + tcCommentator.setCreateTime(DateUtils.getNowDate()); + return tcCommentatorMapper.insertTcCommentator(tcCommentator); + } + + /** + * 修改网评员 + * + * @param tcCommentator 网评员 + * @return 结果 + */ + @Override + public int updateTcCommentator(TcCommentator tcCommentator) + { + tcCommentator.setUpdateTime(DateUtils.getNowDate()); + return tcCommentatorMapper.updateTcCommentator(tcCommentator); + } + + /** + * 批量删除网评员 + * + * @param ids 需要删除的网评员主键 + * @return 结果 + */ + @Override + public int deleteTcCommentatorByIds(Long[] ids) + { + return tcCommentatorMapper.deleteTcCommentatorByIds(ids); + } + + /** + * 删除网评员信息 + * + * @param id 网评员主键 + * @return 结果 + */ + @Override + public int deleteTcCommentatorById(Long id) + { + return tcCommentatorMapper.deleteTcCommentatorById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcDataSourceServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcDataSourceServiceImpl.java new file mode 100644 index 0000000..eb8e717 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcDataSourceServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcDataSourceMapper; +import com.ruoyi.zongzhi.domain.TcDataSource; +import com.ruoyi.zongzhi.service.ITcDataSourceService; + +/** + * 数据来源Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcDataSourceServiceImpl implements ITcDataSourceService +{ + @Autowired + private TcDataSourceMapper tcDataSourceMapper; + + /** + * 查询数据来源 + * + * @param id 数据来源主键 + * @return 数据来源 + */ + @Override + public TcDataSource selectTcDataSourceById(Long id) + { + return tcDataSourceMapper.selectTcDataSourceById(id); + } + + /** + * 查询数据来源列表 + * + * @param tcDataSource 数据来源 + * @return 数据来源 + */ + @Override + public List selectTcDataSourceList(TcDataSource tcDataSource) + { + return tcDataSourceMapper.selectTcDataSourceList(tcDataSource); + } + + /** + * 新增数据来源 + * + * @param tcDataSource 数据来源 + * @return 结果 + */ + @Override + public int insertTcDataSource(TcDataSource tcDataSource) + { + tcDataSource.setCreateTime(DateUtils.getNowDate()); + return tcDataSourceMapper.insertTcDataSource(tcDataSource); + } + + /** + * 修改数据来源 + * + * @param tcDataSource 数据来源 + * @return 结果 + */ + @Override + public int updateTcDataSource(TcDataSource tcDataSource) + { + tcDataSource.setUpdateTime(DateUtils.getNowDate()); + return tcDataSourceMapper.updateTcDataSource(tcDataSource); + } + + /** + * 批量删除数据来源 + * + * @param ids 需要删除的数据来源主键 + * @return 结果 + */ + @Override + public int deleteTcDataSourceByIds(Long[] ids) + { + return tcDataSourceMapper.deleteTcDataSourceByIds(ids); + } + + /** + * 删除数据来源信息 + * + * @param id 数据来源主键 + * @return 结果 + */ + @Override + public int deleteTcDataSourceById(Long id) + { + return tcDataSourceMapper.deleteTcDataSourceById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcDengbaoSystemServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcDengbaoSystemServiceImpl.java new file mode 100644 index 0000000..fde79e3 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcDengbaoSystemServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcDengbaoSystemMapper; +import com.ruoyi.zongzhi.domain.TcDengbaoSystem; +import com.ruoyi.zongzhi.service.ITcDengbaoSystemService; + +/** + * 等保系统Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcDengbaoSystemServiceImpl implements ITcDengbaoSystemService +{ + @Autowired + private TcDengbaoSystemMapper tcDengbaoSystemMapper; + + /** + * 查询等保系统 + * + * @param id 等保系统主键 + * @return 等保系统 + */ + @Override + public TcDengbaoSystem selectTcDengbaoSystemById(Long id) + { + return tcDengbaoSystemMapper.selectTcDengbaoSystemById(id); + } + + /** + * 查询等保系统列表 + * + * @param tcDengbaoSystem 等保系统 + * @return 等保系统 + */ + @Override + public List selectTcDengbaoSystemList(TcDengbaoSystem tcDengbaoSystem) + { + return tcDengbaoSystemMapper.selectTcDengbaoSystemList(tcDengbaoSystem); + } + + /** + * 新增等保系统 + * + * @param tcDengbaoSystem 等保系统 + * @return 结果 + */ + @Override + public int insertTcDengbaoSystem(TcDengbaoSystem tcDengbaoSystem) + { + tcDengbaoSystem.setCreateTime(DateUtils.getNowDate()); + return tcDengbaoSystemMapper.insertTcDengbaoSystem(tcDengbaoSystem); + } + + /** + * 修改等保系统 + * + * @param tcDengbaoSystem 等保系统 + * @return 结果 + */ + @Override + public int updateTcDengbaoSystem(TcDengbaoSystem tcDengbaoSystem) + { + tcDengbaoSystem.setUpdateTime(DateUtils.getNowDate()); + return tcDengbaoSystemMapper.updateTcDengbaoSystem(tcDengbaoSystem); + } + + /** + * 批量删除等保系统 + * + * @param ids 需要删除的等保系统主键 + * @return 结果 + */ + @Override + public int deleteTcDengbaoSystemByIds(Long[] ids) + { + return tcDengbaoSystemMapper.deleteTcDengbaoSystemByIds(ids); + } + + /** + * 删除等保系统信息 + * + * @param id 等保系统主键 + * @return 结果 + */ + @Override + public int deleteTcDengbaoSystemById(Long id) + { + return tcDengbaoSystemMapper.deleteTcDengbaoSystemById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcDengbaoUnitServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcDengbaoUnitServiceImpl.java new file mode 100644 index 0000000..f4910a2 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcDengbaoUnitServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcDengbaoUnitMapper; +import com.ruoyi.zongzhi.domain.TcDengbaoUnit; +import com.ruoyi.zongzhi.service.ITcDengbaoUnitService; + +/** + * 等保单位Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcDengbaoUnitServiceImpl implements ITcDengbaoUnitService +{ + @Autowired + private TcDengbaoUnitMapper tcDengbaoUnitMapper; + + /** + * 查询等保单位 + * + * @param id 等保单位主键 + * @return 等保单位 + */ + @Override + public TcDengbaoUnit selectTcDengbaoUnitById(Long id) + { + return tcDengbaoUnitMapper.selectTcDengbaoUnitById(id); + } + + /** + * 查询等保单位列表 + * + * @param tcDengbaoUnit 等保单位 + * @return 等保单位 + */ + @Override + public List selectTcDengbaoUnitList(TcDengbaoUnit tcDengbaoUnit) + { + return tcDengbaoUnitMapper.selectTcDengbaoUnitList(tcDengbaoUnit); + } + + /** + * 新增等保单位 + * + * @param tcDengbaoUnit 等保单位 + * @return 结果 + */ + @Override + public int insertTcDengbaoUnit(TcDengbaoUnit tcDengbaoUnit) + { + tcDengbaoUnit.setCreateTime(DateUtils.getNowDate()); + return tcDengbaoUnitMapper.insertTcDengbaoUnit(tcDengbaoUnit); + } + + /** + * 修改等保单位 + * + * @param tcDengbaoUnit 等保单位 + * @return 结果 + */ + @Override + public int updateTcDengbaoUnit(TcDengbaoUnit tcDengbaoUnit) + { + tcDengbaoUnit.setUpdateTime(DateUtils.getNowDate()); + return tcDengbaoUnitMapper.updateTcDengbaoUnit(tcDengbaoUnit); + } + + /** + * 批量删除等保单位 + * + * @param ids 需要删除的等保单位主键 + * @return 结果 + */ + @Override + public int deleteTcDengbaoUnitByIds(Long[] ids) + { + return tcDengbaoUnitMapper.deleteTcDengbaoUnitByIds(ids); + } + + /** + * 删除等保单位信息 + * + * @param id 等保单位主键 + * @return 结果 + */ + @Override + public int deleteTcDengbaoUnitById(Long id) + { + return tcDengbaoUnitMapper.deleteTcDengbaoUnitById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcExtworkSafetyadminServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcExtworkSafetyadminServiceImpl.java new file mode 100644 index 0000000..ca1b6a2 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcExtworkSafetyadminServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcExtworkSafetyadminMapper; +import com.ruoyi.zongzhi.domain.TcExtworkSafetyadmin; +import com.ruoyi.zongzhi.service.ITcExtworkSafetyadminService; + +/** + * 网络安全官Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcExtworkSafetyadminServiceImpl implements ITcExtworkSafetyadminService +{ + @Autowired + private TcExtworkSafetyadminMapper tcExtworkSafetyadminMapper; + + /** + * 查询网络安全官 + * + * @param id 网络安全官主键 + * @return 网络安全官 + */ + @Override + public TcExtworkSafetyadmin selectTcExtworkSafetyadminById(Long id) + { + return tcExtworkSafetyadminMapper.selectTcExtworkSafetyadminById(id); + } + + /** + * 查询网络安全官列表 + * + * @param tcExtworkSafetyadmin 网络安全官 + * @return 网络安全官 + */ + @Override + public List selectTcExtworkSafetyadminList(TcExtworkSafetyadmin tcExtworkSafetyadmin) + { + return tcExtworkSafetyadminMapper.selectTcExtworkSafetyadminList(tcExtworkSafetyadmin); + } + + /** + * 新增网络安全官 + * + * @param tcExtworkSafetyadmin 网络安全官 + * @return 结果 + */ + @Override + public int insertTcExtworkSafetyadmin(TcExtworkSafetyadmin tcExtworkSafetyadmin) + { + tcExtworkSafetyadmin.setCreateTime(DateUtils.getNowDate()); + return tcExtworkSafetyadminMapper.insertTcExtworkSafetyadmin(tcExtworkSafetyadmin); + } + + /** + * 修改网络安全官 + * + * @param tcExtworkSafetyadmin 网络安全官 + * @return 结果 + */ + @Override + public int updateTcExtworkSafetyadmin(TcExtworkSafetyadmin tcExtworkSafetyadmin) + { + tcExtworkSafetyadmin.setUpdateTime(DateUtils.getNowDate()); + return tcExtworkSafetyadminMapper.updateTcExtworkSafetyadmin(tcExtworkSafetyadmin); + } + + /** + * 批量删除网络安全官 + * + * @param ids 需要删除的网络安全官主键 + * @return 结果 + */ + @Override + public int deleteTcExtworkSafetyadminByIds(Long[] ids) + { + return tcExtworkSafetyadminMapper.deleteTcExtworkSafetyadminByIds(ids); + } + + /** + * 删除网络安全官信息 + * + * @param id 网络安全官主键 + * @return 结果 + */ + @Override + public int deleteTcExtworkSafetyadminById(Long id) + { + return tcExtworkSafetyadminMapper.deleteTcExtworkSafetyadminById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcGovernmentWebServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcGovernmentWebServiceImpl.java new file mode 100644 index 0000000..6fe5970 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcGovernmentWebServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcGovernmentWebMapper; +import com.ruoyi.zongzhi.domain.TcGovernmentWeb; +import com.ruoyi.zongzhi.service.ITcGovernmentWebService; + +/** + * 政府网站Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcGovernmentWebServiceImpl implements ITcGovernmentWebService +{ + @Autowired + private TcGovernmentWebMapper tcGovernmentWebMapper; + + /** + * 查询政府网站 + * + * @param id 政府网站主键 + * @return 政府网站 + */ + @Override + public TcGovernmentWeb selectTcGovernmentWebById(Long id) + { + return tcGovernmentWebMapper.selectTcGovernmentWebById(id); + } + + /** + * 查询政府网站列表 + * + * @param tcGovernmentWeb 政府网站 + * @return 政府网站 + */ + @Override + public List selectTcGovernmentWebList(TcGovernmentWeb tcGovernmentWeb) + { + return tcGovernmentWebMapper.selectTcGovernmentWebList(tcGovernmentWeb); + } + + /** + * 新增政府网站 + * + * @param tcGovernmentWeb 政府网站 + * @return 结果 + */ + @Override + public int insertTcGovernmentWeb(TcGovernmentWeb tcGovernmentWeb) + { + tcGovernmentWeb.setCreateTime(DateUtils.getNowDate()); + return tcGovernmentWebMapper.insertTcGovernmentWeb(tcGovernmentWeb); + } + + /** + * 修改政府网站 + * + * @param tcGovernmentWeb 政府网站 + * @return 结果 + */ + @Override + public int updateTcGovernmentWeb(TcGovernmentWeb tcGovernmentWeb) + { + tcGovernmentWeb.setUpdateTime(DateUtils.getNowDate()); + return tcGovernmentWebMapper.updateTcGovernmentWeb(tcGovernmentWeb); + } + + /** + * 批量删除政府网站 + * + * @param ids 需要删除的政府网站主键 + * @return 结果 + */ + @Override + public int deleteTcGovernmentWebByIds(Long[] ids) + { + return tcGovernmentWebMapper.deleteTcGovernmentWebByIds(ids); + } + + /** + * 删除政府网站信息 + * + * @param id 政府网站主键 + * @return 结果 + */ + @Override + public int deleteTcGovernmentWebById(Long id) + { + return tcGovernmentWebMapper.deleteTcGovernmentWebById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcIdcUnitServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcIdcUnitServiceImpl.java new file mode 100644 index 0000000..81e8886 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcIdcUnitServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcIdcUnitMapper; +import com.ruoyi.zongzhi.domain.TcIdcUnit; +import com.ruoyi.zongzhi.service.ITcIdcUnitService; + +/** + * IDC单位Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcIdcUnitServiceImpl implements ITcIdcUnitService +{ + @Autowired + private TcIdcUnitMapper tcIdcUnitMapper; + + /** + * 查询IDC单位 + * + * @param id IDC单位主键 + * @return IDC单位 + */ + @Override + public TcIdcUnit selectTcIdcUnitById(Long id) + { + return tcIdcUnitMapper.selectTcIdcUnitById(id); + } + + /** + * 查询IDC单位列表 + * + * @param tcIdcUnit IDC单位 + * @return IDC单位 + */ + @Override + public List selectTcIdcUnitList(TcIdcUnit tcIdcUnit) + { + return tcIdcUnitMapper.selectTcIdcUnitList(tcIdcUnit); + } + + /** + * 新增IDC单位 + * + * @param tcIdcUnit IDC单位 + * @return 结果 + */ + @Override + public int insertTcIdcUnit(TcIdcUnit tcIdcUnit) + { + tcIdcUnit.setCreateTime(DateUtils.getNowDate()); + return tcIdcUnitMapper.insertTcIdcUnit(tcIdcUnit); + } + + /** + * 修改IDC单位 + * + * @param tcIdcUnit IDC单位 + * @return 结果 + */ + @Override + public int updateTcIdcUnit(TcIdcUnit tcIdcUnit) + { + tcIdcUnit.setUpdateTime(DateUtils.getNowDate()); + return tcIdcUnitMapper.updateTcIdcUnit(tcIdcUnit); + } + + /** + * 批量删除IDC单位 + * + * @param ids 需要删除的IDC单位主键 + * @return 结果 + */ + @Override + public int deleteTcIdcUnitByIds(Long[] ids) + { + return tcIdcUnitMapper.deleteTcIdcUnitByIds(ids); + } + + /** + * 删除IDC单位信息 + * + * @param id IDC单位主键 + * @return 结果 + */ + @Override + public int deleteTcIdcUnitById(Long id) + { + return tcIdcUnitMapper.deleteTcIdcUnitById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkArticleServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkArticleServiceImpl.java new file mode 100644 index 0000000..cf96d44 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkArticleServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcNetworkArticleMapper; +import com.ruoyi.zongzhi.domain.TcNetworkArticle; +import com.ruoyi.zongzhi.service.ITcNetworkArticleService; + +/** + * 网络文章Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcNetworkArticleServiceImpl implements ITcNetworkArticleService +{ + @Autowired + private TcNetworkArticleMapper tcNetworkArticleMapper; + + /** + * 查询网络文章 + * + * @param id 网络文章主键 + * @return 网络文章 + */ + @Override + public TcNetworkArticle selectTcNetworkArticleById(Long id) + { + return tcNetworkArticleMapper.selectTcNetworkArticleById(id); + } + + /** + * 查询网络文章列表 + * + * @param tcNetworkArticle 网络文章 + * @return 网络文章 + */ + @Override + public List selectTcNetworkArticleList(TcNetworkArticle tcNetworkArticle) + { + return tcNetworkArticleMapper.selectTcNetworkArticleList(tcNetworkArticle); + } + + /** + * 新增网络文章 + * + * @param tcNetworkArticle 网络文章 + * @return 结果 + */ + @Override + public int insertTcNetworkArticle(TcNetworkArticle tcNetworkArticle) + { + tcNetworkArticle.setCreateTime(DateUtils.getNowDate()); + return tcNetworkArticleMapper.insertTcNetworkArticle(tcNetworkArticle); + } + + /** + * 修改网络文章 + * + * @param tcNetworkArticle 网络文章 + * @return 结果 + */ + @Override + public int updateTcNetworkArticle(TcNetworkArticle tcNetworkArticle) + { + tcNetworkArticle.setUpdateTime(DateUtils.getNowDate()); + return tcNetworkArticleMapper.updateTcNetworkArticle(tcNetworkArticle); + } + + /** + * 批量删除网络文章 + * + * @param ids 需要删除的网络文章主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkArticleByIds(Long[] ids) + { + return tcNetworkArticleMapper.deleteTcNetworkArticleByIds(ids); + } + + /** + * 删除网络文章信息 + * + * @param id 网络文章主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkArticleById(Long id) + { + return tcNetworkArticleMapper.deleteTcNetworkArticleById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkEvaluateServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkEvaluateServiceImpl.java new file mode 100644 index 0000000..5134d96 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkEvaluateServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcNetworkEvaluateMapper; +import com.ruoyi.zongzhi.domain.TcNetworkEvaluate; +import com.ruoyi.zongzhi.service.ITcNetworkEvaluateService; + +/** + * 网评Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcNetworkEvaluateServiceImpl implements ITcNetworkEvaluateService +{ + @Autowired + private TcNetworkEvaluateMapper tcNetworkEvaluateMapper; + + /** + * 查询网评 + * + * @param id 网评主键 + * @return 网评 + */ + @Override + public TcNetworkEvaluate selectTcNetworkEvaluateById(Long id) + { + return tcNetworkEvaluateMapper.selectTcNetworkEvaluateById(id); + } + + /** + * 查询网评列表 + * + * @param tcNetworkEvaluate 网评 + * @return 网评 + */ + @Override + public List selectTcNetworkEvaluateList(TcNetworkEvaluate tcNetworkEvaluate) + { + return tcNetworkEvaluateMapper.selectTcNetworkEvaluateList(tcNetworkEvaluate); + } + + /** + * 新增网评 + * + * @param tcNetworkEvaluate 网评 + * @return 结果 + */ + @Override + public int insertTcNetworkEvaluate(TcNetworkEvaluate tcNetworkEvaluate) + { + tcNetworkEvaluate.setCreateTime(DateUtils.getNowDate()); + return tcNetworkEvaluateMapper.insertTcNetworkEvaluate(tcNetworkEvaluate); + } + + /** + * 修改网评 + * + * @param tcNetworkEvaluate 网评 + * @return 结果 + */ + @Override + public int updateTcNetworkEvaluate(TcNetworkEvaluate tcNetworkEvaluate) + { + tcNetworkEvaluate.setUpdateTime(DateUtils.getNowDate()); + return tcNetworkEvaluateMapper.updateTcNetworkEvaluate(tcNetworkEvaluate); + } + + /** + * 批量删除网评 + * + * @param ids 需要删除的网评主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkEvaluateByIds(Long[] ids) + { + return tcNetworkEvaluateMapper.deleteTcNetworkEvaluateByIds(ids); + } + + /** + * 删除网评信息 + * + * @param id 网评主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkEvaluateById(Long id) + { + return tcNetworkEvaluateMapper.deleteTcNetworkEvaluateById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkMqPrincipalServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkMqPrincipalServiceImpl.java new file mode 100644 index 0000000..245795d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkMqPrincipalServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcNetworkMqPrincipalMapper; +import com.ruoyi.zongzhi.domain.TcNetworkMqPrincipal; +import com.ruoyi.zongzhi.service.ITcNetworkMqPrincipalService; + +/** + * 网络民情责任人Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcNetworkMqPrincipalServiceImpl implements ITcNetworkMqPrincipalService +{ + @Autowired + private TcNetworkMqPrincipalMapper tcNetworkMqPrincipalMapper; + + /** + * 查询网络民情责任人 + * + * @param id 网络民情责任人主键 + * @return 网络民情责任人 + */ + @Override + public TcNetworkMqPrincipal selectTcNetworkMqPrincipalById(Long id) + { + return tcNetworkMqPrincipalMapper.selectTcNetworkMqPrincipalById(id); + } + + /** + * 查询网络民情责任人列表 + * + * @param tcNetworkMqPrincipal 网络民情责任人 + * @return 网络民情责任人 + */ + @Override + public List selectTcNetworkMqPrincipalList(TcNetworkMqPrincipal tcNetworkMqPrincipal) + { + return tcNetworkMqPrincipalMapper.selectTcNetworkMqPrincipalList(tcNetworkMqPrincipal); + } + + /** + * 新增网络民情责任人 + * + * @param tcNetworkMqPrincipal 网络民情责任人 + * @return 结果 + */ + @Override + public int insertTcNetworkMqPrincipal(TcNetworkMqPrincipal tcNetworkMqPrincipal) + { + tcNetworkMqPrincipal.setCreateTime(DateUtils.getNowDate()); + return tcNetworkMqPrincipalMapper.insertTcNetworkMqPrincipal(tcNetworkMqPrincipal); + } + + /** + * 修改网络民情责任人 + * + * @param tcNetworkMqPrincipal 网络民情责任人 + * @return 结果 + */ + @Override + public int updateTcNetworkMqPrincipal(TcNetworkMqPrincipal tcNetworkMqPrincipal) + { + tcNetworkMqPrincipal.setUpdateTime(DateUtils.getNowDate()); + return tcNetworkMqPrincipalMapper.updateTcNetworkMqPrincipal(tcNetworkMqPrincipal); + } + + /** + * 批量删除网络民情责任人 + * + * @param ids 需要删除的网络民情责任人主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkMqPrincipalByIds(Long[] ids) + { + return tcNetworkMqPrincipalMapper.deleteTcNetworkMqPrincipalByIds(ids); + } + + /** + * 删除网络民情责任人信息 + * + * @param id 网络民情责任人主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkMqPrincipalById(Long id) + { + return tcNetworkMqPrincipalMapper.deleteTcNetworkMqPrincipalById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkPingtaiServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkPingtaiServiceImpl.java new file mode 100644 index 0000000..e29e006 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkPingtaiServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcNetworkPingtaiMapper; +import com.ruoyi.zongzhi.domain.TcNetworkPingtai; +import com.ruoyi.zongzhi.service.ITcNetworkPingtaiService; + +/** + * 网络平台Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcNetworkPingtaiServiceImpl implements ITcNetworkPingtaiService +{ + @Autowired + private TcNetworkPingtaiMapper tcNetworkPingtaiMapper; + + /** + * 查询网络平台 + * + * @param id 网络平台主键 + * @return 网络平台 + */ + @Override + public TcNetworkPingtai selectTcNetworkPingtaiById(Long id) + { + return tcNetworkPingtaiMapper.selectTcNetworkPingtaiById(id); + } + + /** + * 查询网络平台列表 + * + * @param tcNetworkPingtai 网络平台 + * @return 网络平台 + */ + @Override + public List selectTcNetworkPingtaiList(TcNetworkPingtai tcNetworkPingtai) + { + return tcNetworkPingtaiMapper.selectTcNetworkPingtaiList(tcNetworkPingtai); + } + + /** + * 新增网络平台 + * + * @param tcNetworkPingtai 网络平台 + * @return 结果 + */ + @Override + public int insertTcNetworkPingtai(TcNetworkPingtai tcNetworkPingtai) + { + tcNetworkPingtai.setCreateTime(DateUtils.getNowDate()); + return tcNetworkPingtaiMapper.insertTcNetworkPingtai(tcNetworkPingtai); + } + + /** + * 修改网络平台 + * + * @param tcNetworkPingtai 网络平台 + * @return 结果 + */ + @Override + public int updateTcNetworkPingtai(TcNetworkPingtai tcNetworkPingtai) + { + tcNetworkPingtai.setUpdateTime(DateUtils.getNowDate()); + return tcNetworkPingtaiMapper.updateTcNetworkPingtai(tcNetworkPingtai); + } + + /** + * 批量删除网络平台 + * + * @param ids 需要删除的网络平台主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkPingtaiByIds(Long[] ids) + { + return tcNetworkPingtaiMapper.deleteTcNetworkPingtaiByIds(ids); + } + + /** + * 删除网络平台信息 + * + * @param id 网络平台主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkPingtaiById(Long id) + { + return tcNetworkPingtaiMapper.deleteTcNetworkPingtaiById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkReportServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkReportServiceImpl.java new file mode 100644 index 0000000..4b459c8 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkReportServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcNetworkReportMapper; +import com.ruoyi.zongzhi.domain.TcNetworkReport; +import com.ruoyi.zongzhi.service.ITcNetworkReportService; + +/** + * 网络举报Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcNetworkReportServiceImpl implements ITcNetworkReportService +{ + @Autowired + private TcNetworkReportMapper tcNetworkReportMapper; + + /** + * 查询网络举报 + * + * @param id 网络举报主键 + * @return 网络举报 + */ + @Override + public TcNetworkReport selectTcNetworkReportById(Long id) + { + return tcNetworkReportMapper.selectTcNetworkReportById(id); + } + + /** + * 查询网络举报列表 + * + * @param tcNetworkReport 网络举报 + * @return 网络举报 + */ + @Override + public List selectTcNetworkReportList(TcNetworkReport tcNetworkReport) + { + return tcNetworkReportMapper.selectTcNetworkReportList(tcNetworkReport); + } + + /** + * 新增网络举报 + * + * @param tcNetworkReport 网络举报 + * @return 结果 + */ + @Override + public int insertTcNetworkReport(TcNetworkReport tcNetworkReport) + { + tcNetworkReport.setCreateTime(DateUtils.getNowDate()); + return tcNetworkReportMapper.insertTcNetworkReport(tcNetworkReport); + } + + /** + * 修改网络举报 + * + * @param tcNetworkReport 网络举报 + * @return 结果 + */ + @Override + public int updateTcNetworkReport(TcNetworkReport tcNetworkReport) + { + tcNetworkReport.setUpdateTime(DateUtils.getNowDate()); + return tcNetworkReportMapper.updateTcNetworkReport(tcNetworkReport); + } + + /** + * 批量删除网络举报 + * + * @param ids 需要删除的网络举报主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkReportByIds(Long[] ids) + { + return tcNetworkReportMapper.deleteTcNetworkReportByIds(ids); + } + + /** + * 删除网络举报信息 + * + * @param id 网络举报主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkReportById(Long id) + { + return tcNetworkReportMapper.deleteTcNetworkReportById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkSentimentServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkSentimentServiceImpl.java new file mode 100644 index 0000000..7da0ab1 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkSentimentServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcNetworkSentimentMapper; +import com.ruoyi.zongzhi.domain.TcNetworkSentiment; +import com.ruoyi.zongzhi.service.ITcNetworkSentimentService; + +/** + * 网络舆情Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcNetworkSentimentServiceImpl implements ITcNetworkSentimentService +{ + @Autowired + private TcNetworkSentimentMapper tcNetworkSentimentMapper; + + /** + * 查询网络舆情 + * + * @param id 网络舆情主键 + * @return 网络舆情 + */ + @Override + public TcNetworkSentiment selectTcNetworkSentimentById(Long id) + { + return tcNetworkSentimentMapper.selectTcNetworkSentimentById(id); + } + + /** + * 查询网络舆情列表 + * + * @param tcNetworkSentiment 网络舆情 + * @return 网络舆情 + */ + @Override + public List selectTcNetworkSentimentList(TcNetworkSentiment tcNetworkSentiment) + { + return tcNetworkSentimentMapper.selectTcNetworkSentimentList(tcNetworkSentiment); + } + + /** + * 新增网络舆情 + * + * @param tcNetworkSentiment 网络舆情 + * @return 结果 + */ + @Override + public int insertTcNetworkSentiment(TcNetworkSentiment tcNetworkSentiment) + { + tcNetworkSentiment.setCreateTime(DateUtils.getNowDate()); + return tcNetworkSentimentMapper.insertTcNetworkSentiment(tcNetworkSentiment); + } + + /** + * 修改网络舆情 + * + * @param tcNetworkSentiment 网络舆情 + * @return 结果 + */ + @Override + public int updateTcNetworkSentiment(TcNetworkSentiment tcNetworkSentiment) + { + tcNetworkSentiment.setUpdateTime(DateUtils.getNowDate()); + return tcNetworkSentimentMapper.updateTcNetworkSentiment(tcNetworkSentiment); + } + + /** + * 批量删除网络舆情 + * + * @param ids 需要删除的网络舆情主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkSentimentByIds(Long[] ids) + { + return tcNetworkSentimentMapper.deleteTcNetworkSentimentByIds(ids); + } + + /** + * 删除网络舆情信息 + * + * @param id 网络舆情主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkSentimentById(Long id) + { + return tcNetworkSentimentMapper.deleteTcNetworkSentimentById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkSupportUnitServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkSupportUnitServiceImpl.java new file mode 100644 index 0000000..e7a7288 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkSupportUnitServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcNetworkSupportUnitMapper; +import com.ruoyi.zongzhi.domain.TcNetworkSupportUnit; +import com.ruoyi.zongzhi.service.ITcNetworkSupportUnitService; + +/** + * 网络安全支持单位Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcNetworkSupportUnitServiceImpl implements ITcNetworkSupportUnitService +{ + @Autowired + private TcNetworkSupportUnitMapper tcNetworkSupportUnitMapper; + + /** + * 查询网络安全支持单位 + * + * @param id 网络安全支持单位主键 + * @return 网络安全支持单位 + */ + @Override + public TcNetworkSupportUnit selectTcNetworkSupportUnitById(Long id) + { + return tcNetworkSupportUnitMapper.selectTcNetworkSupportUnitById(id); + } + + /** + * 查询网络安全支持单位列表 + * + * @param tcNetworkSupportUnit 网络安全支持单位 + * @return 网络安全支持单位 + */ + @Override + public List selectTcNetworkSupportUnitList(TcNetworkSupportUnit tcNetworkSupportUnit) + { + return tcNetworkSupportUnitMapper.selectTcNetworkSupportUnitList(tcNetworkSupportUnit); + } + + /** + * 新增网络安全支持单位 + * + * @param tcNetworkSupportUnit 网络安全支持单位 + * @return 结果 + */ + @Override + public int insertTcNetworkSupportUnit(TcNetworkSupportUnit tcNetworkSupportUnit) + { + tcNetworkSupportUnit.setCreateTime(DateUtils.getNowDate()); + return tcNetworkSupportUnitMapper.insertTcNetworkSupportUnit(tcNetworkSupportUnit); + } + + /** + * 修改网络安全支持单位 + * + * @param tcNetworkSupportUnit 网络安全支持单位 + * @return 结果 + */ + @Override + public int updateTcNetworkSupportUnit(TcNetworkSupportUnit tcNetworkSupportUnit) + { + tcNetworkSupportUnit.setUpdateTime(DateUtils.getNowDate()); + return tcNetworkSupportUnitMapper.updateTcNetworkSupportUnit(tcNetworkSupportUnit); + } + + /** + * 批量删除网络安全支持单位 + * + * @param ids 需要删除的网络安全支持单位主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkSupportUnitByIds(Long[] ids) + { + return tcNetworkSupportUnitMapper.deleteTcNetworkSupportUnitByIds(ids); + } + + /** + * 删除网络安全支持单位信息 + * + * @param id 网络安全支持单位主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkSupportUnitById(Long id) + { + return tcNetworkSupportUnitMapper.deleteTcNetworkSupportUnitById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkVolunteerServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkVolunteerServiceImpl.java new file mode 100644 index 0000000..5d3f9c9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcNetworkVolunteerServiceImpl.java @@ -0,0 +1,95 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcNetworkVolunteerMapper; +import com.ruoyi.zongzhi.domain.TcNetworkVolunteer; +import com.ruoyi.zongzhi.service.ITcNetworkVolunteerService; + +/** + * 网络文明自愿者Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcNetworkVolunteerServiceImpl implements ITcNetworkVolunteerService +{ + @Autowired + private TcNetworkVolunteerMapper tcNetworkVolunteerMapper; + + /** + * 查询网络文明自愿者 + * + * @param id 网络文明自愿者主键 + * @return 网络文明自愿者 + */ + @Override + public TcNetworkVolunteer selectTcNetworkVolunteerById(Long id) + { + return tcNetworkVolunteerMapper.selectTcNetworkVolunteerById(id); + } + + /** + * 查询网络文明自愿者列表 + * + * @param tcNetworkVolunteer 网络文明自愿者 + * @return 网络文明自愿者 + */ + @Override + public List selectTcNetworkVolunteerList(TcNetworkVolunteer tcNetworkVolunteer) + { + return tcNetworkVolunteerMapper.selectTcNetworkVolunteerList(tcNetworkVolunteer); + } + + /** + * 新增网络文明自愿者 + * + * @param tcNetworkVolunteer 网络文明自愿者 + * @return 结果 + */ + @Override + public int insertTcNetworkVolunteer(TcNetworkVolunteer tcNetworkVolunteer) + { + return tcNetworkVolunteerMapper.insertTcNetworkVolunteer(tcNetworkVolunteer); + } + + /** + * 修改网络文明自愿者 + * + * @param tcNetworkVolunteer 网络文明自愿者 + * @return 结果 + */ + @Override + public int updateTcNetworkVolunteer(TcNetworkVolunteer tcNetworkVolunteer) + { + tcNetworkVolunteer.setUpdateTime(DateUtils.getNowDate()); + return tcNetworkVolunteerMapper.updateTcNetworkVolunteer(tcNetworkVolunteer); + } + + /** + * 批量删除网络文明自愿者 + * + * @param ids 需要删除的网络文明自愿者主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkVolunteerByIds(Long[] ids) + { + return tcNetworkVolunteerMapper.deleteTcNetworkVolunteerByIds(ids); + } + + /** + * 删除网络文明自愿者信息 + * + * @param id 网络文明自愿者主键 + * @return 结果 + */ + @Override + public int deleteTcNetworkVolunteerById(Long id) + { + return tcNetworkVolunteerMapper.deleteTcNetworkVolunteerById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcQinglangZhuanxiangServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcQinglangZhuanxiangServiceImpl.java new file mode 100644 index 0000000..b5f9877 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcQinglangZhuanxiangServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcQinglangZhuanxiangMapper; +import com.ruoyi.zongzhi.domain.TcQinglangZhuanxiang; +import com.ruoyi.zongzhi.service.ITcQinglangZhuanxiangService; + +/** + * 清朗专项Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcQinglangZhuanxiangServiceImpl implements ITcQinglangZhuanxiangService +{ + @Autowired + private TcQinglangZhuanxiangMapper tcQinglangZhuanxiangMapper; + + /** + * 查询清朗专项 + * + * @param id 清朗专项主键 + * @return 清朗专项 + */ + @Override + public TcQinglangZhuanxiang selectTcQinglangZhuanxiangById(Long id) + { + return tcQinglangZhuanxiangMapper.selectTcQinglangZhuanxiangById(id); + } + + /** + * 查询清朗专项列表 + * + * @param tcQinglangZhuanxiang 清朗专项 + * @return 清朗专项 + */ + @Override + public List selectTcQinglangZhuanxiangList(TcQinglangZhuanxiang tcQinglangZhuanxiang) + { + return tcQinglangZhuanxiangMapper.selectTcQinglangZhuanxiangList(tcQinglangZhuanxiang); + } + + /** + * 新增清朗专项 + * + * @param tcQinglangZhuanxiang 清朗专项 + * @return 结果 + */ + @Override + public int insertTcQinglangZhuanxiang(TcQinglangZhuanxiang tcQinglangZhuanxiang) + { + tcQinglangZhuanxiang.setCreateTime(DateUtils.getNowDate()); + return tcQinglangZhuanxiangMapper.insertTcQinglangZhuanxiang(tcQinglangZhuanxiang); + } + + /** + * 修改清朗专项 + * + * @param tcQinglangZhuanxiang 清朗专项 + * @return 结果 + */ + @Override + public int updateTcQinglangZhuanxiang(TcQinglangZhuanxiang tcQinglangZhuanxiang) + { + tcQinglangZhuanxiang.setUpdateTime(DateUtils.getNowDate()); + return tcQinglangZhuanxiangMapper.updateTcQinglangZhuanxiang(tcQinglangZhuanxiang); + } + + /** + * 批量删除清朗专项 + * + * @param ids 需要删除的清朗专项主键 + * @return 结果 + */ + @Override + public int deleteTcQinglangZhuanxiangByIds(Long[] ids) + { + return tcQinglangZhuanxiangMapper.deleteTcQinglangZhuanxiangByIds(ids); + } + + /** + * 删除清朗专项信息 + * + * @param id 清朗专项主键 + * @return 结果 + */ + @Override + public int deleteTcQinglangZhuanxiangById(Long id) + { + return tcQinglangZhuanxiangMapper.deleteTcQinglangZhuanxiangById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcSafetyDangerServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcSafetyDangerServiceImpl.java new file mode 100644 index 0000000..00d8b8c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcSafetyDangerServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcSafetyDangerMapper; +import com.ruoyi.zongzhi.domain.TcSafetyDanger; +import com.ruoyi.zongzhi.service.ITcSafetyDangerService; + +/** + * 监管单位Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcSafetyDangerServiceImpl implements ITcSafetyDangerService +{ + @Autowired + private TcSafetyDangerMapper tcSafetyDangerMapper; + + /** + * 查询监管单位 + * + * @param id 监管单位主键 + * @return 监管单位 + */ + @Override + public TcSafetyDanger selectTcSafetyDangerById(Long id) + { + return tcSafetyDangerMapper.selectTcSafetyDangerById(id); + } + + /** + * 查询监管单位列表 + * + * @param tcSafetyDanger 监管单位 + * @return 监管单位 + */ + @Override + public List selectTcSafetyDangerList(TcSafetyDanger tcSafetyDanger) + { + return tcSafetyDangerMapper.selectTcSafetyDangerList(tcSafetyDanger); + } + + /** + * 新增监管单位 + * + * @param tcSafetyDanger 监管单位 + * @return 结果 + */ + @Override + public int insertTcSafetyDanger(TcSafetyDanger tcSafetyDanger) + { + tcSafetyDanger.setCreateTime(DateUtils.getNowDate()); + return tcSafetyDangerMapper.insertTcSafetyDanger(tcSafetyDanger); + } + + /** + * 修改监管单位 + * + * @param tcSafetyDanger 监管单位 + * @return 结果 + */ + @Override + public int updateTcSafetyDanger(TcSafetyDanger tcSafetyDanger) + { + tcSafetyDanger.setUpdateTime(DateUtils.getNowDate()); + return tcSafetyDangerMapper.updateTcSafetyDanger(tcSafetyDanger); + } + + /** + * 批量删除监管单位 + * + * @param ids 需要删除的监管单位主键 + * @return 结果 + */ + @Override + public int deleteTcSafetyDangerByIds(Long[] ids) + { + return tcSafetyDangerMapper.deleteTcSafetyDangerByIds(ids); + } + + /** + * 删除监管单位信息 + * + * @param id 监管单位主键 + * @return 结果 + */ + @Override + public int deleteTcSafetyDangerById(Long id) + { + return tcSafetyDangerMapper.deleteTcSafetyDangerById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcSafetyDetectionServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcSafetyDetectionServiceImpl.java new file mode 100644 index 0000000..cbe2134 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcSafetyDetectionServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcSafetyDetectionMapper; +import com.ruoyi.zongzhi.domain.TcSafetyDetection; +import com.ruoyi.zongzhi.service.ITcSafetyDetectionService; + +/** + * 安全检测Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcSafetyDetectionServiceImpl implements ITcSafetyDetectionService +{ + @Autowired + private TcSafetyDetectionMapper tcSafetyDetectionMapper; + + /** + * 查询安全检测 + * + * @param id 安全检测主键 + * @return 安全检测 + */ + @Override + public TcSafetyDetection selectTcSafetyDetectionById(Long id) + { + return tcSafetyDetectionMapper.selectTcSafetyDetectionById(id); + } + + /** + * 查询安全检测列表 + * + * @param tcSafetyDetection 安全检测 + * @return 安全检测 + */ + @Override + public List selectTcSafetyDetectionList(TcSafetyDetection tcSafetyDetection) + { + return tcSafetyDetectionMapper.selectTcSafetyDetectionList(tcSafetyDetection); + } + + /** + * 新增安全检测 + * + * @param tcSafetyDetection 安全检测 + * @return 结果 + */ + @Override + public int insertTcSafetyDetection(TcSafetyDetection tcSafetyDetection) + { + tcSafetyDetection.setCreateTime(DateUtils.getNowDate()); + return tcSafetyDetectionMapper.insertTcSafetyDetection(tcSafetyDetection); + } + + /** + * 修改安全检测 + * + * @param tcSafetyDetection 安全检测 + * @return 结果 + */ + @Override + public int updateTcSafetyDetection(TcSafetyDetection tcSafetyDetection) + { + tcSafetyDetection.setUpdateTime(DateUtils.getNowDate()); + return tcSafetyDetectionMapper.updateTcSafetyDetection(tcSafetyDetection); + } + + /** + * 批量删除安全检测 + * + * @param ids 需要删除的安全检测主键 + * @return 结果 + */ + @Override + public int deleteTcSafetyDetectionByIds(Long[] ids) + { + return tcSafetyDetectionMapper.deleteTcSafetyDetectionByIds(ids); + } + + /** + * 删除安全检测信息 + * + * @param id 安全检测主键 + * @return 结果 + */ + @Override + public int deleteTcSafetyDetectionById(Long id) + { + return tcSafetyDetectionMapper.deleteTcSafetyDetectionById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcTownServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcTownServiceImpl.java new file mode 100644 index 0000000..80f36ca --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcTownServiceImpl.java @@ -0,0 +1,95 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcTownMapper; +import com.ruoyi.zongzhi.domain.TcTown; +import com.ruoyi.zongzhi.service.ITcTownService; + +/** + * 区域Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcTownServiceImpl implements ITcTownService +{ + @Autowired + private TcTownMapper tcTownMapper; + + /** + * 查询区域 + * + * @param id 区域主键 + * @return 区域 + */ + @Override + public TcTown selectTcTownById(Long id) + { + return tcTownMapper.selectTcTownById(id); + } + + /** + * 查询区域列表 + * + * @param tcTown 区域 + * @return 区域 + */ + @Override + public List selectTcTownList(TcTown tcTown) + { + return tcTownMapper.selectTcTownList(tcTown); + } + + /** + * 新增区域 + * + * @param tcTown 区域 + * @return 结果 + */ + @Override + public int insertTcTown(TcTown tcTown) + { + tcTown.setCreateTime(DateUtils.getNowDate()); + return tcTownMapper.insertTcTown(tcTown); + } + + /** + * 修改区域 + * + * @param tcTown 区域 + * @return 结果 + */ + @Override + public int updateTcTown(TcTown tcTown) + { + return tcTownMapper.updateTcTown(tcTown); + } + + /** + * 批量删除区域 + * + * @param ids 需要删除的区域主键 + * @return 结果 + */ + @Override + public int deleteTcTownByIds(Long[] ids) + { + return tcTownMapper.deleteTcTownByIds(ids); + } + + /** + * 删除区域信息 + * + * @param id 区域主键 + * @return 结果 + */ + @Override + public int deleteTcTownById(Long id) + { + return tcTownMapper.deleteTcTownById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcWorkDongtaiServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcWorkDongtaiServiceImpl.java new file mode 100644 index 0000000..cdebee9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcWorkDongtaiServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcWorkDongtaiMapper; +import com.ruoyi.zongzhi.domain.TcWorkDongtai; +import com.ruoyi.zongzhi.service.ITcWorkDongtaiService; + +/** + * 工作动态Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcWorkDongtaiServiceImpl implements ITcWorkDongtaiService +{ + @Autowired + private TcWorkDongtaiMapper tcWorkDongtaiMapper; + + /** + * 查询工作动态 + * + * @param id 工作动态主键 + * @return 工作动态 + */ + @Override + public TcWorkDongtai selectTcWorkDongtaiById(Long id) + { + return tcWorkDongtaiMapper.selectTcWorkDongtaiById(id); + } + + /** + * 查询工作动态列表 + * + * @param tcWorkDongtai 工作动态 + * @return 工作动态 + */ + @Override + public List selectTcWorkDongtaiList(TcWorkDongtai tcWorkDongtai) + { + return tcWorkDongtaiMapper.selectTcWorkDongtaiList(tcWorkDongtai); + } + + /** + * 新增工作动态 + * + * @param tcWorkDongtai 工作动态 + * @return 结果 + */ + @Override + public int insertTcWorkDongtai(TcWorkDongtai tcWorkDongtai) + { + tcWorkDongtai.setCreateTime(DateUtils.getNowDate()); + return tcWorkDongtaiMapper.insertTcWorkDongtai(tcWorkDongtai); + } + + /** + * 修改工作动态 + * + * @param tcWorkDongtai 工作动态 + * @return 结果 + */ + @Override + public int updateTcWorkDongtai(TcWorkDongtai tcWorkDongtai) + { + tcWorkDongtai.setUpdateTime(DateUtils.getNowDate()); + return tcWorkDongtaiMapper.updateTcWorkDongtai(tcWorkDongtai); + } + + /** + * 批量删除工作动态 + * + * @param ids 需要删除的工作动态主键 + * @return 结果 + */ + @Override + public int deleteTcWorkDongtaiByIds(Long[] ids) + { + return tcWorkDongtaiMapper.deleteTcWorkDongtaiByIds(ids); + } + + /** + * 删除工作动态信息 + * + * @param id 工作动态主键 + * @return 结果 + */ + @Override + public int deleteTcWorkDongtaiById(Long id) + { + return tcWorkDongtaiMapper.deleteTcWorkDongtaiById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcZhongdianDomainServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcZhongdianDomainServiceImpl.java new file mode 100644 index 0000000..83c9a0b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcZhongdianDomainServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcZhongdianDomainMapper; +import com.ruoyi.zongzhi.domain.TcZhongdianDomain; +import com.ruoyi.zongzhi.service.ITcZhongdianDomainService; + +/** + * 重点领域监管Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcZhongdianDomainServiceImpl implements ITcZhongdianDomainService +{ + @Autowired + private TcZhongdianDomainMapper tcZhongdianDomainMapper; + + /** + * 查询重点领域监管 + * + * @param id 重点领域监管主键 + * @return 重点领域监管 + */ + @Override + public TcZhongdianDomain selectTcZhongdianDomainById(Long id) + { + return tcZhongdianDomainMapper.selectTcZhongdianDomainById(id); + } + + /** + * 查询重点领域监管列表 + * + * @param tcZhongdianDomain 重点领域监管 + * @return 重点领域监管 + */ + @Override + public List selectTcZhongdianDomainList(TcZhongdianDomain tcZhongdianDomain) + { + return tcZhongdianDomainMapper.selectTcZhongdianDomainList(tcZhongdianDomain); + } + + /** + * 新增重点领域监管 + * + * @param tcZhongdianDomain 重点领域监管 + * @return 结果 + */ + @Override + public int insertTcZhongdianDomain(TcZhongdianDomain tcZhongdianDomain) + { + tcZhongdianDomain.setCreateTime(DateUtils.getNowDate()); + return tcZhongdianDomainMapper.insertTcZhongdianDomain(tcZhongdianDomain); + } + + /** + * 修改重点领域监管 + * + * @param tcZhongdianDomain 重点领域监管 + * @return 结果 + */ + @Override + public int updateTcZhongdianDomain(TcZhongdianDomain tcZhongdianDomain) + { + tcZhongdianDomain.setUpdateTime(DateUtils.getNowDate()); + return tcZhongdianDomainMapper.updateTcZhongdianDomain(tcZhongdianDomain); + } + + /** + * 批量删除重点领域监管 + * + * @param ids 需要删除的重点领域监管主键 + * @return 结果 + */ + @Override + public int deleteTcZhongdianDomainByIds(Long[] ids) + { + return tcZhongdianDomainMapper.deleteTcZhongdianDomainByIds(ids); + } + + /** + * 删除重点领域监管信息 + * + * @param id 重点领域监管主键 + * @return 结果 + */ + @Override + public int deleteTcZhongdianDomainById(Long id) + { + return tcZhongdianDomainMapper.deleteTcZhongdianDomainById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcZhongdianEnterpriseServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcZhongdianEnterpriseServiceImpl.java new file mode 100644 index 0000000..6ed200d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcZhongdianEnterpriseServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcZhongdianEnterpriseMapper; +import com.ruoyi.zongzhi.domain.TcZhongdianEnterprise; +import com.ruoyi.zongzhi.service.ITcZhongdianEnterpriseService; + +/** + * 重点企业名录Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcZhongdianEnterpriseServiceImpl implements ITcZhongdianEnterpriseService +{ + @Autowired + private TcZhongdianEnterpriseMapper tcZhongdianEnterpriseMapper; + + /** + * 查询重点企业名录 + * + * @param id 重点企业名录主键 + * @return 重点企业名录 + */ + @Override + public TcZhongdianEnterprise selectTcZhongdianEnterpriseById(Long id) + { + return tcZhongdianEnterpriseMapper.selectTcZhongdianEnterpriseById(id); + } + + /** + * 查询重点企业名录列表 + * + * @param tcZhongdianEnterprise 重点企业名录 + * @return 重点企业名录 + */ + @Override + public List selectTcZhongdianEnterpriseList(TcZhongdianEnterprise tcZhongdianEnterprise) + { + return tcZhongdianEnterpriseMapper.selectTcZhongdianEnterpriseList(tcZhongdianEnterprise); + } + + /** + * 新增重点企业名录 + * + * @param tcZhongdianEnterprise 重点企业名录 + * @return 结果 + */ + @Override + public int insertTcZhongdianEnterprise(TcZhongdianEnterprise tcZhongdianEnterprise) + { + tcZhongdianEnterprise.setCreateTime(DateUtils.getNowDate()); + return tcZhongdianEnterpriseMapper.insertTcZhongdianEnterprise(tcZhongdianEnterprise); + } + + /** + * 修改重点企业名录 + * + * @param tcZhongdianEnterprise 重点企业名录 + * @return 结果 + */ + @Override + public int updateTcZhongdianEnterprise(TcZhongdianEnterprise tcZhongdianEnterprise) + { + tcZhongdianEnterprise.setUpdateTime(DateUtils.getNowDate()); + return tcZhongdianEnterpriseMapper.updateTcZhongdianEnterprise(tcZhongdianEnterprise); + } + + /** + * 批量删除重点企业名录 + * + * @param ids 需要删除的重点企业名录主键 + * @return 结果 + */ + @Override + public int deleteTcZhongdianEnterpriseByIds(Long[] ids) + { + return tcZhongdianEnterpriseMapper.deleteTcZhongdianEnterpriseByIds(ids); + } + + /** + * 删除重点企业名录信息 + * + * @param id 重点企业名录主键 + * @return 结果 + */ + @Override + public int deleteTcZhongdianEnterpriseById(Long id) + { + return tcZhongdianEnterpriseMapper.deleteTcZhongdianEnterpriseById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcZhongdianWorkServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcZhongdianWorkServiceImpl.java new file mode 100644 index 0000000..661ac2f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/zongzhi/service/impl/TcZhongdianWorkServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.zongzhi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.zongzhi.mapper.TcZhongdianWorkMapper; +import com.ruoyi.zongzhi.domain.TcZhongdianWork; +import com.ruoyi.zongzhi.service.ITcZhongdianWorkService; + +/** + * 重点工作项目Service业务层处理 + * + * @author ruoyi + * @date 2023-08-10 + */ +@Service +public class TcZhongdianWorkServiceImpl implements ITcZhongdianWorkService +{ + @Autowired + private TcZhongdianWorkMapper tcZhongdianWorkMapper; + + /** + * 查询重点工作项目 + * + * @param id 重点工作项目主键 + * @return 重点工作项目 + */ + @Override + public TcZhongdianWork selectTcZhongdianWorkById(Long id) + { + return tcZhongdianWorkMapper.selectTcZhongdianWorkById(id); + } + + /** + * 查询重点工作项目列表 + * + * @param tcZhongdianWork 重点工作项目 + * @return 重点工作项目 + */ + @Override + public List selectTcZhongdianWorkList(TcZhongdianWork tcZhongdianWork) + { + return tcZhongdianWorkMapper.selectTcZhongdianWorkList(tcZhongdianWork); + } + + /** + * 新增重点工作项目 + * + * @param tcZhongdianWork 重点工作项目 + * @return 结果 + */ + @Override + public int insertTcZhongdianWork(TcZhongdianWork tcZhongdianWork) + { + tcZhongdianWork.setCreateTime(DateUtils.getNowDate()); + return tcZhongdianWorkMapper.insertTcZhongdianWork(tcZhongdianWork); + } + + /** + * 修改重点工作项目 + * + * @param tcZhongdianWork 重点工作项目 + * @return 结果 + */ + @Override + public int updateTcZhongdianWork(TcZhongdianWork tcZhongdianWork) + { + tcZhongdianWork.setUpdateTime(DateUtils.getNowDate()); + return tcZhongdianWorkMapper.updateTcZhongdianWork(tcZhongdianWork); + } + + /** + * 批量删除重点工作项目 + * + * @param ids 需要删除的重点工作项目主键 + * @return 结果 + */ + @Override + public int deleteTcZhongdianWorkByIds(Long[] ids) + { + return tcZhongdianWorkMapper.deleteTcZhongdianWorkByIds(ids); + } + + /** + * 删除重点工作项目信息 + * + * @param id 重点工作项目主键 + * @return 结果 + */ + @Override + public int deleteTcZhongdianWorkById(Long id) + { + return tcZhongdianWorkMapper.deleteTcZhongdianWorkById(id); + } +} diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 51c9968..bef2d95 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,21 +6,19 @@ spring: druid: # 主库数据源 master: - #本地 - #url: jdbc:mysql://39.101.188.84:3306/taicangscreen?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 - #username: root - #password: adminadmin - #公司 url: jdbc:mysql://39.101.188.84:3307/taicangscreen?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: Admin123@ +# url: jdbc:mysql://221.229.220.83:3306/mudu?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 +# username: yqyd +# password: yqyd@68702749 # 从库数据源 slave: # 从数据源开关/默认关闭 enabled: false - url: - username: - password: + url: + username: + password: # 初始连接数 initialSize: 5 # 最小连接池数量 @@ -29,6 +27,10 @@ spring: maxActive: 20 # 配置获取连接等待超时的时间 maxWait: 60000 + # 配置连接超时时间 + connectTimeout: 30000 + # 配置网络超时时间 + socketTimeout: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 @@ -40,7 +42,7 @@ spring: testWhileIdle: true testOnBorrow: false testOnReturn: false - webStatFilter: + webStatFilter: enabled: true statViewServlet: enabled: true diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index dc5cf76..3810084 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -1,22 +1,24 @@ # 项目相关配置 ruoyi: # 名称 - name: taicangZongzhi + name: RuoYi # 版本 - version: 3.7.0 + version: 3.8.6 # 版权年份 - copyrightYear: 2021 + copyrightYear: 2023 # 实例演示开关 demoEnabled: true # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) - profile: D:/taicangZongzhi/uploadPath + profile: D:/ruoyi/uploadPath # 获取ip地址开关 addressEnabled: false - # 验证码类型 math 数组计算 char 字符验证 + # 验证码类型 math 数字计算 char 字符验证 captchaType: math # 开发环境配置 server: + application: + name: taicongzongzhi # 服务器的HTTP端口,默认为8080 port: 9027 servlet: @@ -25,10 +27,13 @@ server: tomcat: # tomcat的URI编码 uri-encoding: UTF-8 - # tomcat最大线程数,默认为200 - max-threads: 800 - # Tomcat启动初始化的线程数,默认值25 - min-spare-threads: 30 + # 连接数满后的排队数,默认为100 + accept-count: 1000 + threads: + # tomcat最大线程数,默认为200 + max: 800 + # Tomcat启动初始化的线程数,默认值10 + min-spare: 100 # 日志配置 logging: @@ -36,21 +41,31 @@ logging: com.ruoyi: debug org.springframework: warn +# 用户配置 +user: + password: + # 密码最大错误次数 + maxRetryCount: 5 + # 密码锁定时间(默认10分钟) + lockTime: 10 + # Spring配置 spring: + application: + name: taicongzongzhi # 资源信息 messages: # 国际化资源文件路径 basename: i18n/messages - profiles: + profiles: active: druid # 文件上传 servlet: - multipart: - # 单个文件大小 - max-file-size: 10MB - # 设置总上传的文件大小 - max-request-size: 20MB + multipart: + # 单个文件大小 + max-file-size: 10MB + # 设置总上传的文件大小 + max-request-size: 20MB # 服务模块 devtools: restart: @@ -58,16 +73,14 @@ spring: enabled: true # redis 配置 redis: - # 数据服务器 -# host: 192.168.2.39 - # 本地地址 + # 地址 host: localhost # 端口,默认为6379 port: 6379 # 数据库索引 database: 0 # 密码 - password: + password: # 连接超时时间 timeout: 10s lettuce: @@ -83,40 +96,56 @@ spring: # token配置 token: - # 令牌自定义标识 - header: Authorization - # 令牌密钥 - secret: abcdefghijklmnopqrstuvwxyz - # 令牌有效期(默认30分钟) - expireTime: 30 - + # 令牌自定义标识 + header: Authorization + # 令牌密钥 + secret: abcdefghijklmnopqrstuvwxyz + # 令牌有效期(默认30分钟) + expireTime: 30 + # MyBatis配置 mybatis: - # 搜索指定包别名 - typeAliasesPackage: com.ruoyi.**.domain - # 配置mapper的扫描,找到所有的mapper.xml映射文件 - mapperLocations: classpath*:mapper/**/*Mapper.xml - # 加载全局的配置文件 - configLocation: classpath:mybatis/mybatis-config.xml + # 搜索指定包别名 + typeAliasesPackage: com.ruoyi.**.domain + # 配置mapper的扫描,找到所有的mapper.xml映射文件 + mapperLocations: classpath*:mapper/**/*Mapper.xml + # 加载全局的配置文件 + configLocation: classpath:mybatis/mybatis-config.xml # PageHelper分页插件 -pagehelper: +pagehelper: helperDialect: mysql supportMethodsArguments: true - params: count=countSql + params: count=countSql # Swagger配置 swagger: # 是否开启swagger enabled: true # 请求前缀 - pathMapping: / + pathMapping: /dev-api # 防止XSS攻击 -xss: +xss: # 过滤开关 enabled: true # 排除链接(多个用逗号分隔) excludes: /system/notice # 匹配链接 urlPatterns: /system/*,/monitor/*,/tool/* + + + +knife4j: + enable: true + openapi: + title: demo演示版本 + description: 展示demo演示版本 + url: https://docs.xiaominfo.com + version: v4.0.0 + group: + demo: + group-name: ${spring.application.name} + api-rule: package + api-rule-resources: + - com \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/i18n/messages.properties b/ruoyi-admin/src/main/resources/i18n/messages.properties index 71cf52d..93de005 100644 --- a/ruoyi-admin/src/main/resources/i18n/messages.properties +++ b/ruoyi-admin/src/main/resources/i18n/messages.properties @@ -5,10 +5,11 @@ user.jcaptcha.expire=验证码已失效 user.not.exists=用户不存在/密码错误 user.password.not.match=用户不存在/密码错误 user.password.retry.limit.count=密码输入错误{0}次 -user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定10分钟 +user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟 user.password.delete=对不起,您的账号已被删除 user.blocked=用户已封禁,请联系管理员 role.blocked=角色已封禁,请联系管理员 +login.blocked=很遗憾,访问IP已被列入系统黑名单 user.logout.success=退出成功 length.not.valid=长度必须在{min}到{max}个字符之间 diff --git a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml index e8b52be..ac47c03 100644 --- a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml +++ b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml @@ -3,13 +3,18 @@ PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> - - - - - - - + + + + + + + + + + + + diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 5bfa14f..71fea1e 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -5,7 +5,7 @@ ruoyi com.ruoyi - 3.7.0 + 3.8.6 4.0.0 @@ -43,8 +43,8 @@ - javax.validation - validation-api + org.springframework.boot + spring-boot-starter-validation @@ -58,11 +58,18 @@ com.fasterxml.jackson.core jackson-databind + + + + com.baomidou + dynamic-datasource-spring-boot-starter + 3.5.2 + - com.alibaba - fastjson + com.alibaba.fastjson2 + fastjson2 @@ -71,12 +78,6 @@ commons-io - - - commons-fileupload - commons-fileupload - - org.apache.poi @@ -89,12 +90,18 @@ snakeyaml - + io.jsonwebtoken jjwt + + + javax.xml.bind + jaxb-api + + org.springframework.boot diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java index 176878e..be49c80 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java @@ -25,4 +25,9 @@ public @interface DataScope * 用户表的别名 */ public String userAlias() default ""; + + /** + * 权限字符(用于多个角色匹配符合要求的权限)默认根据权限注解@ss获取,多个权限用逗号分隔开来 + */ + public String permission() default ""; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java index b09f4ce..58a4bc6 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java @@ -5,6 +5,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.math.BigDecimal; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.IndexedColors; +import com.ruoyi.common.utils.poi.ExcelHandlerAdapter; /** * 自定义导出Excel数据注解 @@ -56,17 +59,12 @@ public @interface Excel public int roundingMode() default BigDecimal.ROUND_HALF_EVEN; /** - * 导出类型(0数字 1字符串) - */ - public ColumnType cellType() default ColumnType.STRING; - - /** - * 导出时在excel中每个列的高度 单位为字符 + * 导出时在excel中每个列的高度 */ public double height() default 14; /** - * 导出时在excel中每个列的宽 单位为字符 + * 导出时在excel中每个列的宽度 */ public double width() default 16; @@ -90,6 +88,11 @@ public @interface Excel */ public String[] combo() default {}; + /** + * 是否需要纵向合并单元格,应对需求:含有list集合单元格) + */ + public boolean needMerge() default false; + /** * 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写. */ @@ -106,25 +109,44 @@ public @interface Excel public boolean isStatistics() default false; /** - * 导出字段对齐方式(0:默认;1:靠左;2:居中;3:靠右) + * 导出类型(0数字 1字符串 2图片) */ - Align align() default Align.AUTO; + public ColumnType cellType() default ColumnType.STRING; - public enum Align - { - AUTO(0), LEFT(1), CENTER(2), RIGHT(3); - private final int value; + /** + * 导出列头背景颜色 + */ + public IndexedColors headerBackgroundColor() default IndexedColors.GREY_50_PERCENT; - Align(int value) - { - this.value = value; - } + /** + * 导出列头字体颜色 + */ + public IndexedColors headerColor() default IndexedColors.WHITE; - public int value() - { - return this.value; - } - } + /** + * 导出单元格背景颜色 + */ + public IndexedColors backgroundColor() default IndexedColors.WHITE; + + /** + * 导出单元格字体颜色 + */ + public IndexedColors color() default IndexedColors.BLACK; + + /** + * 导出字段对齐方式 + */ + public HorizontalAlignment align() default HorizontalAlignment.CENTER; + + /** + * 自定义数据处理器 + */ + public Class handler() default ExcelHandlerAdapter.class; + + /** + * 自定义数据处理器参数 + */ + public String[] args() default {}; /** * 字段类型(0:导出导入;1:仅导出;2:仅导入) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java index eb05dc7..1eb8e49 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java @@ -20,7 +20,7 @@ import com.ruoyi.common.enums.OperatorType; public @interface Log { /** - * 模块 + * 模块 */ public String title() default ""; @@ -38,4 +38,14 @@ public @interface Log * 是否保存请求的参数 */ public boolean isSaveRequestData() default true; + + /** + * 是否保存响应的参数 + */ + public boolean isSaveResponseData() default true; + + /** + * 排除指定的请求参数 + */ + public String[] excludeParamNames() default {}; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java index 69461ea..0f024c7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java @@ -5,7 +5,7 @@ import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.enums.LimitType; /** @@ -21,7 +21,7 @@ public @interface RateLimiter /** * 限流key */ - public String key() default Constants.RATE_LIMIT_KEY; + public String key() default CacheConstants.RATE_LIMIT_KEY; /** * 限流时间,单位秒 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java index 9e350f1..b769748 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java @@ -19,5 +19,13 @@ import java.lang.annotation.Target; @Documented public @interface RepeatSubmit { + /** + * 间隔时间(ms),小于此时间视为重复提交 + */ + public int interval() default 5000; + /** + * 提示消息 + */ + public String message() default "不允许重复提交,请稍候再试"; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java index faf25be..00f70f6 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java @@ -30,6 +30,9 @@ public class RuoYiConfig /** 获取地址开关 */ private static boolean addressEnabled; + /** 验证码类型 */ + private static String captchaType; + public String getName() { return name; @@ -90,6 +93,14 @@ public class RuoYiConfig RuoYiConfig.addressEnabled = addressEnabled; } + public static String getCaptchaType() { + return captchaType; + } + + public void setCaptchaType(String captchaType) { + RuoYiConfig.captchaType = captchaType; + } + /** * 获取导入上传路径 */ diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java index d36253c..8c1d99a 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -19,6 +19,11 @@ public class Constants */ public static final String GBK = "GBK"; + /** + * www主域 + */ + public static final String WWW = "www."; + /** * http请求 */ @@ -58,27 +63,7 @@ public class Constants * 登录失败 */ public static final String LOGIN_FAIL = "Error"; - - /** - * 验证码 redis key - */ - public static final String CAPTCHA_CODE_KEY = "captcha_codes:"; - - /** - * 登录用户 redis key - */ - public static final String LOGIN_TOKEN_KEY = "login_tokens:"; - - /** - * 防重提交 redis key - */ - public static final String REPEAT_SUBMIT_KEY = "repeat_submit:"; - - /** - * 限流 redis key - */ - public static final String RATE_LIMIT_KEY = "rate_limit:"; - + /** * 验证码有效期(分钟) */ @@ -125,27 +110,33 @@ public class Constants public static final String JWT_AUTHORITIES = "authorities"; /** - * 参数管理 cache key + * 资源映射路径 前缀 */ - public static final String SYS_CONFIG_KEY = "sys_config:"; + public static final String RESOURCE_PREFIX = "/profile"; /** - * 字典管理 cache key + * RMI 远程方法调用 */ - public static final String SYS_DICT_KEY = "sys_dict:"; + public static final String LOOKUP_RMI = "rmi:"; /** - * 资源映射路径 前缀 + * LDAP 远程方法调用 */ - public static final String RESOURCE_PREFIX = "/profile"; + public static final String LOOKUP_LDAP = "ldap:"; /** - * RMI 远程方法调用 + * LDAPS 远程方法调用 */ - public static final String LOOKUP_RMI = "rmi://"; + public static final String LOOKUP_LDAPS = "ldaps:"; /** - * LDAP 远程方法调用 + * 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加) + */ + public static final String[] JOB_WHITELIST_STR = { "com.ruoyi" }; + + /** + * 定时任务违规的字符 */ - public static final String LOOKUP_LDAP = "ldap://"; + public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", + "org.springframework", "org.apache", "com.ruoyi.common.utils.file", "com.ruoyi.common.config" }; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java index 1fa328e..7d899d4 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java @@ -109,6 +109,9 @@ public class GenConstants /** 模糊查询 */ public static final String QUERY_LIKE = "LIKE"; + /** 相等查询 */ + public static final String QUERY_EQ = "EQ"; + /** 需要 */ public static final String REQUIRE = "1"; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java index d60afee..a983c77 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java @@ -86,4 +86,9 @@ public class HttpStatus * 接口未实现 */ public static final int NOT_IMPLEMENTED = 501; + + /** + * 系统警告消息 + */ + public static final int WARN = 601; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java index 4ed6009..96b149c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java @@ -60,9 +60,9 @@ public class UserConstants /** InnerLink组件标识 */ public final static String INNER_LINK = "InnerLink"; - /** 校验返回结果码 */ - public final static String UNIQUE = "0"; - public final static String NOT_UNIQUE = "1"; + /** 校验是否唯一的返回标识 */ + public final static boolean UNIQUE = true; + public final static boolean NOT_UNIQUE = false; /** * 用户名长度限制 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java index 9b3d9c7..a685e06 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java @@ -16,6 +16,7 @@ import com.ruoyi.common.core.page.PageDomain; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableSupport; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.sql.SqlUtil; @@ -51,15 +52,7 @@ public class BaseController */ protected void startPage() { - PageDomain pageDomain = TableSupport.buildPageRequest(); - Integer pageNum = pageDomain.getPageNum(); - Integer pageSize = pageDomain.getPageSize(); - if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) - { - String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); - Boolean reasonable = pageDomain.getReasonable(); - PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable); - } + PageUtils.startPage(); } /** @@ -75,6 +68,14 @@ public class BaseController } } + /** + * 清理分页的线程变量 + */ + protected void clearPage() + { + PageUtils.clearPage(); + } + /** * 响应请求分页数据 */ @@ -112,6 +113,14 @@ public class BaseController { return AjaxResult.success(message); } + + /** + * 返回成功消息 + */ + public AjaxResult success(Object data) + { + return AjaxResult.success(data); + } /** * 返回失败消息 @@ -121,6 +130,14 @@ public class BaseController return AjaxResult.error(message); } + /** + * 返回警告消息 + */ + public AjaxResult warn(String message) + { + return AjaxResult.warn(message); + } + /** * 响应返回结果 * diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java index 28e5a68..a7abfe4 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java @@ -1,6 +1,7 @@ package com.ruoyi.common.core.domain; import java.util.HashMap; +import java.util.Objects; import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.utils.StringUtils; @@ -101,10 +102,33 @@ public class AjaxResult extends HashMap return new AjaxResult(HttpStatus.SUCCESS, msg, data); } + /** + * 返回警告消息 + * + * @param msg 返回内容 + * @return 警告消息 + */ + public static AjaxResult warn(String msg) + { + return AjaxResult.warn(msg, null); + } + + /** + * 返回警告消息 + * + * @param msg 返回内容 + * @param data 数据对象 + * @return 警告消息 + */ + public static AjaxResult warn(String msg, Object data) + { + return new AjaxResult(HttpStatus.WARN, msg, data); + } + /** * 返回错误消息 * - * @return + * @return 错误消息 */ public static AjaxResult error() { @@ -115,7 +139,7 @@ public class AjaxResult extends HashMap * 返回错误消息 * * @param msg 返回内容 - * @return 警告消息 + * @return 错误消息 */ public static AjaxResult error(String msg) { @@ -127,7 +151,7 @@ public class AjaxResult extends HashMap * * @param msg 返回内容 * @param data 数据对象 - * @return 警告消息 + * @return 错误消息 */ public static AjaxResult error(String msg, Object data) { @@ -139,10 +163,54 @@ public class AjaxResult extends HashMap * * @param code 状态码 * @param msg 返回内容 - * @return 警告消息 + * @return 错误消息 */ public static AjaxResult error(int code, String msg) { return new AjaxResult(code, msg, null); } + + /** + * 是否为成功消息 + * + * @return 结果 + */ + public boolean isSuccess() + { + return Objects.equals(HttpStatus.SUCCESS, this.get(CODE_TAG)); + } + + /** + * 是否为警告消息 + * + * @return 结果 + */ + public boolean isWarn() + { + return Objects.equals(HttpStatus.WARN, this.get(CODE_TAG)); + } + + /** + * 是否为错误消息 + * + * @return 结果 + */ + public boolean isError() + { + return Objects.equals(HttpStatus.ERROR, this.get(CODE_TAG)); + } + + /** + * 方便链式调用 + * + * @param key 键 + * @param value 值 + * @return 数据对象 + */ + @Override + public AjaxResult put(String key, Object value) + { + super.put(key, value); + return this; + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java index f7d5bf4..15bf66b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java @@ -5,6 +5,8 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; /** * Entity基类 @@ -16,6 +18,7 @@ public class BaseEntity implements Serializable private static final long serialVersionUID = 1L; /** 搜索值 */ + @JsonIgnore private String searchValue; /** 创建者 */ @@ -36,6 +39,7 @@ public class BaseEntity implements Serializable private String remark; /** 请求参数 */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) private Map params; public String getSearchValue() diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java index 6e77ef9..ef15802 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java @@ -1,8 +1,7 @@ package com.ruoyi.common.core.domain; -import com.ruoyi.common.constant.HttpStatus; - import java.io.Serializable; +import com.ruoyi.common.constant.HttpStatus; /** * 响应信息主体 @@ -11,11 +10,14 @@ import java.io.Serializable; */ public class R implements Serializable { + private static final long serialVersionUID = 1L; + /** 成功 */ public static final int SUCCESS = HttpStatus.SUCCESS; + /** 失败 */ public static final int FAIL = HttpStatus.ERROR; - private static final long serialVersionUID = 1L; + private int code; private String msg; @@ -71,16 +73,6 @@ public class R implements Serializable return apiResult; } - public static Boolean isError(R ret) - { - return !isSuccess(ret); - } - - public static Boolean isSuccess(R ret) - { - return R.SUCCESS == ret.getCode(); - } - public int getCode() { return code; @@ -110,4 +102,14 @@ public class R implements Serializable { this.data = data; } + + public static Boolean isError(R ret) + { + return !isSuccess(ret); + } + + public static Boolean isSuccess(R ret) + { + return R.SUCCESS == ret.getCode(); + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java index c9238e2..fb18c5c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -31,7 +32,7 @@ public class SysDept extends BaseEntity private String deptName; /** 显示顺序 */ - private String orderNum; + private Integer orderNum; /** 负责人 */ private String leader; @@ -96,13 +97,13 @@ public class SysDept extends BaseEntity this.deptName = deptName; } - @NotBlank(message = "显示顺序不能为空") - public String getOrderNum() + @NotNull(message = "显示顺序不能为空") + public Integer getOrderNum() { return orderNum; } - public void setOrderNum(String orderNum) + public void setOrderNum(Integer orderNum) { this.orderNum = orderNum; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java index 3f152b3..738f12c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java @@ -131,7 +131,7 @@ public class SysDictData extends BaseEntity public boolean getDefault() { - return UserConstants.YES.equals(this.isDefault) ? true : false; + return UserConstants.YES.equals(this.isDefault); } public String getIsDefault() diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java index d2c4249..e324fcf 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java @@ -1,6 +1,7 @@ package com.ruoyi.common.core.domain.entity; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -57,6 +58,7 @@ public class SysDictType extends BaseEntity @NotBlank(message = "字典类型不能为空") @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符") + @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)") public String getDictType() { return dictType; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java index 5e79fc9..94e1a18 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java @@ -3,6 +3,7 @@ package com.ruoyi.common.core.domain.entity; import java.util.ArrayList; import java.util.List; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -30,7 +31,7 @@ public class SysMenu extends BaseEntity private Long parentId; /** 显示顺序 */ - private String orderNum; + private Integer orderNum; /** 路由地址 */ private String path; @@ -53,7 +54,7 @@ public class SysMenu extends BaseEntity /** 显示状态(0显示 1隐藏) */ private String visible; - /** 菜单状态(0显示 1隐藏) */ + /** 菜单状态(0正常 1停用) */ private String status; /** 权限字符串 */ @@ -107,13 +108,13 @@ public class SysMenu extends BaseEntity this.parentId = parentId; } - @NotBlank(message = "显示顺序不能为空") - public String getOrderNum() + @NotNull(message = "显示顺序不能为空") + public Integer getOrderNum() { return orderNum; } - public void setOrderNum(String orderNum) + public void setOrderNum(Integer orderNum) { this.orderNum = orderNum; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java index 36629eb..488d49c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java @@ -1,6 +1,8 @@ package com.ruoyi.common.core.domain.entity; +import java.util.Set; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -31,7 +33,7 @@ public class SysRole extends BaseEntity /** 角色排序 */ @Excel(name = "角色排序") - private String roleSort; + private Integer roleSort; /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */ @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限") @@ -59,6 +61,9 @@ public class SysRole extends BaseEntity /** 部门组(数据权限) */ private Long[] deptIds; + /** 角色菜单权限 */ + private Set permissions; + public SysRole() { @@ -113,13 +118,13 @@ public class SysRole extends BaseEntity this.roleKey = roleKey; } - @NotBlank(message = "显示顺序不能为空") - public String getRoleSort() + @NotNull(message = "显示顺序不能为空") + public Integer getRoleSort() { return roleSort; } - public void setRoleSort(String roleSort) + public void setRoleSort(Integer roleSort) { this.roleSort = roleSort; } @@ -203,7 +208,17 @@ public class SysRole extends BaseEntity { this.deptIds = deptIds; } - + + public Set getPermissions() + { + return permissions; + } + + public void setPermissions(Set permissions) + { + this.permissions = permissions; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index f6968c0..53ad695 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -2,18 +2,15 @@ package com.ruoyi.common.core.domain.entity; import java.util.Date; import java.util.List; -import javax.validation.constraints.Email; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; +import javax.validation.constraints.*; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel.ColumnType; import com.ruoyi.common.annotation.Excel.Type; import com.ruoyi.common.annotation.Excels; import com.ruoyi.common.core.domain.BaseEntity; +import com.ruoyi.common.xss.Xss; /** * 用户对象 sys_user @@ -58,9 +55,6 @@ public class SysUser extends BaseEntity /** 密码 */ private String password; - /** 盐加密 */ - private String salt; - /** 帐号状态(0正常 1停用) */ @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用") private String status; @@ -135,6 +129,7 @@ public class SysUser extends BaseEntity this.deptId = deptId; } + @Xss(message = "用户昵称不能包含脚本字符") @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") public String getNickName() { @@ -146,6 +141,7 @@ public class SysUser extends BaseEntity this.nickName = nickName; } + @Xss(message = "用户账号不能包含脚本字符") @NotBlank(message = "用户账号不能为空") @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符") public String getUserName() @@ -201,8 +197,6 @@ public class SysUser extends BaseEntity this.avatar = avatar; } - @JsonIgnore - @JsonProperty public String getPassword() { return password; @@ -213,16 +207,6 @@ public class SysUser extends BaseEntity this.password = password; } - public String getSalt() - { - return salt; - } - - public void setSalt(String salt) - { - this.salt = salt; - } - public String getStatus() { return status; @@ -325,7 +309,6 @@ public class SysUser extends BaseEntity .append("sex", getSex()) .append("avatar", getAvatar()) .append("password", getPassword()) - .append("salt", getSalt()) .append("status", getStatus()) .append("delFlag", getDelFlag()) .append("loginIp", getLoginIp()) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java index 03948b4..b5bc8c8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java @@ -25,7 +25,7 @@ public class LoginBody /** * 唯一标识 */ - private String uuid = ""; + private String uuid; public String getUsername() { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java index a8a0d0f..670e6b3 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java @@ -1,11 +1,11 @@ package com.ruoyi.common.core.domain.model; -import java.util.Collection; -import java.util.Set; +import com.alibaba.fastjson2.annotation.JSONField; +import com.ruoyi.common.core.domain.entity.SysUser; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.ruoyi.common.core.domain.entity.SysUser; +import java.util.Collection; +import java.util.Set; /** * 登录用户身份权限 @@ -71,6 +71,24 @@ public class LoginUser implements UserDetails */ private SysUser user; + public LoginUser() + { + } + + public LoginUser(SysUser user, Set permissions) + { + this.user = user; + this.permissions = permissions; + } + + public LoginUser(Long userId, Long deptId, SysUser user, Set permissions) + { + this.userId = userId; + this.deptId = deptId; + this.user = user; + this.permissions = permissions; + } + public Long getUserId() { return userId; @@ -101,25 +119,7 @@ public class LoginUser implements UserDetails this.token = token; } - public LoginUser() - { - } - - public LoginUser(SysUser user, Set permissions) - { - this.user = user; - this.permissions = permissions; - } - - public LoginUser(Long userId, Long deptId, SysUser user, Set permissions) - { - this.userId = userId; - this.deptId = deptId; - this.user = user; - this.permissions = permissions; - } - - @JsonIgnore + @JSONField(serialize = false) @Override public String getPassword() { @@ -135,7 +135,7 @@ public class LoginUser implements UserDetails /** * 账户是否未过期,过期无法验证 */ - @JsonIgnore + @JSONField(serialize = false) @Override public boolean isAccountNonExpired() { @@ -147,7 +147,7 @@ public class LoginUser implements UserDetails * * @return */ - @JsonIgnore + @JSONField(serialize = false) @Override public boolean isAccountNonLocked() { @@ -159,7 +159,7 @@ public class LoginUser implements UserDetails * * @return */ - @JsonIgnore + @JSONField(serialize = false) @Override public boolean isCredentialsNonExpired() { @@ -171,7 +171,7 @@ public class LoginUser implements UserDetails * * @return */ - @JsonIgnore + @JSONField(serialize = false) @Override public boolean isEnabled() { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableSupport.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableSupport.java index 5f30168..a120c30 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableSupport.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableSupport.java @@ -1,5 +1,6 @@ package com.ruoyi.common.core.page; +import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.ServletUtils; /** @@ -40,8 +41,8 @@ public class TableSupport public static PageDomain getPageDomain() { PageDomain pageDomain = new PageDomain(); - pageDomain.setPageNum(ServletUtils.getParameterToInt(PAGE_NUM)); - pageDomain.setPageSize(ServletUtils.getParameterToInt(PAGE_SIZE)); + pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1)); + pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10)); pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN)); pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC)); pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE)); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java index 22a610d..44e80d8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java @@ -74,6 +74,28 @@ public class RedisCache return redisTemplate.expire(key, timeout, unit); } + /** + * 获取有效时间 + * + * @param key Redis键 + * @return 有效时间 + */ + public long getExpire(final String key) + { + return redisTemplate.getExpire(key); + } + + /** + * 判断 key是否存在 + * + * @param key 键 + * @return true 存在 false不存在 + */ + public Boolean hasKey(String key) + { + return redisTemplate.hasKey(key); + } + /** * 获得缓存的基本对象。 * @@ -102,9 +124,9 @@ public class RedisCache * @param collection 多个对象 * @return */ - public long deleteObject(final Collection collection) + public boolean deleteObject(final Collection collection) { - return redisTemplate.delete(collection); + return redisTemplate.delete(collection) > 0; } /** @@ -221,6 +243,18 @@ public class RedisCache return redisTemplate.opsForHash().multiGet(key, hKeys); } + /** + * 删除Hash中的某条数据 + * + * @param key Redis键 + * @param hKey Hash键 + * @return 是否成功 + */ + public boolean deleteCacheMapValue(final String key, final String hKey) + { + return redisTemplate.opsForHash().delete(key, hKey) > 0; + } + /** * 获得缓存的基本对象列表 * diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java index 1fb7461..c918e36 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java @@ -562,17 +562,12 @@ public class Convert switch (valueStr) { case "true": - return true; - case "false": - return false; case "yes": - return true; case "ok": - return true; - case "no": - return false; case "1": return true; + case "false": + case "no": case "0": return false; default: @@ -718,7 +713,7 @@ public class Convert } if (value instanceof Double) { - return new BigDecimal((Double) value); + return BigDecimal.valueOf((Double) value); } if (value instanceof Integer) { @@ -899,7 +894,7 @@ public class Convert */ public static String toSBC(String input, Set notConvertSet) { - char c[] = input.toCharArray(); + char[] c = input.toCharArray(); for (int i = 0; i < c.length; i++) { if (null != notConvertSet && notConvertSet.contains(c[i])) @@ -941,7 +936,7 @@ public class Convert */ public static String toDBC(String text, Set notConvertSet) { - char c[] = text.toCharArray(); + char[] c = text.toCharArray(); for (int i = 0; i < c.length; i++) { if (null != notConvertSet && notConvertSet.contains(c[i])) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/GlobalException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/GlobalException.java index 211441b..81a71b5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/exception/GlobalException.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/GlobalException.java @@ -7,7 +7,6 @@ package com.ruoyi.common.exception; */ public class GlobalException extends RuntimeException { - private static final long serialVersionUID = 1L; /** @@ -45,6 +44,7 @@ public class GlobalException extends RuntimeException return this; } + @Override public String getMessage() { return message; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/ServiceException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/ServiceException.java index 6297f87..fcc7ab6 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/exception/ServiceException.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/ServiceException.java @@ -49,6 +49,7 @@ public final class ServiceException extends RuntimeException return detailMessage; } + @Override public String getMessage() { return message; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java index f1c8e83..011f308 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java @@ -1,7 +1,6 @@ package com.ruoyi.common.exception.file; import java.util.Arrays; -import org.apache.commons.fileupload.FileUploadException; /** * 文件上传 误异常类 @@ -18,7 +17,7 @@ public class InvalidExtensionException extends FileUploadException public InvalidExtensionException(String[] allowedExtension, String extension, String filename) { - super("filename : [" + filename + "], extension : [" + extension + "], allowed extension : [" + Arrays.toString(allowedExtension) + "]"); + super("文件[" + filename + "]后缀[" + extension + "]不正确,请上传" + Arrays.toString(allowedExtension) + "格式"); this.allowedExtension = allowedExtension; this.extension = extension; this.filename = filename; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java index 614c24c..407d1ba 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java @@ -10,6 +10,7 @@ import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import com.ruoyi.common.utils.http.HttpHelper; +import com.ruoyi.common.constant.Constants; /** * 构建可重复读取inputStream的request @@ -23,10 +24,10 @@ public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper public RepeatedlyRequestWrapper(HttpServletRequest request, ServletResponse response) throws IOException { super(request); - request.setCharacterEncoding("UTF-8"); - response.setCharacterEncoding("UTF-8"); + request.setCharacterEncoding(Constants.UTF8); + response.setCharacterEncoding(Constants.UTF8); - body = HttpHelper.getBodyString(request).getBytes("UTF-8"); + body = HttpHelper.getBodyString(request).getBytes(Constants.UTF8); } @Override diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java index 99323ed..9052f0d 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java @@ -12,6 +12,7 @@ import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.enums.HttpMethod; /** * 防止XSS攻击的过滤器 @@ -59,7 +60,7 @@ public class XssFilter implements Filter String url = request.getServletPath(); String method = request.getMethod(); // GET DELETE 不过滤 - if (method == null || method.matches("GET") || method.matches("DELETE")) + if (method == null || HttpMethod.GET.matches(method) || HttpMethod.DELETE.matches(method)) { return true; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java index b1eeb65..05149f0 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java @@ -34,13 +34,13 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper if (values != null) { int length = values.length; - String[] escapseValues = new String[length]; + String[] escapesValues = new String[length]; for (int i = 0; i < length; i++) { // 防xss攻击和过滤前后空格 - escapseValues[i] = EscapeUtil.clean(values[i]).trim(); + escapesValues[i] = EscapeUtil.clean(values[i]).trim(); } - return escapseValues; + return escapesValues; } return super.getParameterValues(name); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java index 536cb3c..27cb193 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java @@ -3,6 +3,11 @@ package com.ruoyi.common.utils; import java.lang.management.ManagementFactory; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; import java.util.Date; import org.apache.commons.lang3.time.DateFormatUtils; @@ -22,7 +27,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; - + private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", @@ -121,7 +126,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils return null; } } - + /** * 获取服务器启动时间 */ @@ -132,16 +137,28 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils } /** - * 计算两个时间差 + * 计算相差天数 */ - public static String getDatePoor(Date endDate, Date nowDate) + public static int differentDaysByMillisecond(Date date1, Date date2) + { + return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); + } + + /** + * 计算时间差 + * + * @param endTime 最后时间 + * @param startTime 开始时间 + * @return 时间差(天/小时/分钟) + */ + public static String timeDistance(Date endDate, Date startTime) { long nd = 1000 * 24 * 60 * 60; long nh = 1000 * 60 * 60; long nm = 1000 * 60; // long ns = 1000; // 获得两个时间的毫秒时间差异 - long diff = endDate.getTime() - nowDate.getTime(); + long diff = endDate.getTime() - startTime.getTime(); // 计算差多少天 long day = diff / nd; // 计算差多少小时 @@ -152,4 +169,23 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils // long sec = diff % nd % nh % nm / ns; return day + "天" + hour + "小时" + min + "分钟"; } + + /** + * 增加 LocalDateTime ==> Date + */ + public static Date toDate(LocalDateTime temporalAccessor) + { + ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault()); + return Date.from(zdt.toInstant()); + } + + /** + * 增加 LocalDate ==> Date + */ + public static Date toDate(LocalDate temporalAccessor) + { + LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0)); + ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); + return Date.from(zdt.toInstant()); + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java index fd9946d..cc5eab2 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java @@ -2,7 +2,8 @@ package com.ruoyi.common.utils; import java.util.Collection; import java.util.List; -import com.ruoyi.common.constant.Constants; +import com.alibaba.fastjson2.JSONArray; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.spring.SpringUtils; @@ -38,11 +39,10 @@ public class DictUtils */ public static List getDictCache(String key) { - Object cacheObj = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); - if (StringUtils.isNotNull(cacheObj)) + JSONArray arrayCache = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); + if (StringUtils.isNotNull(arrayCache)) { - List dictDatas = StringUtils.cast(cacheObj); - return dictDatas; + return arrayCache.toList(SysDictData.class); } return null; } @@ -84,27 +84,30 @@ public class DictUtils StringBuilder propertyString = new StringBuilder(); List datas = getDictCache(dictType); - if (StringUtils.containsAny(separator, dictValue) && StringUtils.isNotEmpty(datas)) + if (StringUtils.isNotNull(datas)) { - for (SysDictData dict : datas) + if (StringUtils.containsAny(separator, dictValue)) { - for (String value : dictValue.split(separator)) + for (SysDictData dict : datas) { - if (value.equals(dict.getDictValue())) + for (String value : dictValue.split(separator)) { - propertyString.append(dict.getDictLabel() + separator); - break; + if (value.equals(dict.getDictValue())) + { + propertyString.append(dict.getDictLabel()).append(separator); + break; + } } } } - } - else - { - for (SysDictData dict : datas) + else { - if (dictValue.equals(dict.getDictValue())) + for (SysDictData dict : datas) { - return dict.getDictLabel(); + if (dictValue.equals(dict.getDictValue())) + { + return dict.getDictLabel(); + } } } } @@ -132,7 +135,7 @@ public class DictUtils { if (label.equals(dict.getDictLabel())) { - propertyString.append(dict.getDictValue() + separator); + propertyString.append(dict.getDictValue()).append(separator); break; } } @@ -166,7 +169,7 @@ public class DictUtils */ public static void clearDictCache() { - Collection keys = SpringUtils.getBean(RedisCache.class).keys(Constants.SYS_DICT_KEY + "*"); + Collection keys = SpringUtils.getBean(RedisCache.class).keys(CacheConstants.SYS_DICT_KEY + "*"); SpringUtils.getBean(RedisCache.class).deleteObject(keys); } @@ -178,6 +181,6 @@ public class DictUtils */ public static String getCacheKey(String configKey) { - return Constants.SYS_DICT_KEY + configKey; + return CacheConstants.SYS_DICT_KEY + configKey; } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java index ae81a69..214e4a0 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java @@ -18,8 +18,7 @@ public class ExceptionUtil { StringWriter sw = new StringWriter(); e.printStackTrace(new PrintWriter(sw, true)); - String str = sw.toString(); - return str; + return sw.toString(); } public static String getRootErrorMessage(Exception e) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java index a6f3d53..853bef8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java @@ -72,6 +72,7 @@ public class SecurityUtils { throw new ServiceException("获取用户信息异常", HttpStatus.UNAUTHORIZED); } + } /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java index 03576c5..febb603 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java @@ -1,12 +1,20 @@ package com.ruoyi.common.utils; import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.net.URLEncoder; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.text.Convert; /** @@ -64,6 +72,34 @@ public class ServletUtils return Convert.toBool(getRequest().getParameter(name), defaultValue); } + /** + * 获得所有请求参数 + * + * @param request 请求对象{@link ServletRequest} + * @return Map + */ + public static Map getParams(ServletRequest request) + { + final Map map = request.getParameterMap(); + return Collections.unmodifiableMap(map); + } + + /** + * 获得所有请求参数 + * + * @param request 请求对象{@link ServletRequest} + * @return Map + */ + public static Map getParamMap(ServletRequest request) + { + Map params = new HashMap<>(); + for (Map.Entry entry : getParams(request).entrySet()) + { + params.put(entry.getKey(), StringUtils.join(entry.getValue(), ",")); + } + return params; + } + /** * 获取request */ @@ -99,9 +135,8 @@ public class ServletUtils * * @param response 渲染对象 * @param string 待渲染的字符串 - * @return null */ - public static String renderString(HttpServletResponse response, String string) + public static void renderString(HttpServletResponse response, String string) { try { @@ -114,7 +149,6 @@ public class ServletUtils { e.printStackTrace(); } - return null; } /** @@ -125,13 +159,13 @@ public class ServletUtils public static boolean isAjaxRequest(HttpServletRequest request) { String accept = request.getHeader("accept"); - if (accept != null && accept.indexOf("application/json") != -1) + if (accept != null && accept.contains("application/json")) { return true; } String xRequestedWith = request.getHeader("X-Requested-With"); - if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1) + if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest")) { return true; } @@ -143,10 +177,42 @@ public class ServletUtils } String ajax = request.getParameter("__ajax"); - if (StringUtils.inStringIgnoreCase(ajax, "json", "xml")) + return StringUtils.inStringIgnoreCase(ajax, "json", "xml"); + } + + /** + * 内容编码 + * + * @param str 内容 + * @return 编码后的内容 + */ + public static String urlEncode(String str) + { + try { - return true; + return URLEncoder.encode(str, Constants.UTF8); + } + catch (UnsupportedEncodingException e) + { + return StringUtils.EMPTY; + } + } + + /** + * 内容解码 + * + * @param str 内容 + * @return 解码后的内容 + */ + public static String urlDecode(String str) + { + try + { + return URLDecoder.decode(str, Constants.UTF8); + } + catch (UnsupportedEncodingException e) + { + return StringUtils.EMPTY; } - return false; } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java index 4ca2bfc..e683d54 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java @@ -324,6 +324,32 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils return list; } + /** + * 判断给定的collection列表中是否包含数组array 判断给定的数组array中是否包含给定的元素value + * + * @param collection 给定的集合 + * @param array 给定的数组 + * @return boolean 结果 + */ + public static boolean containsAny(Collection collection, String... array) + { + if (isEmpty(collection) || isEmpty(array)) + { + return false; + } + else + { + for (String str : array) + { + if (collection.contains(str)) + { + return true; + } + } + return false; + } + } + /** * 查找指定字符串是否包含指定字符串列表中的任意一个字符串同时串忽略大小写 * @@ -455,7 +481,8 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils } /** - * 驼峰式命名法 例如:user_name->userName + * 驼峰式命名法 + * 例如:user_name->userName */ public static String toCamelCase(String s) { @@ -463,6 +490,10 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { return null; } + if (s.indexOf(SEPARATOR) == -1) + { + return s; + } s = s.toLowerCase(); StringBuilder sb = new StringBuilder(s.length()); boolean upperCase = false; @@ -531,4 +562,53 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { return (T) obj; } + + /** + * 数字左边补齐0,使之达到指定长度。注意,如果数字转换为字符串后,长度大于size,则只保留 最后size个字符。 + * + * @param num 数字对象 + * @param size 字符串指定长度 + * @return 返回数字的字符串格式,该字符串为指定长度。 + */ + public static final String padl(final Number num, final int size) + { + return padl(num.toString(), size, '0'); + } + + /** + * 字符串左补齐。如果原始字符串s长度大于size,则只保留最后size个字符。 + * + * @param s 原始字符串 + * @param size 字符串指定长度 + * @param c 用于补齐的字符 + * @return 返回指定长度的字符串,由原字符串左补齐或截取得到。 + */ + public static final String padl(final String s, final int size, final char c) + { + final StringBuilder sb = new StringBuilder(size); + if (s != null) + { + final int len = s.length(); + if (s.length() <= size) + { + for (int i = size - len; i > 0; i--) + { + sb.append(c); + } + sb.append(s); + } + else + { + return s.substring(len - size, len); + } + } + else + { + for (int i = size; i > 0; i--) + { + sb.append(c); + } + } + return sb.toString(); + } } \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java index 1934195..71fe6d5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java @@ -36,7 +36,7 @@ public class Threads * 停止线程池 * 先使用shutdown, 停止接收新任务并尝试完成所有已存在任务. * 如果超时, 则调用shutdownNow, 取消在workQueue中Pending的任务,并中断所有阻塞函数. - * 如果仍人超時,則強制退出. + * 如果仍然超時,則強制退出. * 另对在shutdown时线程本身被调用中断做了处理. */ public static void shutdownAndAwaitTermination(ExecutorService pool) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanValidators.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanValidators.java index adc3b1b..80bfed7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanValidators.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanValidators.java @@ -1,9 +1,9 @@ package com.ruoyi.common.utils.bean; +import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import javax.validation.Validator; -import java.util.Set; /** * bean对象属性验证 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java index eb12806..d9f2b13 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java @@ -2,6 +2,8 @@ package com.ruoyi.common.utils.file; import java.io.File; import java.io.IOException; +import java.nio.file.Paths; +import java.util.Objects; import org.apache.commons.io.FilenameUtils; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.config.RuoYiConfig; @@ -11,7 +13,7 @@ import com.ruoyi.common.exception.file.FileSizeLimitExceededException; import com.ruoyi.common.exception.file.InvalidExtensionException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.uuid.IdUtils; +import com.ruoyi.common.utils.uuid.Seq; /** * 文件上传工具类 @@ -100,7 +102,7 @@ public class FileUploadUtils throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, InvalidExtensionException { - int fileNamelength = file.getOriginalFilename().length(); + int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length(); if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) { throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH); @@ -110,10 +112,9 @@ public class FileUploadUtils String fileName = extractFilename(file); - File desc = getAbsoluteFile(baseDir, fileName); - file.transferTo(desc); - String pathFileName = getPathFileName(baseDir, fileName); - return pathFileName; + String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath(); + file.transferTo(Paths.get(absPath)); + return getPathFileName(baseDir, fileName); } /** @@ -121,10 +122,8 @@ public class FileUploadUtils */ public static final String extractFilename(MultipartFile file) { - String fileName = file.getOriginalFilename(); - String extension = getExtension(file); - fileName = DateUtils.datePath() + "/" + IdUtils.fastUUID() + "." + extension; - return fileName; + return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(), + FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file)); } public static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException @@ -145,8 +144,7 @@ public class FileUploadUtils { int dirLastIndex = RuoYiConfig.getProfile().length() + 1; String currentDir = StringUtils.substring(uploadDir, dirLastIndex); - String pathFileName = Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; - return pathFileName; + return Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; } /** @@ -161,7 +159,7 @@ public class FileUploadUtils throws FileSizeLimitExceededException, InvalidExtensionException { long size = file.getSize(); - if (DEFAULT_MAX_SIZE != -1 && size > DEFAULT_MAX_SIZE) + if (size > DEFAULT_MAX_SIZE) { throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024); } @@ -195,7 +193,6 @@ public class FileUploadUtils throw new InvalidExtensionException(allowedExtension, extension, fileName); } } - } /** @@ -228,7 +225,7 @@ public class FileUploadUtils String extension = FilenameUtils.getExtension(file.getOriginalFilename()); if (StringUtils.isEmpty(extension)) { - extension = MimeTypeUtils.getExtension(file.getContentType()); + extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType())); } return extension; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java index ff33055..ed4cbc9 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java @@ -17,6 +17,7 @@ import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.uuid.IdUtils; +import org.apache.commons.io.FilenameUtils; /** * 文件处理工具类 @@ -115,8 +116,7 @@ public class FileUtils // 路径为文件且不为空则进行删除 if (file.isFile() && file.exists()) { - file.delete(); - flag = true; + flag = file.delete(); } return flag; } @@ -196,7 +196,6 @@ public class FileUtils * * @param response 响应对象 * @param realFileName 真实文件名 - * @return */ public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException { @@ -210,7 +209,9 @@ public class FileUtils .append("utf-8''") .append(percentEncodedFileName); + response.addHeader("Access-Control-Expose-Headers", "Content-Disposition,download-filename"); response.setHeader("Content-disposition", contentDispositionValue.toString()); + response.setHeader("download-filename", percentEncodedFileName); } /** @@ -253,4 +254,38 @@ public class FileUtils } return strFileExtendName; } + + /** + * 获取文件名称 /profile/upload/2022/04/16/ruoyi.png -- ruoyi.png + * + * @param fileName 路径名称 + * @return 没有文件路径的名称 + */ + public static String getName(String fileName) + { + if (fileName == null) + { + return null; + } + int lastUnixPos = fileName.lastIndexOf('/'); + int lastWindowsPos = fileName.lastIndexOf('\\'); + int index = Math.max(lastUnixPos, lastWindowsPos); + return fileName.substring(index + 1); + } + + /** + * 获取不带后缀文件名称 /profile/upload/2022/04/16/ruoyi.png -- ruoyi + * + * @param fileName 路径名称 + * @return 没有文件路径和后缀的名称 + */ + public static String getNameNotSuffix(String fileName) + { + if (fileName == null) + { + return null; + } + String baseName = FilenameUtils.getBaseName(fileName); + return baseName; + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java index 0b7b5aa..432dfda 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java @@ -1,7 +1,6 @@ package com.ruoyi.common.utils.file; import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.InputStream; import java.net.URL; @@ -59,13 +58,12 @@ public class ImageUtils /** * 读取文件为字节数据 * - * @param key 地址 + * @param url 地址 * @return 字节数据 */ public static byte[] readFile(String url) { InputStream in = null; - ByteArrayOutputStream baos = null; try { if (url.startsWith("http")) @@ -95,7 +93,6 @@ public class ImageUtils finally { IOUtils.closeQuietly(in); - IOUtils.closeQuietly(baos); } } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java index 7f74ac2..f52e83e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java @@ -69,26 +69,37 @@ public class EscapeUtil */ private static String encode(String text) { - int len; - if ((text == null) || ((len = text.length()) == 0)) + if (StringUtils.isEmpty(text)) { return StringUtils.EMPTY; } - StringBuilder buffer = new StringBuilder(len + (len >> 2)); + + final StringBuilder tmp = new StringBuilder(text.length() * 6); char c; - for (int i = 0; i < len; i++) + for (int i = 0; i < text.length(); i++) { c = text.charAt(i); - if (c < 64) + if (c < 256) { - buffer.append(TEXT[c]); + tmp.append("%"); + if (c < 16) + { + tmp.append("0"); + } + tmp.append(Integer.toString(c, 16)); } else { - buffer.append(c); + tmp.append("%u"); + if (c <= 0xfff) + { + // issue#I49JU8@Gitee + tmp.append("0"); + } + tmp.append(Integer.toString(c, 16)); } } - return buffer.toString(); + return tmp.toString(); } /** @@ -145,11 +156,12 @@ public class EscapeUtil public static void main(String[] args) { String html = ""; + String escape = EscapeUtil.escape(html); // String html = "ipt>alert(\"XSS\")ipt>"; // String html = "<123"; // String html = "123>"; - System.out.println(EscapeUtil.clean(html)); - System.out.println(EscapeUtil.escape(html)); - System.out.println(EscapeUtil.unescape(html)); + System.out.println("clean: " + EscapeUtil.clean(html)); + System.out.println("escape: " + escape); + System.out.println("unescape: " + EscapeUtil.unescape(escape)); } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/HTMLFilter.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/HTMLFilter.java index cd8cd4f..ebff3fd 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/HTMLFilter.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/HTMLFilter.java @@ -332,7 +332,7 @@ public final class HTMLFilter final String name = m.group(1).toLowerCase(); if (allowed(name)) { - if (false == inArray(name, vSelfClosingTags)) + if (!inArray(name, vSelfClosingTags)) { if (vTagCounts.containsKey(name)) { @@ -387,7 +387,7 @@ public final class HTMLFilter { paramValue = processParamProtocol(paramValue); } - params.append(' ').append(paramName).append("=\"").append(paramValue).append("\""); + params.append(' ').append(paramName).append("=\\\"").append(paramValue).append("\\\""); } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java index dac60ad..589d123 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java @@ -4,7 +4,7 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import javax.servlet.ServletRequest; import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; @@ -25,7 +25,7 @@ public class HttpHelper BufferedReader reader = null; try (InputStream inputStream = request.getInputStream()) { - reader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("UTF-8"))); + reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)); String line = ""; while ((line = reader.readLine()) != null) { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java index 9aee92e..f85c82c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java @@ -9,6 +9,7 @@ import java.net.ConnectException; import java.net.SocketTimeoutException; import java.net.URL; import java.net.URLConnection; +import java.nio.charset.StandardCharsets; import java.security.cert.X509Certificate; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; @@ -19,6 +20,7 @@ import javax.net.ssl.X509TrustManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.utils.StringUtils; /** * 通用http发送方法 @@ -29,6 +31,17 @@ public class HttpUtils { private static final Logger log = LoggerFactory.getLogger(HttpUtils.class); + /** + * 向指定 URL 发送GET方法的请求 + * + * @param url 发送请求的 URL + * @return 所代表远程资源的响应结果 + */ + public static String sendGet(String url) + { + return sendGet(url, StringUtils.EMPTY); + } + /** * 向指定 URL 发送GET方法的请求 * @@ -55,7 +68,7 @@ public class HttpUtils BufferedReader in = null; try { - String urlNameString = url + "?" + param; + String urlNameString = StringUtils.isNotBlank(param) ? url + "?" + param : url; log.info("sendGet - {}", urlNameString); URL realUrl = new URL(urlNameString); URLConnection connection = realUrl.openConnection(); @@ -118,9 +131,8 @@ public class HttpUtils StringBuilder result = new StringBuilder(); try { - String urlNameString = url; - log.info("sendPost - {}", urlNameString); - URL realUrl = new URL(urlNameString); + log.info("sendPost - {}", url); + URL realUrl = new URL(url); URLConnection conn = realUrl.openConnection(); conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); @@ -132,7 +144,7 @@ public class HttpUtils out = new PrintWriter(conn.getOutputStream()); out.print(param); out.flush(); - in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8")); + in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8)); String line; while ((line = in.readLine()) != null) { @@ -206,7 +218,7 @@ public class HttpUtils { if (ret != null && !"".equals(ret.trim())) { - result.append(new String(ret.getBytes("ISO-8859-1"), "utf-8")); + result.append(new String(ret.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8)); } } log.info("recv - {}", result); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java index 01c24fc..edfe419 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java @@ -2,7 +2,8 @@ package com.ruoyi.common.utils.ip; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.utils.StringUtils; @@ -25,7 +26,6 @@ public class AddressUtils public static String getRealAddressByIP(String ip) { - String address = UNKNOWN; // 内网不查询 if (IpUtils.internalIp(ip)) { @@ -41,7 +41,7 @@ public class AddressUtils log.error("获取地理位置异常 {}", ip); return UNKNOWN; } - JSONObject obj = JSONObject.parseObject(rspStr); + JSONObject obj = JSON.parseObject(rspStr); String region = obj.getString("pro"); String city = obj.getString("city"); return String.format("%s %s", region, city); @@ -51,6 +51,6 @@ public class AddressUtils log.error("获取地理位置异常 {}", ip); } } - return address; + return UNKNOWN; } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java index 1b3f42b..8e89e30 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java @@ -3,8 +3,8 @@ package com.ruoyi.common.utils.ip; import java.net.InetAddress; import java.net.UnknownHostException; import javax.servlet.http.HttpServletRequest; +import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.html.EscapeUtil; /** * 获取IP方法 @@ -13,6 +13,29 @@ import com.ruoyi.common.utils.html.EscapeUtil; */ public class IpUtils { + public final static String REGX_0_255 = "(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)"; + // 匹配 ip + public final static String REGX_IP = "((" + REGX_0_255 + "\\.){3}" + REGX_0_255 + ")"; + public final static String REGX_IP_WILDCARD = "(((\\*\\.){3}\\*)|(" + REGX_0_255 + "(\\.\\*){3})|(" + REGX_0_255 + "\\." + REGX_0_255 + ")(\\.\\*){2}" + "|((" + REGX_0_255 + "\\.){3}\\*))"; + // 匹配网段 + public final static String REGX_IP_SEG = "(" + REGX_IP + "\\-" + REGX_IP + ")"; + + /** + * 获取客户端IP + * + * @return IP地址 + */ + public static String getIpAddr() + { + return getIpAddr(ServletUtils.getRequest()); + } + + /** + * 获取客户端IP + * + * @param request 请求对象 + * @return IP地址 + */ public static String getIpAddr(HttpServletRequest request) { if (request == null) @@ -41,15 +64,28 @@ public class IpUtils { ip = request.getRemoteAddr(); } - return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : EscapeUtil.clean(ip); + + return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : getMultistageReverseProxyIp(ip); } + /** + * 检查是否为内部IP地址 + * + * @param ip IP地址 + * @return 结果 + */ public static boolean internalIp(String ip) { byte[] addr = textToNumericFormatV4(ip); return internalIp(addr) || "127.0.0.1".equals(ip); } + /** + * 检查是否为内部IP地址 + * + * @param addr byte地址 + * @return 结果 + */ private static boolean internalIp(byte[] addr) { if (StringUtils.isNull(addr) || addr.length < 2) @@ -110,7 +146,8 @@ public class IpUtils { case 1: l = Long.parseLong(elements[0]); - if ((l < 0L) || (l > 4294967295L)) { + if ((l < 0L) || (l > 4294967295L)) + { return null; } bytes[0] = (byte) (int) (l >> 24 & 0xFF); @@ -120,12 +157,14 @@ public class IpUtils break; case 2: l = Integer.parseInt(elements[0]); - if ((l < 0L) || (l > 255L)) { + if ((l < 0L) || (l > 255L)) + { return null; } bytes[0] = (byte) (int) (l & 0xFF); l = Integer.parseInt(elements[1]); - if ((l < 0L) || (l > 16777215L)) { + if ((l < 0L) || (l > 16777215L)) + { return null; } bytes[1] = (byte) (int) (l >> 16 & 0xFF); @@ -136,13 +175,15 @@ public class IpUtils for (i = 0; i < 2; ++i) { l = Integer.parseInt(elements[i]); - if ((l < 0L) || (l > 255L)) { + if ((l < 0L) || (l > 255L)) + { return null; } bytes[i] = (byte) (int) (l & 0xFF); } l = Integer.parseInt(elements[2]); - if ((l < 0L) || (l > 65535L)) { + if ((l < 0L) || (l > 65535L)) + { return null; } bytes[2] = (byte) (int) (l >> 8 & 0xFF); @@ -152,7 +193,8 @@ public class IpUtils for (i = 0; i < 4; ++i) { l = Integer.parseInt(elements[i]); - if ((l < 0L) || (l > 255L)) { + if ((l < 0L) || (l > 255L)) + { return null; } bytes[i] = (byte) (int) (l & 0xFF); @@ -169,6 +211,11 @@ public class IpUtils return bytes; } + /** + * 获取IP地址 + * + * @return 本地IP地址 + */ public static String getHostIp() { try @@ -181,6 +228,11 @@ public class IpUtils return "127.0.0.1"; } + /** + * 获取主机名 + * + * @return 本地主机名 + */ public static String getHostName() { try @@ -192,4 +244,139 @@ public class IpUtils } return "未知"; } + + /** + * 从多级反向代理中获得第一个非unknown IP地址 + * + * @param ip 获得的IP地址 + * @return 第一个非unknown IP地址 + */ + public static String getMultistageReverseProxyIp(String ip) + { + // 多级反向代理检测 + if (ip != null && ip.indexOf(",") > 0) + { + final String[] ips = ip.trim().split(","); + for (String subIp : ips) + { + if (false == isUnknown(subIp)) + { + ip = subIp; + break; + } + } + } + return StringUtils.substring(ip, 0, 255); + } + + /** + * 检测给定字符串是否为未知,多用于检测HTTP请求相关 + * + * @param checkString 被检测的字符串 + * @return 是否未知 + */ + public static boolean isUnknown(String checkString) + { + return StringUtils.isBlank(checkString) || "unknown".equalsIgnoreCase(checkString); + } + + /** + * 是否为IP + */ + public static boolean isIP(String ip) + { + return StringUtils.isNotBlank(ip) && ip.matches(REGX_IP); + } + + /** + * 是否为IP,或 *为间隔的通配符地址 + */ + public static boolean isIpWildCard(String ip) + { + return StringUtils.isNotBlank(ip) && ip.matches(REGX_IP_WILDCARD); + } + + /** + * 检测参数是否在ip通配符里 + */ + public static boolean ipIsInWildCardNoCheck(String ipWildCard, String ip) + { + String[] s1 = ipWildCard.split("\\."); + String[] s2 = ip.split("\\."); + boolean isMatchedSeg = true; + for (int i = 0; i < s1.length && !s1[i].equals("*"); i++) + { + if (!s1[i].equals(s2[i])) + { + isMatchedSeg = false; + break; + } + } + return isMatchedSeg; + } + + /** + * 是否为特定格式如:“10.10.10.1-10.10.10.99”的ip段字符串 + */ + public static boolean isIPSegment(String ipSeg) + { + return StringUtils.isNotBlank(ipSeg) && ipSeg.matches(REGX_IP_SEG); + } + + /** + * 判断ip是否在指定网段中 + */ + public static boolean ipIsInNetNoCheck(String iparea, String ip) + { + int idx = iparea.indexOf('-'); + String[] sips = iparea.substring(0, idx).split("\\."); + String[] sipe = iparea.substring(idx + 1).split("\\."); + String[] sipt = ip.split("\\."); + long ips = 0L, ipe = 0L, ipt = 0L; + for (int i = 0; i < 4; ++i) + { + ips = ips << 8 | Integer.parseInt(sips[i]); + ipe = ipe << 8 | Integer.parseInt(sipe[i]); + ipt = ipt << 8 | Integer.parseInt(sipt[i]); + } + if (ips > ipe) + { + long t = ips; + ips = ipe; + ipe = t; + } + return ips <= ipt && ipt <= ipe; + } + + /** + * 校验ip是否符合过滤串规则 + * + * @param filter 过滤IP列表,支持后缀'*'通配,支持网段如:`10.10.10.1-10.10.10.99` + * @param ip 校验IP地址 + * @return boolean 结果 + */ + public static boolean isMatchedIp(String filter, String ip) + { + if (StringUtils.isEmpty(filter) || StringUtils.isEmpty(ip)) + { + return false; + } + String[] ips = filter.split(";"); + for (String iStr : ips) + { + if (isIP(iStr) && iStr.equals(ip)) + { + return true; + } + else if (isIpWildCard(iStr) && ipIsInWildCardNoCheck(iStr, ip)) + { + return true; + } + else if (isIPSegment(iStr) && ipIsInNetNoCheck(iStr, ip)) + { + return true; + } + } + return false; + } } \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index 4862a4b..12a6368 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -6,10 +6,15 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; import java.math.BigDecimal; import java.text.DecimalFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Comparator; import java.util.Date; import java.util.HashMap; @@ -19,6 +24,9 @@ import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.RegExUtils; +import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.poi.hssf.usermodel.HSSFClientAnchor; import org.apache.poi.hssf.usermodel.HSSFPicture; import org.apache.poi.hssf.usermodel.HSSFPictureData; @@ -40,12 +48,14 @@ import org.apache.poi.ss.usermodel.FillPatternType; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.Name; import org.apache.poi.ss.usermodel.PictureData; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; +import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddressList; import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.streaming.SXSSFWorkbook; @@ -84,6 +94,15 @@ public class ExcelUtil { private static final Logger log = LoggerFactory.getLogger(ExcelUtil.class); + public static final String FORMULA_REGEX_STR = "=|-|\\+|@"; + + public static final String[] FORMULA_STR = { "=", "-", "+", "@" }; + + /** + * 用于dictType属性数据存储,避免重复查缓存 + */ + public Map sysDictMap = new HashMap(); + /** * Excel sheet最大行数,默认65536 */ @@ -124,11 +143,41 @@ public class ExcelUtil */ private List fields; + /** + * 当前行号 + */ + private int rownum; + + /** + * 标题 + */ + private String title; + /** * 最大高度 */ private short maxHeight; + /** + * 合并后最后行数 + */ + private int subMergedLastRowNum = 0; + + /** + * 合并后开始行数 + */ + private int subMergedFirstRowNum = 1; + + /** + * 对象的子列表方法 + */ + private Method subMethod; + + /** + * 对象的子列表属性 + */ + private List subFields; + /** * 统计列表 */ @@ -144,12 +193,28 @@ public class ExcelUtil */ public Class clazz; + /** + * 需要排除列属性 + */ + public String[] excludeFields; + public ExcelUtil(Class clazz) { this.clazz = clazz; } - public void init(List list, String sheetName, Type type) + /** + * 隐藏Excel中列属性 + * + * @param fields 列属性名 示例[单个"name"/多个"id","name"] + * @throws Exception + */ + public void hideColumn(String... fields) + { + this.excludeFields = fields; + } + + public void init(List list, String sheetName, String title, Type type) { if (list == null) { @@ -158,8 +223,63 @@ public class ExcelUtil this.list = list; this.sheetName = sheetName; this.type = type; + this.title = title; createExcelField(); createWorkbook(); + createTitle(); + createSubHead(); + } + + /** + * 创建excel第一行标题 + */ + public void createTitle() + { + if (StringUtils.isNotEmpty(title)) + { + subMergedFirstRowNum++; + subMergedLastRowNum++; + int titleLastCol = this.fields.size() - 1; + if (isSubList()) + { + titleLastCol = titleLastCol + subFields.size() - 1; + } + Row titleRow = sheet.createRow(rownum == 0 ? rownum++ : 0); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), titleRow.getRowNum(), titleRow.getRowNum(), titleLastCol)); + } + } + + /** + * 创建对象的子列表名称 + */ + public void createSubHead() + { + if (isSubList()) + { + subMergedFirstRowNum++; + subMergedLastRowNum++; + Row subRow = sheet.createRow(rownum); + int excelNum = 0; + for (Object[] objects : fields) + { + Excel attr = (Excel) objects[1]; + Cell headCell1 = subRow.createCell(excelNum); + headCell1.setCellValue(attr.name()); + headCell1.setCellStyle(styles.get(StringUtils.format("header_{}_{}", attr.headerColor(), attr.headerBackgroundColor()))); + excelNum++; + } + int headFirstRow = excelNum - 1; + int headLastRow = headFirstRow + subFields.size() - 1; + if (headLastRow > headFirstRow) + { + sheet.addMergedRegion(new CellRangeAddress(rownum, rownum, headFirstRow, headLastRow)); + } + rownum++; + } } /** @@ -170,17 +290,30 @@ public class ExcelUtil */ public List importExcel(InputStream is) throws Exception { - return importExcel(StringUtils.EMPTY, is); + return importExcel(is, 0); + } + + /** + * 对excel表单默认第一个索引名转换成list + * + * @param is 输入流 + * @param titleNum 标题占用行数 + * @return 转换后集合 + */ + public List importExcel(InputStream is, int titleNum) throws Exception + { + return importExcel(StringUtils.EMPTY, is, titleNum); } /** * 对excel表单指定表格索引名转换成list * * @param sheetName 表格索引名 + * @param titleNum 标题占用行数 * @param is 输入流 * @return 转换后集合 */ - public List importExcel(String sheetName, InputStream is) throws Exception + public List importExcel(String sheetName, InputStream is, int titleNum) throws Exception { this.type = Type.IMPORT; this.wb = WorkbookFactory.create(is); @@ -209,7 +342,7 @@ public class ExcelUtil // 定义一个map用于存放excel列的序号和field. Map cellMap = new HashMap(); // 获取表头 - Row heard = sheet.getRow(0); + Row heard = sheet.getRow(titleNum); for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++) { Cell cell = heard.getCell(i); @@ -224,25 +357,18 @@ public class ExcelUtil } } // 有数据时才处理 得到类的所有field. - Field[] allFields = clazz.getDeclaredFields(); - // 定义一个map用于存放列的序号和field. - Map fieldsMap = new HashMap(); - for (int col = 0; col < allFields.length; col++) + List fields = this.getFields(); + Map fieldsMap = new HashMap(); + for (Object[] objects : fields) { - Field field = allFields[col]; - Excel attr = field.getAnnotation(Excel.class); - if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) + Excel attr = (Excel) objects[1]; + Integer column = cellMap.get(attr.name()); + if (column != null) { - // 设置类的私有字段属性可访问. - field.setAccessible(true); - Integer column = cellMap.get(attr.name()); - if (column != null) - { - fieldsMap.put(column, field); - } + fieldsMap.put(column, objects); } } - for (int i = 1; i <= rows; i++) + for (int i = titleNum + 1; i <= rows; i++) { // 从第2行开始取数据,默认第一行是表头. Row row = sheet.getRow(i); @@ -252,14 +378,15 @@ public class ExcelUtil continue; } T entity = null; - for (Map.Entry entry : fieldsMap.entrySet()) + for (Map.Entry entry : fieldsMap.entrySet()) { Object val = this.getCellValue(row, entry.getKey()); // 如果不存在实例则新建. entity = (entity == null ? clazz.newInstance() : entity); // 从map中得到对应列的field. - Field field = fieldsMap.get(entry.getKey()); + Field field = (Field) entry.getValue()[0]; + Excel attr = (Excel) entry.getValue()[1]; // 取得类型,并根据对象类型设置值. Class fieldType = field.getType(); if (String.class == fieldType) @@ -274,7 +401,7 @@ public class ExcelUtil String dateFormat = field.getAnnotation(Excel.class).dateFormat(); if (StringUtils.isNotEmpty(dateFormat)) { - val = DateUtils.parseDateToStr(dateFormat, (Date) val); + val = parseDateToStr(dateFormat, val); } else { @@ -286,7 +413,7 @@ public class ExcelUtil { val = Convert.toInt(val); } - else if (Long.TYPE == fieldType || Long.class == fieldType) + else if ((Long.TYPE == fieldType || Long.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val))) { val = Convert.toLong(val); } @@ -319,7 +446,6 @@ public class ExcelUtil } if (StringUtils.isNotNull(fieldType)) { - Excel attr = field.getAnnotation(Excel.class); String propertyName = field.getName(); if (StringUtils.isNotEmpty(attr.targetAttr())) { @@ -333,6 +459,10 @@ public class ExcelUtil { val = reverseDictByExp(Convert.toStr(val), attr.dictType(), attr.separator()); } + else if (!attr.handler().equals(ExcelHandlerAdapter.class)) + { + val = dataFormatHandlerAdapter(val, attr); + } else if (ColumnType.IMAGE == attr.cellType() && StringUtils.isNotEmpty(pictures)) { PictureData image = pictures.get(row.getRowNum() + "_" + entry.getKey()); @@ -340,8 +470,11 @@ public class ExcelUtil { val = ""; } - byte[] data = image.getData(); - val = FileUtils.writeImportBytes(data); + else + { + byte[] data = image.getData(); + val = FileUtils.writeImportBytes(data); + } } ReflectUtils.invokeSetter(entity, propertyName, val); } @@ -361,7 +494,20 @@ public class ExcelUtil */ public AjaxResult exportExcel(List list, String sheetName) { - this.init(list, sheetName, Type.EXPORT); + return exportExcel(list, sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public AjaxResult exportExcel(List list, String sheetName, String title) + { + this.init(list, sheetName, title, Type.EXPORT); return exportExcel(); } @@ -372,14 +518,27 @@ public class ExcelUtil * @param list 导出数据集合 * @param sheetName 工作表的名称 * @return 结果 - * @throws IOException */ - public void exportExcel(HttpServletResponse response, List list, String sheetName) throws IOException + public void exportExcel(HttpServletResponse response, List list, String sheetName) + { + exportExcel(response, list, sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param response 返回数据 + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public void exportExcel(HttpServletResponse response, List list, String sheetName, String title) { response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); - this.init(list, sheetName, Type.EXPORT); - exportExcel(response.getOutputStream()); + this.init(list, sheetName, title, Type.EXPORT); + exportExcel(response); } /** @@ -390,7 +549,19 @@ public class ExcelUtil */ public AjaxResult importTemplateExcel(String sheetName) { - this.init(null, sheetName, Type.IMPORT); + return importTemplateExcel(sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public AjaxResult importTemplateExcel(String sheetName, String title) + { + this.init(null, sheetName, title, Type.IMPORT); return exportExcel(); } @@ -400,12 +571,24 @@ public class ExcelUtil * @param sheetName 工作表的名称 * @return 结果 */ - public void importTemplateExcel(HttpServletResponse response, String sheetName) throws IOException + public void importTemplateExcel(HttpServletResponse response, String sheetName) + { + importTemplateExcel(response, sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public void importTemplateExcel(HttpServletResponse response, String sheetName, String title) { response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); - this.init(null, sheetName, Type.IMPORT); - exportExcel(response.getOutputStream()); + this.init(null, sheetName, title, Type.IMPORT); + exportExcel(response); } /** @@ -413,12 +596,12 @@ public class ExcelUtil * * @return 结果 */ - public void exportExcel(OutputStream out) + public void exportExcel(HttpServletResponse response) { try { writeSheet(); - wb.write(out); + wb.write(response.getOutputStream()); } catch (Exception e) { @@ -427,7 +610,6 @@ public class ExcelUtil finally { IOUtils.closeQuietly(wb); - IOUtils.closeQuietly(out); } } @@ -465,19 +647,31 @@ public class ExcelUtil public void writeSheet() { // 取出一共有多少个sheet. - double sheetNo = Math.ceil(list.size() / sheetSize); - for (int index = 0; index <= sheetNo; index++) + int sheetNo = Math.max(1, (int) Math.ceil(list.size() * 1.0 / sheetSize)); + for (int index = 0; index < sheetNo; index++) { createSheet(sheetNo, index); // 产生一行 - Row row = sheet.createRow(0); + Row row = sheet.createRow(rownum); int column = 0; // 写入各个字段的列头名称 for (Object[] os : fields) { + Field field = (Field) os[0]; Excel excel = (Excel) os[1]; - this.createCell(excel, row, column++); + if (Collection.class.isAssignableFrom(field.getType())) + { + for (Field subField : subFields) + { + Excel subExcel = subField.getAnnotation(Excel.class); + this.createHeadCell(subExcel, row, column++); + } + } + else + { + this.createHeadCell(excel, row, column++); + } } if (Type.EXPORT.equals(type)) { @@ -493,23 +687,67 @@ public class ExcelUtil * @param index 序号 * @param row 单元格行 */ + @SuppressWarnings("unchecked") public void fillExcelData(int index, Row row) { int startNo = index * sheetSize; int endNo = Math.min(startNo + sheetSize, list.size()); + int rowNo = (1 + rownum) - startNo; for (int i = startNo; i < endNo; i++) { - row = sheet.createRow(i + 1 - startNo); + rowNo = isSubList() ? (i > 1 ? rowNo + 1 : rowNo + i) : i + 1 + rownum - startNo; + row = sheet.createRow(rowNo); // 得到导出对象. T vo = (T) list.get(i); + Collection subList = null; + if (isSubList()) + { + if (isSubListValue(vo)) + { + subList = getListCellValue(vo); + subMergedLastRowNum = subMergedLastRowNum + subList.size(); + } + else + { + subMergedFirstRowNum++; + subMergedLastRowNum++; + } + } int column = 0; for (Object[] os : fields) { Field field = (Field) os[0]; Excel excel = (Excel) os[1]; - // 设置实体类私有属性可访问 - field.setAccessible(true); - this.addCell(excel, row, vo, field, column++); + if (Collection.class.isAssignableFrom(field.getType()) && StringUtils.isNotNull(subList)) + { + boolean subFirst = false; + for (Object obj : subList) + { + if (subFirst) + { + rowNo++; + row = sheet.createRow(rowNo); + } + List subFields = FieldUtils.getFieldsListWithAnnotation(obj.getClass(), Excel.class); + int subIndex = 0; + for (Field subField : subFields) + { + if (subField.isAnnotationPresent(Excel.class)) + { + subField.setAccessible(true); + Excel attr = subField.getAnnotation(Excel.class); + this.addCell(attr, row, (T) obj, subField, column + subIndex); + } + subIndex++; + } + subFirst = true; + } + this.subMergedFirstRowNum = this.subMergedFirstRowNum + subList.size(); + } + else + { + this.addCell(excel, row, vo, field, column++); + } } } } @@ -527,6 +765,16 @@ public class ExcelUtil CellStyle style = wb.createCellStyle(); style.setAlignment(HorizontalAlignment.CENTER); style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); style.setBorderRight(BorderStyle.THIN); style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); style.setBorderLeft(BorderStyle.THIN); @@ -541,20 +789,6 @@ public class ExcelUtil style.setFont(dataFont); styles.put("data", style); - style = wb.createCellStyle(); - style.cloneStyleFrom(styles.get("data")); - style.setAlignment(HorizontalAlignment.CENTER); - style.setVerticalAlignment(VerticalAlignment.CENTER); - style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); - style.setFillPattern(FillPatternType.SOLID_FOREGROUND); - Font headerFont = wb.createFont(); - headerFont.setFontName("Arial"); - headerFont.setFontHeightInPoints((short) 10); - headerFont.setBold(true); - headerFont.setColor(IndexedColors.WHITE.getIndex()); - style.setFont(headerFont); - styles.put("header", style); - style = wb.createCellStyle(); style.setAlignment(HorizontalAlignment.CENTER); style.setVerticalAlignment(VerticalAlignment.CENTER); @@ -564,35 +798,105 @@ public class ExcelUtil style.setFont(totalFont); styles.put("total", style); - style = wb.createCellStyle(); - style.cloneStyleFrom(styles.get("data")); - style.setAlignment(HorizontalAlignment.LEFT); - styles.put("data1", style); + styles.putAll(annotationHeaderStyles(wb, styles)); - style = wb.createCellStyle(); - style.cloneStyleFrom(styles.get("data")); - style.setAlignment(HorizontalAlignment.CENTER); - styles.put("data2", style); + styles.putAll(annotationDataStyles(wb)); - style = wb.createCellStyle(); - style.cloneStyleFrom(styles.get("data")); - style.setAlignment(HorizontalAlignment.RIGHT); - styles.put("data3", style); + return styles; + } + + /** + * 根据Excel注解创建表格头样式 + * + * @param wb 工作薄对象 + * @return 自定义样式列表 + */ + private Map annotationHeaderStyles(Workbook wb, Map styles) + { + Map headerStyles = new HashMap(); + for (Object[] os : fields) + { + Excel excel = (Excel) os[1]; + String key = StringUtils.format("header_{}_{}", excel.headerColor(), excel.headerBackgroundColor()); + if (!headerStyles.containsKey(key)) + { + CellStyle style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setFillForegroundColor(excel.headerBackgroundColor().index); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(excel.headerColor().index); + style.setFont(headerFont); + headerStyles.put(key, style); + } + } + return headerStyles; + } + /** + * 根据Excel注解创建表格列样式 + * + * @param wb 工作薄对象 + * @return 自定义样式列表 + */ + private Map annotationDataStyles(Workbook wb) + { + Map styles = new HashMap(); + for (Object[] os : fields) + { + Excel excel = (Excel) os[1]; + String key = StringUtils.format("data_{}_{}_{}", excel.align(), excel.color(), excel.backgroundColor()); + if (!styles.containsKey(key)) + { + CellStyle style = wb.createCellStyle(); + style.setAlignment(excel.align()); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + style.setFillForegroundColor(excel.backgroundColor().getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + dataFont.setColor(excel.color().index); + style.setFont(dataFont); + styles.put(key, style); + } + } return styles; } /** * 创建单元格 */ - public Cell createCell(Excel attr, Row row, int column) + public Cell createHeadCell(Excel attr, Row row, int column) { // 创建列 Cell cell = row.createCell(column); // 写入列信息 cell.setCellValue(attr.name()); setDataValidation(attr, row, column); - cell.setCellStyle(styles.get("header")); + cell.setCellStyle(styles.get(StringUtils.format("header_{}_{}", attr.headerColor(), attr.headerBackgroundColor()))); + if (isSubList()) + { + // 填充默认样式,防止合并单元格样式失效 + sheet.setDefaultColumnStyle(column, styles.get(StringUtils.format("data_{}_{}_{}", attr.align(), attr.color(), attr.backgroundColor()))); + if (attr.needMerge()) + { + sheet.addMergedRegion(new CellRangeAddress(rownum - 1, rownum, column, column)); + } + } return cell; } @@ -607,7 +911,17 @@ public class ExcelUtil { if (ColumnType.STRING == attr.cellType()) { - cell.setCellValue(StringUtils.isNull(value) ? attr.defaultValue() : value + attr.suffix()); + String cellValue = Convert.toStr(value); + // 对于任何以表达式触发字符 =-+@开头的单元格,直接使用tab字符作为前缀,防止CSV注入。 + if (StringUtils.startsWithAny(cellValue, FORMULA_STR)) + { + cellValue = RegExUtils.replaceFirst(cellValue, FORMULA_REGEX_STR, "\t$0"); + } + if (value instanceof Collection && StringUtils.equals("[]", cellValue)) + { + cellValue = StringUtils.EMPTY; + } + cell.setCellValue(StringUtils.isNull(cellValue) ? attr.defaultValue() : cellValue + attr.suffix()); } else if (ColumnType.NUMERIC == attr.cellType()) { @@ -672,17 +986,18 @@ public class ExcelUtil // 设置列宽 sheet.setColumnWidth(column, (int) ((attr.width() + 0.72) * 256)); } - // 如果设置了提示信息则鼠标放上去提示. - if (StringUtils.isNotEmpty(attr.prompt())) + if (StringUtils.isNotEmpty(attr.prompt()) || attr.combo().length > 0) { - // 这里默认设了2-101列提示. - setXSSFPrompt(sheet, "", attr.prompt(), 1, 100, column, column); - } - // 如果设置了combo属性则本列只能选择不能输入 - if (attr.combo().length > 0) - { - // 这里默认设了2-101列只能选择不能输入. - setXSSFValidation(sheet, attr.combo(), 1, 100, column, column); + if (attr.combo().length > 15 || StringUtils.join(attr.combo()).length() > 255) + { + // 如果下拉数大于15或字符串长度大于255,则使用一个新sheet存储,避免生成的模板下拉值获取不到 + setXSSFValidationWithHidden(sheet, attr.combo(), attr.prompt(), 1, 100, column, column); + } + else + { + // 提示信息或只能选择不能输入的列内容. + setPromptOrValidation(sheet, attr.combo(), attr.prompt(), 1, 100, column, column); + } } } @@ -701,8 +1016,12 @@ public class ExcelUtil { // 创建cell cell = row.createCell(column); - int align = attr.align().value(); - cell.setCellStyle(styles.get("data" + (align >= 1 && align <= 3 ? align : ""))); + if (isSubListValue(vo) && getListCellValue(vo).size() > 1 && attr.needMerge()) + { + CellRangeAddress cellAddress = new CellRangeAddress(subMergedFirstRowNum, subMergedLastRowNum, column, column); + sheet.addMergedRegion(cellAddress); + } + cell.setCellStyle(styles.get(StringUtils.format("data_{}_{}_{}", attr.align(), attr.color(), attr.backgroundColor()))); // 用于读取对象中的属性 Object value = getTargetValue(vo, field, attr); @@ -712,7 +1031,7 @@ public class ExcelUtil String dictType = attr.dictType(); if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) { - cell.setCellValue(DateUtils.parseDateToStr(dateFormat, (Date) value)); + cell.setCellValue(parseDateToStr(dateFormat, value)); } else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) { @@ -720,11 +1039,20 @@ public class ExcelUtil } else if (StringUtils.isNotEmpty(dictType) && StringUtils.isNotNull(value)) { - cell.setCellValue(convertDictByExp(Convert.toStr(value), dictType, separator)); + if (!sysDictMap.containsKey(dictType + value)) + { + String lable = convertDictByExp(Convert.toStr(value), dictType, separator); + sysDictMap.put(dictType + value, lable); + } + cell.setCellValue(sysDictMap.get(dictType + value)); } else if (value instanceof BigDecimal && -1 != attr.scale()) { - cell.setCellValue((((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).toString()); + cell.setCellValue((((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).doubleValue()); + } + else if (!attr.handler().equals(ExcelHandlerAdapter.class)) + { + cell.setCellValue(dataFormatHandlerAdapter(value, attr)); } else { @@ -742,48 +1070,78 @@ public class ExcelUtil } /** - * 设置 POI XSSFSheet 单元格提示 + * 设置 POI XSSFSheet 单元格提示或选择框 * * @param sheet 表单 - * @param promptTitle 提示标题 + * @param textlist 下拉框显示的内容 * @param promptContent 提示内容 * @param firstRow 开始行 * @param endRow 结束行 * @param firstCol 开始列 * @param endCol 结束列 */ - public void setXSSFPrompt(Sheet sheet, String promptTitle, String promptContent, int firstRow, int endRow, + public void setPromptOrValidation(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow, int firstCol, int endCol) { DataValidationHelper helper = sheet.getDataValidationHelper(); - DataValidationConstraint constraint = helper.createCustomConstraint("DD1"); + DataValidationConstraint constraint = textlist.length > 0 ? helper.createExplicitListConstraint(textlist) : helper.createCustomConstraint("DD1"); CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); DataValidation dataValidation = helper.createValidation(constraint, regions); - dataValidation.createPromptBox(promptTitle, promptContent); - dataValidation.setShowPromptBox(true); + if (StringUtils.isNotEmpty(promptContent)) + { + // 如果设置了提示信息则鼠标放上去提示 + dataValidation.createPromptBox("", promptContent); + dataValidation.setShowPromptBox(true); + } + // 处理Excel兼容性问题 + if (dataValidation instanceof XSSFDataValidation) + { + dataValidation.setSuppressDropDownArrow(true); + dataValidation.setShowErrorBox(true); + } + else + { + dataValidation.setSuppressDropDownArrow(false); + } sheet.addValidationData(dataValidation); } /** - * 设置某些列的值只能输入预制的数据,显示下拉框. + * 设置某些列的值只能输入预制的数据,显示下拉框(兼容超出一定数量的下拉框). * * @param sheet 要设置的sheet. * @param textlist 下拉框显示的内容 + * @param promptContent 提示内容 * @param firstRow 开始行 * @param endRow 结束行 * @param firstCol 开始列 * @param endCol 结束列 - * @return 设置好的sheet. */ - public void setXSSFValidation(Sheet sheet, String[] textlist, int firstRow, int endRow, int firstCol, int endCol) + public void setXSSFValidationWithHidden(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow, int firstCol, int endCol) { + String hideSheetName = "combo_" + firstCol + "_" + endCol; + Sheet hideSheet = wb.createSheet(hideSheetName); // 用于存储 下拉菜单数据 + for (int i = 0; i < textlist.length; i++) + { + hideSheet.createRow(i).createCell(0).setCellValue(textlist[i]); + } + // 创建名称,可被其他单元格引用 + Name name = wb.createName(); + name.setNameName(hideSheetName + "_data"); + name.setRefersToFormula(hideSheetName + "!$A$1:$A$" + textlist.length); DataValidationHelper helper = sheet.getDataValidationHelper(); // 加载下拉列表内容 - DataValidationConstraint constraint = helper.createExplicitListConstraint(textlist); + DataValidationConstraint constraint = helper.createFormulaListConstraint(hideSheetName + "_data"); // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列 CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); // 数据有效性对象 DataValidation dataValidation = helper.createValidation(constraint, regions); + if (StringUtils.isNotEmpty(promptContent)) + { + // 如果设置了提示信息则鼠标放上去提示 + dataValidation.createPromptBox("", promptContent); + dataValidation.setShowPromptBox(true); + } // 处理Excel兼容性问题 if (dataValidation instanceof XSSFDataValidation) { @@ -796,6 +1154,8 @@ public class ExcelUtil } sheet.addValidationData(dataValidation); + // 设置hiddenSheet隐藏 + wb.setSheetHidden(wb.getSheetIndex(hideSheet), true); } /** @@ -813,7 +1173,7 @@ public class ExcelUtil for (String item : convertSource) { String[] itemArray = item.split("="); - if (StringUtils.containsAny(separator, propertyValue)) + if (StringUtils.containsAny(propertyValue, separator)) { for (String value : propertyValue.split(separator)) { @@ -850,7 +1210,7 @@ public class ExcelUtil for (String item : convertSource) { String[] itemArray = item.split("="); - if (StringUtils.containsAny(separator, propertyValue)) + if (StringUtils.containsAny(propertyValue, separator)) { for (String value : propertyValue.split(separator)) { @@ -898,6 +1258,28 @@ public class ExcelUtil return DictUtils.getDictValue(dictType, dictLabel, separator); } + /** + * 数据处理器 + * + * @param value 数据值 + * @param excel 数据注解 + * @return + */ + public String dataFormatHandlerAdapter(Object value, Excel excel) + { + try + { + Object instance = excel.handler().newInstance(); + Method formatMethod = excel.handler().getMethod("format", new Class[] { Object.class, String[].class }); + value = formatMethod.invoke(instance, value, excel.args()); + } + catch (Exception e) + { + log.error("不能格式化数据 " + excel.handler(), e.getMessage()); + } + return Convert.toStr(value); + } + /** * 合计统计信息 */ @@ -949,7 +1331,7 @@ public class ExcelUtil */ public String encodingFilename(String filename) { - filename = UUID.randomUUID().toString() + "_" + filename + ".xlsx"; + filename = UUID.randomUUID() + "_" + filename + ".xlsx"; return filename; } @@ -984,7 +1366,7 @@ public class ExcelUtil if (StringUtils.isNotEmpty(excel.targetAttr())) { String target = excel.targetAttr(); - if (target.indexOf(".") > -1) + if (target.contains(".")) { String[] targets = target.split("[.]"); for (String name : targets) @@ -1025,31 +1407,60 @@ public class ExcelUtil */ private void createExcelField() { - this.fields = new ArrayList(); + this.fields = getFields(); + this.fields = this.fields.stream().sorted(Comparator.comparing(objects -> ((Excel) objects[1]).sort())).collect(Collectors.toList()); + this.maxHeight = getRowHeight(); + } + + /** + * 获取字段注解信息 + */ + public List getFields() + { + List fields = new ArrayList(); List tempFields = new ArrayList<>(); tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields())); tempFields.addAll(Arrays.asList(clazz.getDeclaredFields())); for (Field field : tempFields) { - // 单注解 - if (field.isAnnotationPresent(Excel.class)) + if (!ArrayUtils.contains(this.excludeFields, field.getName())) { - putToField(field, field.getAnnotation(Excel.class)); - } + // 单注解 + if (field.isAnnotationPresent(Excel.class)) + { + Excel attr = field.getAnnotation(Excel.class); + if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) + { + field.setAccessible(true); + fields.add(new Object[] { field, attr }); + } + if (Collection.class.isAssignableFrom(field.getType())) + { + subMethod = getSubMethod(field.getName(), clazz); + ParameterizedType pt = (ParameterizedType) field.getGenericType(); + Class subClass = (Class) pt.getActualTypeArguments()[0]; + this.subFields = FieldUtils.getFieldsListWithAnnotation(subClass, Excel.class); + } + } - // 多注解 - if (field.isAnnotationPresent(Excels.class)) - { - Excels attrs = field.getAnnotation(Excels.class); - Excel[] excels = attrs.value(); - for (Excel excel : excels) + // 多注解 + if (field.isAnnotationPresent(Excels.class)) { - putToField(field, excel); + Excels attrs = field.getAnnotation(Excels.class); + Excel[] excels = attrs.value(); + for (Excel attr : excels) + { + if (!ArrayUtils.contains(this.excludeFields, field.getName() + "." + attr.targetAttr()) + && (attr != null && (attr.type() == Type.ALL || attr.type() == type))) + { + field.setAccessible(true); + fields.add(new Object[] { field, attr }); + } + } } } } - this.fields = this.fields.stream().sorted(Comparator.comparing(objects -> ((Excel) objects[1]).sort())).collect(Collectors.toList()); - this.maxHeight = getRowHeight(); + return fields; } /** @@ -1061,28 +1472,20 @@ public class ExcelUtil for (Object[] os : this.fields) { Excel excel = (Excel) os[1]; - maxHeight = maxHeight > excel.height() ? maxHeight : excel.height(); + maxHeight = Math.max(maxHeight, excel.height()); } return (short) (maxHeight * 20); } - /** - * 放到字段集合中 - */ - private void putToField(Field field, Excel attr) - { - if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) - { - this.fields.add(new Object[] { field, attr }); - } - } - /** * 创建一个工作簿 */ public void createWorkbook() { this.wb = new SXSSFWorkbook(500); + this.sheet = wb.createSheet(); + wb.setSheetName(0, sheetName); + this.styles = createStyles(wb); } /** @@ -1091,17 +1494,13 @@ public class ExcelUtil * @param sheetNo sheet数量 * @param index 序号 */ - public void createSheet(double sheetNo, int index) + public void createSheet(int sheetNo, int index) { - this.sheet = wb.createSheet(); - this.styles = createStyles(wb); // 设置工作表的名称. - if (sheetNo == 0) - { - wb.setSheetName(index, sheetName); - } - else + if (sheetNo > 1 && index > 0) { + this.sheet = wb.createSheet(); + this.createTitle(); wb.setSheetName(index, sheetName + index); } } @@ -1210,7 +1609,7 @@ public class ExcelUtil HSSFPicture pic = (HSSFPicture) shape; int pictureIndex = pic.getPictureIndex() - 1; HSSFPictureData picData = pictures.get(pictureIndex); - String picIndex = String.valueOf(anchor.getRow1()) + "_" + String.valueOf(anchor.getCol1()); + String picIndex = anchor.getRow1() + "_" + anchor.getCol1(); sheetIndexPicMap.put(picIndex, picData); } } @@ -1253,4 +1652,94 @@ public class ExcelUtil } return sheetIndexPicMap; } + + /** + * 格式化不同类型的日期对象 + * + * @param dateFormat 日期格式 + * @param val 被格式化的日期对象 + * @return 格式化后的日期字符 + */ + public String parseDateToStr(String dateFormat, Object val) + { + if (val == null) + { + return ""; + } + String str; + if (val instanceof Date) + { + str = DateUtils.parseDateToStr(dateFormat, (Date) val); + } + else if (val instanceof LocalDateTime) + { + str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDateTime) val)); + } + else if (val instanceof LocalDate) + { + str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDate) val)); + } + else + { + str = val.toString(); + } + return str; + } + + /** + * 是否有对象的子列表 + */ + public boolean isSubList() + { + return StringUtils.isNotNull(subFields) && subFields.size() > 0; + } + + /** + * 是否有对象的子列表,集合不为空 + */ + public boolean isSubListValue(T vo) + { + return StringUtils.isNotNull(subFields) && subFields.size() > 0 && StringUtils.isNotNull(getListCellValue(vo)) && getListCellValue(vo).size() > 0; + } + + /** + * 获取集合的值 + */ + public Collection getListCellValue(Object obj) + { + Object value; + try + { + value = subMethod.invoke(obj, new Object[] {}); + } + catch (Exception e) + { + return new ArrayList(); + } + return (Collection) value; + } + + /** + * 获取对象的子列表方法 + * + * @param name 名称 + * @param pojoClass 类对象 + * @return 子列表方法 + */ + public Method getSubMethod(String name, Class pojoClass) + { + StringBuffer getMethodName = new StringBuffer("get"); + getMethodName.append(name.substring(0, 1).toUpperCase()); + getMethodName.append(name.substring(1)); + Method method = null; + try + { + method = pojoClass.getMethod(getMethodName.toString(), new Class[] {}); + } + catch (Exception e) + { + log.error("获取对象异常{}", e.getMessage()); + } + return method; + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java index de77ee8..c1c58db 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java @@ -1,5 +1,6 @@ package com.ruoyi.common.utils.sign; +import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,7 +56,7 @@ public class Md5Utils { try { - return new String(toHex(md5(s)).getBytes("UTF-8"), "UTF-8"); + return new String(toHex(md5(s)).getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8); } catch (Exception e) { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java index 9993b98..f290ec3 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java @@ -143,4 +143,16 @@ public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationC final String[] activeProfiles = getActiveProfiles(); return StringUtils.isNotEmpty(activeProfiles) ? activeProfiles[0] : null; } + + /** + * 获取配置文件中的值 + * + * @param key 配置文件的key + * @return 当前的配置文件的值 + * + */ + public static String getRequiredProperty(String key) + { + return applicationContext.getEnvironment().getRequiredProperty(key); + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java index a198946..51e1f92 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java @@ -10,6 +10,11 @@ import com.ruoyi.common.utils.StringUtils; */ public class SqlUtil { + /** + * 定义常用的 sql关键字 + */ + public static String SQL_REGEX = "and |extractvalue|updatexml|exec |insert |select |delete |update |drop |count |chr |mid |master |truncate |char |declare |or |+|user()"; + /** * 仅支持字母、数字、下划线、空格、逗号、小数点(支持多个字段排序) */ @@ -34,4 +39,23 @@ public class SqlUtil { return value.matches(SQL_PATTERN); } + + /** + * SQL关键字检查 + */ + public static void filterKeyword(String value) + { + if (StringUtils.isEmpty(value)) + { + return; + } + String[] sqlKeywords = StringUtils.split(SQL_REGEX, "\\|"); + for (String sqlKeyword : sqlKeywords) + { + if (StringUtils.indexOfIgnoreCase(value, sqlKeyword) > -1) + { + throw new UtilException("参数存在SQL注入风险"); + } + } + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/Seq.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/Seq.java index 6b85d52..bf99611 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/Seq.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/Seq.java @@ -1,10 +1,9 @@ package com.ruoyi.common.utils.uuid; +import java.util.concurrent.atomic.AtomicInteger; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; -import java.util.concurrent.atomic.AtomicInteger; - /** * @author ruoyi 序列生成类 */ @@ -15,13 +14,16 @@ public class Seq // 上传序列类型 public static final String uploadSeqType = "UPLOAD"; - // 机器标识 - private static final String machineCode = "A"; + // 通用接口序列数 private static AtomicInteger commSeq = new AtomicInteger(1); + // 上传接口序列数 private static AtomicInteger uploadSeq = new AtomicInteger(1); + // 机器标识 + private static final String machineCode = "A"; + /** * 获取通用序列号 * diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/UUID.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/UUID.java index 062d633..a5585d6 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/UUID.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/UUID.java @@ -66,7 +66,7 @@ public final class UUID implements java.io.Serializable, Comparable } /** - * 获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的本地线程伪随机数生成器生成该 UUID。 + * 获取类型 4(伪随机生成的)UUID 的静态工厂。 * * @return 随机生成的 {@code UUID} */ @@ -343,25 +343,25 @@ public final class UUID implements java.io.Serializable, Comparable final StringBuilder builder = new StringBuilder(isSimple ? 32 : 36); // time_low builder.append(digits(mostSigBits >> 32, 8)); - if (false == isSimple) + if (!isSimple) { builder.append('-'); } // time_mid builder.append(digits(mostSigBits >> 16, 4)); - if (false == isSimple) + if (!isSimple) { builder.append('-'); } // time_high_and_version builder.append(digits(mostSigBits, 4)); - if (false == isSimple) + if (!isSimple) { builder.append('-'); } // variant_and_sequence builder.append(digits(leastSigBits >> 48, 4)); - if (false == isSimple) + if (!isSimple) { builder.append('-'); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/xss/XssValidator.java b/ruoyi-common/src/main/java/com/ruoyi/common/xss/XssValidator.java index e4ddf33..ed9ec1f 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/xss/XssValidator.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/xss/XssValidator.java @@ -1,7 +1,6 @@ package com.ruoyi.common.xss; import com.ruoyi.common.utils.StringUtils; - import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; import java.util.regex.Matcher; @@ -16,13 +15,6 @@ public class XssValidator implements ConstraintValidator { private static final String HTML_PATTERN = "<(\\S*?)[^>]*>.*?|<.*? />"; - public static boolean containsHtml(String value) - { - Pattern pattern = Pattern.compile(HTML_PATTERN); - Matcher matcher = pattern.matcher(value); - return matcher.matches(); - } - @Override public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) { @@ -32,4 +24,11 @@ public class XssValidator implements ConstraintValidator } return !containsHtml(value); } + + public static boolean containsHtml(String value) + { + Pattern pattern = Pattern.compile(HTML_PATTERN); + Matcher matcher = pattern.matcher(value); + return matcher.matches(); + } } \ No newline at end of file diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index 9bd9ee6..3b70537 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -5,7 +5,7 @@ ruoyi com.ruoyi - 3.7.0 + 3.8.6 4.0.0 @@ -37,11 +37,11 @@ - com.github.penggle + pro.fessional kaptcha - javax.servlet-api + servlet-api javax.servlet diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java index 226e150..1bc2f69 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java @@ -1,20 +1,20 @@ package com.ruoyi.framework.aspectj; -import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; -import org.aspectj.lang.annotation.Pointcut; -import org.aspectj.lang.reflect.MethodSignature; import org.springframework.stereotype.Component; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.security.context.PermissionContextHolder; /** * 数据过滤处理 @@ -55,27 +55,15 @@ public class DataScopeAspect */ public static final String DATA_SCOPE = "dataScope"; - // 配置织入点 - @Pointcut("@annotation(com.ruoyi.common.annotation.DataScope)") - public void dataScopePointCut() - { - } - - @Before("dataScopePointCut()") - public void doBefore(JoinPoint point) throws Throwable + @Before("@annotation(controllerDataScope)") + public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable { clearDataScope(point); - handleDataScope(point); + handleDataScope(point, controllerDataScope); } - protected void handleDataScope(final JoinPoint joinPoint) + protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope) { - // 获得注解 - DataScope controllerDataScope = getAnnotationLog(joinPoint); - if (controllerDataScope == null) - { - return; - } // 获取当前的用户 LoginUser loginUser = SecurityUtils.getLoginUser(); if (StringUtils.isNotNull(loginUser)) @@ -84,8 +72,9 @@ public class DataScopeAspect // 如果是超级管理员,则不过滤数据 if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) { + String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), PermissionContextHolder.getContext()); dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), - controllerDataScope.userAlias()); + controllerDataScope.userAlias(), permission); } } } @@ -95,18 +84,31 @@ public class DataScopeAspect * * @param joinPoint 切点 * @param user 用户 - * @param userAlias 别名 + * @param deptAlias 部门别名 + * @param userAlias 用户别名 + * @param permission 权限字符 */ - public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias) + public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String permission) { StringBuilder sqlString = new StringBuilder(); + List conditions = new ArrayList(); for (SysRole role : user.getRoles()) { String dataScope = role.getDataScope(); + if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope)) + { + continue; + } + if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions()) + && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) + { + continue; + } if (DATA_SCOPE_ALL.equals(dataScope)) { sqlString = new StringBuilder(); + conditions.add(dataScope); break; } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) @@ -134,9 +136,16 @@ public class DataScopeAspect else { // 数据权限为仅本人且没有userAlias别名不查询任何数据 - sqlString.append(" OR 1=0 "); + sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); } } + conditions.add(dataScope); + } + + // 多角色情况下,所有角色都不包含传递过来的权限字符,这个时候sqlString也会为空,所以要限制一下,不查询任何数据 + if (StringUtils.isEmpty(conditions)) + { + sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); } if (StringUtils.isNotBlank(sqlString.toString())) @@ -150,22 +159,6 @@ public class DataScopeAspect } } - /** - * 是否存在注解,如果存在就获取 - */ - private DataScope getAnnotationLog(JoinPoint joinPoint) - { - Signature signature = joinPoint.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method method = methodSignature.getMethod(); - - if (method != null) - { - return method.getAnnotation(DataScope.class); - } - return null; - } - /** * 拼接权限sql前先清空params.dataScope参数防止注入 */ diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java index 89b5a32..5980eb7 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java @@ -1,33 +1,31 @@ package com.ruoyi.framework.aspectj; -import java.lang.reflect.Method; import java.util.Collection; -import java.util.Iterator; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang3.ArrayUtils; import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; -import org.aspectj.lang.reflect.MethodSignature; +import org.aspectj.lang.annotation.Before; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.core.NamedThreadLocal; import org.springframework.stereotype.Component; import org.springframework.validation.BindingResult; import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.servlet.HandlerMapping; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.BusinessStatus; import com.ruoyi.common.enums.HttpMethod; +import com.ruoyi.common.filter.PropertyPreExcludeFilter; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.ip.IpUtils; -import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.manager.AsyncManager; import com.ruoyi.framework.manager.factory.AsyncFactory; import com.ruoyi.system.domain.SysOperLog; @@ -43,10 +41,19 @@ public class LogAspect { private static final Logger log = LoggerFactory.getLogger(LogAspect.class); - // 配置织入点 - @Pointcut("@annotation(com.ruoyi.common.annotation.Log)") - public void logPointCut() + /** 排除敏感属性字段 */ + public static final String[] EXCLUDE_PROPERTIES = { "password", "oldPassword", "newPassword", "confirmPassword" }; + + /** 计算操作消耗时间 */ + private static final ThreadLocal TIME_THREADLOCAL = new NamedThreadLocal("Cost Time"); + + /** + * 处理请求前执行 + */ + @Before(value = "@annotation(controllerLog)") + public void boBefore(JoinPoint joinPoint, Log controllerLog) { + TIME_THREADLOCAL.set(System.currentTimeMillis()); } /** @@ -54,10 +61,10 @@ public class LogAspect * * @param joinPoint 切点 */ - @AfterReturning(pointcut = "logPointCut()", returning = "jsonResult") - public void doAfterReturning(JoinPoint joinPoint, Object jsonResult) + @AfterReturning(pointcut = "@annotation(controllerLog)", returning = "jsonResult") + public void doAfterReturning(JoinPoint joinPoint, Log controllerLog, Object jsonResult) { - handleLog(joinPoint, null, jsonResult); + handleLog(joinPoint, controllerLog, null, jsonResult); } /** @@ -66,23 +73,16 @@ public class LogAspect * @param joinPoint 切点 * @param e 异常 */ - @AfterThrowing(value = "logPointCut()", throwing = "e") - public void doAfterThrowing(JoinPoint joinPoint, Exception e) + @AfterThrowing(value = "@annotation(controllerLog)", throwing = "e") + public void doAfterThrowing(JoinPoint joinPoint, Log controllerLog, Exception e) { - handleLog(joinPoint, e, null); + handleLog(joinPoint, controllerLog, e, null); } - protected void handleLog(final JoinPoint joinPoint, final Exception e, Object jsonResult) + protected void handleLog(final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult) { try { - // 获得注解 - Log controllerLog = getAnnotationLog(joinPoint); - if (controllerLog == null) - { - return; - } - // 获取当前的用户 LoginUser loginUser = SecurityUtils.getLoginUser(); @@ -90,12 +90,9 @@ public class LogAspect SysOperLog operLog = new SysOperLog(); operLog.setStatus(BusinessStatus.SUCCESS.ordinal()); // 请求的地址 - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + String ip = IpUtils.getIpAddr(); operLog.setOperIp(ip); - // 返回参数 - operLog.setJsonResult(JSON.toJSONString(jsonResult)); - - operLog.setOperUrl(ServletUtils.getRequest().getRequestURI()); + operLog.setOperUrl(StringUtils.substring(ServletUtils.getRequest().getRequestURI(), 0, 255)); if (loginUser != null) { operLog.setOperName(loginUser.getUsername()); @@ -113,17 +110,22 @@ public class LogAspect // 设置请求方式 operLog.setRequestMethod(ServletUtils.getRequest().getMethod()); // 处理设置注解上的参数 - getControllerMethodDescription(joinPoint, controllerLog, operLog); + getControllerMethodDescription(joinPoint, controllerLog, operLog, jsonResult); + // 设置消耗时间 + operLog.setCostTime(System.currentTimeMillis() - TIME_THREADLOCAL.get()); // 保存数据库 AsyncManager.me().execute(AsyncFactory.recordOper(operLog)); } catch (Exception exp) { // 记录本地异常日志 - log.error("==前置通知异常=="); log.error("异常信息:{}", exp.getMessage()); exp.printStackTrace(); } + finally + { + TIME_THREADLOCAL.remove(); + } } /** @@ -133,7 +135,7 @@ public class LogAspect * @param operLog 操作日志 * @throws Exception */ - public void getControllerMethodDescription(JoinPoint joinPoint, Log log, SysOperLog operLog) throws Exception + public void getControllerMethodDescription(JoinPoint joinPoint, Log log, SysOperLog operLog, Object jsonResult) throws Exception { // 设置action动作 operLog.setBusinessType(log.businessType().ordinal()); @@ -145,7 +147,12 @@ public class LogAspect if (log.isSaveRequestData()) { // 获取参数的信息,传入到数据库中。 - setRequestValue(joinPoint, operLog); + setRequestValue(joinPoint, operLog, log.excludeParamNames()); + } + // 是否需要保存response,参数和值 + if (log.isSaveResponseData() && StringUtils.isNotNull(jsonResult)) + { + operLog.setJsonResult(StringUtils.substring(JSON.toJSONString(jsonResult), 0, 2000)); } } @@ -155,57 +162,56 @@ public class LogAspect * @param operLog 操作日志 * @throws Exception 异常 */ - private void setRequestValue(JoinPoint joinPoint, SysOperLog operLog) throws Exception + private void setRequestValue(JoinPoint joinPoint, SysOperLog operLog, String[] excludeParamNames) throws Exception { + Map paramsMap = ServletUtils.getParamMap(ServletUtils.getRequest()); String requestMethod = operLog.getRequestMethod(); - if (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod)) + if (StringUtils.isEmpty(paramsMap) + && (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod))) { - String params = argsArrayToString(joinPoint.getArgs()); + String params = argsArrayToString(joinPoint.getArgs(), excludeParamNames); operLog.setOperParam(StringUtils.substring(params, 0, 2000)); } else { - Map paramsMap = (Map) ServletUtils.getRequest().getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); - operLog.setOperParam(StringUtils.substring(paramsMap.toString(), 0, 2000)); + operLog.setOperParam(StringUtils.substring(JSON.toJSONString(paramsMap, excludePropertyPreFilter(excludeParamNames)), 0, 2000)); } } - /** - * 是否存在注解,如果存在就获取 - */ - private Log getAnnotationLog(JoinPoint joinPoint) throws Exception - { - Signature signature = joinPoint.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method method = methodSignature.getMethod(); - - if (method != null) - { - return method.getAnnotation(Log.class); - } - return null; - } - /** * 参数拼装 */ - private String argsArrayToString(Object[] paramsArray) + private String argsArrayToString(Object[] paramsArray, String[] excludeParamNames) { String params = ""; if (paramsArray != null && paramsArray.length > 0) { - for (int i = 0; i < paramsArray.length; i++) + for (Object o : paramsArray) { - if (StringUtils.isNotNull(paramsArray[i]) && !isFilterObject(paramsArray[i])) + if (StringUtils.isNotNull(o) && !isFilterObject(o)) { - Object jsonObj = JSON.toJSON(paramsArray[i]); - params += jsonObj.toString() + " "; + try + { + String jsonObj = JSON.toJSONString(o, excludePropertyPreFilter(excludeParamNames)); + params += jsonObj.toString() + " "; + } + catch (Exception e) + { + } } } } return params.trim(); } + /** + * 忽略敏感属性 + */ + public PropertyPreExcludeFilter excludePropertyPreFilter(String[] excludeParamNames) + { + return new PropertyPreExcludeFilter().addExcludes(ArrayUtils.addAll(EXCLUDE_PROPERTIES, excludeParamNames)); + } + /** * 判断是否需要过滤的对象。 * @@ -223,17 +229,17 @@ public class LogAspect else if (Collection.class.isAssignableFrom(clazz)) { Collection collection = (Collection) o; - for (Iterator iter = collection.iterator(); iter.hasNext();) + for (Object value : collection) { - return iter.next() instanceof MultipartFile; + return value instanceof MultipartFile; } } else if (Map.class.isAssignableFrom(clazz)) { Map map = (Map) o; - for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) + for (Object value : map.entrySet()) { - Map.Entry entry = (Map.Entry) iter.next(); + Map.Entry entry = (Map.Entry) value; return entry.getValue() instanceof MultipartFile; } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java index 12aa291..b720bc1 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java @@ -4,10 +4,8 @@ import java.lang.reflect.Method; import java.util.Collections; import java.util.List; import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; -import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,7 +16,6 @@ import org.springframework.stereotype.Component; import com.ruoyi.common.annotation.RateLimiter; import com.ruoyi.common.enums.LimitType; import com.ruoyi.common.exception.ServiceException; -import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.ip.IpUtils; @@ -49,17 +46,9 @@ public class RateLimiterAspect this.limitScript = limitScript; } - // 配置织入点 - @Pointcut("@annotation(com.ruoyi.common.annotation.RateLimiter)") - public void rateLimiterPointCut() + @Before("@annotation(rateLimiter)") + public void doBefore(JoinPoint point, RateLimiter rateLimiter) throws Throwable { - } - - @Before("rateLimiterPointCut()") - public void doBefore(JoinPoint point) throws Throwable - { - RateLimiter rateLimiter = getAnnotationRateLimiter(point); - String key = rateLimiter.key(); int time = rateLimiter.time(); int count = rateLimiter.count(); @@ -70,9 +59,9 @@ public class RateLimiterAspect Long number = redisTemplate.execute(limitScript, keys, count, time); if (StringUtils.isNull(number) || number.intValue() > count) { - throw new ServiceException("访问过于频繁,请稍后再试"); + throw new ServiceException("访问过于频繁,请稍候再试"); } - log.info("限制请求'{}',当前请求'{}',缓存key'{}'", count, number.intValue(), key); + log.info("限制请求'{}',当前请求'{}',缓存key'{}'", count, number.intValue(), combineKey); } catch (ServiceException e) { @@ -80,24 +69,8 @@ public class RateLimiterAspect } catch (Exception e) { - throw new RuntimeException("服务器限流异常,请稍后再试"); - } - } - - /** - * 是否存在注解,如果存在就获取 - */ - private RateLimiter getAnnotationRateLimiter(JoinPoint joinPoint) - { - Signature signature = joinPoint.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method method = methodSignature.getMethod(); - - if (method != null) - { - return method.getAnnotation(RateLimiter.class); + throw new RuntimeException("服务器限流异常,请稍候再试"); } - return null; } public String getCombineKey(RateLimiter rateLimiter, JoinPoint point) @@ -105,12 +78,12 @@ public class RateLimiterAspect StringBuffer stringBuffer = new StringBuffer(rateLimiter.key()); if (rateLimiter.limitType() == LimitType.IP) { - stringBuffer.append(IpUtils.getIpAddr(ServletUtils.getRequest())); + stringBuffer.append(IpUtils.getIpAddr()).append("-"); } MethodSignature signature = (MethodSignature) point.getSignature(); Method method = signature.getMethod(); Class targetClass = method.getDeclaringClass(); - stringBuffer.append("-").append(targetClass.getName()).append("- ").append(method.getName()); + stringBuffer.append(targetClass.getName()).append("-").append(method.getName()); return stringBuffer.toString(); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FastJson2JsonRedisSerializer.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FastJson2JsonRedisSerializer.java index 59812ea..b6d6110 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FastJson2JsonRedisSerializer.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FastJson2JsonRedisSerializer.java @@ -1,15 +1,11 @@ package com.ruoyi.framework.config; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.fasterxml.jackson.databind.JavaType; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.type.TypeFactory; +import java.nio.charset.Charset; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.SerializationException; -import com.alibaba.fastjson.parser.ParserConfig; -import org.springframework.util.Assert; -import java.nio.charset.Charset; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONReader; +import com.alibaba.fastjson2.JSONWriter; /** * Redis使用FastJson序列化 @@ -18,18 +14,10 @@ import java.nio.charset.Charset; */ public class FastJson2JsonRedisSerializer implements RedisSerializer { - @SuppressWarnings("unused") - private ObjectMapper objectMapper = new ObjectMapper(); - public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); private Class clazz; - static - { - ParserConfig.getGlobalInstance().setAutoTypeSupport(true); - } - public FastJson2JsonRedisSerializer(Class clazz) { super(); @@ -43,7 +31,7 @@ public class FastJson2JsonRedisSerializer implements RedisSerializer { return new byte[0]; } - return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET); + return JSON.toJSONString(t, JSONWriter.Feature.WriteClassName).getBytes(DEFAULT_CHARSET); } @Override @@ -55,17 +43,6 @@ public class FastJson2JsonRedisSerializer implements RedisSerializer } String str = new String(bytes, DEFAULT_CHARSET); - return JSON.parseObject(str, clazz); - } - - public void setObjectMapper(ObjectMapper objectMapper) - { - Assert.notNull(objectMapper, "'objectMapper' must not be null"); - this.objectMapper = objectMapper; - } - - protected JavaType getJavaType(Class clazz) - { - return TypeFactory.defaultInstance().constructType(clazz); + return JSON.parseObject(str, clazz, JSONReader.Feature.SupportAutoType); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java index 87b3750..bb14c04 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java @@ -18,7 +18,6 @@ import com.ruoyi.common.utils.StringUtils; * @author ruoyi */ @Configuration -@ConditionalOnProperty(value = "xss.enabled", havingValue = "true") public class FilterConfig { @Value("${xss.excludes}") @@ -29,6 +28,7 @@ public class FilterConfig @SuppressWarnings({ "rawtypes", "unchecked" }) @Bean + @ConditionalOnProperty(value = "xss.enabled", havingValue = "true") public FilterRegistrationBean xssFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java index 3e74580..7f8e1d5 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java @@ -5,7 +5,7 @@ import com.google.code.kaptcha.text.impl.DefaultTextCreator; /** * 验证码文本生成器 - * + * * @author ruoyi */ public class KaptchaTextCreator extends DefaultTextCreator @@ -20,7 +20,7 @@ public class KaptchaTextCreator extends DefaultTextCreator int x = random.nextInt(10); int y = random.nextInt(10); StringBuilder suChinese = new StringBuilder(); - int randomoperands = (int) Math.round(Math.random() * 2); + int randomoperands = random.nextInt(3); if (randomoperands == 0) { result = x * y; @@ -30,7 +30,7 @@ public class KaptchaTextCreator extends DefaultTextCreator } else if (randomoperands == 1) { - if (!(x == 0) && y % x == 0) + if ((x != 0) && y % x == 0) { result = y / x; suChinese.append(CNUMBERS[y]); @@ -45,7 +45,7 @@ public class KaptchaTextCreator extends DefaultTextCreator suChinese.append(CNUMBERS[y]); } } - else if (randomoperands == 2) + else { if (x >= y) { @@ -62,13 +62,6 @@ public class KaptchaTextCreator extends DefaultTextCreator suChinese.append(CNUMBERS[x]); } } - else - { - result = x + y; - suChinese.append(CNUMBERS[x]); - suChinese.append("+"); - suChinese.append(CNUMBERS[y]); - } suChinese.append("=?@" + result); return suChinese.toString(); } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java index 3c3185e..3f4f485 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java @@ -8,11 +8,6 @@ import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.script.DefaultRedisScript; import org.springframework.data.redis.serializer.StringRedisSerializer; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.PropertyAccessor; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; /** * redis配置 @@ -32,11 +27,6 @@ public class RedisConfig extends CachingConfigurerSupport FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class); - ObjectMapper mapper = new ObjectMapper(); - mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); - mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); - serializer.setObjectMapper(mapper); - // 使用StringRedisSerializer来序列化和反序列化redis的key值 template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(serializer); @@ -68,12 +58,12 @@ public class RedisConfig extends CachingConfigurerSupport "local time = tonumber(ARGV[2])\n" + "local current = redis.call('get', key);\n" + "if current and tonumber(current) > count then\n" + - " return current;\n" + + " return tonumber(current);\n" + "end\n" + "current = redis.call('incr', key)\n" + "if tonumber(current) == 1 then\n" + " redis.call('expire', key, time)\n" + "end\n" + - "return current;"; + "return tonumber(current);"; } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java index 5e4ab00..74fb93e 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java @@ -1,8 +1,10 @@ package com.ruoyi.framework.config; +import java.util.concurrent.TimeUnit; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.CacheControl; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @@ -28,10 +30,13 @@ public class ResourcesConfig implements WebMvcConfigurer public void addResourceHandlers(ResourceHandlerRegistry registry) { /** 本地文件上传路径 */ - registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**").addResourceLocations("file:" + RuoYiConfig.getProfile() + "/"); + registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**") + .addResourceLocations("file:" + RuoYiConfig.getProfile() + "/"); /** swagger配置 */ - registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); + registry.addResourceHandler("/swagger-ui/**") + .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/") + .setCacheControl(CacheControl.maxAge(5, TimeUnit.HOURS).cachePublic());; } /** @@ -49,17 +54,20 @@ public class ResourcesConfig implements WebMvcConfigurer @Bean public CorsFilter corsFilter() { - UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); // 设置访问源地址 - config.addAllowedOrigin("*"); + config.addAllowedOriginPattern("*"); // 设置访问源请求头 config.addAllowedHeader("*"); // 设置访问源请求方法 config.addAllowedMethod("*"); - // 对接口配置跨域设置 + // 有效期 1800秒 + config.setMaxAge(1800L); + // 添加映射路径,拦截一切请求 + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", config); + // 返回新的CorsFilter return new CorsFilter(source); } } \ No newline at end of file diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index 7333182..0bc036c 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -8,30 +8,31 @@ import org.springframework.security.config.annotation.authentication.builders.Au import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; import org.springframework.security.web.authentication.logout.LogoutFilter; import org.springframework.web.filter.CorsFilter; +import com.ruoyi.framework.config.properties.PermitAllUrlProperties; import com.ruoyi.framework.security.filter.JwtAuthenticationTokenFilter; import com.ruoyi.framework.security.handle.AuthenticationEntryPointImpl; import com.ruoyi.framework.security.handle.LogoutSuccessHandlerImpl; /** * spring security配置 - * + * * @author ruoyi */ @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) -public class SecurityConfig extends WebSecurityConfigurerAdapter -{ +public class SecurityConfig extends WebSecurityConfigurerAdapter { /** * 自定义用户认证逻辑 */ @Autowired private UserDetailsService userDetailsService; - + /** * 认证失败处理类 */ @@ -49,13 +50,19 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter */ @Autowired private JwtAuthenticationTokenFilter authenticationTokenFilter; - + /** * 跨域过滤器 */ @Autowired private CorsFilter corsFilter; - + + /** + * 允许匿名访问的地址 + */ + @Autowired + private PermitAllUrlProperties permitAllUrl; + /** * 解决 无法直接注入 AuthenticationManager * @@ -64,8 +71,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter */ @Bean @Override - public AuthenticationManager authenticationManagerBean() throws Exception - { + public AuthenticationManager authenticationManagerBean() throws Exception { return super.authenticationManagerBean(); } @@ -85,11 +91,16 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter * authenticated | 用户登录后可访问 */ @Override - protected void configure(HttpSecurity httpSecurity) throws Exception - { + protected void configure(HttpSecurity httpSecurity) throws Exception { + // 注解标记允许匿名访问的url + ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry = httpSecurity.authorizeRequests(); + permitAllUrl.getUrls().forEach(url -> registry.antMatchers(url).permitAll()); + httpSecurity // CSRF禁用,因为不使用session .csrf().disable() + // 禁用HTTP响应标头 + .headers().cacheControl().disable().and() // 认证失败处理类 .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and() // 基于token,所以不需要session @@ -97,27 +108,27 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 过滤请求 .authorizeRequests() // 对于登录login 注册register 验证码captchaImage 允许匿名访问 - .antMatchers("/login", "/register", "/captchaImage").anonymous() - .antMatchers( - HttpMethod.GET, - "/", - "/*.html", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/profile/**" - ).permitAll() - .antMatchers("/common/download**").anonymous() - .antMatchers("/common/download/resource**").anonymous() + .antMatchers("/login", "/register", "/captchaImage").permitAll() .antMatchers("/swagger-ui.html").anonymous() .antMatchers("/swagger-resources/**").anonymous() .antMatchers("/webjars/**").anonymous() + .antMatchers("/doc.html").anonymous() + .antMatchers("/v2/api-docs-ext/**").anonymous() + .antMatchers("/v2/api-docs/**").anonymous() + .antMatchers("/swagger-ui/**").anonymous() + .antMatchers("/swagger-resources/**").anonymous() + .antMatchers("/*/api-docs").anonymous() + // 打包服务器需要无token访问 +// .antMatchers("/system/dict/data/type/**").anonymous() .antMatchers("/*/api-docs").anonymous() - .antMatchers("/druid/**").anonymous() + // 静态资源,可匿名访问 + .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() + .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**", "/zongzhi/**").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated() .and() .headers().frameOptions().disable(); + // 添加Logout filter httpSecurity.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler); // 添加JWT filter httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class); @@ -130,8 +141,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter * 强散列哈希加密实现 */ @Bean - public BCryptPasswordEncoder bCryptPasswordEncoder() - { + public BCryptPasswordEncoder bCryptPasswordEncoder() { return new BCryptPasswordEncoder(); } @@ -139,8 +149,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter * 身份认证接口 */ @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception - { + protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder()); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java index 0d67c22..7840141 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java @@ -1,13 +1,13 @@ package com.ruoyi.framework.config; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.ThreadPoolExecutor; +import com.ruoyi.common.utils.Threads; import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; -import com.ruoyi.common.utils.Threads; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.ThreadPoolExecutor; /** * 线程池配置 @@ -49,7 +49,8 @@ public class ThreadPoolConfig protected ScheduledExecutorService scheduledExecutorService() { return new ScheduledThreadPoolExecutor(corePoolSize, - new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build()) + new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build(), + new ThreadPoolExecutor.CallerRunsPolicy()) { @Override protected void afterExecute(Runnable r, Throwable t) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/DruidProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/DruidProperties.java index 84f7e00..c8a5c8a 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/DruidProperties.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/DruidProperties.java @@ -24,6 +24,12 @@ public class DruidProperties @Value("${spring.datasource.druid.maxWait}") private int maxWait; + @Value("${spring.datasource.druid.connectTimeout}") + private int connectTimeout; + + @Value("${spring.datasource.druid.socketTimeout}") + private int socketTimeout; + @Value("${spring.datasource.druid.timeBetweenEvictionRunsMillis}") private int timeBetweenEvictionRunsMillis; @@ -54,6 +60,12 @@ public class DruidProperties /** 配置获取连接等待超时的时间 */ datasource.setMaxWait(maxWait); + + /** 配置驱动连接超时时间,检测数据库建立连接的超时时间,单位是毫秒 */ + datasource.setConnectTimeout(connectTimeout); + + /** 配置网络超时时间,等待数据库操作完成的网络超时时间,单位是毫秒 */ + datasource.setSocketTimeout(socketTimeout); /** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */ datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/PermitAllUrlProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/PermitAllUrlProperties.java index 14a50d3..29118fa 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/PermitAllUrlProperties.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/PermitAllUrlProperties.java @@ -1,6 +1,11 @@ package com.ruoyi.framework.config.properties; -import com.ruoyi.common.annotation.Anonymous; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.regex.Pattern; import org.apache.commons.lang3.RegExUtils; import org.springframework.beans.BeansException; import org.springframework.beans.factory.InitializingBean; @@ -11,13 +16,7 @@ import org.springframework.core.annotation.AnnotationUtils; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.mvc.method.RequestMappingInfo; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.regex.Pattern; +import com.ruoyi.common.annotation.Anonymous; /** * 设置Anonymous注解允许匿名访问的url @@ -28,10 +27,13 @@ import java.util.regex.Pattern; public class PermitAllUrlProperties implements InitializingBean, ApplicationContextAware { private static final Pattern PATTERN = Pattern.compile("\\{(.*?)\\}"); - public String ASTERISK = "*"; + private ApplicationContext applicationContext; + private List urls = new ArrayList<>(); + public String ASTERISK = "*"; + @Override public void afterPropertiesSet() { diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java index 3572db9..9770af6 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java @@ -14,7 +14,7 @@ public class DynamicDataSourceContextHolder /** * 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本, - * 所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。 + * 所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。 */ private static final ThreadLocal CONTEXT_HOLDER = new ThreadLocal<>(); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java index 17d607f..4ddacae 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java @@ -5,8 +5,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; -import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; -import com.alibaba.fastjson.JSONObject; +import org.springframework.web.servlet.HandlerInterceptor; +import com.alibaba.fastjson2.JSON; import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.ServletUtils; @@ -17,7 +17,7 @@ import com.ruoyi.common.utils.ServletUtils; * @author ruoyi */ @Component -public abstract class RepeatSubmitInterceptor extends HandlerInterceptorAdapter +public abstract class RepeatSubmitInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception @@ -29,10 +29,10 @@ public abstract class RepeatSubmitInterceptor extends HandlerInterceptorAdapter RepeatSubmit annotation = method.getAnnotation(RepeatSubmit.class); if (annotation != null) { - if (this.isRepeatSubmit(request)) + if (this.isRepeatSubmit(request, annotation)) { - AjaxResult ajaxResult = AjaxResult.error("不允许重复提交,请稍后再试"); - ServletUtils.renderString(response, JSONObject.toJSONString(ajaxResult)); + AjaxResult ajaxResult = AjaxResult.error(annotation.message()); + ServletUtils.renderString(response, JSON.toJSONString(ajaxResult)); return false; } } @@ -40,7 +40,7 @@ public abstract class RepeatSubmitInterceptor extends HandlerInterceptorAdapter } else { - return super.preHandle(request, response, handler); + return true; } } @@ -51,5 +51,5 @@ public abstract class RepeatSubmitInterceptor extends HandlerInterceptorAdapter * @return * @throws Exception */ - public abstract boolean isRepeatSubmit(HttpServletRequest request); + public abstract boolean isRepeatSubmit(HttpServletRequest request, RepeatSubmit annotation); } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java index cb4edbe..9dc9511 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java @@ -7,8 +7,9 @@ import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import com.alibaba.fastjson.JSONObject; -import com.ruoyi.common.constant.Constants; +import com.alibaba.fastjson2.JSON; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.filter.RepeatedlyRequestWrapper; import com.ruoyi.common.utils.StringUtils; @@ -35,21 +36,9 @@ public class SameUrlDataInterceptor extends RepeatSubmitInterceptor @Autowired private RedisCache redisCache; - /** - * 间隔时间,单位:秒 默认10秒 - * - * 两次相同参数的请求,如果间隔时间大于该参数,系统不会认定为重复提交的数据 - */ - private int intervalTime = 10; - - public void setIntervalTime(int intervalTime) - { - this.intervalTime = intervalTime; - } - @SuppressWarnings("unchecked") @Override - public boolean isRepeatSubmit(HttpServletRequest request) + public boolean isRepeatSubmit(HttpServletRequest request, RepeatSubmit annotation) { String nowParams = ""; if (request instanceof RepeatedlyRequestWrapper) @@ -61,7 +50,7 @@ public class SameUrlDataInterceptor extends RepeatSubmitInterceptor // body参数为空,获取Parameter的数据 if (StringUtils.isEmpty(nowParams)) { - nowParams = JSONObject.toJSONString(request.getParameterMap()); + nowParams = JSON.toJSONString(request.getParameterMap()); } Map nowDataMap = new HashMap(); nowDataMap.put(REPEAT_PARAMS, nowParams); @@ -71,14 +60,10 @@ public class SameUrlDataInterceptor extends RepeatSubmitInterceptor String url = request.getRequestURI(); // 唯一值(没有消息头则使用请求地址) - String submitKey = request.getHeader(header); - if (StringUtils.isEmpty(submitKey)) - { - submitKey = url; - } + String submitKey = StringUtils.trimToEmpty(request.getHeader(header)); - // 唯一标识(指定key + 消息头) - String cacheRepeatKey = Constants.REPEAT_SUBMIT_KEY + submitKey; + // 唯一标识(指定key + url + 消息头) + String cacheRepeatKey = CacheConstants.REPEAT_SUBMIT_KEY + url + submitKey; Object sessionObj = redisCache.getCacheObject(cacheRepeatKey); if (sessionObj != null) @@ -87,7 +72,7 @@ public class SameUrlDataInterceptor extends RepeatSubmitInterceptor if (sessionMap.containsKey(url)) { Map preDataMap = (Map) sessionMap.get(url); - if (compareParams(nowDataMap, preDataMap) && compareTime(nowDataMap, preDataMap)) + if (compareParams(nowDataMap, preDataMap) && compareTime(nowDataMap, preDataMap, annotation.interval())) { return true; } @@ -95,7 +80,7 @@ public class SameUrlDataInterceptor extends RepeatSubmitInterceptor } Map cacheMap = new HashMap(); cacheMap.put(url, nowDataMap); - redisCache.setCacheObject(cacheRepeatKey, cacheMap, intervalTime, TimeUnit.SECONDS); + redisCache.setCacheObject(cacheRepeatKey, cacheMap, annotation.interval(), TimeUnit.MILLISECONDS); return false; } @@ -112,11 +97,11 @@ public class SameUrlDataInterceptor extends RepeatSubmitInterceptor /** * 判断两次间隔时间 */ - private boolean compareTime(Map nowMap, Map preMap) + private boolean compareTime(Map nowMap, Map preMap, int interval) { long time1 = (Long) nowMap.get(REPEAT_TIME); long time2 = (Long) preMap.get(REPEAT_TIME); - if ((time1 - time2) < (this.intervalTime * 1000)) + if ((time1 - time2) < interval) { return true; } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java index 23d0230..267e305 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java @@ -38,7 +38,7 @@ public class AsyncFactory final Object... args) { final UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent")); - final String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + final String ip = IpUtils.getIpAddr(); return new TimerTask() { @Override diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/context/PermissionContextHolder.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/context/PermissionContextHolder.java index 6cef928..5472f3d 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/context/PermissionContextHolder.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/context/PermissionContextHolder.java @@ -1,8 +1,8 @@ package com.ruoyi.framework.security.context; -import com.ruoyi.common.core.text.Convert; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; +import com.ruoyi.common.core.text.Convert; /** * 权限信息 @@ -13,15 +13,15 @@ public class PermissionContextHolder { private static final String PERMISSION_CONTEXT_ATTRIBUTES = "PERMISSION_CONTEXT"; - public static String getContext() - { - return Convert.toStr(RequestContextHolder.currentRequestAttributes().getAttribute(PERMISSION_CONTEXT_ATTRIBUTES, - RequestAttributes.SCOPE_REQUEST)); - } - public static void setContext(String permission) { RequestContextHolder.currentRequestAttributes().setAttribute(PERMISSION_CONTEXT_ATTRIBUTES, permission, RequestAttributes.SCOPE_REQUEST); } + + public static String getContext() + { + return Convert.toStr(RequestContextHolder.currentRequestAttributes().getAttribute(PERMISSION_CONTEXT_ATTRIBUTES, + RequestAttributes.SCOPE_REQUEST)); + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java index c22dd32..93b7032 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java @@ -7,7 +7,7 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.stereotype.Component; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.ServletUtils; diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java index e5fc11d..c01f691 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java @@ -8,9 +8,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.ServletUtils; @@ -48,6 +47,6 @@ public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler // 记录用户退出日志 AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, "退出成功")); } - ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(HttpStatus.SUCCESS, "退出成功"))); + ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.success("退出成功"))); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Jvm.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Jvm.java index 485d201..1fdc6ac 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Jvm.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Jvm.java @@ -117,6 +117,14 @@ public class Jvm */ public String getRunTime() { - return DateUtils.getDatePoor(DateUtils.getNowDate(), DateUtils.getServerStartDate()); + return DateUtils.timeDistance(DateUtils.getNowDate(), DateUtils.getServerStartDate()); + } + + /** + * 运行参数 + */ + public String getInputArgs() + { + return ManagementFactory.getRuntimeMXBean().getInputArguments().toString(); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java index 68b1d69..249c6a0 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java @@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.security.context.PermissionContextHolder; /** * RuoYi首创 自定义权限实现,ss取自SpringSecurity首字母 @@ -43,6 +44,7 @@ public class PermissionService { return false; } + PermissionContextHolder.setContext(permission); return hasPermissions(loginUser.getPermissions(), permission); } @@ -60,7 +62,7 @@ public class PermissionService /** * 验证用户是否具有以下任意一个权限 * - * @param permissions 以 PERMISSION_NAMES_DELIMETER 为分隔符的权限列表 + * @param permissions 以 PERMISSION_DELIMETER 为分隔符的权限列表 * @return 用户是否具有以下任意一个权限 */ public boolean hasAnyPermi(String permissions) @@ -74,6 +76,7 @@ public class PermissionService { return false; } + PermissionContextHolder.setContext(permissions); Set authorities = loginUser.getPermissions(); for (String permission : permissions.split(PERMISSION_DELIMETER)) { diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index cdccaed..67267b7 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -7,20 +7,25 @@ import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.stereotype.Component; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.exception.user.BlackListException; import com.ruoyi.common.exception.user.CaptchaException; import com.ruoyi.common.exception.user.CaptchaExpireException; +import com.ruoyi.common.exception.user.UserNotExistsException; import com.ruoyi.common.exception.user.UserPasswordNotMatchException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.MessageUtils; -import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.ip.IpUtils; import com.ruoyi.framework.manager.AsyncManager; import com.ruoyi.framework.manager.factory.AsyncFactory; +import com.ruoyi.framework.security.context.AuthenticationContextHolder; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserService; @@ -58,19 +63,18 @@ public class SysLoginService */ public String login(String username, String password, String code, String uuid) { -// boolean captchaOnOff = configService.selectCaptchaOnOff(); -// // 验证码开关 -// if (captchaOnOff) -// { -// validateCaptcha(username, code, uuid); -// } + // 验证码校验 + validateCaptcha(username, code, uuid); + // 登录前置校验 + loginPreCheck(username, password); // 用户验证 Authentication authentication = null; try { + UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password); + AuthenticationContextHolder.setContext(authenticationToken); // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername - authentication = authenticationManager - .authenticate(new UsernamePasswordAuthenticationToken(username, password)); + authentication = authenticationManager.authenticate(authenticationToken); } catch (Exception e) { @@ -85,9 +89,13 @@ public class SysLoginService throw new ServiceException(e.getMessage()); } } + finally + { + AuthenticationContextHolder.clearContext(); + } AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); LoginUser loginUser = (LoginUser) authentication.getPrincipal(); - recordLoginInfo(loginUser.getUser()); + recordLoginInfo(loginUser.getUserId()); // 生成token return tokenService.createToken(loginUser); } @@ -102,28 +110,72 @@ public class SysLoginService */ public void validateCaptcha(String username, String code, String uuid) { - String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; - String captcha = redisCache.getCacheObject(verifyKey); - redisCache.deleteObject(verifyKey); - if (captcha == null) + boolean captchaEnabled = configService.selectCaptchaEnabled(); + if (captchaEnabled) + { + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, ""); + String captcha = redisCache.getCacheObject(verifyKey); + redisCache.deleteObject(verifyKey); + if (captcha == null) + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"))); + throw new CaptchaExpireException(); + } + if (!code.equalsIgnoreCase(captcha)) + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"))); + throw new CaptchaException(); + } + } + } + + /** + * 登录前置校验 + * @param username 用户名 + * @param password 用户密码 + */ + public void loginPreCheck(String username, String password) + { + // 用户名或密码为空 错误 + if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("not.null"))); + throw new UserNotExistsException(); + } + // 密码如果不在指定范围内 错误 + if (password.length() < UserConstants.PASSWORD_MIN_LENGTH + || password.length() > UserConstants.PASSWORD_MAX_LENGTH) + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); + throw new UserPasswordNotMatchException(); + } + // 用户名不在指定范围内 错误 + if (username.length() < UserConstants.USERNAME_MIN_LENGTH + || username.length() > UserConstants.USERNAME_MAX_LENGTH) { - AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"))); - throw new CaptchaExpireException(); + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); + throw new UserPasswordNotMatchException(); } - if (!code.equalsIgnoreCase(captcha)) + // IP黑名单校验 + String blackStr = configService.selectConfigByKey("sys.login.blackIPList"); + if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) { - AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"))); - throw new CaptchaException(); + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("login.blocked"))); + throw new BlackListException(); } } /** * 记录登录信息 + * + * @param userId 用户ID */ - public void recordLoginInfo(SysUser user) + public void recordLoginInfo(Long userId) { - user.setLoginIp(IpUtils.getIpAddr(ServletUtils.getRequest())); - user.setLoginDate(DateUtils.getNowDate()); - userService.updateUserProfile(user); + SysUser sysUser = new SysUser(); + sysUser.setUserId(userId); + sysUser.setLoginIp(IpUtils.getIpAddr()); + sysUser.setLoginDate(DateUtils.getNowDate()); + userService.updateUserProfile(sysUser); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPasswordService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPasswordService.java index f036470..6ad91b0 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPasswordService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPasswordService.java @@ -1,5 +1,10 @@ package com.ruoyi.framework.web.service; +import java.util.concurrent.TimeUnit; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Component; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.entity.SysUser; @@ -11,12 +16,6 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.manager.AsyncManager; import com.ruoyi.framework.manager.factory.AsyncFactory; import com.ruoyi.framework.security.context.AuthenticationContextHolder; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.core.Authentication; -import org.springframework.stereotype.Component; - -import java.util.concurrent.TimeUnit; /** * 登录密码方法 diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java index feb8038..d1fb4ed 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java @@ -1,9 +1,12 @@ package com.ruoyi.framework.web.service; import java.util.HashSet; +import java.util.List; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.system.service.ISysMenuService; import com.ruoyi.system.service.ISysRoleService; @@ -59,7 +62,21 @@ public class SysPermissionService } else { - perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); + List roles = user.getRoles(); + if (!CollectionUtils.isEmpty(roles)) + { + // 多角色设置permissions属性,以便数据权限匹配权限 + for (SysRole role : roles) + { + Set rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId()); + role.setPermissions(rolePerms); + perms.addAll(rolePerms); + } + } + else + { + perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); + } } return perms; } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java index a47cafd..f2afe31 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java @@ -2,7 +2,7 @@ package com.ruoyi.framework.web.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.util.StringUtils; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.entity.SysUser; @@ -12,6 +12,7 @@ import com.ruoyi.common.exception.user.CaptchaException; import com.ruoyi.common.exception.user.CaptchaExpireException; import com.ruoyi.common.utils.MessageUtils; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.manager.AsyncManager; import com.ruoyi.framework.manager.factory.AsyncFactory; import com.ruoyi.system.service.ISysConfigService; @@ -40,13 +41,14 @@ public class SysRegisterService public String register(RegisterBody registerBody) { String msg = "", username = registerBody.getUsername(), password = registerBody.getPassword(); + SysUser sysUser = new SysUser(); + sysUser.setUserName(username); - boolean captchaOnOff = configService.selectCaptchaOnOff(); // 验证码开关 - if (captchaOnOff) + boolean captchaEnabled = configService.selectCaptchaEnabled(); + if (captchaEnabled) { - //validateCaptcha(username, registerBody.getCode(), registerBody.getUuid()); - validateCaptcha(username, registerBody.getUuid()); + validateCaptcha(username, registerBody.getCode(), registerBody.getUuid()); } if (StringUtils.isEmpty(username)) @@ -67,16 +69,14 @@ public class SysRegisterService { msg = "密码长度必须在5到20个字符之间"; } - else if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(username))) + else if (!userService.checkUserNameUnique(sysUser)) { msg = "保存用户'" + username + "'失败,注册账号已存在"; } else { - SysUser sysUser = new SysUser(); - sysUser.setUserName(username); sysUser.setNickName(username); - sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword())); + sysUser.setPassword(SecurityUtils.encryptPassword(password)); boolean regFlag = userService.registerUser(sysUser); if (!regFlag) { @@ -84,8 +84,7 @@ public class SysRegisterService } else { - AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.REGISTER, - MessageUtils.message("user.register.success"))); + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.REGISTER, MessageUtils.message("user.register.success"))); } } return msg; @@ -99,19 +98,18 @@ public class SysRegisterService * @param uuid 唯一标识 * @return 结果 */ - public void validateCaptcha(String username, String uuid) - // public void validateCaptcha(String username, String code, String uuid) + public void validateCaptcha(String username, String code, String uuid) { - String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, ""); String captcha = redisCache.getCacheObject(verifyKey); redisCache.deleteObject(verifyKey); if (captcha == null) { throw new CaptchaExpireException(); } -// if (!code.equalsIgnoreCase(captcha)) -// { -// throw new CaptchaException(); -// } + if (!code.equalsIgnoreCase(captcha)) + { + throw new CaptchaException(); + } } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java index bf28e0f..de79e43 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java @@ -7,6 +7,7 @@ import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.redis.RedisCache; @@ -155,7 +156,7 @@ public class TokenService public void setUserAgent(LoginUser loginUser) { UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent")); - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + String ip = IpUtils.getIpAddr(); loginUser.setIpaddr(ip); loginUser.setLoginLocation(AddressUtils.getRealAddressByIP(ip)); loginUser.setBrowser(userAgent.getBrowser().getName()); @@ -220,6 +221,6 @@ public class TokenService private String getTokenKey(String uuid) { - return Constants.LOGIN_TOKEN_KEY + uuid; + return CacheConstants.LOGIN_TOKEN_KEY + uuid; } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java index c8b1c7b..1950cb7 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java @@ -26,6 +26,9 @@ public class UserDetailsServiceImpl implements UserDetailsService @Autowired private ISysUserService userService; + + @Autowired + private SysPasswordService passwordService; @Autowired private SysPermissionService permissionService; @@ -50,6 +53,8 @@ public class UserDetailsServiceImpl implements UserDetailsService throw new ServiceException("对不起,您的账号:" + username + " 已停用"); } + passwordService.validate(user); + return createLoginUser(user); } diff --git a/ruoyi-generator/pom.xml b/ruoyi-generator/pom.xml index e1c461b..1180284 100644 --- a/ruoyi-generator/pom.xml +++ b/ruoyi-generator/pom.xml @@ -5,7 +5,7 @@ ruoyi com.ruoyi - 3.7.0 + 3.8.6 4.0.0 @@ -20,7 +20,7 @@ org.apache.velocity - velocity + velocity-engine-core diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java index 6dfe5e3..2aed686 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java @@ -59,17 +59,17 @@ public class GenController extends BaseController * 修改代码生成业务 */ @PreAuthorize("@ss.hasPermi('tool:gen:query')") - @GetMapping(value = "/{talbleId}") - public AjaxResult getInfo(@PathVariable Long talbleId) + @GetMapping(value = "/{tableId}") + public AjaxResult getInfo(@PathVariable Long tableId) { - GenTable table = genTableService.selectGenTableById(talbleId); + GenTable table = genTableService.selectGenTableById(tableId); List tables = genTableService.selectGenTableAll(); - List list = genTableColumnService.selectGenTableColumnListByTableId(talbleId); + List list = genTableColumnService.selectGenTableColumnListByTableId(tableId); Map map = new HashMap(); map.put("info", table); map.put("rows", list); map.put("tables", tables); - return AjaxResult.success(map); + return success(map); } /** @@ -88,7 +88,7 @@ public class GenController extends BaseController * 查询数据表字段列表 */ @PreAuthorize("@ss.hasPermi('tool:gen:list')") - @GetMapping(value = "/column/{talbleId}") + @GetMapping(value = "/column/{tableId}") public TableDataInfo columnList(Long tableId) { TableDataInfo dataInfo = new TableDataInfo(); @@ -110,7 +110,7 @@ public class GenController extends BaseController // 查询表信息 List tableList = genTableService.selectDbTableListByNames(tableNames); genTableService.importGenTable(tableList); - return AjaxResult.success(); + return success(); } /** @@ -123,7 +123,7 @@ public class GenController extends BaseController { genTableService.validateEdit(genTable); genTableService.updateGenTable(genTable); - return AjaxResult.success(); + return success(); } /** @@ -135,7 +135,7 @@ public class GenController extends BaseController public AjaxResult remove(@PathVariable Long[] tableIds) { genTableService.deleteGenTableByIds(tableIds); - return AjaxResult.success(); + return success(); } /** @@ -146,7 +146,7 @@ public class GenController extends BaseController public AjaxResult preview(@PathVariable("tableId") Long tableId) throws IOException { Map dataMap = genTableService.previewCode(tableId); - return AjaxResult.success(dataMap); + return success(dataMap); } /** @@ -170,7 +170,7 @@ public class GenController extends BaseController public AjaxResult genCode(@PathVariable("tableName") String tableName) { genTableService.generatorCode(tableName); - return AjaxResult.success(); + return success(); } /** @@ -182,7 +182,7 @@ public class GenController extends BaseController public AjaxResult synchDb(@PathVariable("tableName") String tableName) { genTableService.synchDb(tableName); - return AjaxResult.success(); + return success(); } /** diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java index 499da03..4889f81 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java @@ -7,6 +7,7 @@ import java.io.StringWriter; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.function.Function; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -20,8 +21,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.GenConstants; import com.ruoyi.common.core.text.CharsetKit; @@ -286,7 +287,7 @@ public class GenTableServiceImpl implements IGenTableService { GenTable table = genTableMapper.selectGenTableByName(tableName); List tableColumns = table.getColumns(); - List tableColumnNames = tableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); + Map tableColumnMap = tableColumns.stream().collect(Collectors.toMap(GenTableColumn::getColumnName, Function.identity())); List dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); if (StringUtils.isEmpty(dbTableColumns)) @@ -296,9 +297,29 @@ public class GenTableServiceImpl implements IGenTableService List dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); dbTableColumns.forEach(column -> { - if (!tableColumnNames.contains(column.getColumnName())) + GenUtils.initColumnField(column, table); + if (tableColumnMap.containsKey(column.getColumnName())) + { + GenTableColumn prevColumn = tableColumnMap.get(column.getColumnName()); + column.setColumnId(prevColumn.getColumnId()); + if (column.isList()) + { + // 如果是列表,继续保留查询方式/字典类型选项 + column.setDictType(prevColumn.getDictType()); + column.setQueryType(prevColumn.getQueryType()); + } + if (StringUtils.isNotEmpty(prevColumn.getIsRequired()) && !column.isPk() + && (column.isInsert() || column.isEdit()) + && ((column.isUsableColumn()) || (!column.isSuperColumn()))) + { + // 如果是(新增/修改&非主键/非忽略及父属性),继续保留必填/显示类型选项 + column.setIsRequired(prevColumn.getIsRequired()); + column.setHtmlType(prevColumn.getHtmlType()); + } + genTableColumnMapper.updateGenTableColumn(column); + } + else { - GenUtils.initColumnField(column, table); genTableColumnMapper.insertGenTableColumn(column); } }); @@ -359,7 +380,7 @@ public class GenTableServiceImpl implements IGenTableService zip.putNextEntry(new ZipEntry(VelocityUtils.getFileName(template, table))); IOUtils.write(sw.toString(), zip, Constants.UTF8); IOUtils.closeQuietly(sw); - zip.flush(); + zip.flush(); zip.closeEntry(); } catch (IOException e) @@ -380,7 +401,7 @@ public class GenTableServiceImpl implements IGenTableService if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) { String options = JSON.toJSONString(genTable.getParams()); - JSONObject paramsObj = JSONObject.parseObject(options); + JSONObject paramsObj = JSON.parseObject(options); if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE))) { throw new ServiceException("树编码字段不能为空"); @@ -464,7 +485,7 @@ public class GenTableServiceImpl implements IGenTableService */ public void setTableFromOptions(GenTable genTable) { - JSONObject paramsObj = JSONObject.parseObject(genTable.getOptions()); + JSONObject paramsObj = JSON.parseObject(genTable.getOptions()); if (StringUtils.isNotNull(paramsObj)) { String treeCode = paramsObj.getString(GenConstants.TREE_CODE); @@ -472,7 +493,7 @@ public class GenTableServiceImpl implements IGenTableService String treeName = paramsObj.getString(GenConstants.TREE_NAME); String parentMenuId = paramsObj.getString(GenConstants.PARENT_MENU_ID); String parentMenuName = paramsObj.getString(GenConstants.PARENT_MENU_NAME); - + genTable.setTreeCode(treeCode); genTable.setTreeParentCode(treeParentCode); genTable.setTreeName(treeName); diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java index 06c6821..e7ebc20 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java @@ -42,6 +42,7 @@ public class GenUtils column.setJavaField(StringUtils.toCamelCase(columnName)); // 设置默认类型 column.setJavaType(GenConstants.TYPE_STRING); + column.setQueryType(GenConstants.QUERY_EQ); if (arraysContains(GenConstants.COLUMNTYPE_STR, dataType) || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType)) { @@ -151,8 +152,7 @@ public class GenUtils { int lastIndex = packageName.lastIndexOf("."); int nameLength = packageName.length(); - String moduleName = StringUtils.substring(packageName, lastIndex + 1, nameLength); - return moduleName; + return StringUtils.substring(packageName, lastIndex + 1, nameLength); } /** @@ -165,8 +165,7 @@ public class GenUtils { int lastIndex = tableName.lastIndexOf("_"); int nameLength = tableName.length(); - String businessName = StringUtils.substring(tableName, lastIndex + 1, nameLength); - return businessName; + return StringUtils.substring(tableName, lastIndex + 1, nameLength); } /** diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java index 32452b8..9f69403 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java @@ -20,10 +20,9 @@ public class VelocityInitializer try { // 加载classpath目录下的vm文件 - p.setProperty("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); + p.setProperty("resource.loader.file.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); // 定义字符集 p.setProperty(Velocity.INPUT_ENCODING, Constants.UTF8); - p.setProperty(Velocity.OUTPUT_ENCODING, Constants.UTF8); // 初始化Velocity引擎,指定配置Properties Velocity.init(p); } diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java index 4472928..7ede02d 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java @@ -3,8 +3,10 @@ package com.ruoyi.generator.util; import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Set; import org.apache.velocity.VelocityContext; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.ruoyi.common.constant.GenConstants; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; @@ -58,6 +60,7 @@ public class VelocityUtils velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName)); velocityContext.put("columns", genTable.getColumns()); velocityContext.put("table", genTable); + velocityContext.put("dicts", getDicts(genTable)); setMenuVelocityContext(velocityContext, genTable); if (GenConstants.TPL_TREE.equals(tplCategory)) { @@ -73,7 +76,7 @@ public class VelocityUtils public static void setMenuVelocityContext(VelocityContext context, GenTable genTable) { String options = genTable.getOptions(); - JSONObject paramsObj = JSONObject.parseObject(options); + JSONObject paramsObj = JSON.parseObject(options); String parentMenuId = getParentMenuId(paramsObj); context.put("parentMenuId", parentMenuId); } @@ -81,7 +84,7 @@ public class VelocityUtils public static void setTreeVelocityContext(VelocityContext context, GenTable genTable) { String options = genTable.getOptions(); - JSONObject paramsObj = JSONObject.parseObject(options); + JSONObject paramsObj = JSON.parseObject(options); String treeCode = getTreecode(paramsObj); String treeParentCode = getTreeParentCode(paramsObj); String treeName = getTreeName(paramsObj); @@ -226,8 +229,7 @@ public class VelocityUtils public static String getPackagePrefix(String packageName) { int lastIndex = packageName.lastIndexOf("."); - String basePackage = StringUtils.substring(packageName, 0, lastIndex); - return basePackage; + return StringUtils.substring(packageName, 0, lastIndex); } /** @@ -260,6 +262,44 @@ public class VelocityUtils return importList; } + /** + * 根据列类型获取字典组 + * + * @param genTable 业务表对象 + * @return 返回字典组 + */ + public static String getDicts(GenTable genTable) + { + List columns = genTable.getColumns(); + Set dicts = new HashSet(); + addDicts(dicts, columns); + if (StringUtils.isNotNull(genTable.getSubTable())) + { + List subColumns = genTable.getSubTable().getColumns(); + addDicts(dicts, subColumns); + } + return StringUtils.join(dicts, ", "); + } + + /** + * 添加字典列表 + * + * @param dicts 字典列表 + * @param columns 列集合 + */ + public static void addDicts(Set dicts, List columns) + { + for (GenTableColumn column : columns) + { + if (!column.isSuperColumn() && StringUtils.isNotEmpty(column.getDictType()) && StringUtils.equalsAny( + column.getHtmlType(), + new String[] { GenConstants.HTML_SELECT, GenConstants.HTML_RADIO, GenConstants.HTML_CHECKBOX })) + { + dicts.add("'" + column.getDictType() + "'"); + } + } + } + /** * 获取权限前缀 * @@ -342,7 +382,7 @@ public class VelocityUtils public static int getExpandColumn(GenTable genTable) { String options = genTable.getOptions(); - JSONObject paramsObj = JSONObject.parseObject(options); + JSONObject paramsObj = JSON.parseObject(options); String treeName = paramsObj.getString(GenConstants.TREE_NAME); int num = 0; for (GenTableColumn column : genTable.getColumns()) diff --git a/ruoyi-generator/src/main/resources/generator.yml b/ruoyi-generator/src/main/resources/generator.yml index 27aee34..f63e44b 100644 --- a/ruoyi-generator/src/main/resources/generator.yml +++ b/ruoyi-generator/src/main/resources/generator.yml @@ -1,10 +1,10 @@ # 代码生成 -gen: +gen: # 作者 author: ruoyi # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool - packageName: com.ruoyi.zjgyyingji + packageName: com.ruoyi.zongzhi # 自动去除表前缀,默认是false autoRemovePre: false # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) - tablePrefix: b_ \ No newline at end of file + tablePrefix: tc_ \ No newline at end of file diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml index 5fa790f..66109de 100644 --- a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -28,23 +28,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + select column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time from gen_table_column - + - + - + insert into gen_table_column ( table_id, @@ -88,37 +88,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sysdate() ) - + update gen_table_column - column_comment = #{columnComment}, - java_type = #{javaType}, - java_field = #{javaField}, - is_insert = #{isInsert}, - is_edit = #{isEdit}, - is_list = #{isList}, - is_query = #{isQuery}, - is_required = #{isRequired}, - query_type = #{queryType}, - html_type = #{htmlType}, - dict_type = #{dictType}, - sort = #{sort}, - update_by = #{updateBy}, + column_comment = #{columnComment}, + java_type = #{javaType}, + java_field = #{javaField}, + is_insert = #{isInsert}, + is_edit = #{isEdit}, + is_list = #{isList}, + is_query = #{isQuery}, + is_required = #{isRequired}, + query_type = #{queryType}, + html_type = #{htmlType}, + dict_type = #{dictType}, + sort = #{sort}, + update_by = #{updateBy}, update_time = sysdate() where column_id = #{columnId} - delete from gen_table_column where table_id in + delete from gen_table_column where table_id in #{tableId} - + - delete from gen_table_column where column_id in + delete from gen_table_column where column_id in #{item.columnId} diff --git a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm index e634340..169ac70 100644 --- a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm @@ -1,9 +1,8 @@ package ${packageName}.controller; -import com.ruoyi.common.annotation.DataScope; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import java.util.List; +import io.swagger.annotations.Api; +import javax.servlet.http.HttpServletResponse; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -28,14 +27,13 @@ import com.ruoyi.common.core.page.TableDataInfo; /** * ${functionName}Controller - * + * * @author ${author} * @date ${datetime} */ -@Api(tags="${functionName}" ,description = -"${className}") @RestController @RequestMapping("/${moduleName}/${businessName}") +@Api(tags = " ${functionName}") public class ${ClassName}Controller extends BaseController { @Autowired @@ -44,9 +42,7 @@ public class ${ClassName}Controller extends BaseController /** * 查询${functionName}列表 */ -@ApiOperation("查询${functionName}信息") @PreAuthorize("@ss.hasPermi('${permissionPrefix}:list')") - @DataScope( deptAlias = "t", userAlias = "t") @GetMapping("/list") #if($table.crud || $table.sub) public TableDataInfo list(${ClassName} ${className}) @@ -59,69 +55,58 @@ public class ${ClassName}Controller extends BaseController public AjaxResult list(${ClassName} ${className}) { List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); - return AjaxResult.success(list); + return success(list); } #end /** * 导出${functionName}列表 */ - @ApiOperation("导出${functionName}列表") @PreAuthorize("@ss.hasPermi('${permissionPrefix}:export')") @Log(title = "${functionName}", businessType = BusinessType.EXPORT) - @GetMapping("/export") - public AjaxResult export(${ClassName} ${className}) + @PostMapping("/export") + public void export(HttpServletResponse response, ${ClassName} ${className}) { List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class); - return util.exportExcel(list, "${functionName}数据"); + util.exportExcel(response, list, "${functionName}数据"); } /** * 获取${functionName}详细信息 */ - @ApiOperation("获取${functionName}详细信息") @PreAuthorize("@ss.hasPermi('${permissionPrefix}:query')") @GetMapping(value = "/{${pkColumn.javaField}}") public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) { - return AjaxResult.success(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField})); + return success(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField})); } /** * 新增${functionName} */ - @ApiOperation("新增${functionName}详细信息") @PreAuthorize("@ss.hasPermi('${permissionPrefix}:add')") @Log(title = "${functionName}", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ${ClassName} ${className}) { - ${className}.setCreateId(getUserId()); - ${className}.setCreateBy(getUsername()); - ${className}.setUserId(getUserId()); - ${className}.setDeptId(getDeptId()); return toAjax(${className}Service.insert${ClassName}(${className})); } /** * 修改${functionName} */ - @ApiOperation("修改${functionName}详细信息") @PreAuthorize("@ss.hasPermi('${permissionPrefix}:edit')") @Log(title = "${functionName}", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ${ClassName} ${className}) { - ${className}.setUpdateId(getUserId()); - ${className}.setUpdateBy(getUsername()); return toAjax(${className}Service.update${ClassName}(${className})); } /** * 删除${functionName} */ - @ApiOperation("删除${functionName}详细信息") @PreAuthorize("@ss.hasPermi('${permissionPrefix}:remove')") @Log(title = "${functionName}", businessType = BusinessType.DELETE) @DeleteMapping("/{${pkColumn.javaField}s}") diff --git a/ruoyi-generator/src/main/resources/vm/java/domain.java.vm b/ruoyi-generator/src/main/resources/vm/java/domain.java.vm index bd51c17..d4353f5 100644 --- a/ruoyi-generator/src/main/resources/vm/java/domain.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/domain.java.vm @@ -6,6 +6,7 @@ import ${import}; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; #if($table.crud || $table.sub) import com.ruoyi.common.core.domain.BaseEntity; #elseif($table.tree) @@ -38,12 +39,14 @@ public class ${ClassName} extends ${Entity} #set($comment=$column.columnComment) #end #if($parentheseIndex != -1) +@ApiModelProperty(value = "${comment}") @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") #elseif($column.javaType == 'Date') @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") #else @Excel(name = "${comment}") +@ApiModelProperty(value = "${comment}") #end #end private $column.javaType $column.javaField; diff --git a/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm b/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm index 42d015d..7e7d7c2 100644 --- a/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm @@ -69,7 +69,7 @@ public interface ${ClassName}Mapper * @param ${pkColumn.javaField}s 需要删除的数据主键集合 * @return 结果 */ - public int delete${subClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); + public int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); /** * 批量新增${subTable.functionName} diff --git a/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm b/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm index 75105ce..14746e1 100644 --- a/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm @@ -129,6 +129,9 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service * @param ${pkColumn.javaField} ${functionName}主键 * @return 结果 */ +#if($table.sub) + @Transactional +#end @Override public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { diff --git a/ruoyi-generator/src/main/resources/vm/js/api.js.vm b/ruoyi-generator/src/main/resources/vm/js/api.js.vm index 296d41a..681ef15 100644 --- a/ruoyi-generator/src/main/resources/vm/js/api.js.vm +++ b/ruoyi-generator/src/main/resources/vm/js/api.js.vm @@ -41,13 +41,14 @@ export function del${BusinessName}(${pkColumn.javaField}) { url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, method: 'delete' }) + } // 导出${functionName} -export function export${BusinessName}(query) { +export function export${BusinessName}(data) { return request({ url: '/${moduleName}/${businessName}/export', - method: 'get', - params: query + method: 'post', + data }) -} \ No newline at end of file +} diff --git a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm index 58790c2..a4c64a0 100644 --- a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm +++ b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm @@ -1,6 +1,6 @@ +#elseif($column.list && $column.htmlType == "imageUpload") + + + #elseif($column.list && "" != $column.dictType) #elseif($column.list && "" != $javaField) @@ -169,12 +187,12 @@ #elseif($column.htmlType == "imageUpload") - - + + #elseif($column.htmlType == "fileUpload") - - + + #elseif($column.htmlType == "editor") @@ -184,11 +202,14 @@ @@ -199,42 +220,45 @@ #elseif($column.htmlType == "checkbox" && "" != $dictType) - + - {{dict.dictLabel}} + v-for="dict in dict.type.${dictType}" + :key="dict.value" + :label="dict.value"> + {{dict.label}} #elseif($column.htmlType == "checkbox" && $dictType) - + 请选择字典生成 #elseif($column.htmlType == "radio" && "" != $dictType) - + {{dict.dictLabel}} + v-for="dict in dict.type.${dictType}" + :key="dict.value" +#if($column.javaType == "Integer" || $column.javaType == "Long") + :label="parseInt(dict.value)" +#else + :label="dict.value" +#end + >{{dict.label}} #elseif($column.htmlType == "radio" && $dictType) - + 请选择字典生成 #elseif($column.htmlType == "datetime") - diff --git a/ruoyi-generator/src/main/resources/vm/vue/v3/index-tree.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/v3/index-tree.vue.vm index d63694e..7bbd2fc 100644 --- a/ruoyi-generator/src/main/resources/vm/vue/v3/index-tree.vue.vm +++ b/ruoyi-generator/src/main/resources/vm/vue/v3/index-tree.vue.vm @@ -271,9 +271,9 @@