From ab83308a4e6c9dcf62f42151ed4d81b37a5d8daa Mon Sep 17 00:00:00 2001 From: vben Date: Sat, 15 Nov 2025 13:28:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=81=E7=89=88=E6=9C=AC=E5=BD=92=E6=A1=A3?= =?UTF-8?q?=E4=B8=8E=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 12 - CHANGELOG.md | 3 - LICENSE | 21 - README.md | 63 - pom.xml | 102 -- vben-admin/pom.xml | 56 - vben-admin/src/main/java/vben/VbenAdmin.java | 42 - .../vben/admin/my/demo/cate/MyDemoCate.java | 56 - .../admin/my/demo/cate/MyDemoCateApi.java | 102 -- .../admin/my/demo/cate/MyDemoCateRepo.java | 9 - .../admin/my/demo/cate/MyDemoCateService.java | 68 - .../vben/admin/my/demo/cate/MyDemoCateVo.java | 23 - .../vben/admin/my/demo/main/MyDemoAtt.java | 41 - .../vben/admin/my/demo/main/MyDemoItem.java | 46 - .../vben/admin/my/demo/main/MyDemoMain.java | 108 -- .../admin/my/demo/main/MyDemoMainApi.java | 83 -- .../admin/my/demo/main/MyDemoMainRepo.java | 10 - .../admin/my/demo/main/MyDemoMainService.java | 91 -- .../src/main/java/vben/init/AssInit.java | 136 -- .../main/java/vben/init/DbInitListener.java | 87 -- .../src/main/java/vben/init/SysApiInit.java | 298 ---- .../src/main/java/vben/init/SysOrgInit.java | 333 ----- .../java/vben/init/SysPortalVbenInit.java | 981 ------------- .../main/java/vben/init/SysPortalVueInit.java | 1274 ----------------- .../main/resources/application-dev.properties | 76 - .../main/resources/application-prd.properties | 76 - .../src/main/resources/application.properties | 19 - vben-admin/src/main/resources/application.yml | 115 -- .../main/resources/config/app-init.properties | 9 - .../src/main/resources/config/banner.txt | 6 - .../src/main/resources/config/logback-dev.xml | 199 --- .../src/main/resources/config/logback-prd.xml | 198 --- .../src/main/resources/vms/java/api.java.vm | 44 - .../main/resources/vms/java/entity.java.vm | 36 - .../src/main/resources/vms/java/repo.java.vm | 9 - .../main/resources/vms/java/service.java.vm | 20 - .../main/resources/vms/route/route.json.vm | 32 - .../src/main/resources/vms/route/route.sql.vm | 7 - .../main/resources/vms/vue/drawer/edit.vue.vm | 86 -- .../resources/vms/vue/drawer/index.vue.vm | 72 - .../main/resources/vms/vue/popup/edit.vue.vm | 76 - .../main/resources/vms/vue/popup/index.vue.vm | 71 - .../main/resources/vms/vue/tab/edit.vue.vm | 88 -- .../main/resources/vms/vue/tab/index.vue.vm | 70 - vben-core/pom.xml | 359 ----- .../exception/BadConfigurationException.java | 77 - .../common/exception/BadRequestException.java | 21 - .../exception/EntityExistException.java | 15 - .../exception/EntityNotFoundException.java | 15 - .../common/exception/base/BaseException.java | 74 - .../common/exception/base/MessageUtils.java | 29 - .../common/exception/handler/ApiError.java | 34 - .../handler/GlobalExceptionHandler.java | 96 -- .../exception/handler/ThrowableUtil.java | 18 - .../vben/core/common/mvc/api/PageData.java | 20 - .../main/java/vben/core/common/mvc/api/R.java | 72 - .../vben/core/common/mvc/dao/BaseSqler.java | 13 - .../vben/core/common/mvc/dao/CacheDao.java | 170 --- .../java/vben/core/common/mvc/dao/Dsqler.java | 52 - .../java/vben/core/common/mvc/dao/Isqler.java | 63 - .../vben/core/common/mvc/dao/JdbcDao.java | 217 --- .../java/vben/core/common/mvc/dao/Sqler.java | 487 ------- .../java/vben/core/common/mvc/dao/Usqler.java | 85 -- .../common/mvc/entity/BaseCateEntity.java | 74 - .../core/common/mvc/entity/BaseEntity.java | 26 - .../common/mvc/entity/BaseMainEntity.java | 65 - .../vben/core/common/mvc/pojo/TreeMovePo.java | 14 - .../vben/core/common/mvc/pojo/ZidName.java | 47 - .../vben/core/common/mvc/pojo/ZidNamePid.java | 13 - .../vben/core/common/mvc/pojo/ZidOrnum.java | 11 - .../java/vben/core/common/mvc/pojo/Ztree.java | 21 - .../common/mvc/service/BaseCateService.java | 241 ---- .../common/mvc/service/BaseMainService.java | 105 -- .../core/common/mvc/service/BaseService.java | 92 -- .../vben/core/common/others/MapHelper.java | 34 - .../core/common/utils/db/DataTypeEnum.java | 139 -- .../vben/core/common/utils/db/DbType.java | 15 - .../java/vben/core/common/utils/db/Jdao.java | 215 --- .../vben/core/common/utils/db/SqlUtils.java | 267 ---- .../java/vben/core/common/utils/db/Zconn.java | 86 -- .../core/common/utils/extra/SpringUtils.java | 65 - .../core/common/utils/file/ExcelUtil.java | 159 -- .../core/common/utils/file/FileUtils.java | 52 - .../core/common/utils/file/XexcelUtil.java | 186 --- .../core/common/utils/file/XfileUtil.java | 76 - .../vben/core/common/utils/file/XpdfUtil.java | 100 -- .../core/common/utils/file/XqcodeUtil.java | 103 -- .../file/excel/DefaultExcelListener.java | 107 -- .../utils/file/excel/DefautExcelResult.java | 73 - .../file/excel/ExcelBigNumberConvert.java | 52 - .../utils/file/excel/ExcelDictConvert.java | 62 - .../utils/file/excel/ExcelDictFormat.java | 30 - .../utils/file/excel/ExcelListener.java | 14 - .../common/utils/file/excel/ExcelResult.java | 26 - .../vben/core/common/utils/lang/IdUtils.java | 38 - .../core/common/utils/lang/SecureUtils.java | 11 - .../core/common/utils/lang/TreeUtils.java | 85 -- .../vben/core/common/utils/ruoyi/Arith.java | 114 -- .../core/common/utils/ruoyi/DateUtils.java | 184 --- .../vben/core/common/utils/ruoyi/IpUtils.java | 264 ---- .../core/common/utils/ruoyi/JsonUtils.java | 108 -- .../core/common/utils/ruoyi/RedisUtils.java | 431 ------ .../core/common/utils/ruoyi/StringUtils.java | 301 ---- .../core/common/utils/web/XaddressUtil.java | 47 - .../vben/core/common/utils/web/XreqUtil.java | 206 --- .../vben/core/common/utils/web/XresUtil.java | 35 - .../vben/core/common/utils/web/XuserUtil.java | 51 - .../core/framework/cache/RedisConfig.java | 197 --- .../core/framework/cache/RedisHandler.java | 693 --------- .../framework/cache/RedissonProperties.java | 165 --- .../vben/core/framework/config/AppConfig.java | 51 - .../core/framework/config/CorsConfig.java | 52 - .../framework/config/RestTemplateConfig.java | 75 - .../core/framework/config/SwaggerConfig.java | 152 -- .../core/framework/jpa/CommentIntegrator.java | 140 -- .../jpa/PrimaryDataSourceConfig.java | 28 - .../core/framework/jpa/PrimaryJpaConfig.java | 69 - .../framework/jpa/VbenNamingStrategy.java | 63 - .../vben/core/framework/ldap/LdapConfig.java | 53 - .../vben/core/framework/ldap/LdapHandler.java | 42 - .../framework/security/SecurityConfig.java | 125 -- .../framework/security/authc/AuthcApi.java | 179 --- .../security/authc/AuthcFailedHandler.java | 41 - .../security/authc/AuthcOrgHandler.java | 74 - .../security/authc/AuthcPortalHandler.java | 290 ---- .../security/authc/AuthcService.java | 288 ---- .../security/authz/AuthzApiData.java | 24 - .../security/authz/AuthzDeniedHandler.java | 37 - .../framework/security/authz/AuthzFilter.java | 65 - .../security/authz/AuthzHandler.java | 80 -- .../security/authz/JwtFilterAdapter.java | 23 - .../framework/security/authz/JwtHandler.java | 94 -- .../security/pojo/LoginByCodeVo.java | 27 - .../core/framework/security/pojo/LoginVo.java | 23 - .../framework/security/pojo/RegisterVo.java | 37 - .../core/framework/security/pojo/UserDo.java | 35 - .../core/framework/security/pojo/UserVo.java | 28 - .../core/framework/security/pojo/Yapi.java | 19 - .../core/framework/security/pojo/Yurl.java | 15 - .../core/framework/security/pojo/Zmenu.java | 40 - .../core/framework/security/pojo/Zmeta.java | 28 - .../core/framework/security/pojo/Zportal.java | 10 - .../core/framework/security/pojo/Zuser.java | 145 -- .../framework/sms/enums/SmsTemplateEnum.java | 25 - .../core/framework/sms/enums/SmsTypeEnum.java | 39 - .../framework/sms/service/SmsService.java | 28 - .../sms/service/impl/SmsServiceImpl.java | 100 -- .../vben/core/framework/sms/vo/SmsVo.java | 26 - .../framework/webservice/AutoPublish.java | 23 - .../core/framework/webservice/CxfConfig.java | 26 - .../core/framework/webservice/PigService.java | 14 - .../framework/webservice/PigServiceImpl.java | 24 - .../core/framework/webservice/StartClas.java | 77 - .../framework/websocket/WebSocketConfig.java | 17 - .../framework/websocket/WebSocketServer.java | 84 -- .../module/ass/addr/city/AssAddrCity.java | 31 - .../module/ass/addr/city/AssAddrCityRepo.java | 7 - .../module/ass/addr/dict/AssAddrDict.java | 26 - .../module/ass/addr/dict/AssAddrDictRepo.java | 7 - .../module/ass/addr/main/AssAddrMain.java | 44 - .../module/ass/addr/main/AssAddrMainApi.java | 81 -- .../module/ass/addr/main/AssAddrMainHand.java | 153 -- .../module/ass/addr/main/AssAddrMainRepo.java | 7 - .../ass/addr/main/AssAddrMainService.java | 21 - .../vben/core/module/ass/addr/pojo/Apath.java | 17 - .../vben/core/module/ass/addr/pojo/Ares.java | 18 - .../core/module/ass/addr/pojo/AresCoun.java | 20 - .../core/module/ass/addr/pojo/AresProv.java | 20 - .../core/module/ass/addr/pojo/Aroute.java | 18 - .../core/module/ass/addr/pojo/District.java | 22 - .../module/ass/addr/pojo/DistrictCoun.java | 20 - .../module/ass/addr/pojo/DistrictProv.java | 20 - .../module/ass/addr/prov/AssAddrProv.java | 21 - .../module/ass/addr/prov/AssAddrProvRepo.java | 7 - .../module/ass/addr/stre/AssAddrStre.java | 25 - .../module/ass/addr/stre/AssAddrStreRepo.java | 7 - .../module/ass/coge/form/AssCogeForm.java | 20 - .../module/ass/coge/form/AssCogeFormApi.java | 51 - .../module/ass/coge/form/AssCogeFormRepo.java | 9 - .../ass/coge/form/AssCogeFormService.java | 21 - .../module/ass/coge/table/AssCogeField.java | 48 - .../module/ass/coge/table/AssCogeTable.java | 75 - .../ass/coge/table/AssCogeTableApi.java | 98 -- .../ass/coge/table/AssCogeTableRepo.java | 11 - .../ass/coge/table/AssCogeTableService.java | 117 -- .../module/ass/coge/velocity/GenCode.java | 15 - .../module/ass/coge/velocity/GenConfig.java | 73 - .../ass/coge/velocity/GenConstants.java | 117 -- .../module/ass/coge/velocity/GenUtils.java | 254 ---- .../coge/velocity/VelocityInitializer.java | 34 - .../ass/coge/velocity/VelocityUtils.java | 471 ------ .../module/ass/dict/cate/AssDictCate.java | 19 - .../module/ass/dict/cate/AssDictCateApi.java | 54 - .../module/ass/dict/cate/AssDictCateRepo.java | 8 - .../ass/dict/cate/AssDictCateService.java | 27 - .../module/ass/dict/data/AssDictData.java | 28 - .../module/ass/dict/data/AssDictDataApi.java | 73 - .../module/ass/dict/data/AssDictDataRepo.java | 9 - .../ass/dict/data/AssDictDataService.java | 31 - .../module/ass/dict/main/AssDictMain.java | 20 - .../module/ass/dict/main/AssDictMainApi.java | 65 - .../module/ass/dict/main/AssDictMainRepo.java | 9 - .../ass/dict/main/AssDictMainService.java | 31 - .../core/module/ass/num/main/AssNumMain.java | 57 - .../module/ass/num/main/AssNumMainApi.java | 70 - .../module/ass/num/main/AssNumMainRepo.java | 7 - .../ass/num/main/AssNumMainService.java | 173 --- .../module/ass/oss/config/AssOssConfig.java | 92 -- .../ass/oss/config/AssOssConfigApi.java | 31 - .../ass/oss/config/AssOssConfigRepo.java | 8 - .../ass/oss/config/AssOssConfigService.java | 211 --- .../core/module/ass/oss/file/AssOssFile.java | 39 - .../module/ass/oss/file/AssOssFileRepo.java | 10 - .../core/module/ass/oss/main/AssOssMain.java | 49 - .../module/ass/oss/main/AssOssMainApi.java | 80 -- .../module/ass/oss/main/AssOssMainRepo.java | 9 - .../ass/oss/main/AssOssMainService.java | 148 -- .../vben/core/module/ass/oss/main/Zfile.java | 18 - .../module/ass/oss/root/AssOssLocalHand.java | 84 -- .../module/ass/oss/root/AssOssRemoteHand.java | 61 - .../core/module/ass/oss/root/OssClient.java | 183 --- .../core/module/ass/oss/root/OssConstant.java | 48 - .../module/ass/oss/root/OssException.java | 16 - .../core/module/ass/oss/root/OssFactory.java | 73 - .../module/ass/oss/root/OssProperties.java | 53 - .../core/module/ass/oss/root/PolicyType.java | 35 - .../module/ass/oss/root/UploadResult.java | 24 - .../module/bpm/audit/main/BpmAuditAtt.java | 41 - .../module/bpm/audit/main/BpmAuditMain.java | 79 - .../bpm/audit/main/BpmAuditMainApi.java | 26 - .../bpm/audit/main/BpmAuditMainRepo.java | 9 - .../bpm/audit/main/BpmAuditMainService.java | 62 - .../module/bpm/node/hist/BpmNodeHist.java | 63 - .../module/bpm/node/hist/BpmNodeHistRepo.java | 9 - .../bpm/node/hist/BpmNodeHistService.java | 99 -- .../module/bpm/node/main/BpmNodeMain.java | 52 - .../module/bpm/node/main/BpmNodeMainRepo.java | 9 - .../bpm/node/main/BpmNodeMainService.java | 38 - .../module/bpm/proc/cond/BpmProcCond.java | 27 - .../module/bpm/proc/cond/BpmProcCondRepo.java | 9 - .../module/bpm/proc/main/BpmProcMain.java | 47 - .../module/bpm/proc/main/BpmProcMainApi.java | 366 ----- .../module/bpm/proc/main/BpmProcMainHand.java | 382 ----- .../module/bpm/proc/main/BpmProcMainRepo.java | 9 - .../bpm/proc/main/BpmProcMainService.java | 600 -------- .../vben/core/module/bpm/proc/main/Zbpm.java | 72 - .../vben/core/module/bpm/proc/main/Zcond.java | 15 - .../vben/core/module/bpm/proc/main/Znode.java | 31 - .../module/bpm/proc/param/BpmProcParam.java | 44 - .../bpm/proc/param/BpmProcParamRepo.java | 9 - .../bpm/proc/param/BpmProcParamService.java | 22 - .../module/bpm/proc/temp/BpmProcTemp.java | 36 - .../module/bpm/proc/temp/BpmProcTempRepo.java | 9 - .../bpm/proc/temp/BpmProcTempService.java | 21 - .../module/bpm/task/hist/BpmTaskHist.java | 63 - .../module/bpm/task/hist/BpmTaskHistRepo.java | 10 - .../bpm/task/hist/BpmTaskHistService.java | 67 - .../module/bpm/task/main/BpmTaskMain.java | 68 - .../module/bpm/task/main/BpmTaskMainRepo.java | 15 - .../bpm/task/main/BpmTaskMainService.java | 155 -- .../vben/core/module/gen/coop/GenCoopApi.java | 55 - .../vben/core/module/gen/img/GenImgApi.java | 34 - .../vben/core/module/gen/num/GenNumApi.java | 22 - .../core/module/gen/org/GenOrgDeptApi.java | 49 - .../core/module/gen/org/GenOrgGroupApi.java | 45 - .../core/module/gen/org/GenOrgMainApi.java | 84 -- .../core/module/gen/org/GenOrgReceApi.java | 65 - .../module/gen/org/GenOrgReceService.java | 75 - .../core/module/gen/org/GenOrgRoleApi.java | 48 - .../vben/core/module/gen/oss/GenOssApi.java | 47 - .../vben/core/module/gen/user/GenUserApi.java | 71 - .../mon/cache/main/MonCacheMainApi.java | 49 - .../core/module/mon/job/log/MonJobLog.java | 40 - .../core/module/mon/job/log/MonJobLogApi.java | 49 - .../module/mon/job/log/MonJobLogRepo.java | 8 - .../module/mon/job/log/MonJobLogService.java | 44 - .../core/module/mon/job/main/MonJobDemo.java | 36 - .../core/module/mon/job/main/MonJobMain.java | 63 - .../module/mon/job/main/MonJobMainApi.java | 107 -- .../module/mon/job/main/MonJobMainRepo.java | 8 - .../mon/job/main/MonJobMainService.java | 105 -- .../vben/core/module/mon/job/root/IJob.java | 18 - .../core/module/mon/job/root/IJobGroup.java | 10 - .../core/module/mon/job/root/JobConfig.java | 21 - .../module/mon/job/root/MonJobFactory.java | 54 - .../module/mon/job/root/MonJobHandler.java | 162 --- .../module/mon/job/root/MonJobListener.java | 37 - .../module/mon/log/error/MonLogError.java | 70 - .../module/mon/log/error/MonLogErrorApi.java | 118 -- .../module/mon/log/error/MonLogErrorRepo.java | 10 - .../mon/log/error/MonLogErrorService.java | 145 -- .../module/mon/log/login/MonLogLogin.java | 61 - .../module/mon/log/login/MonLogLoginApi.java | 53 - .../module/mon/log/login/MonLogLoginRepo.java | 7 - .../mon/log/login/MonLogLoginService.java | 120 -- .../core/module/mon/log/oper/MonLogOper.java | 68 - .../module/mon/log/oper/MonLogOperApi.java | 53 - .../module/mon/log/oper/MonLogOperRepo.java | 10 - .../mon/log/oper/MonLogOperService.java | 155 -- .../vben/core/module/mon/log/oper/Oplog.java | 12 - .../core/module/mon/log/oper/OplogAspect.java | 96 -- .../module/mon/log/oper/RequestHolder.java | 14 - .../module/mon/log/oper/ThrowableUtil.java | 18 - .../mon/online/user/MonOnlineUserApi.java | 49 - .../module/mon/online/user/OnlineUserDto.java | 36 - .../module/mon/server/main/CloseUtil.java | 47 - .../mon/server/main/ElAdminConstant.java | 47 - .../core/module/mon/server/main/FileUtil.java | 358 ----- .../module/mon/server/main/MonServerMain.java | 233 --- .../mon/server/main/MonServerMainApi.java | 29 - .../mon/server/main/MonitorServiceImpl.java | 185 --- .../vben/core/module/mon/server/pojo/Cpu.java | 102 -- .../vben/core/module/mon/server/pojo/Jvm.java | 132 -- .../vben/core/module/mon/server/pojo/Mem.java | 62 - .../vben/core/module/mon/server/pojo/Sys.java | 84 -- .../core/module/mon/server/pojo/SysFile.java | 114 -- .../module/mon/server/snmp/MemoryData.java | 11 - .../module/mon/server/snmp/SnmpConfig.java | 129 -- .../core/module/mon/server/snmp/SnmpDisk.java | 283 ---- .../core/module/mon/server/snmp/SnmpUtil.java | 510 ------- .../core/module/sys/api/main/SysApiMain.java | 66 - .../module/sys/api/main/SysApiMainApi.java | 117 -- .../module/sys/api/main/SysApiMainRepo.java | 8 - .../sys/api/main/SysApiMainService.java | 62 - .../module/sys/api/main/SysApiMainVo.java | 10 - .../core/module/sys/api/role/SysApiRole.java | 47 - .../module/sys/api/role/SysApiRoleApi.java | 89 -- .../module/sys/api/role/SysApiRoleRepo.java | 7 - .../sys/api/role/SysApiRoleService.java | 20 - .../module/sys/coop/cate/SysCoopCate.java | 25 - .../module/sys/coop/cate/SysCoopCateApi.java | 81 -- .../module/sys/coop/cate/SysCoopCateRepo.java | 7 - .../sys/coop/cate/SysCoopCateService.java | 84 -- .../module/sys/coop/corp/SysCoopCorp.java | 126 -- .../module/sys/coop/corp/SysCoopCorpApi.java | 71 - .../module/sys/coop/corp/SysCoopCorpRepo.java | 9 - .../sys/coop/corp/SysCoopCorpService.java | 100 -- .../module/sys/coop/user/SysCoopUser.java | 67 - .../module/sys/coop/user/SysCoopUserApi.java | 71 - .../sys/coop/user/SysCoopUserCache.java | 32 - .../module/sys/coop/user/SysCoopUserRepo.java | 9 - .../sys/coop/user/SysCoopUserService.java | 83 -- .../core/module/sys/org/dept/SysOrgDept.java | 82 -- .../module/sys/org/dept/SysOrgDeptApi.java | 111 -- .../module/sys/org/dept/SysOrgDeptRepo.java | 15 - .../sys/org/dept/SysOrgDeptService.java | 362 ----- .../module/sys/org/dept/SysOrgDeptVo.java | 21 - .../module/sys/org/group/SysOrgGroup.java | 56 - .../module/sys/org/group/SysOrgGroupApi.java | 52 - .../module/sys/org/group/SysOrgGroupCate.java | 30 - .../sys/org/group/SysOrgGroupCateApi.java | 97 -- .../sys/org/group/SysOrgGroupCateRepo.java | 7 - .../sys/org/group/SysOrgGroupCateService.java | 166 --- .../module/sys/org/group/SysOrgGroupRepo.java | 13 - .../sys/org/group/SysOrgGroupService.java | 77 - .../core/module/sys/org/post/SysOrgPost.java | 70 - .../module/sys/org/post/SysOrgPostApi.java | 56 - .../module/sys/org/post/SysOrgPostRepo.java | 10 - .../sys/org/post/SysOrgPostService.java | 80 -- .../core/module/sys/org/rece/SysOrgRece.java | 32 - .../module/sys/org/rece/SysOrgReceRepo.java | 8 - .../core/module/sys/org/role/SysOrgRole.java | 45 - .../module/sys/org/role/SysOrgRoleNode.java | 64 - .../sys/org/role/SysOrgRoleNodeApi.java | 141 -- .../sys/org/role/SysOrgRoleNodeRepo.java | 8 - .../sys/org/role/SysOrgRoleNodeService.java | 306 ---- .../module/sys/org/role/SysOrgRoleTree.java | 25 - .../sys/org/role/SysOrgRoleTreeApi.java | 65 - .../sys/org/role/SysOrgRoleTreeRepo.java | 10 - .../sys/org/role/SysOrgRoleTreeService.java | 74 - .../vben/core/module/sys/org/root/SysOrg.java | 46 - .../core/module/sys/org/root/SysOrgRepo.java | 7 - .../module/sys/org/root/UserCacheService.java | 20 - .../core/module/sys/org/user/PacodPo.java | 12 - .../core/module/sys/org/user/SysOrgUser.java | 104 -- .../module/sys/org/user/SysOrgUserApi.java | 72 - .../module/sys/org/user/SysOrgUserCache.java | 29 - .../module/sys/org/user/SysOrgUserRepo.java | 12 - .../sys/org/user/SysOrgUserService.java | 155 -- .../module/sys/portal/main/SysPortalMain.java | 24 - .../sys/portal/main/SysPortalMainApi.java | 60 - .../sys/portal/main/SysPortalMainRepo.java | 9 - .../sys/portal/main/SysPortalMainService.java | 22 - .../module/sys/portal/menu/SysPortalMenu.java | 104 -- .../sys/portal/menu/SysPortalMenuApi.java | 75 - .../sys/portal/menu/SysPortalMenuRepo.java | 16 - .../sys/portal/menu/SysPortalMenuService.java | 178 --- .../module/sys/portal/role/SysPortalRole.java | 48 - .../sys/portal/role/SysPortalRoleApi.java | 88 -- .../sys/portal/role/SysPortalRoleRepo.java | 6 - .../sys/portal/role/SysPortalRoleService.java | 20 - .../module/sys/todo/done/SysTodoDone.java | 35 - .../module/sys/todo/done/SysTodoDoneRepo.java | 8 - .../module/sys/todo/hist/SysTodoHist.java | 65 - .../module/sys/todo/main/SysTodoMain.java | 63 - .../module/sys/todo/main/SysTodoMainApi.java | 62 - .../module/sys/todo/main/SysTodoMainRepo.java | 8 - .../sys/todo/main/SysTodoMainService.java | 196 --- .../module/sys/todo/user/SysTodoUser.java | 30 - .../module/sys/todo/user/SysTodoUserRepo.java | 8 - vben-core/src/main/resources/generator.yml | 10 - vben-extend/pom.xml | 24 - .../vben/extend/oa/doc/cate/OaDocCate.java | 21 - .../vben/extend/oa/doc/cate/OaDocCateApi.java | 65 - .../extend/oa/doc/cate/OaDocCateRepo.java | 8 - .../extend/oa/doc/cate/OaDocCateService.java | 67 - .../vben/extend/oa/doc/main/OaDocMain.java | 16 - .../vben/extend/oa/doc/main/OaDocMainApi.java | 52 - .../extend/oa/doc/main/OaDocMainRepo.java | 8 - .../extend/oa/doc/main/OaDocMainService.java | 31 - .../vben/extend/oa/flow/cate/OaFlowCate.java | 21 - .../extend/oa/flow/cate/OaFlowCateApi.java | 66 - .../extend/oa/flow/cate/OaFlowCateRepo.java | 8 - .../oa/flow/cate/OaFlowCateService.java | 67 - .../vben/extend/oa/flow/main/OaFlowMain.java | 34 - .../extend/oa/flow/main/OaFlowMainApi.java | 65 - .../extend/oa/flow/main/OaFlowMainRepo.java | 8 - .../oa/flow/main/OaFlowMainService.java | 114 -- .../vben/extend/oa/flow/rece/OaFlowRece.java | 25 - .../extend/oa/flow/rece/OaFlowReceApi.java | 53 - .../extend/oa/flow/rece/OaFlowReceRepo.java | 8 - .../oa/flow/rece/OaFlowReceService.java | 69 - .../vben/extend/oa/flow/temp/OaFlowTemp.java | 29 - .../extend/oa/flow/temp/OaFlowTempApi.java | 87 -- .../extend/oa/flow/temp/OaFlowTempRepo.java | 8 - .../oa/flow/temp/OaFlowTempService.java | 84 -- .../vben/extend/oa/test/one/OaTestOne.java | 14 - .../vben/extend/oa/test/one/OaTestOneApi.java | 116 -- .../extend/oa/test/one/OaTestOneRepo.java | 9 - .../extend/oa/test/one/OaTestOneService.java | 22 - .../java/vben/extend/oa/test/one/Student.java | 27 - .../oa/test/one/StudentImportListener.java | 22 - .../vben/extend/oa/test/two/OaTestTwo.java | 15 - .../vben/extend/oa/test/two/OaTestTwoApi.java | 66 - .../extend/oa/test/two/OaTestTwoMapper.java | 10 - .../extend/oa/test/two/OaTestTwoService.java | 65 - 436 files changed, 33326 deletions(-) delete mode 100644 .gitignore delete mode 100644 CHANGELOG.md delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100644 pom.xml delete mode 100644 vben-admin/pom.xml delete mode 100644 vben-admin/src/main/java/vben/VbenAdmin.java delete mode 100644 vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCate.java delete mode 100644 vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateApi.java delete mode 100644 vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateRepo.java delete mode 100644 vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateService.java delete mode 100644 vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateVo.java delete mode 100644 vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoAtt.java delete mode 100644 vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoItem.java delete mode 100644 vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMain.java delete mode 100644 vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMainApi.java delete mode 100644 vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMainRepo.java delete mode 100644 vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMainService.java delete mode 100644 vben-admin/src/main/java/vben/init/AssInit.java delete mode 100644 vben-admin/src/main/java/vben/init/DbInitListener.java delete mode 100644 vben-admin/src/main/java/vben/init/SysApiInit.java delete mode 100644 vben-admin/src/main/java/vben/init/SysOrgInit.java delete mode 100644 vben-admin/src/main/java/vben/init/SysPortalVbenInit.java delete mode 100644 vben-admin/src/main/java/vben/init/SysPortalVueInit.java delete mode 100644 vben-admin/src/main/resources/application-dev.properties delete mode 100644 vben-admin/src/main/resources/application-prd.properties delete mode 100644 vben-admin/src/main/resources/application.properties delete mode 100644 vben-admin/src/main/resources/application.yml delete mode 100644 vben-admin/src/main/resources/config/app-init.properties delete mode 100644 vben-admin/src/main/resources/config/banner.txt delete mode 100644 vben-admin/src/main/resources/config/logback-dev.xml delete mode 100644 vben-admin/src/main/resources/config/logback-prd.xml delete mode 100644 vben-admin/src/main/resources/vms/java/api.java.vm delete mode 100644 vben-admin/src/main/resources/vms/java/entity.java.vm delete mode 100644 vben-admin/src/main/resources/vms/java/repo.java.vm delete mode 100644 vben-admin/src/main/resources/vms/java/service.java.vm delete mode 100644 vben-admin/src/main/resources/vms/route/route.json.vm delete mode 100644 vben-admin/src/main/resources/vms/route/route.sql.vm delete mode 100644 vben-admin/src/main/resources/vms/vue/drawer/edit.vue.vm delete mode 100644 vben-admin/src/main/resources/vms/vue/drawer/index.vue.vm delete mode 100644 vben-admin/src/main/resources/vms/vue/popup/edit.vue.vm delete mode 100644 vben-admin/src/main/resources/vms/vue/popup/index.vue.vm delete mode 100644 vben-admin/src/main/resources/vms/vue/tab/edit.vue.vm delete mode 100644 vben-admin/src/main/resources/vms/vue/tab/index.vue.vm delete mode 100644 vben-core/pom.xml delete mode 100644 vben-core/src/main/java/vben/core/common/exception/BadConfigurationException.java delete mode 100644 vben-core/src/main/java/vben/core/common/exception/BadRequestException.java delete mode 100644 vben-core/src/main/java/vben/core/common/exception/EntityExistException.java delete mode 100644 vben-core/src/main/java/vben/core/common/exception/EntityNotFoundException.java delete mode 100644 vben-core/src/main/java/vben/core/common/exception/base/BaseException.java delete mode 100644 vben-core/src/main/java/vben/core/common/exception/base/MessageUtils.java delete mode 100644 vben-core/src/main/java/vben/core/common/exception/handler/ApiError.java delete mode 100644 vben-core/src/main/java/vben/core/common/exception/handler/GlobalExceptionHandler.java delete mode 100644 vben-core/src/main/java/vben/core/common/exception/handler/ThrowableUtil.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/api/PageData.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/api/R.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/dao/BaseSqler.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/dao/CacheDao.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/dao/Dsqler.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/dao/Isqler.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/dao/JdbcDao.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/dao/Sqler.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/dao/Usqler.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/entity/BaseCateEntity.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/entity/BaseEntity.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/entity/BaseMainEntity.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/pojo/TreeMovePo.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/pojo/ZidName.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/pojo/ZidNamePid.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/pojo/ZidOrnum.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/pojo/Ztree.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/service/BaseCateService.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/service/BaseMainService.java delete mode 100644 vben-core/src/main/java/vben/core/common/mvc/service/BaseService.java delete mode 100644 vben-core/src/main/java/vben/core/common/others/MapHelper.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/db/DataTypeEnum.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/db/DbType.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/db/Jdao.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/db/SqlUtils.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/db/Zconn.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/extra/SpringUtils.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/ExcelUtil.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/FileUtils.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/XexcelUtil.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/XfileUtil.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/XpdfUtil.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/XqcodeUtil.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/excel/DefaultExcelListener.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/excel/DefautExcelResult.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelBigNumberConvert.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelDictConvert.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelDictFormat.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelListener.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelResult.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/lang/IdUtils.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/lang/SecureUtils.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/lang/TreeUtils.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/ruoyi/Arith.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/ruoyi/DateUtils.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/ruoyi/IpUtils.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/ruoyi/JsonUtils.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/ruoyi/RedisUtils.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/ruoyi/StringUtils.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/web/XaddressUtil.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/web/XreqUtil.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/web/XresUtil.java delete mode 100644 vben-core/src/main/java/vben/core/common/utils/web/XuserUtil.java delete mode 100644 vben-core/src/main/java/vben/core/framework/cache/RedisConfig.java delete mode 100644 vben-core/src/main/java/vben/core/framework/cache/RedisHandler.java delete mode 100644 vben-core/src/main/java/vben/core/framework/cache/RedissonProperties.java delete mode 100644 vben-core/src/main/java/vben/core/framework/config/AppConfig.java delete mode 100644 vben-core/src/main/java/vben/core/framework/config/CorsConfig.java delete mode 100644 vben-core/src/main/java/vben/core/framework/config/RestTemplateConfig.java delete mode 100644 vben-core/src/main/java/vben/core/framework/config/SwaggerConfig.java delete mode 100644 vben-core/src/main/java/vben/core/framework/jpa/CommentIntegrator.java delete mode 100644 vben-core/src/main/java/vben/core/framework/jpa/PrimaryDataSourceConfig.java delete mode 100644 vben-core/src/main/java/vben/core/framework/jpa/PrimaryJpaConfig.java delete mode 100644 vben-core/src/main/java/vben/core/framework/jpa/VbenNamingStrategy.java delete mode 100644 vben-core/src/main/java/vben/core/framework/ldap/LdapConfig.java delete mode 100644 vben-core/src/main/java/vben/core/framework/ldap/LdapHandler.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/SecurityConfig.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/authc/AuthcApi.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/authc/AuthcFailedHandler.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/authc/AuthcOrgHandler.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/authc/AuthcPortalHandler.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/authc/AuthcService.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/authz/AuthzApiData.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/authz/AuthzDeniedHandler.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/authz/AuthzFilter.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/authz/AuthzHandler.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/authz/JwtFilterAdapter.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/authz/JwtHandler.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/pojo/LoginByCodeVo.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/pojo/LoginVo.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/pojo/RegisterVo.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/pojo/UserDo.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/pojo/UserVo.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/pojo/Yapi.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/pojo/Yurl.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/pojo/Zmenu.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/pojo/Zmeta.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/pojo/Zportal.java delete mode 100644 vben-core/src/main/java/vben/core/framework/security/pojo/Zuser.java delete mode 100644 vben-core/src/main/java/vben/core/framework/sms/enums/SmsTemplateEnum.java delete mode 100644 vben-core/src/main/java/vben/core/framework/sms/enums/SmsTypeEnum.java delete mode 100644 vben-core/src/main/java/vben/core/framework/sms/service/SmsService.java delete mode 100644 vben-core/src/main/java/vben/core/framework/sms/service/impl/SmsServiceImpl.java delete mode 100644 vben-core/src/main/java/vben/core/framework/sms/vo/SmsVo.java delete mode 100644 vben-core/src/main/java/vben/core/framework/webservice/AutoPublish.java delete mode 100644 vben-core/src/main/java/vben/core/framework/webservice/CxfConfig.java delete mode 100644 vben-core/src/main/java/vben/core/framework/webservice/PigService.java delete mode 100644 vben-core/src/main/java/vben/core/framework/webservice/PigServiceImpl.java delete mode 100644 vben-core/src/main/java/vben/core/framework/webservice/StartClas.java delete mode 100644 vben-core/src/main/java/vben/core/framework/websocket/WebSocketConfig.java delete mode 100644 vben-core/src/main/java/vben/core/framework/websocket/WebSocketServer.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/city/AssAddrCity.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/city/AssAddrCityRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/dict/AssAddrDict.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/dict/AssAddrDictRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainHand.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainService.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/pojo/Apath.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/pojo/Ares.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/pojo/AresCoun.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/pojo/AresProv.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/pojo/Aroute.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/pojo/District.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/pojo/DistrictCoun.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/pojo/DistrictProv.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/prov/AssAddrProv.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/prov/AssAddrProvRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/stre/AssAddrStre.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/addr/stre/AssAddrStreRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeForm.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeFormApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeFormRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeFormService.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeField.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTable.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTableApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTableRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTableService.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenCode.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenConfig.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenConstants.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenUtils.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/velocity/VelocityInitializer.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/coge/velocity/VelocityUtils.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCate.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCateApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCateRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCateService.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictData.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictDataApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictDataRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictDataService.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMainRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMainService.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMainRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMainService.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfig.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfigApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfigRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfigService.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/file/AssOssFile.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/file/AssOssFileRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMainRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMainService.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/main/Zfile.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/root/AssOssLocalHand.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/root/AssOssRemoteHand.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/root/OssClient.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/root/OssConstant.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/root/OssException.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/root/OssFactory.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/root/OssProperties.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/root/PolicyType.java delete mode 100644 vben-core/src/main/java/vben/core/module/ass/oss/root/UploadResult.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditAtt.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMainRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMainService.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/node/hist/BpmNodeHist.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/node/hist/BpmNodeHistRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/node/hist/BpmNodeHistService.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/node/main/BpmNodeMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/node/main/BpmNodeMainRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/node/main/BpmNodeMainService.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/cond/BpmProcCond.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/cond/BpmProcCondRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainHand.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainService.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/main/Zbpm.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/main/Zcond.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/main/Znode.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/param/BpmProcParam.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/param/BpmProcParamRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/param/BpmProcParamService.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/temp/BpmProcTemp.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/temp/BpmProcTempRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/proc/temp/BpmProcTempService.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/task/hist/BpmTaskHist.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/task/hist/BpmTaskHistRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/task/hist/BpmTaskHistService.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/task/main/BpmTaskMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/task/main/BpmTaskMainRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/bpm/task/main/BpmTaskMainService.java delete mode 100644 vben-core/src/main/java/vben/core/module/gen/coop/GenCoopApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/gen/img/GenImgApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/gen/num/GenNumApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/gen/org/GenOrgDeptApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/gen/org/GenOrgGroupApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/gen/org/GenOrgMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/gen/org/GenOrgReceApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/gen/org/GenOrgReceService.java delete mode 100644 vben-core/src/main/java/vben/core/module/gen/org/GenOrgRoleApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/gen/oss/GenOssApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/gen/user/GenUserApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/cache/main/MonCacheMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLog.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLogApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLogRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLogService.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/main/MonJobDemo.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMainRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMainService.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/root/IJob.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/root/IJobGroup.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/root/JobConfig.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/root/MonJobFactory.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/root/MonJobHandler.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/job/root/MonJobListener.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/error/MonLogError.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/error/MonLogErrorApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/error/MonLogErrorRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/error/MonLogErrorService.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLogin.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLoginApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLoginRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLoginService.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOper.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOperApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOperRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOperService.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/oper/Oplog.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/oper/OplogAspect.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/oper/RequestHolder.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/log/oper/ThrowableUtil.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/online/user/MonOnlineUserApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/online/user/OnlineUserDto.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/main/CloseUtil.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/main/ElAdminConstant.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/main/FileUtil.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/main/MonServerMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/main/MonServerMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/main/MonitorServiceImpl.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/pojo/Cpu.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/pojo/Jvm.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/pojo/Mem.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/pojo/Sys.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/pojo/SysFile.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/snmp/MemoryData.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/snmp/SnmpConfig.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/snmp/SnmpDisk.java delete mode 100644 vben-core/src/main/java/vben/core/module/mon/server/snmp/SnmpUtil.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainVo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRole.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRoleApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRoleRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRoleService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCate.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCateApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCateRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCateService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorp.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorpApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorpRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorpService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUser.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserCache.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDept.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptVo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroup.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCate.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCateApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCateRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCateService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPost.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPostApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPostRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPostService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/rece/SysOrgRece.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/rece/SysOrgReceRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRole.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNode.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNodeApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNodeRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNodeService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTree.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTreeApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTreeRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTreeService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/root/SysOrg.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/root/SysOrgRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/root/UserCacheService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/user/PacodPo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUser.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserCache.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMainRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMainService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenu.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenuApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenuRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenuService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRole.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRoleApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRoleRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRoleService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/todo/done/SysTodoDone.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/todo/done/SysTodoDoneRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/todo/hist/SysTodoHist.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMain.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMainApi.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMainRepo.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMainService.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/todo/user/SysTodoUser.java delete mode 100644 vben-core/src/main/java/vben/core/module/sys/todo/user/SysTodoUserRepo.java delete mode 100644 vben-core/src/main/resources/generator.yml delete mode 100644 vben-extend/pom.xml delete mode 100644 vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCate.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCateApi.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCateRepo.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCateService.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMain.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMainApi.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMainRepo.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMainService.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCate.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCateApi.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCateRepo.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCateService.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMain.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMainApi.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMainRepo.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMainService.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowRece.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowReceApi.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowReceRepo.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowReceService.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTemp.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTempApi.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTempRepo.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTempService.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOne.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOneApi.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOneRepo.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOneService.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/test/one/Student.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/test/one/StudentImportListener.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwo.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwoApi.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwoMapper.java delete mode 100644 vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwoService.java diff --git a/.gitignore b/.gitignore deleted file mode 100644 index bfaed24..0000000 --- a/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -# 项目排除路径 -/vben-admin/target/ -/vben-admin/src/main/resources/static/ -/vben-admin-bi/target/ -/vben-admin-bi/src/main/resources/static/ -/vben-core/target/ -/vben-extend/target/ -/vben-extend-bi/target/ -/.idea/ -#/vben-extend/src/main/java/vben/extend/bi/ -#/vben-extend/src/main/java/vben/extend/sa/ -#/vben-extend/src/main/java/vben/extend/te/ diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 0a0d3a4..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -- **初始化项目 V0.2** - - - [更新] README.md、项目介绍 diff --git a/LICENSE b/LICENSE deleted file mode 100644 index b339520..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 vben - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index ba1160a..0000000 --- a/README.md +++ /dev/null @@ -1,63 +0,0 @@ -

vben-java

-

一个开箱即用的快速开发平台JAVA版

- -# 🍿 相关地址 -* PC端体验地址 :[http://8.153.168.178/](http://8.153.168.178/) (演示版本采用最新vben5版本) -* 移动端体验地址 :[http://8.153.168.178/unibest/](http://8.153.168.178/unibest/) -* 文档地址 :[http://8.153.168.178/doc](http://8.153.168.178/doc) -* QQ交流群:[795417789](https://jq.qq.com/?_wv=1027&k=yoKKIlIG) - -### 🍟 概述 -* 特别说明:vben系列项目是由https://gitee.com/zsvg 大哥原vboot项目转移的。 -* 特别说明:目前前端是基于vue-next-admin的,vben5 ui目前正在适配中。 -* 基于JAVA实现的快速开发平台。模块化插件式开发,前后端分离,开箱即用。 -* 后台基于SpringBoot框架,数据库访问同时集成了Jpa与MyBatis-Plus,即可自动生成数据库表结构,又可灵活编写sql。 -* 前端基于vue-next-admin/vben框架,引入了bpmn.js工作流、VForm可视化表单。 -* 前端项目地址:[https://gitee.com/vben/vben-ui](https://gitee.com/vben/vben-ui) -* .NET8实现的同功能项目地址[https://gitee.com/vben/vben-net](https://gitee.com/vben/vben-net) 两个项目会同步开发 - -### 🍄 快速启动 -* 准备工作:1.配置一个名为vben-java的mysql数据库,默认账号root,密码123456(可改) 2.开启redis 可不设置密码 -* 启动后台:打开项目,找到vben-admin下的vbenApplication启动类启动运行 -* 启动前端:下载配套的前端UI[https://gitee.com/vben/vben-ui](https://gitee.com/vben/vben-ui)使用npm构建,访问 `http://localhost:868` 预览 - -### 🏀 分层说明 -``` -├─vben-admin ->自定义管理应用层,在此写您具体业务代码 -├─vben-core ->框架核心层,包含框架集成,基础模块与通用工具类等 -├─vben-extend ->框架扩展层,包含扩展的常用功能与模块 -注:建议将自己的业务代码写在【vben-admin】层里面,可随框架升级减少冲突。 -``` - -### 🍖 详细功能 -1. 主控面板:控制台页面,可进行工作台,分析页,统计等功能的展示。 -2. 部门管理:部门维护,支持多层级结构的树形结构。 -3. 用户管理:用户维护,可设置用户部门,岗位,群组,职务,角色,数据权限等。 -4. 岗位管理:岗位维护,岗位可作为用户的一个标签,岗位也可与权限等其他功能挂钩。 -5. 群组管理:群组维护,群组可设置部门,用户,岗位,用于更广泛的权限设置。 -6. 菜单管理:菜单目录,菜单,和按钮的维护是权限控制的基本单位。 -7. 角色管理:角色绑定菜单后,可限制相关角色的人员登录系统的功能范围。 -8. 字典管理:系统内各种枚举类型的维护。 -9. 访问日志:用户的登录和退出日志的查看和管理。 -10. 操作日志:用户的操作业务的日志的查看和管理。 -11. 定时任务:定时任务的维护,通过cron表达式控制任务的执行频率。 -12. 流程引擎:流程图展示,自解析bpmn.js,支持驳回、转办、废弃,跳转等功能 -13. 在线表单:在线表单设计,配合流程可以实现表单数据流转 -14. 消息机制:待办待阅功能,联通钉钉与企业微信接口 -15. 代码生成:在线配置,一键生成前后端代码 - -### ⚡ 近期计划 -- [ ] 完善文档 -- [ ] 完善工作流 - -### 💐 特别鸣谢 -- 👉 eladmin:[https://gitee.com/elunez/eladmin](https://gitee.com/elunez/eladmin) -- 👉 ruoyi:[https://gitee.com/y_project/RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) -- 👉 Vben-Admin:[https://vvbin.cn/doc-next](https://vvbin.cn/doc-next) -- 👉 vue-next-admin:[https://gitee.com/lyt-top/vue-next-admin](https://gitee.com/lyt-top/vue-next-admin) -- 👉 vxe-table:[https://gitee.com/xuliangzhan_admin/vxe-table](https://gitee.com/xuliangzhan_admin/vxe-table) -- 👉 VForm:[https://www.vform666.com](https://www.vform666.com/) - -``` -如果对您有帮助,点击右上角⭐Star⭐关注 ,感谢支持开源! -``` \ No newline at end of file diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 9861f74..0000000 --- a/pom.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - 4.0.0 - - com.zsvg - vben - pom - 0.1 - - vben-core - vben-extend - vben-admin - - - - - UTF-8 - UTF-8 - 1.8 - 0.1 - 2.5.15 - - - - - - - - - org.springframework.boot - spring-boot-dependencies - ${spring.boot.version} - pom - import - - - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - - true - ${java.version} - ${java.version} - ${project.build.sourceEncoding} - - - - - - - lib - /WEB-INF/lib/ - - **/*.jar - - - - src/main/resources - - **/* - - - - - - - - - - public - aliyun nexus - https://maven.aliyun.com/repository/public/ - - true - - - - - - - - public - aliyun nexus - https://maven.aliyun.com/repository/public/ - - true - - - false - - - - \ No newline at end of file diff --git a/vben-admin/pom.xml b/vben-admin/pom.xml deleted file mode 100644 index 73afc58..0000000 --- a/vben-admin/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - vben - com.zsvg - 0.1 - - 4.0.0 - - vben-admin - - - - com.zsvg - vben-extend - ${vben.version} - - - - mysql - mysql-connector-java - - 8.0.26 - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - ${spring.boot.version} - - true - - - - - repackage - - - - - - - - \ No newline at end of file diff --git a/vben-admin/src/main/java/vben/VbenAdmin.java b/vben-admin/src/main/java/vben/VbenAdmin.java deleted file mode 100644 index 81da4cb..0000000 --- a/vben-admin/src/main/java/vben/VbenAdmin.java +++ /dev/null @@ -1,42 +0,0 @@ -package vben; - -import cn.hutool.core.util.StrUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.context.ApplicationContext; -import org.springframework.core.env.Environment; -import org.springframework.scheduling.annotation.EnableAsync; - -import java.net.InetAddress; -import java.net.UnknownHostException; - -@EnableCaching -@SpringBootApplication -@Slf4j -@EnableAsync -public class VbenAdmin { - - public static void main(String[] args) { - ApplicationContext app = SpringApplication.run(VbenAdmin.class, args); - Environment env = app.getEnvironment(); - String ip = null; - try { - ip = InetAddress.getLocalHost().getHostAddress(); - } catch (UnknownHostException e) { - e.printStackTrace(); - } - String port = env.getProperty("server.port"); - String path = env.getProperty("server.servlet.context-path"); - if (StrUtil.isBlank(path)) { - path = ""; - } - System.out.println("-----------------------系统启动成功!-----------------------"); - log.info("\n\tLocal接口访问地址: \thttp://localhost:" + port + path + "/doc.html" + "\n" + - "\tExternal访问网址: \thttp://" + ip + ":" + port + path + "/doc.html"); - - } - -} - diff --git a/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCate.java b/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCate.java deleted file mode 100644 index 2af78e1..0000000 --- a/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCate.java +++ /dev/null @@ -1,56 +0,0 @@ -package vben.admin.my.demo.cate; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseCateEntity; -import vben.core.module.sys.org.root.SysOrg; - -import javax.persistence.*; -import java.util.List; - -@Entity -@Getter -@Setter -@ApiModel("DEMO分类") -public class MyDemoCate extends BaseCateEntity { - - @ManyToOne(fetch= FetchType.EAGER) - @JoinColumn(name = "pid") - @ApiModelProperty("父类别") - private MyDemoCate parent; - - @Column(length = 32) - private String fomod;//表单形式 - - private Boolean prtag;//是否有流程 - - @Column(length = 32) - private String protd;//全局流程模板ID - - @Transient - private String prxml;//流程XML - - @Lob - private String fjson;//fields 表单字段 - - @Lob - private String tjson;//tabs 表单页签 - - @Lob - private String ljson;//links 表单联动 - - @ManyToMany - @JoinTable(name = "my_demo_cate_reman", joinColumns = {@JoinColumn(name = "mid")}, - inverseJoinColumns = {@JoinColumn(name = "oid")}) - @ApiModelProperty("数据可阅读者") - private List remen; - - @ManyToMany - @JoinTable(name = "my_demo_cate_usman", joinColumns = {@JoinColumn(name = "mid")}, - inverseJoinColumns = {@JoinColumn(name = "oid")}) - @ApiModelProperty("分类可使用者") - private List usmen; - -} diff --git a/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateApi.java b/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateApi.java deleted file mode 100644 index eb04564..0000000 --- a/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateApi.java +++ /dev/null @@ -1,102 +0,0 @@ -package vben.admin.my.demo.cate; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.Ztree; -import vben.core.common.utils.lang.TreeUtils; - -import java.util.List; -import java.util.Map; - -@RestController -@RequestMapping("my/demo/cate") -@Api(tags = {"DEMO分类管理"}) -public class MyDemoCateApi { - - private String table = "my_demo_cate"; - - @GetMapping("treez") - @ApiOperation("查询DEMO除自身外的分类树") - public R getTreez(String name, String id) { - List list = service.tier2Choose(table, id, name); - return R.ok(list); - } - - @GetMapping("treea") - @ApiOperation("查询DEMO分类树") - public R getTreea(String name) { - Sqler sqler=new Sqler(table); - sqler.addSelect("t.pid,t.fomod type"); - sqler.addOrder("t.ornum"); - sqler.addWhere("t.avtag=1"); - List list = jdbcDao.getTp().query(sqler.getSql(),sqler.getParams(), - new BeanPropertyRowMapper<>(Ztree.class)); - return R.ok(TreeUtils.build(list)) ; - } - - @GetMapping("tree") - @ApiOperation("查询DEMO分类列表") - public R getTree(String name) { - Sqler sqler = new Sqler(table); - sqler.addLike("t.name", name); - sqler.addOrder("t.ornum"); - sqler.addWhere("t.avtag=1"); - sqler.addSelect("t.pid,t.notes"); - sqler.selectCUinfo(); - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), - new BeanPropertyRowMapper<>(MyDemoCateVo.class)); - return R.ok(TreeUtils.buildEtree(list)); - } - - @GetMapping - @ApiOperation("查询DEMO分类分页") - public R get(String name) { - Sqler sqler = new Sqler(table); - sqler.addLike("t.name", name); - sqler.addSelect("t.notes"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询DEMO分类详情") - public R getOne(@PathVariable String id) { - MyDemoCate cate = service.findOne(id); - if(cate.getPrtag()!=null&&cate.getPrtag()){ - String sql = "select orxml from bpm_proc_temp where id=?"; - Map map = jdbcDao.findMap(sql, cate.getProtd()); - cate.setPrxml((String)map.get("orxml")); - } - return R.ok(cate); - } - - @PostMapping - @ApiOperation("新增DEMO分类") - public R post(@RequestBody MyDemoCate main) { - return R.ok(service.insertx(main)); - } - - @PutMapping - @ApiOperation("更新DEMO分类") - public R put(@RequestBody MyDemoCate main) { - return R.ok(service.updatex(main, table)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除DEMO分类") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private MyDemoCateService service; - - @Autowired - private JdbcDao jdbcDao; - -} diff --git a/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateRepo.java b/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateRepo.java deleted file mode 100644 index c738c2d..0000000 --- a/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.admin.my.demo.cate; - -import org.springframework.data.jpa.repository.JpaRepository; - -//DEMO分类JPA仓储 -public interface MyDemoCateRepo extends JpaRepository { - - -} diff --git a/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateService.java b/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateService.java deleted file mode 100644 index 93cbe77..0000000 --- a/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateService.java +++ /dev/null @@ -1,68 +0,0 @@ -package vben.admin.my.demo.cate; - -import cn.hutool.core.util.StrUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.service.BaseCateService; -import vben.core.module.bpm.proc.temp.BpmProcTemp; -import vben.core.module.bpm.proc.temp.BpmProcTempService; - -import javax.annotation.PostConstruct; -import java.util.List; - -//DEMO分类服务 -@Service -public class MyDemoCateService extends BaseCateService { - - //获取分类treeTable数据 - public List findTree(Sqler sqler) { - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), - new BeanPropertyRowMapper<>(MyDemoCate.class)); - return buildByRecursive(list); - } - - public String insertx(MyDemoCate cate) { - BpmProcTemp bpmProcTemp = new BpmProcTemp(); - bpmProcTemp.setName(cate.getName()); - bpmProcTemp.setOrxml(cate.getPrxml()); - if(StrUtil.isNotBlank((bpmProcTemp.getOrxml()))){ - String chxml = "" - + "\n"; - bpmProcTemp.setChxml(chxml); - } - String temid = bpmProcTempService.insert(bpmProcTemp); - cate.setProtd(temid); - return super.insert(cate); - } - - public String updatex(MyDemoCate cate,String table) { - BpmProcTemp bpmProcTemp = bpmProcTempService.findOne(cate.getProtd()); - bpmProcTemp.setName(cate.getName()); - bpmProcTemp.setOrxml(cate.getPrxml()); - if(StrUtil.isNotBlank((bpmProcTemp.getOrxml()))) { - String chxml = "" - + "\n"; - bpmProcTemp.setChxml(chxml); - } - bpmProcTempService.update(bpmProcTemp); - return super.update(cate,table,false); - } - - @Autowired - private BpmProcTempService bpmProcTempService; - - @Autowired - private MyDemoCateRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} diff --git a/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateVo.java b/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateVo.java deleted file mode 100644 index 46827f1..0000000 --- a/vben-admin/src/main/java/vben/admin/my/demo/cate/MyDemoCateVo.java +++ /dev/null @@ -1,23 +0,0 @@ -package vben.admin.my.demo.cate; - -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.pojo.Ztree; - -import java.util.Date; - -@Getter -@Setter -public class MyDemoCateVo extends Ztree { - - private Date crtim; - - private String crman; - - private Date uptim; - - private String upman; - - private String notes; - -} diff --git a/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoAtt.java b/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoAtt.java deleted file mode 100644 index 626d000..0000000 --- a/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoAtt.java +++ /dev/null @@ -1,41 +0,0 @@ -package vben.admin.my.demo.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -@Data -@ApiModel("DEMO附件") -public class MyDemoAtt -{ - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @ApiModelProperty("附件名称") - private String name; - - @ApiModelProperty("附件大小") - private String zsize; - - @ApiModelProperty("存储地址") - private String path; - - @ApiModelProperty("文件ID") - @Column(length = 32) - private String filid; - - @ApiModelProperty("业务ID") - @Column(length = 32) - private String busid; - - @ApiModelProperty("排序号") - private Integer ornum; - -} diff --git a/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoItem.java b/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoItem.java deleted file mode 100644 index 3096782..0000000 --- a/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoItem.java +++ /dev/null @@ -1,46 +0,0 @@ -package vben.admin.my.demo.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -//主记录OneToMany -@Data -@Entity -@ApiModel("DEMO明细行") -public class MyDemoItem { - @Id - @Column(length = 36) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("姓名") - private String name; - - @Column(length = 32) - @ApiModelProperty("手机号") - private String monum; - - @Column(length = 32) - @ApiModelProperty("性别") - private String gender; - - @Column(length = 64) - @ApiModelProperty("职务") - private String post; - - @Column(length = 32) - @ApiModelProperty("邮箱") - private String email; - - @ApiModelProperty("备注") - private String notes; - - @ApiModelProperty("排序号") - private Integer ornum; -} diff --git a/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMain.java b/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMain.java deleted file mode 100644 index 467aee2..0000000 --- a/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMain.java +++ /dev/null @@ -1,108 +0,0 @@ -package vben.admin.my.demo.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; -import vben.core.module.bpm.proc.main.Zbpm; -import vben.core.module.sys.org.root.SysOrg; - -import javax.persistence.*; -import java.util.ArrayList; -import java.util.List; - -@Entity -@Getter -@Setter -@ApiModel("DEMO主数据") -public class MyDemoMain extends BaseMainEntity { - - //分类关联示例 - @Column(length = 32) - @ApiModelProperty("分类ID") - private String catid; - - //流水号示例 - @Column(length = 32) - @ApiModelProperty("流水号") - private String senum; - - //数据字典示例 - @Column(length = 32) - @ApiModelProperty("等级") - private String grade; - - //ManyToOne示例 - @ManyToOne - @JoinColumn(name = "opman") - @ApiModelProperty("经办人") - private SysOrg opman; - - //ManyToMany示例 - @ManyToMany - @JoinTable(name = "my_demo_viman", joinColumns = {@JoinColumn(name = "mid")}, - inverseJoinColumns = {@JoinColumn(name = "oid")}) - @ApiModelProperty("可查看者") - private List vimen; - - //ManyToMany示例 - @ManyToMany - @JoinTable(name = "my_demo_edman", joinColumns = {@JoinColumn(name = "mid")}, - inverseJoinColumns = {@JoinColumn(name = "oid")}) - @ApiModelProperty("可编辑者") - private List edmen; - - //OneToMany示例 - @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) - @JoinColumn(name = "maiid") - @OrderBy("ornum ASC") - @ApiModelProperty("明细行") - private List items = new ArrayList<>(); - - //附件示例 - @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) - @JoinColumn(name = "busid") - @OrderBy("ornum ASC") - @ApiModelProperty("附件清单") - private List atts = new ArrayList<>(); - - //地址选择示例,可根据实际情况存想要的字段 - //region-----地址相关信息----- - @ApiModelProperty("完整地址") - private String addre; - - @Column(length = 64) - @ApiModelProperty("省市区") - private String adreg; - - @Column(length = 128) - @ApiModelProperty("省市区以外的详细信息") - private String addet; - - @Column(length = 32) - @ApiModelProperty("经纬度") - private String adcoo; - - @Column(length = 32) - @ApiModelProperty("省") - private String adpro; - - @Column(length = 32) - @ApiModelProperty("市") - private String adcit; - - @Column(length = 32) - @ApiModelProperty("区") - private String addis; - //endregion - - @Column(length = 32) - private String protd;//全局流程模板ID - - @Transient - private Zbpm zbpm; - - @Column(length = 8) - private String state; -} diff --git a/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMainApi.java b/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMainApi.java deleted file mode 100644 index 17d3cf5..0000000 --- a/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMainApi.java +++ /dev/null @@ -1,83 +0,0 @@ -package vben.admin.my.demo.main; - -import cn.hutool.core.util.StrUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.PageData; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.module.ass.num.main.AssNumMainService; -import vben.core.module.bpm.task.main.BpmTaskMainService; -import vben.core.module.mon.log.oper.Oplog; - -@RestController -@RequestMapping("my/demo/main") -@Api(tags = {"DEMO管理"}) -public class MyDemoMainApi { - - @Oplog("查询DEMO分页") - @GetMapping - @ApiOperation("查询DEMO分页") - public R get(String name) { - Sqler sqler = new Sqler("my_demo_main"); - sqler.addLike("t.name", name); - sqler.addLeftJoin("c.name catna,c.fomod type","my_demo_cate c","c.id=t.catid"); - sqler.addSelect("t.state,t.senum,t.notes"); - PageData pageData = service.findPageData(sqler); - taskMainService.findCurrentExmen(pageData.getItems()); - return R.ok(pageData); - } - - @Oplog("查询DEMO详情") - @GetMapping("one/{id}") - @ApiOperation("查询DEMO详情") - public R getOne(@PathVariable String id) { - MyDemoMain main = service.findOne(id); - return R.ok(main); - } - - @Oplog("新增DEMO") - @PostMapping - @ApiOperation("新增DEMO") - public R post(@RequestBody MyDemoMain main) throws Exception { - main.setSenum(numService.getNum("DEMO"));//设置供应商流水号 - if(StrUtil.isBlank(main.getProtd())){ - main.setState("30"); - service.insert(main); - }else{ - service.insertx(main); - } - return R.ok(); - } - - @Oplog("更新DEMO") - @PutMapping - @ApiOperation("更新DEMO") - public R put(@RequestBody MyDemoMain main) throws Exception { - if(StrUtil.isBlank(main.getProtd())){ - service.update(main); - }else{ - service.updatex(main); - } - return R.ok(); - } - - @Oplog("删除DEMO") - @DeleteMapping("{ids}") - @ApiOperation("删除DEMO") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private BpmTaskMainService taskMainService; - - @Autowired - private MyDemoMainService service; - - @Autowired - private AssNumMainService numService; - -} diff --git a/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMainRepo.java b/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMainRepo.java deleted file mode 100644 index 75e42e1..0000000 --- a/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMainRepo.java +++ /dev/null @@ -1,10 +0,0 @@ -package vben.admin.my.demo.main; - -import org.springframework.data.jpa.repository.JpaRepository; - -//DEMO主数据JPA仓储 -public interface MyDemoMainRepo extends JpaRepository { - - -} - diff --git a/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMainService.java b/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMainService.java deleted file mode 100644 index 44ac5dd..0000000 --- a/vben-admin/src/main/java/vben/admin/my/demo/main/MyDemoMainService.java +++ /dev/null @@ -1,91 +0,0 @@ -package vben.admin.my.demo.main; - -import com.google.gson.Gson; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.service.BaseMainService; -import vben.core.common.utils.web.XuserUtil; -import vben.core.module.bpm.proc.cond.BpmProcCond; -import vben.core.module.bpm.proc.cond.BpmProcCondRepo; -import vben.core.module.bpm.proc.main.BpmProcMainService; -import vben.core.module.bpm.proc.main.Zbpm; -import vben.core.module.bpm.proc.main.Znode; -import vben.core.common.utils.lang.IdUtils; - -import javax.annotation.PostConstruct; -import java.util.Date; - -//DEMO主数据服务 -@Service -public class MyDemoMainService extends BaseMainService { - - public void insertx(MyDemoMain main) throws Exception { - main.setState("20"); - main.setId(IdUtils.getUID()); - main.setUptim(new Date()); - if (main.getCrman() == null) { - main.setCrman(XuserUtil.getUser()); - } - MyDemoMain dbMain = repo.save(main); - BpmProcCond cond = new BpmProcCond(); - cond.setId(dbMain.getId()); - Gson gson = new Gson(); - cond.setCond(gson.toJson(dbMain)); - condRepo.saveAndFlush(cond); - - Zbpm zbpm = main.getZbpm(); - zbpm.setModty("app_demo"); - zbpm.setProid(dbMain.getId()); - zbpm.setProna(dbMain.getName()); - zbpm.setHaman(dbMain.getCrman().getId()); - zbpm.setTemid(dbMain.getProtd()); - Znode znode = procService.start(zbpm); - if ("NE".equals(znode.getFacno())) { - dbMain.setState("30"); - super.update(dbMain); - } - } - - public void updatex(MyDemoMain main) throws Exception { - main.setState("20"); - super.update(main); - BpmProcCond cond = new BpmProcCond(); - cond.setId(main.getId()); - Gson gson = new Gson(); - cond.setCond(gson.toJson(main)); - condRepo.saveAndFlush(cond); - - main.getZbpm().setModty("app_demo"); - if ("pass".equals(main.getZbpm().getOpkey())) { - Znode znode = procService.handlerPass(main.getZbpm()); - if ("NE".equals(znode.getFacno())) { - main.setState("30"); - super.update(main); - } - } else if ("refuse".equals(main.getZbpm().getOpkey())) { - if ("N1".equals(main.getZbpm().getTarno())) { - main.setState("11"); - super.update(main); - } - Znode znode = procService.handlerRefuse(main.getZbpm()); - } - } - - - - @Autowired - private BpmProcMainService procService; - - @Autowired - private BpmProcCondRepo condRepo; - - @Autowired - private MyDemoMainRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} - diff --git a/vben-admin/src/main/java/vben/init/AssInit.java b/vben-admin/src/main/java/vben/init/AssInit.java deleted file mode 100644 index 9c8e4cb..0000000 --- a/vben-admin/src/main/java/vben/init/AssInit.java +++ /dev/null @@ -1,136 +0,0 @@ -package vben.init; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import vben.core.module.ass.dict.data.AssDictData; -import vben.core.module.ass.dict.data.AssDictDataRepo; -import vben.core.module.ass.dict.main.AssDictMain; -import vben.core.module.ass.dict.main.AssDictMainRepo; -import vben.core.module.ass.num.main.AssNumMain; -import vben.core.module.ass.num.main.AssNumMainRepo; -import vben.core.common.utils.lang.IdUtils; - -import java.util.ArrayList; -import java.util.List; - -//辅助数据初始化 -@Component -public class AssInit { - - protected void initData() throws Exception { - initNum(); - initDict(); - } - - //流水号初始化 - private void initNum() { - List numList = new ArrayList<>(); - AssNumMain suppNum = new AssNumMain(); - suppNum.setId("DEMO"); - suppNum.setName("DEMO流水号"); - suppNum.setNumod("yy"); - suppNum.setNulen(4); - suppNum.setNflag(true); - suppNum.setNupre("D"); - numList.add(suppNum); - - numRepo.saveAll(numList); - } - - //数据字典初始化 - private void initDict() { - List dictList = new ArrayList<>(); - - AssDictMain demoDict = new AssDictMain(); - demoDict.setId("DEMO_GRADE"); - demoDict.setName("DEMO等级"); - demoDict.setAvtag(true); - dictList.add(demoDict); - - dictRepo.saveAll(dictList); - - List dictDataList = new ArrayList<>(); - AssDictData demo1 = new AssDictData(); - demo1.setId(IdUtils.getUID()); - demo1.setCode("A"); - demo1.setName("等级A"); - demo1.setAvtag(true); - demo1.setOrnum(1); - demo1.setMaiid("DEMO_GRADE"); - dictDataList.add(demo1); - - AssDictData demo2 = new AssDictData(); - demo2.setId(IdUtils.getUID()); - demo2.setCode("B"); - demo2.setName("等级B"); - demo2.setAvtag(true); - demo2.setOrnum(2); - demo2.setMaiid("DEMO_GRADE"); - dictDataList.add(demo2); - - AssDictData demo3 = new AssDictData(); - demo3.setId(IdUtils.getUID()); - demo3.setCode("C"); - demo3.setName("等级C"); - demo3.setAvtag(true); - demo3.setOrnum(3); - demo3.setMaiid("DEMO_GRADE"); - dictDataList.add(demo3); - - AssDictData demo4 = new AssDictData(); - demo4.setId(IdUtils.getUID()); - demo4.setCode("Z"); - demo4.setName("不合格"); - demo4.setAvtag(true); - demo4.setOrnum(4); - demo4.setMaiid("DEMO_GRADE"); - dictDataList.add(demo4); - - AssDictData dist1 = new AssDictData(); - dist1.setId(IdUtils.getUID()); - dist1.setCode("A"); - dist1.setName("A级资质"); - dist1.setAvtag(true); - dist1.setOrnum(1); - dist1.setMaiid("DIST_GRADE"); - dictDataList.add(dist1); - - AssDictData dist2 = new AssDictData(); - dist2.setId(IdUtils.getUID()); - dist2.setCode("B"); - dist2.setName("B级资质"); - dist2.setAvtag(true); - dist2.setOrnum(2); - dist2.setMaiid("DIST_GRADE"); - dictDataList.add(dist2); - - AssDictData dist3 = new AssDictData(); - dist3.setId(IdUtils.getUID()); - dist3.setCode("C"); - dist3.setName("C级资质"); - dist3.setAvtag(true); - dist3.setOrnum(3); - dist3.setMaiid("DIST_GRADE"); - dictDataList.add(dist3); - - AssDictData dist4 = new AssDictData(); - dist4.setId(IdUtils.getUID()); - dist4.setCode("Z"); - dist4.setName("不合格"); - dist4.setAvtag(true); - dist4.setOrnum(4); - dist4.setMaiid("DIST_GRADE"); - dictDataList.add(dist4); - - dictDataRepo.saveAll(dictDataList); - } - - @Autowired - private AssDictMainRepo dictRepo; - - @Autowired - private AssDictDataRepo dictDataRepo; - - @Autowired - private AssNumMainRepo numRepo; -} diff --git a/vben-admin/src/main/java/vben/init/DbInitListener.java b/vben-admin/src/main/java/vben/init/DbInitListener.java deleted file mode 100644 index d837035..0000000 --- a/vben-admin/src/main/java/vben/init/DbInitListener.java +++ /dev/null @@ -1,87 +0,0 @@ -package vben.init; - -import org.springframework.context.annotation.PropertySource; -import vben.core.module.ass.oss.config.AssOssConfigService; -import vben.core.module.sys.org.user.SysOrgUserRepo; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.ApplicationListener; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.event.ContextRefreshedEvent; - -//数据库初始化监听器 -@Configuration -@Slf4j -@PropertySource(value = { "classpath:config/app-init.properties" },encoding = "UTF-8") -public class DbInitListener implements ApplicationListener { - - @Value("${app.init.orgType}") - private String ORG_TYPE; - - @Value("${app.init.orgName}") - private String ORG_NAME; - - @Value("${app.init.orgRootId}") - private String ORG_ROOT_ID; - - @Value("${app.init.uiType}") - private String UI_TYPE; - - - //首次启动,数据库生成后,初始化组织架构,菜单,权限角色,接口等信息 - @Override - public void onApplicationEvent(ContextRefreshedEvent event) { - try { - if (!userDao.existsById("sa")) { - System.out.println("首次启动系统,正在进行数据库初始化,请耐心等待。"); - sysOrgInit.initRoot(ORG_NAME,ORG_ROOT_ID); - sysOrgInit.initSa(); - if ("test".equals(ORG_TYPE)) { - sysOrgInit.initTestOrg(); - } - System.out.println("1 初始化组织架构完毕"); - if ("vben".equals(UI_TYPE)) { - sysPortalVbenInit.initPortal(); - sysPortalVbenInit.initSysMenu(); - sysPortalVbenInit.initSaMenu(); - }else{ - sysPortalVueInit.initPortal(); - sysPortalVueInit.initSysMenu(); - sysPortalVueInit.initSaMenu(); - } - System.out.println("2 初始化门户菜单完毕"); - assInit.initData(); - System.out.println("3 初始化辅助数据完毕"); - } - sysApiInit.initApi(); - assOssConfigService.init(); - - } catch (Exception e) { - System.err.println("初始化出错"); - e.printStackTrace(); - } - } - - @Autowired - private SysOrgUserRepo userDao; - - @Autowired - private AssOssConfigService assOssConfigService; - - @Autowired - private SysOrgInit sysOrgInit; - - @Autowired - private AssInit assInit; - - @Autowired - private SysApiInit sysApiInit; - - @Autowired - private SysPortalVbenInit sysPortalVbenInit; - - @Autowired - private SysPortalVueInit sysPortalVueInit; - -} \ No newline at end of file diff --git a/vben-admin/src/main/java/vben/init/SysApiInit.java b/vben-admin/src/main/java/vben/init/SysApiInit.java deleted file mode 100644 index c950815..0000000 --- a/vben-admin/src/main/java/vben/init/SysApiInit.java +++ /dev/null @@ -1,298 +0,0 @@ -package vben.init; - -import cn.hutool.core.lang.ClassScanner; -import cn.hutool.core.util.StrUtil; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.dao.JdbcDao; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import vben.core.framework.security.authz.AuthzApiData; -import vben.core.framework.security.pojo.Yapi; -import vben.core.framework.security.pojo.Yurl; - -import java.lang.reflect.Method; -import java.util.*; - -/** - * API接口初始化,每次修改代码重启后,都会从代码搜集比对需要认证的请求URL,生成唯一的权限码存入数据库 - * 并将最新的需要认证的Url根据Method分类放到公共内存,用于用户每次请求时获取权限码做权限认证 - */ -@Component -public class SysApiInit { - - protected void initApi() { - //扫描Controller中的所有Mapping方法,得到需要认证的URL集合 - List codeUrlList = getScanList(); - - //从数据库获取所有已存的URL集合 - List dbUrlList = jdbcDao.findStringList("select id from sys_api_main"); - - //收集最大权限位及最大权限位的最大权限码 - String sql = "select max(u.pos) as pos,max(u.code) as code from sys_api_main u where u.pos = (select max(uu.pos) from sys_api_main uu)"; - Map maxMap = jdbcDao.findMap(sql); - int pos = 0; - long code = 0; - if (maxMap != null && maxMap.get("pos") != null) { - pos = Integer.parseInt(String.valueOf(maxMap.get("pos"))); - code = Long.parseLong(String.valueOf(maxMap.get("code"))); - } - - //比较两个集合,计算得到需要插入数据库的insertList与需要更新数据库的updateList - List insertList = new ArrayList(); - List updateList = new ArrayList(); - for (Yurl yurl : codeUrlList) { - boolean flag = false; - for (String dbUrlstr : dbUrlList) { - if (yurl.getId().equals(dbUrlstr)) { - flag = true; - break; - } - } - if (!flag) {//插入 - if (yurl.getType() == null) { - Object[] objects = new Object[7]; - objects[0] = yurl.getId(); - objects[1] = yurl.getPid(); - objects[2] = 0; - objects[3] = 0; - objects[4] = yurl.getUrl(); - objects[5] = yurl.getType(); - objects[6] = new Date(); - insertList.add(objects); - } else { - if (code >= (1L << 62)) { - pos = pos + 1; - code = 1; - } else { - if (code == 0) { - code = 1; - } else { - code = code << 1; - } - } - Object[] objects = new Object[7]; - objects[0] = yurl.getId(); - objects[1] = yurl.getPid(); - objects[2] = pos; - objects[3] = code; - objects[4] = yurl.getUrl(); - objects[5] = yurl.getType(); - objects[6] = new Date(); - insertList.add(objects); - } - } else {//更新 - Object[] objects = new Object[3]; - objects[0] = yurl.getPid(); - objects[1] = yurl.getType(); - objects[2] = yurl.getId(); - updateList.add(objects); - } - } - //设置是否为公共资源 -// for (Object[] objects : insertList) { -// if (objects[0].toString().contains("_c")) { -// objects[5] = 1; -// } -// } - - //批量插入与更新数据库 - String initSql = "UPDATE sys_api_main SET avtag=0"; - String updateSql = "UPDATE sys_api_main SET pid=?,type=?,avtag=1 WHERE id=?"; - String insertSql = "INSERT INTO sys_api_main(id,pid,pos,code,url,type,crtim,avtag) VALUES(?,?,?,?,?,?,?,1)"; - jdbcDao.update(initSql); - jdbcDao.batch(updateSql, updateList); - jdbcDao.batch(insertSql, insertList); - AuthzApiData.AUTHPOS = pos; - - //初始化所有用户权限 - String updateUserSql = "update sys_org_user set catag=0"; - jdbcDao.update(updateUserSql); - - String updateCoopUserSql = "update sys_coop_user set catag=0"; - jdbcDao.update(updateCoopUserSql); - - //将所有要求认证的Url分Method放入内存,用于每次请求时的权限校验 - String g1ApiSql = "SELECT url,pos,code from sys_api_main where avtag=1 and type='get' and id not like '%}:get'"; - AuthzApiData.GET1_APIS = findDbApis(g1ApiSql); - - String g2ApiSql = "SELECT url,pos,code from sys_api_main where avtag=1 and type='get' and id like '%}:get'"; - AuthzApiData.GET2_APIS = findDbApis(g2ApiSql); - - String postApiSql = "SELECT url,pos,code from sys_api_main where avtag=1 and type='post'"; - AuthzApiData.POST_APIS = findDbApis(postApiSql); - - String putApiSql = "SELECT url,pos,code from sys_api_main where avtag=1 and type='put'"; - AuthzApiData.PUT_APIS = findDbApis(putApiSql); - - String deleteApiSql = "SELECT url,pos,code from sys_api_main where avtag= 1 and type='delete'"; - AuthzApiData.DELETE_APIS = findDbApis(deleteApiSql); - - String patchApiSql = "SELECT url,pos,code from sys_api_main where avtag=1 and type='patch'"; - AuthzApiData.PATCH_APIS = findDbApis(patchApiSql); - - } - - //扫描Controller中的所有Mapping方法,得到需要认证的URL集合 - private List getScanList() { - List list = new ArrayList<>(); - Set> classes = ClassScanner.scanPackage("vben"); - for (Class clazz : classes) { - RequestMapping requestMapping = clazz.getAnnotation(RequestMapping.class); - if (requestMapping != null) { - String classUrl = requestMapping.value()[0]; - //---> /authc 开头的不需要登录, /gen 只要登录就有权限 /sys 需要管理员才有权限 其余通过rbac权限机制判断 -// if (!url.startsWith("authc")&&!url.startsWith("gen")&&!url.startsWith("sys")) { - if (!classUrl.startsWith("authc") && !classUrl.startsWith("gen")) { - Yurl topUrl = new Yurl(); - topUrl.setId(classUrl.replaceAll("/", "-")); - if (!classUrl.startsWith("/")) { - classUrl = "/" + classUrl; - } - if (topUrl.getId().contains("-")) { - topUrl.setPid(topUrl.getId().split("-")[0]); - } - topUrl.setUrl(classUrl); - if(StrUtil.isNotBlank(topUrl.getId())){ - list.add(topUrl); - } - Method[] methods = clazz.getDeclaredMethods(); - for (Method method : methods) { - GetMapping getMapping = method.getAnnotation(GetMapping.class); - if (getMapping != null) { - Yurl yurl = new Yurl(); - String methodUrl = ""; - if (getMapping.value().length > 0) { - methodUrl = getMapping.value()[0]; - yurl.setUrl(topUrl.getUrl() + "/" + methodUrl); - methodUrl = methodUrl.replaceAll("/", "-"); - yurl.setId(topUrl.getId() + "-" + methodUrl + ":get"); - } else { - yurl.setId(topUrl.getId() + ":get"); - yurl.setUrl(topUrl.getUrl()); - } - yurl.setPid(topUrl.getId()); - yurl.setType("get"); - list.add(yurl); - continue; - } - - PostMapping postMapping = method.getAnnotation(PostMapping.class); - if (postMapping != null) { - Yurl yurl = new Yurl(); - String methodUrl = ""; - if (postMapping.value().length > 0) { - methodUrl = postMapping.value()[0]; - yurl.setUrl(topUrl.getUrl() + "/" + methodUrl); - methodUrl = methodUrl.replaceAll("/", "-"); - yurl.setId(topUrl.getId() + "-" + methodUrl + ":post"); - } else { - yurl.setId(topUrl.getId() + ":post"); - yurl.setUrl(topUrl.getUrl()); - } - yurl.setPid(topUrl.getId()); - yurl.setType("post"); - list.add(yurl); - continue; - } - - PutMapping putMapping = method.getAnnotation(PutMapping.class); - if (putMapping != null) { - Yurl yurl = new Yurl(); - String methodUrl = ""; - if (putMapping.value().length > 0) { - methodUrl = putMapping.value()[0]; - yurl.setUrl(topUrl.getUrl() + "/" + methodUrl); - methodUrl = methodUrl.replaceAll("/", "-"); - yurl.setId(topUrl.getId() + "-" + methodUrl + ":put"); - } else { - yurl.setId(topUrl.getId() + ":put"); - yurl.setUrl(topUrl.getUrl()); - } - yurl.setPid(topUrl.getId()); - yurl.setType("put"); - list.add(yurl); - continue; - } - - DeleteMapping deleteMapping = method.getAnnotation(DeleteMapping.class); - if (deleteMapping != null) { - Yurl yurl = new Yurl(); - String methodUrl = ""; - if (deleteMapping.value().length > 0) { - methodUrl = deleteMapping.value()[0]; - yurl.setUrl(topUrl.getUrl() + "/" + methodUrl); - methodUrl = methodUrl.replaceAll("/", "-"); - yurl.setId(topUrl.getId() + "-" + methodUrl + ":delete"); - } else { - yurl.setId(topUrl.getId() + ":delete"); - yurl.setUrl(topUrl.getUrl()); - } - - yurl.setPid(topUrl.getId()); - yurl.setType("delete"); - list.add(yurl); - continue; - } - - PatchMapping patchMapping = method.getAnnotation(PatchMapping.class); - if (patchMapping != null) { - Yurl yurl = new Yurl(); - String methodUrl = ""; - if (patchMapping.value().length > 0) { - methodUrl = patchMapping.value()[0]; - yurl.setUrl(topUrl.getUrl() + "/" + methodUrl); - methodUrl = methodUrl.replaceAll("/", "-"); - yurl.setId(topUrl.getId() + "-" + methodUrl + ":patch"); - } else { - yurl.setId(topUrl.getId() + ":patch"); - yurl.setUrl(topUrl.getUrl()); - } - yurl.setPid(topUrl.getId()); - yurl.setType("patch"); - list.add(yurl); - continue; - } - - } - } - } - } - - //设置请求URL的root根目录,方便后面API权限分配 - Set rootSet = new HashSet<>(); - for (Yurl yurl : list) { - if (yurl.getType() == null && yurl.getPid() != null) { - rootSet.add(yurl.getPid()); - } - } - for (String str : rootSet) { - Yurl yurl = new Yurl(); - yurl.setId(str); - if(StrUtil.isNotBlank(yurl.getId())){ - list.add(yurl); - } - } - return list; - } - - //获取数据库请求的通用方法 - private List findDbApis(String sql) { - return jdbcDao.getTp().query(sql, (rs, rowNum) -> { - Yapi yperm = new Yapi(); - String url = rs.getString("url"); - if (url.endsWith("}")) { - yperm.setUrl(url.substring(0, url.lastIndexOf("/"))); - } else { - yperm.setUrl(url); - } - yperm.setPos(rs.getInt("pos")); - yperm.setCode(rs.getLong("code")); - return yperm; - }); - } - - @Autowired - private JdbcDao jdbcDao; - - -} \ No newline at end of file diff --git a/vben-admin/src/main/java/vben/init/SysOrgInit.java b/vben-admin/src/main/java/vben/init/SysOrgInit.java deleted file mode 100644 index 49af23a..0000000 --- a/vben-admin/src/main/java/vben/init/SysOrgInit.java +++ /dev/null @@ -1,333 +0,0 @@ -package vben.init; - -import cn.hutool.core.util.StrUtil; -import vben.core.module.sys.org.dept.SysOrgDept; -import vben.core.module.sys.org.dept.SysOrgDeptService; -import vben.core.module.sys.org.group.SysOrgGroup; -import vben.core.module.sys.org.group.SysOrgGroupCate; -import vben.core.module.sys.org.group.SysOrgGroupCateService; -import vben.core.module.sys.org.group.SysOrgGroupService; -import vben.core.module.sys.org.post.SysOrgPost; -import vben.core.module.sys.org.post.SysOrgPostService; -import vben.core.module.sys.org.role.*; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.module.sys.org.user.SysOrgUser; -import vben.core.module.sys.org.user.SysOrgUserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; - -//组织架构初始化,可根据application.properties的app.init.orgType配置生成不同的基础数据 -@Component -public class SysOrgInit { - - private String rootId = "1"; - - protected void initRoot(String name,String id) { - if(StrUtil.isNotBlank(id)){ - rootId=id; - } - SysOrgDept root = new SysOrgDept(); - root.setId(rootId); - root.setName(name); - root.setLabel("1"); - root.setOrnum(0); - root.setAvtag(true); - root.setTier("x"+rootId+"x"); - root.setType(1); - deptService.insert(root); - } - - //初始化管理员 - protected void initSa() { - SysOrgUser user = new SysOrgUser(); - user.setId("sa"); - user.setUsnam("sa"); - user.setName("管理员"); - user.setPacod("1"); - user.setAvtag(true); - user.setDept(new SysOrg(rootId)); - user.setTier("x"+rootId+"xsax"); - userService.insert(user); - - SysOrgUser user2 = new SysOrgUser(); - user2.setId("vben"); - user2.setUsnam("vben"); - user2.setName("小维"); - user2.setPacod("123456"); - user2.setAvtag(true); - user2.setDept(new SysOrg(rootId)); - user2.setTier("x"+rootId+"xvbenx"); - userService.insert(user2); - } - - //初始化测试部门与人员 - protected void initTestOrg() { - SysOrgDept d1=new SysOrgDept(); - d1.setId("dept1"); - d1.setName("测试一部"); - d1.setLabel("1"); - d1.setOrnum(9991); - d1.setAvtag(true); - d1.setType(2); - d1.setParent(new SysOrg(rootId)); - d1.setTier("x"+rootId+"xdept1x"); - deptService.insert(d1); - - SysOrgDept d2=new SysOrgDept(); - d2.setId("dept2"); - d2.setName("测试二部"); - d2.setLabel("1"); - d2.setOrnum(9992); - d2.setAvtag(true); - d2.setType(2); - d2.setParent(new SysOrg(rootId)); - d2.setTier("x"+rootId+"xdept2x"); - deptService.insert(d2); - - List userList=new ArrayList<>(); - SysOrgUser u1 = new SysOrgUser(); - u1.setId("l1"); - u1.setUsnam("l1"); - u1.setName("刘一"); - u1.setPacod("1"); - u1.setOrnum(1); - u1.setAvtag(true); - u1.setDept(new SysOrg("dept1")); - u1.setTier("x"+rootId+"xdept1xl1x"); - userList.add(u1); - - SysOrgUser u2 = new SysOrgUser(); - u2.setId("c2"); - u2.setUsnam("c2"); - u2.setName("陈二"); - u2.setPacod("1"); - u2.setOrnum(2); - u2.setAvtag(true); - u2.setDept(new SysOrg("dept1")); - u2.setTier("x"+rootId+"xdept1xc2x"); - userList.add(u2); - - SysOrgUser u3 = new SysOrgUser(); - u3.setId("z3"); - u3.setUsnam("z3"); - u3.setName("张三"); - u3.setPacod("1"); - u3.setOrnum(3); - u3.setAvtag(true); - u3.setDept(new SysOrg("dept1")); - u3.setTier("x"+rootId+"xdept1xz3x"); - userList.add(u3); - - SysOrgUser u4 = new SysOrgUser(); - u4.setId("l4"); - u4.setUsnam("l4"); - u4.setName("李四"); - u4.setPacod("1"); - u4.setOrnum(4); - u4.setAvtag(true); - u4.setDept(new SysOrg("dept1")); - u4.setTier("x"+rootId+"xdept1xl4x"); - userList.add(u4); - - SysOrgUser u5 = new SysOrgUser(); - u5.setId("w5"); - u5.setUsnam("w5"); - u5.setName("王五"); - u5.setPacod("1"); - u5.setOrnum(5); - u5.setAvtag(true); - u5.setDept(new SysOrg("dept2")); - u5.setTier("x"+rootId+"xdept2xw5x"); - userList.add(u5); - - SysOrgUser u6 = new SysOrgUser(); - u6.setId("z6"); - u6.setUsnam("z6"); - u6.setName("赵六"); - u6.setPacod("1"); - u6.setOrnum(6); - u6.setAvtag(true); - u6.setDept(new SysOrg("dept2")); - u6.setTier("x"+rootId+"xdept2xz6x"); - userList.add(u6); - - SysOrgUser u7 = new SysOrgUser(); - u7.setId("s7"); - u7.setUsnam("s7"); - u7.setName("孙七"); - u7.setPacod("1"); - u7.setOrnum(7); - u7.setAvtag(true); - u7.setDept(new SysOrg("dept2")); - u7.setTier("x"+rootId+"xdept2xs7x"); - userList.add(u7); - - SysOrgUser u8 = new SysOrgUser(); - u8.setId("z8"); - u8.setUsnam("z8"); - u8.setName("周八"); - u8.setPacod("1"); - u8.setOrnum(8); - u8.setAvtag(true); - u8.setDept(new SysOrg("dept2")); - u8.setTier("x"+rootId+"xdept2xz8x"); - userList.add(u8); - - userService.insertAll(userList); - - SysOrgPost p1 = new SysOrgPost(); - p1.setId("post1"); - p1.setName("一部负责人"); - p1.setOrnum(0); - p1.setAvtag(true); - p1.setDept(new SysOrg("dept1")); - p1.setTier("x"+rootId+"xdept1xpost1x"); - p1.setUsers(new ArrayList<>()); - p1.getUsers().add(new SysOrg("l1","刘一",8)); - postService.insert(p1); - - SysOrgPost p2 = new SysOrgPost(); - p2.setId("post2"); - p2.setName("二部负责人"); - p2.setOrnum(0); - p2.setAvtag(true); - p2.setDept(new SysOrg("dept2")); - p2.setTier("x"+rootId+"xdept2xpost2x"); - p2.setUsers(new ArrayList<>()); - p2.getUsers().add(new SysOrg("w5","王五",8)); - p2.getUsers().add(new SysOrg("z6","赵六",8)); - postService.insert(p2); - - SysOrgGroupCate gcate = new SysOrgGroupCate(); - gcate.setId("gcate"); - gcate.setName("测试群组分类"); - gcate.setAvtag(true); - gcate.setOrnum(1); - gcate.setCrman(new SysOrg("sa")); - groupCateService.insert(gcate); - - SysOrgGroup g1 = new SysOrgGroup(); - g1.setId("group1"); - g1.setName("张三李四组"); - g1.setOrnum(1); - g1.setAvtag(true); - g1.setCatid("gcate"); - g1.setMembers(new ArrayList<>()); - g1.getMembers().add(new SysOrg("z3","张三",8)); - g1.getMembers().add(new SysOrg("l4","李四",8)); - groupService.insert(g1); - - SysOrgGroup g2 = new SysOrgGroup(); - g2.setId("group2"); - g2.setName("用户岗位部门混合组"); - g2.setOrnum(2); - g2.setAvtag(true); - g2.setCatid("gcate"); - g2.setMembers(new ArrayList<>()); - g2.getMembers().add(new SysOrg("c2","陈二",8)); - g2.getMembers().add(new SysOrg("post1","一部负责人",4)); - g2.getMembers().add(new SysOrg("dept2","测试二部",2)); - groupService.insert(g2); - - SysOrgRoleTree rtree1 = new SysOrgRoleTree(); - rtree1.setId("rtree1"); - rtree1.setName("业务角色树"); - rtree1.setOrnum(1); - rtree1.setAvtag(true); - rtree1.setRoles(new ArrayList<>()); - rtree1.getRoles().add(new SysOrgRole("role1","分管领导",1)); - rtree1.getRoles().add(new SysOrgRole("role2","部门领导",2)); - rtree1.setCrman(new SysOrg("sa")); - roleTreeService.insertx(rtree1); - - SysOrgRoleNode rnode1 = new SysOrgRoleNode(); - rnode1.setId("rnode1"); - rnode1.setName("一部分管领导"); - rnode1.setTreid("rtree1"); - rnode1.setOrnum(1); - rnode1.setAvtag(true); - rnode1.setMember(new SysOrg("post1")); - rnode1.setTier("xrnode1x"); - roleNodeService.insert(rnode1); - - SysOrgRoleNode rnode11 = new SysOrgRoleNode(); - rnode11.setId("rnode11"); - rnode11.setName("一部部门领导"); - rnode11.setTreid("rtree1"); - rnode11.setOrnum(1); - rnode11.setAvtag(true); - rnode11.setMember(new SysOrg("c2")); - rnode11.setParent(new SysOrgRoleNode("rnode1")); - rnode11.setTier("xrnode1xrnode11x"); - roleNodeService.insert(rnode11); - - SysOrgRoleNode rnode111 = new SysOrgRoleNode(); - rnode111.setId("rnode111"); - rnode111.setName("一部人员"); - rnode111.setTreid("rtree1"); - rnode111.setOrnum(1); - rnode111.setAvtag(true); - rnode111.setMember(new SysOrg("dept1")); - rnode111.setParent(new SysOrgRoleNode("rnode11")); - rnode111.setTier("xrnode1xrnode11xrnode111x"); - roleNodeService.insert(rnode111); - - SysOrgRoleNode rnode2 = new SysOrgRoleNode(); - rnode2.setId("rnode2"); - rnode2.setName("二部分管领导"); - rnode2.setTreid("rtree1"); - rnode2.setOrnum(2); - rnode2.setAvtag(true); - rnode2.setMember(new SysOrg("post2")); - rnode2.setTier("xrnode2x"); - roleNodeService.insert(rnode2); - - SysOrgRoleNode rnode21 = new SysOrgRoleNode(); - rnode21.setId("rnode21"); - rnode21.setName("二部部门领导"); - rnode21.setTreid("rtree1"); - rnode21.setOrnum(1); - rnode21.setAvtag(true); - rnode21.setMember(new SysOrg("z6")); - rnode21.setParent(new SysOrgRoleNode("rnode2")); - rnode21.setTier("xrnode2xrnode21x"); - roleNodeService.insert(rnode21); - - SysOrgRoleNode rnode211 = new SysOrgRoleNode(); - rnode211.setId("rnode211"); - rnode211.setName("二部人员"); - rnode211.setTreid("rtree1"); - rnode211.setOrnum(1); - rnode211.setAvtag(true); - rnode211.setMember(new SysOrg("dept2")); - rnode211.setParent(new SysOrgRoleNode("rnode21")); - rnode211.setTier("xrnode2xrnode21xrnode211x"); - roleNodeService.insert(rnode211); - - } - - @Autowired - private SysOrgRoleNodeService roleNodeService; - - @Autowired - private SysOrgRoleTreeService roleTreeService; - - @Autowired - private SysOrgGroupCateService groupCateService; - - @Autowired - private SysOrgGroupService groupService; - - @Autowired - private SysOrgDeptService deptService; - - @Autowired - private SysOrgUserService userService; - - @Autowired - private SysOrgPostService postService; - -} diff --git a/vben-admin/src/main/java/vben/init/SysPortalVbenInit.java b/vben-admin/src/main/java/vben/init/SysPortalVbenInit.java deleted file mode 100644 index 6844b7b..0000000 --- a/vben-admin/src/main/java/vben/init/SysPortalVbenInit.java +++ /dev/null @@ -1,981 +0,0 @@ -package vben.init; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import vben.core.module.sys.portal.main.SysPortalMain; -import vben.core.module.sys.portal.main.SysPortalMainService; -import vben.core.module.sys.portal.menu.SysPortalMenu; -import vben.core.module.sys.portal.menu.SysPortalMenuService; - -//系统门户与菜单初始化 -@Component -public class SysPortalVbenInit { - - //门户初始化 - protected void initPortal() { - SysPortalMain sysPortalMain=new SysPortalMain(); - sysPortalMain.setId("sys"); - sysPortalMain.setOrnum(0); - sysPortalMain.setName("管理员门户"); - mainService.save(sysPortalMain); - - SysPortalMain sysPortalMain2=new SysPortalMain(); - sysPortalMain2.setId("sa"); - sysPortalMain2.setOrnum(1); - sysPortalMain2.setName("营销门户"); - mainService.save(sysPortalMain2); - } - - //管理员门户的菜单初始化 - protected void initSysMenu() { -// SysPortalMenu home = new SysPortalMenu(); -// home.setId("Home"); -// home.setName("首页"); -// home.setCode("Home"); -// home.setComp("/home/index"); -// home.setPath("/home"); -// home.setOrnum(0); -// home.setIcon("ele-House"); -// home.setAvtag(true); -// home.setShtag(true); -// home.setType("M"); -// home.setPorid("sys"); -// menuService.insert(home); - - //-----------------系统管理-------------------- - SysPortalMenu menu1 = new SysPortalMenu(); - menu1.setId("Sys"); - menu1.setName("系统管理"); - menu1.setCode("Sys"); - menu1.setComp("LAYOUT"); - menu1.setPath("/sys"); - menu1.setRedirect("/sys/org/user"); - menu1.setOrnum(1); - menu1.setIcon("ant-design:setting-outlined"); - menu1.setAvtag(true); - menu1.setShtag(true); - menu1.setType("D"); - menu1.setPorid("sys"); - menuService.insert(menu1); - - SysPortalMenu menu11 = new SysPortalMenu(); - menu11.setId("SysOrg"); - menu11.setName("组织架构"); - menu11.setCode("SysOrg"); - menu11.setComp("LAYOUT"); - menu11.setPath("/sys/org"); - menu11.setRedirect("/sys/org/user"); - menu11.setOrnum(1); - menu11.setIcon("ant-design:partition-outlined"); - menu11.setPid("Sys"); - menu11.setAvtag(true); - menu11.setShtag(true); - menu11.setType("D"); - menu11.setPorid("sys"); - menuService.insert(menu11); - - SysPortalMenu menu111 = new SysPortalMenu(); - menu111.setId("SysOrgDept"); - menu111.setName("部门管理"); - menu111.setCode("SysOrgDept"); - menu111.setPath("/sys/org/dept"); - menu111.setComp("/sys/org/dept/index"); - menu111.setOrnum(10); - menu111.setPid("SysOrg"); - menu111.setCatag(true); - menu111.setAvtag(true); - menu111.setShtag(true); - menu111.setType("M"); - menu111.setPorid("sys"); - menuService.insert(menu111); - - SysPortalMenu menu111a = new SysPortalMenu(); - menu111a.setId("SysOrgDeptEdit"); - menu111a.setName("部门编辑"); - menu111a.setCode("SysOrgDeptEdit"); - menu111a.setPath("/sys/org/dept/edit"); - menu111a.setComp("/sys/org/dept/edit"); - menu111a.setOrnum(11); - menu111a.setPid("SysOrg"); - menu111a.setCatag(true); - menu111a.setAvtag(true); - menu111a.setShtag(false); - menu111a.setType("M"); - menu111a.setPorid("sys"); - menuService.insert(menu111a); - - SysPortalMenu menu112 = new SysPortalMenu(); - menu112.setId("SysOrgUser"); - menu112.setName("用户管理"); - menu112.setCode("SysOrgUser"); - menu112.setPath("/sys/org/user"); - menu112.setComp("/sys/org/user/index"); - menu112.setOrnum(20); - menu112.setPid("SysOrg"); - menu112.setCatag(true); - menu112.setAvtag(true); - menu112.setShtag(true); - menu112.setType("M"); - menu112.setPorid("sys"); - menuService.insert(menu112); - - SysPortalMenu menu112a = new SysPortalMenu(); - menu112a.setId("SysOrgUserEdit"); - menu112a.setName("用户编辑"); - menu112a.setCode("SysOrgUserEdit"); - menu112a.setPath("/sys/org/user/edit"); - menu112a.setComp("/sys/org/user/edit"); - menu112a.setOrnum(21); - menu112a.setPid("SysOrg"); - menu112a.setCatag(true); - menu112a.setAvtag(true); - menu112a.setShtag(false); - menu112a.setType("M"); - menu112a.setPorid("sys"); - menuService.insert(menu112a); - - SysPortalMenu menu113 = new SysPortalMenu(); - menu113.setId("SysOrgPost"); - menu113.setName("岗位管理"); - menu113.setCode("SysOrgPost"); - menu113.setPath("/sys/org/post"); - menu113.setComp("/sys/org/post/index"); - menu113.setOrnum(31); - menu113.setPid("SysOrg"); - menu113.setCatag(true); - menu113.setAvtag(true); - menu113.setShtag(true); - menu113.setType("M"); - menu113.setPorid("sys"); - menuService.insert(menu113); - - SysPortalMenu menu113a = new SysPortalMenu(); - menu113a.setId("SysOrgPostEdit"); - menu113a.setName("岗位编辑"); - menu113a.setCode("SysOrgPostEdit"); - menu113a.setPath("/sys/org/post/edit"); - menu113a.setComp("/sys/org/post/edit"); - menu113a.setOrnum(32); - menu113a.setPid("SysOrg"); - menu113a.setCatag(true); - menu113a.setAvtag(true); - menu113a.setShtag(false); - menu113a.setType("M"); - menu113a.setPorid("sys"); - menuService.insert(menu113a); - - SysPortalMenu menu114 = new SysPortalMenu(); - menu114.setId("SysOrgGroup"); - menu114.setName("群组管理"); - menu114.setCode("SysOrgGroup"); - menu114.setPath("/sys/org/group"); - menu114.setComp("/sys/org/group/index"); - menu114.setOrnum(40); - menu114.setPid("SysOrg"); - menu114.setCatag(true); - menu114.setAvtag(true); - menu114.setShtag(true); - menu114.setType("M"); - menu114.setPorid("sys"); - menuService.insert(menu114); - - SysPortalMenu menu114a = new SysPortalMenu(); - menu114a.setId("SysOrgGroupEdit"); - menu114a.setName("群组编辑"); - menu114a.setCode("SysOrgGroupEdit"); - menu114a.setPath("/sys/org/group/edit"); - menu114a.setComp("/sys/org/group/edit"); - menu114a.setOrnum(41); - menu114a.setPid("SysOrg"); - menu114a.setCatag(true); - menu114a.setAvtag(true); - menu114a.setShtag(false); - menu114a.setType("M"); - menu114a.setPorid("sys"); - menuService.insert(menu114a); - - SysPortalMenu menu12 = new SysPortalMenu(); - menu12.setId("SysApi"); - menu12.setName("接口管理"); - menu12.setCode("SysApi"); - menu12.setComp("LAYOUT"); - menu12.setPath("/sys/api"); - menu12.setRedirect("/sys/api/main"); - menu12.setOrnum(2); - menu12.setIcon("ant-design:safety-certificate-outlined"); - menu12.setPid("Sys"); - menu12.setAvtag(true); - menu12.setShtag(true); - menu12.setType("D"); - menu12.setPorid("sys"); - menuService.insert(menu12); - - SysPortalMenu menu121 = new SysPortalMenu(); - menu121.setId("SysApiMain"); - menu121.setName("接口清单"); - menu121.setCode("SysApiMain"); - menu121.setPath("/sys/api/main"); - menu121.setComp("/sys/api/main/index"); - menu121.setOrnum(10); - menu121.setPid("SysApi"); - menu121.setCatag(true); - menu121.setAvtag(true); - menu121.setShtag(true); - menu121.setType("M"); - menu121.setPorid("sys"); - menuService.insert(menu121); - - SysPortalMenu menu121a = new SysPortalMenu(); - menu121a.setId("SysApiMainEdit"); - menu121a.setName("接口编辑"); - menu121a.setCode("SysApiMainEdit"); - menu121a.setPath("/sys/api/main/edit"); - menu121a.setComp("/sys/api/main/edit"); - menu121a.setOrnum(11); - menu121a.setPid("SysApi"); - menu121a.setCatag(true); - menu121a.setAvtag(true); - menu121a.setShtag(false); - menu121a.setType("M"); - menu121a.setPorid("sys"); - menuService.insert(menu121a); - -// SysPortalMenu menu122 = new SysPortalMenu(); -// menu122.setId("SysApiMainDoc"); -// menu122.setName("接口文档"); -// menu122.setCode("SysApiMainDoc"); -// menu122.setPath("/sys/api/role/doc"); -// //menu122.setExtag(true);//外链 -// menu122.setIftag(true); -// menu122.setComp("http://localhost:5000/doc.html"); -// menu122.setOrnum(12); -// menu122.setPid("SysApi"); -// menu122.setCatag(false); -// menu122.setAvtag(true); -// menu122.setShtag(true); -// menu122.setType("M"); -// menu122.setPorid("sys"); -// menuService.insert(menu122); - - SysPortalMenu menu123 = new SysPortalMenu(); - menu123.setId("SysApiRole"); - menu123.setName("接口角色"); - menu123.setCode("SysApiRole"); - menu123.setPath("/sys/api/role"); - menu123.setComp("/sys/api/role/index"); - menu123.setOrnum(20); - menu123.setPid("SysApi"); - menu123.setCatag(true); - menu123.setAvtag(true); - menu123.setShtag(true); - menu123.setType("M"); - menu123.setPorid("sys"); - menuService.insert(menu123); - - SysPortalMenu menu123a = new SysPortalMenu(); - menu123a.setId("SysApiRoleEdit"); - menu123a.setName("角色编辑"); - menu123a.setCode("SysApiRoleEdit"); - menu123a.setPath("/sys/api/role/edit"); - menu123a.setComp("/sys/api/role/edit"); - menu123a.setOrnum(21); - menu123a.setPid("SysApi"); - menu123a.setCatag(true); - menu123a.setAvtag(true); - menu123a.setShtag(false); - menu123a.setType("M"); - menu123a.setPorid("sys"); - menuService.insert(menu123a); - - SysPortalMenu menu13 = new SysPortalMenu(); - menu13.setId("SysPortal"); - menu13.setName("菜单管理"); - menu13.setCode("SysPortal"); - menu13.setComp("LAYOUT"); - menu13.setPath("/sys/portal"); - menu13.setRedirect("/sys/portal/main"); - menu13.setOrnum(3); - menu13.setIcon("ant-design:profile-outlined"); - menu13.setPid("Sys"); - menu13.setAvtag(true); - menu13.setShtag(true); - menu13.setType("D"); - menu13.setPorid("sys"); - menuService.insert(menu13); - -// SysPortalMenu menu131 = new SysPortalMenu(); -// menu131.setId("SysPortalMain"); -// menu131.setName("门户清单"); -// menu131.setCode("SysPortalMain"); -// menu131.setPath("/sys/portal/main"); -// menu131.setComp("/sys/portal/main/index"); -// menu131.setOrnum(10); -// menu131.setIcon("ele-Tickets"); -// menu131.setPid("SysPortal"); -// menu131.setCatag(true); -// menu131.setAvtag(true); -// menu131.setShtag(true); -// menu131.setType("M"); -// menu131.setPorid("sys"); -// menuService.insert(menu131); - -// SysPortalMenu menu131a = new SysPortalMenu(); -// menu131a.setId("SysPortalMainEdit"); -// menu131a.setName("门户编辑"); -// menu131a.setCode("SysPortalMainEdit"); -// menu131a.setPath("/sys/portal/main/edit"); -// menu131a.setComp("/sys/portal/main/edit"); -// menu131a.setOrnum(11); -// menu131a.setIcon("ele-Tickets"); -// menu131a.setPid("SysPortal"); -// menu131a.setCatag(true); -// menu131a.setAvtag(true); -// menu131a.setShtag(false); -// menu131a.setType("M"); -// menu131a.setPorid("sys"); -// menuService.insert(menu131a); - - SysPortalMenu menu132 = new SysPortalMenu(); - menu132.setId("SysPortalMenu"); - menu132.setName("菜单列表"); - menu132.setCode("SysPortalMenu"); - menu132.setPath("/sys/portal/menu"); - menu132.setComp("/sys/portal/menu/index"); - menu132.setOrnum(12); - menu132.setPid("SysPortal"); - menu132.setCatag(true); - menu132.setAvtag(true); - menu132.setShtag(true); - menu132.setType("M"); - menu132.setPorid("sys"); - menuService.insert(menu132); - - SysPortalMenu menu132a = new SysPortalMenu(); - menu132a.setId("SysPortalMenuEdit"); - menu132a.setName("菜单编辑"); - menu132a.setCode("SysPortalMenuEdit"); - menu132a.setPath("/sys/portal/menu/edit"); - menu132a.setComp("/sys/portal/menu/edit"); - menu132a.setOrnum(13); - menu132a.setPid("SysPortal"); - menu132a.setCatag(true); - menu132a.setAvtag(true); - menu132a.setShtag(false); - menu132a.setType("M"); - menu132a.setPorid("sys"); - menuService.insert(menu132a); - - SysPortalMenu menu133 = new SysPortalMenu(); - menu133.setId("SysPortalRole"); - menu133.setName("菜单角色"); - menu133.setCode("SysPortalRole"); - menu133.setPath("/sys/portal/role"); - menu133.setComp("/sys/portal/role/index"); - menu133.setOrnum(14); - menu133.setPid("SysPortal"); - menu133.setCatag(true); - menu133.setAvtag(true); - menu133.setShtag(true); - menu133.setType("M"); - menu133.setPorid("sys"); - menuService.insert(menu133); - - SysPortalMenu menu133a = new SysPortalMenu(); - menu133a.setId("SysPortalRoleEdit"); - menu133a.setName("角色编辑"); - menu133a.setCode("SysPortalRoleEdit"); - menu133a.setPath("/sys/portal/role/edit"); - menu133a.setComp("/sys/portal/role/edit"); - menu133a.setOrnum(15); - menu133a.setPid("SysPortal"); - menu133a.setCatag(true); - menu133a.setAvtag(true); - menu133a.setShtag(false); - menu133a.setType("M"); - menu133a.setPorid("sys"); - menuService.insert(menu133a); - - //-----------------监控中心-------------------- - SysPortalMenu menu2 = new SysPortalMenu(); - menu2.setId("Mon"); - menu2.setName("监控中心"); - menu2.setCode("Mon"); - menu2.setComp("LAYOUT"); - menu2.setPath("/mon"); - menu2.setRedirect("/mon/server/main"); - menu2.setOrnum(2); - menu2.setIcon("ant-design:fund-outlined"); - menu2.setAvtag(true); - menu2.setShtag(true); - menu2.setType("D"); - menu2.setPorid("sys"); - menuService.insert(menu2); - - SysPortalMenu menu211 = new SysPortalMenu(); - menu211.setId("MonOnlineUser"); - menu211.setName("在线用户"); - menu211.setCode("MonOnlineUser"); - menu211.setPath("/mon/online/user"); - menu211.setComp("/mon/online/user/index"); - menu211.setOrnum(211); - menu211.setPid("Mon"); - menu211.setCatag(true); - menu211.setAvtag(true); - menu211.setShtag(true); - menu211.setType("M"); - menu211.setPorid("sys"); - menuService.insert(menu211); - - SysPortalMenu menu221 = new SysPortalMenu(); - menu221.setId("MonLogLogin"); - menu221.setName("登录日志"); - menu221.setCode("MonLogLogin"); - menu221.setPath("/mon/log/login"); - menu221.setComp("/mon/log/login/index"); - menu221.setOrnum(221); - menu221.setPid("Mon"); - menu221.setCatag(true); - menu221.setAvtag(true); - menu221.setShtag(true); - menu221.setType("M"); - menu221.setPorid("sys"); - menuService.insert(menu221); - - SysPortalMenu menu222 = new SysPortalMenu(); - menu222.setId("MonLogOper"); - menu222.setName("操作日志"); - menu222.setCode("MonLogOper"); - menu222.setPath("/mon/log/oper"); - menu222.setComp("/mon/log/oper/index"); - menu222.setOrnum(222); - menu222.setPid("Mon"); - menu222.setCatag(true); - menu222.setAvtag(true); - menu222.setShtag(true); - menu222.setType("M"); - menu222.setPorid("sys"); - menuService.insert(menu222); - - SysPortalMenu menu223 = new SysPortalMenu(); - menu223.setId("MonLogError"); - menu223.setName("错误日志"); - menu223.setCode("MonLogError"); - menu223.setPath("/mon/log/error"); - menu223.setComp("/mon/log/error/index"); - menu223.setOrnum(223); - menu223.setPid("Mon"); - menu223.setCatag(true); - menu223.setAvtag(true); - menu223.setShtag(true); - menu223.setType("M"); - menu223.setPorid("sys"); - menuService.insert(menu223); - - SysPortalMenu menu261 = new SysPortalMenu(); - menu261.setId("MonJobMain"); - menu261.setName("定时任务"); - menu261.setCode("MonJobMain"); - menu261.setPath("/mon/job/main"); - menu261.setComp("/mon/job/main/index"); - menu261.setOrnum(261); - menu261.setPid("Mon"); - menu261.setCatag(true); - menu261.setAvtag(true); - menu261.setShtag(true); - menu261.setType("M"); - menu261.setPorid("sys"); - menuService.insert(menu261); - - SysPortalMenu menu262 = new SysPortalMenu(); - menu262.setId("MonJobMainEdit"); - menu262.setName("任务编辑"); - menu262.setCode("MonJobMainEdit"); - menu262.setPath("/mon/job/main/edit"); - menu262.setComp("/mon/job/main/edit"); - menu262.setOrnum(262); - menu262.setPid("Mon"); - menu262.setCatag(true); - menu262.setAvtag(true); - menu262.setShtag(false); - menu262.setType("M"); - menu262.setPorid("sys"); - menuService.insert(menu262); - - SysPortalMenu menu263 = new SysPortalMenu(); - menu263.setId("MonJobLog"); - menu263.setName("任务日志"); - menu263.setCode("MonJobLog"); - menu263.setPath("/mon/job/log"); - menu263.setComp("/mon/job/log/index"); - menu263.setOrnum(263); - menu263.setPid("Mon"); - menu263.setCatag(true); - menu263.setAvtag(true); - menu263.setShtag(false); - menu263.setType("M"); - menu263.setPorid("sys"); - menuService.insert(menu263); - -// SysPortalMenu menu271 = new SysPortalMenu(); -// menu271.setId("MonServerMain"); -// menu271.setName("服务监控"); -// menu271.setCode("MonServerMain"); -// menu271.setPath("/mon/server/main"); -// menu271.setComp("/mon/server/main/show"); -// menu271.setOrnum(271); -// menu271.setPid("Mon"); -// menu271.setCatag(false); -// menu271.setAvtag(true); -// menu271.setShtag(true); -// menu271.setType("M"); -// menu271.setPorid("sys"); -// menuService.insert(menu271); -// -// SysPortalMenu menu281 = new SysPortalMenu(); -// menu281.setId("MonCacheMain"); -// menu281.setName("缓存监控"); -// menu281.setCode("MonCacheMain"); -// menu281.setPath("/mon/cache/main"); -// menu281.setComp("/mon/cache/main/show"); -// menu281.setOrnum(281); -// menu281.setPid("Mon"); -// menu281.setCatag(false); -// menu281.setAvtag(true); -// menu281.setShtag(true); -// menu281.setType("M"); -// menu281.setPorid("sys"); -// menuService.insert(menu281); -// -// SysPortalMenu menu291 = new SysPortalMenu(); -// menu291.setId("MonDbMain"); -// menu291.setName("数据监控"); -// menu291.setCode("MonDbMain"); -// menu291.setPath("/mon/db/main"); -// menu291.setComp("http://localhost:5000/druid/sql.html"); -// menu291.setOrnum(291); -// menu291.setPid("Mon"); -// menu291.setIftag(true); -// //menu122.setExtag(true);//外链 -// menu291.setCatag(false); -// menu291.setAvtag(true); -// menu291.setShtag(true); -// menu291.setType("M"); -// menu291.setPorid("sys"); -// menuService.insert(menu291); - - //-----------------辅助工具-------------------- - SysPortalMenu menu3 = new SysPortalMenu(); - menu3.setId("Ass"); - menu3.setName("辅助工具"); - menu3.setCode("Ass"); - menu3.setComp("LAYOUT"); - menu3.setPath("/ass"); - menu3.setRedirect("/ass/dict/main"); - menu3.setOrnum(3); - menu3.setIcon("ant-design:tool-outlined"); - menu3.setAvtag(true); - menu3.setShtag(true); - menu3.setType("D"); - menu3.setPorid("sys"); - menuService.insert(menu3); - -// SysPortalMenu menu311 = new SysPortalMenu(); -// menu311.setId("AssCogeForm"); -// menu311.setName("表单设计"); -// menu311.setCode("AssCogeForm"); -// menu311.setPath("/ass/coge/form"); -// menu311.setComp("/ass/coge/form/index"); -// menu311.setOrnum(311); -// menu311.setPid("Ass"); -// menu311.setCatag(false); -// menu311.setAvtag(true); -// menu311.setShtag(true); -// menu311.setType("M"); -// menu311.setPorid("sys"); -// menuService.insert(menu311); -// -// SysPortalMenu menu312 = new SysPortalMenu(); -// menu312.setId("AssCogeFormEdit"); -// menu312.setName("表单设计编辑"); -// menu312.setCode("AssCogeFormEdit"); -// menu312.setPath("/ass/coge/form/edit"); -// menu312.setComp("/ass/coge/form/edit"); -// menu312.setOrnum(312); -// menu312.setPid("Ass"); -// menu312.setCatag(false); -// menu312.setAvtag(true); -// menu312.setShtag(false); -// menu312.setType("M"); -// menu312.setPorid("sys"); -// menuService.insert(menu312); - -// SysPortalMenu menu341 = new SysPortalMenu(); -// menu341.setId("AssCogeTable"); -// menu341.setName("代码生成"); -// menu341.setCode("AssCogeTable"); -// menu341.setPath("/ass/coge/table"); -// menu341.setComp("/ass/coge/table/index"); -// menu341.setOrnum(341); -// menu341.setPid("Ass"); -// menu341.setCatag(false); -// menu341.setAvtag(true); -// menu341.setShtag(true); -// menu341.setType("M"); -// menu341.setPorid("sys"); -// menuService.insert(menu341); -// -// SysPortalMenu menu342 = new SysPortalMenu(); -// menu342.setId("AssCogeTableEdit"); -// menu342.setName("代码生成"); -// menu342.setCode("AssCogeTableEdit"); -// menu342.setPath("/ass/coge/table/edit"); -// menu342.setComp("/ass/coge/table/edit"); -// menu342.setOrnum(342); -// menu342.setPid("Ass"); -// menu342.setCatag(false); -// menu342.setAvtag(true); -// menu342.setShtag(false); -// menu342.setType("M"); -// menu342.setPorid("sys"); -// menuService.insert(menu342); - - SysPortalMenu menu351 = new SysPortalMenu(); - menu351.setId("AssDictMain"); - menu351.setName("数据字典"); - menu351.setCode("AssDictMain"); - menu351.setPath("/ass/dict/main"); - menu351.setComp("/ass/dict/main/index"); - menu351.setOrnum(351); - menu351.setPid("Ass"); - menu351.setCatag(false); - menu351.setAvtag(true); - menu351.setShtag(true); - menu351.setType("M"); - menu351.setPorid("sys"); - menuService.insert(menu351); - - SysPortalMenu menu352 = new SysPortalMenu(); - menu352.setId("AssDictData"); - menu352.setName("字典数据"); - menu352.setCode("AssDictData"); - menu352.setPath("/ass/dict/data"); - menu352.setComp("/ass/dict/data/index"); - menu352.setOrnum(352); - menu352.setPid("Ass"); - menu352.setCatag(false); - menu352.setAvtag(true); - menu352.setShtag(false); - menu352.setType("M"); - menu352.setPorid("sys"); - menuService.insert(menu352); - - SysPortalMenu menu361 = new SysPortalMenu(); - menu361.setId("AssNumMain"); - menu361.setName("编号策略"); - menu361.setCode("AssNumMain"); - menu361.setPath("/ass/num/main"); - menu361.setComp("/ass/num/main/index"); - menu361.setOrnum(361); - menu361.setPid("Ass"); - menu361.setCatag(false); - menu361.setAvtag(true); - menu361.setShtag(true); - menu361.setType("M"); - menu361.setPorid("sys"); - menuService.insert(menu361); - -// SysPortalMenu menu371 = new SysPortalMenu(); -// menu371.setId("AssAddrMain"); -// menu371.setName("省市区县"); -// menu371.setCode("AssAddrMain"); -// menu371.setPath("/ass/addr/main"); -// menu371.setComp("/ass/addr/main/index"); -// menu371.setOrnum(371); -// menu371.setPid("Ass"); -// menu371.setCatag(false); -// menu371.setAvtag(true); -// menu371.setShtag(true); -// menu371.setType("M"); -// menu371.setPorid("sys"); -// menuService.insert(menu371); - - //-----------------数字办公-------------------- -// SysPortalMenu menu4 = new SysPortalMenu(); -// menu4.setId("Oa"); -// menu4.setName("数字办公"); -// menu4.setCode("Oa"); -// menu4.setComp("LAYOUT"); -// menu4.setPath("/oa"); -// menu4.setRedirect("/oa/flow/temp"); -// menu4.setOrnum(4); -// menu4.setIcon("ele-Menu"); -// menu4.setAvtag(true); -// menu4.setShtag(true); -// menu4.setType("D"); -// menu4.setPorid("sys"); -// menuService.insert(menu4); - - SysPortalMenu menu41 = new SysPortalMenu(); - menu41.setId("OaFlow"); - menu41.setName("流程管理"); - menu41.setCode("OaFlow"); - menu41.setComp("LAYOUT"); - menu41.setPath("/oa/flow"); - menu41.setRedirect("/oa/flow/temp"); - menu41.setOrnum(4); - menu41.setIcon("ant-design:retweet-outlined"); - menu41.setAvtag(true); - menu41.setShtag(true); - menu41.setType("D"); - menu41.setPorid("sys"); - menuService.insert(menu41); - - SysPortalMenu menu411 = new SysPortalMenu(); - menu411.setId("OaFlowCate"); - menu411.setName("流程分类"); - menu411.setCode("OaFlowCate"); - menu411.setPath("/oa/flow/cate"); - menu411.setComp("/oa/flow/cate/index"); - menu411.setOrnum(411); - menu411.setIcon("ele-Tickets"); - menu411.setPid("OaFlow"); - menu411.setCatag(true); - menu411.setAvtag(true); - menu411.setShtag(true); - menu411.setType("M"); - menu411.setPorid("sys"); - menuService.insert(menu411); - - SysPortalMenu menu411a = new SysPortalMenu(); - menu411a.setId("OaFlowCateEdit"); - menu411a.setName("流程分类编辑"); - menu411a.setCode("OaFlowCateEdit"); - menu411a.setPath("/oa/flow/cate/edit"); - menu411a.setComp("/oa/flow/cate/edit"); - menu411a.setOrnum(4111); - menu411a.setIcon("ele-Tickets"); - menu411a.setPid("OaFlow"); - menu411a.setCatag(true); - menu411a.setAvtag(true); - menu411a.setShtag(false); - menu411a.setType("M"); - menu411a.setPorid("sys"); - menuService.insert(menu411a); - - SysPortalMenu menu412 = new SysPortalMenu(); - menu412.setId("OaFlowTemp"); - menu412.setName("流程模板"); - menu412.setCode("OaFlowTemp"); - menu412.setPath("/oa/flow/temp"); - menu412.setComp("/oa/flow/temp/index"); - menu412.setOrnum(412); - menu412.setIcon("ele-Tickets"); - menu412.setPid("OaFlow"); - menu412.setCatag(true); - menu412.setAvtag(true); - menu412.setShtag(true); - menu412.setType("M"); - menu412.setPorid("sys"); - menuService.insert(menu412); - - SysPortalMenu menu412a = new SysPortalMenu(); - menu412a.setId("OaFlowTempEdit"); - menu412a.setName("流程模板编辑"); - menu412a.setCode("OaFlowTempEdit"); - menu412a.setPath("/oa/flow/temp/edit"); - menu412a.setComp("/oa/flow/temp/edit"); - menu412a.setOrnum(4121); - menu412a.setIcon("ele-Tickets"); - menu412a.setPid("OaFlow"); - menu412a.setCatag(true); - menu412a.setAvtag(true); - menu412a.setShtag(false); - menu412a.setType("M"); - menu412a.setPorid("sys"); - menuService.insert(menu412a); - - SysPortalMenu menu413 = new SysPortalMenu(); - menu413.setId("OaFlowMain"); - menu413.setName("流程实例"); - menu413.setCode("OaFlowMain"); - menu413.setPath("/oa/flow/main"); - menu413.setComp("/oa/flow/main/index"); - menu413.setOrnum(413); - menu413.setIcon("ele-Tickets"); - menu413.setPid("OaFlow"); - menu413.setCatag(true); - menu413.setAvtag(true); - menu413.setShtag(true); - menu413.setType("M"); - menu413.setPorid("sys"); - menuService.insert(menu413); - - SysPortalMenu menu413a = new SysPortalMenu(); - menu413a.setId("OaFlowMainEdit"); - menu413a.setName("流程实例编辑"); - menu413a.setCode("OaFlowMainEdit"); - menu413a.setPath("/oa/flow/main/edit"); - menu413a.setComp("/oa/flow/main/edit"); - menu413a.setOrnum(4131); - menu413a.setIcon("ele-Tickets"); - menu413a.setPid("OaFlow"); - menu413a.setCatag(true); - menu413a.setAvtag(true); - menu413a.setShtag(false); - menu413a.setType("M"); - menu413a.setPorid("sys"); - menuService.insert(menu413a); - - SysPortalMenu menu413b = new SysPortalMenu(); - menu413b.setId("OaFlowMainView"); - menu413b.setName("流程实例查看"); - menu413b.setCode("OaFlowMainView"); - menu413b.setPath("/oa/flow/main/view"); - menu413b.setComp("/oa/flow/main/view"); - menu413b.setOrnum(4132); - menu413b.setIcon("ele-Tickets"); - menu413b.setPid("OaFlow"); - menu413b.setCatag(true); - menu413b.setAvtag(true); - menu413b.setShtag(false); - menu413b.setType("M"); - menu413b.setPorid("sys"); - menuService.insert(menu413b); - - //-----------------DEMO-------------------- - SysPortalMenu menu8 = new SysPortalMenu(); - menu8.setId("My"); - menu8.setName("测试样例"); - menu8.setCode("My"); - menu8.setComp("LAYOUT"); - menu8.setPath("/my"); - menu8.setRedirect("/my/demo/main"); - menu8.setOrnum(8); - menu8.setIcon("ant-design:trophy-outlined"); - menu8.setAvtag(true); - menu8.setShtag(true); - menu8.setType("D"); - menu8.setPorid("sys"); - menuService.insert(menu8); - - SysPortalMenu menu811 = new SysPortalMenu(); - menu811.setId("MyDemoCate"); - menu811.setName("DEMO分类"); - menu811.setCode("MyDemoCate"); - menu811.setPath("/my/demo/cate"); - menu811.setComp("/my/demo/cate/index"); - menu811.setOrnum(811); - menu811.setIcon("ele-Tickets"); - menu811.setPid("My"); - menu811.setCatag(true); - menu811.setAvtag(true); - menu811.setShtag(true); - menu811.setType("M"); - menu811.setPorid("sys"); - menuService.insert(menu811); - - SysPortalMenu menu812 = new SysPortalMenu(); - menu812.setId("MyDemoMain"); - menu812.setName("DEMO清单"); - menu812.setCode("MyDemoMain"); - menu812.setPath("/my/demo/main"); - menu812.setComp("/my/demo/main/index"); - menu812.setOrnum(812); - menu812.setIcon("ele-Tickets"); - menu812.setPid("My"); - menu812.setCatag(true); - menu812.setAvtag(true); - menu812.setShtag(true); - menu812.setType("M"); - menu812.setPorid("sys"); - menuService.insert(menu812); - - SysPortalMenu menu813 = new SysPortalMenu(); - menu813.setId("MyDemoMainEdit"); - menu813.setName("DEMO编辑"); - menu813.setCode("MyDemoMainEdit"); - menu813.setPath("/my/demo/main/edit"); - menu813.setComp("/my/demo/main/edit"); - menu813.setOrnum(813); - menu813.setIcon("ele-Tickets"); - menu813.setPid("My"); - menu813.setCatag(true); - menu813.setAvtag(true); - menu813.setShtag(false); - menu813.setType("M"); - menu813.setPorid("sys"); - menuService.insert(menu813); - - SysPortalMenu menu999 = new SysPortalMenu(); - menu999.setId("AboutPage"); - menu999.setName("关于"); - menu999.setCode("AboutPage"); - menu999.setPath("/sys/about"); - menu999.setComp("/sys/about/index"); - menu999.setOrnum(999); - menu999.setIcon("simple-icons:about-dot-me"); - menu999.setCatag(true); - menu999.setAvtag(true); - menu999.setShtag(true); - menu999.setType("M"); - menu999.setPorid("sys"); - menuService.insert(menu999); - - } - - //营销门户的菜单初始化 - protected void initSaMenu() { - SysPortalMenu home = new SysPortalMenu(); - home.setId("Sa-Home"); - home.setName("营销首页"); - home.setCode("Home"); - home.setComp("/home/sa"); - home.setPath("/home"); - home.setOrnum(0); - home.setIcon("ele-House"); - home.setAvtag(true); - home.setShtag(true); - home.setType("M"); - home.setPorid("sa"); - menuService.insert(home); - - SysPortalMenu menu1 = new SysPortalMenu(); - menu1.setId("Sa-Oa"); - menu1.setName("日常办公"); - menu1.setCode("Oa"); - menu1.setComp("LAYOUT"); - menu1.setPath("/oa"); - menu1.setRedirect("/oa/flow/main"); - menu1.setOrnum(1); - menu1.setIcon("ele-Menu"); - menu1.setAvtag(true); - menu1.setShtag(true); - menu1.setType("D"); - menu1.setPorid("sa"); - menuService.insert(menu1); - - SysPortalMenu menu11 = new SysPortalMenu(); - menu11.setId("Sa-OaFlowMain"); - menu11.setName("流程审批"); - menu11.setCode("OaFlowMain"); - menu11.setPath("/oa/flow/main"); - menu11.setComp("/oa/flow/main/index"); - menu11.setOrnum(11); - menu11.setIcon("ele-Tickets"); - menu11.setPid("Sa-Oa"); - menu11.setCatag(true); - menu11.setAvtag(true); - menu11.setShtag(true); - menu11.setType("M"); - menu11.setPorid("sa"); - menuService.insert(menu11); - } - - @Autowired - private SysPortalMainService mainService; - - @Autowired - private SysPortalMenuService menuService; - - -} diff --git a/vben-admin/src/main/java/vben/init/SysPortalVueInit.java b/vben-admin/src/main/java/vben/init/SysPortalVueInit.java deleted file mode 100644 index 54efc69..0000000 --- a/vben-admin/src/main/java/vben/init/SysPortalVueInit.java +++ /dev/null @@ -1,1274 +0,0 @@ -package vben.init; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import vben.core.module.sys.portal.main.SysPortalMain; -import vben.core.module.sys.portal.main.SysPortalMainService; -import vben.core.module.sys.portal.menu.SysPortalMenu; -import vben.core.module.sys.portal.menu.SysPortalMenuService; - -//系统门户与菜单初始化 -@Component -public class SysPortalVueInit { - - //门户初始化 - protected void initPortal() { - SysPortalMain sysPortalMain=new SysPortalMain(); - sysPortalMain.setId("sys"); - sysPortalMain.setOrnum(0); - sysPortalMain.setName("管理员门户"); - mainService.save(sysPortalMain); - - SysPortalMain sysPortalMain2=new SysPortalMain(); - sysPortalMain2.setId("sa"); - sysPortalMain2.setOrnum(1); - sysPortalMain2.setName("营销门户"); - mainService.save(sysPortalMain2); - } - - //管理员门户的菜单初始化 - protected void initSysMenu() { - SysPortalMenu home = new SysPortalMenu(); - home.setId("Home"); - home.setName("首页"); - home.setCode("Home"); - home.setComp("/home/index"); - home.setPath("/home"); - home.setOrnum(0); - home.setIcon("ele-House"); - home.setAvtag(true); - home.setShtag(true); - home.setType("M"); - home.setPorid("sys"); - menuService.insert(home); - - SysPortalMenu personal = new SysPortalMenu(); - personal.setId("Personal"); - personal.setName("个人中心"); - personal.setCode("Personal"); - personal.setComp("/home/personal"); - personal.setPath("/personal"); - personal.setOrnum(0); - personal.setIcon("ele-House"); - personal.setAvtag(true); - personal.setShtag(false); - personal.setType("M"); - personal.setPorid("sys"); - menuService.insert(personal); - - //-----------------系统管理-------------------- - SysPortalMenu menu1 = new SysPortalMenu(); - menu1.setId("Sys"); - menu1.setName("系统管理"); - menu1.setCode("Sys"); - menu1.setComp("LAYOUT"); - menu1.setPath("/sys"); - menu1.setRedirect("/sys/org/user"); - menu1.setOrnum(1); - menu1.setIcon("ele-Setting"); - menu1.setAvtag(true); - menu1.setShtag(true); - menu1.setType("D"); - menu1.setPorid("sys"); - menuService.insert(menu1); - - SysPortalMenu menu11 = new SysPortalMenu(); - menu11.setId("SysOrg"); - menu11.setName("组织架构"); - menu11.setCode("SysOrg"); - menu11.setComp("LAYOUT"); - menu11.setPath("/sys/org"); - menu11.setRedirect("/sys/org/user"); - menu11.setOrnum(1); - menu11.setIcon("ele-OfficeBuilding"); - menu11.setPid("Sys"); - menu11.setAvtag(true); - menu11.setShtag(true); - menu11.setType("D"); - menu11.setPorid("sys"); - menuService.insert(menu11); - - SysPortalMenu menu111 = new SysPortalMenu(); - menu111.setId("SysOrgDept"); - menu111.setName("部门管理"); - menu111.setCode("SysOrgDept"); - menu111.setPath("/sys/org/dept"); - menu111.setComp("/sys/org/dept/index"); - menu111.setOrnum(10); - menu111.setIcon("ele-SetUp"); - menu111.setPid("SysOrg"); - menu111.setCatag(true); - menu111.setAvtag(true); - menu111.setShtag(true); - menu111.setType("M"); - menu111.setPorid("sys"); - menuService.insert(menu111); - - SysPortalMenu menu111a = new SysPortalMenu(); - menu111a.setId("SysOrgDeptEdit"); - menu111a.setName("部门编辑"); - menu111a.setCode("SysOrgDeptEdit"); - menu111a.setPath("/sys/org/dept/edit"); - menu111a.setComp("/sys/org/dept/edit"); - menu111a.setOrnum(11); - menu111a.setIcon("ele-Tickets"); - menu111a.setPid("SysOrg"); - menu111a.setCatag(true); - menu111a.setAvtag(true); - menu111a.setShtag(false); - menu111a.setType("M"); - menu111a.setPorid("sys"); - menuService.insert(menu111a); - - SysPortalMenu menu111b = new SysPortalMenu(); - menu111b.setId("SysOrgDeptTindex"); - menu111b.setName("部门管理"); - menu111b.setCode("SysOrgDeptTindex"); - menu111b.setPath("/sys/org/dept/tindex"); - menu111b.setComp("/sys/org/dept/tindex"); - menu111b.setOrnum(11); - menu111b.setIcon("ele-Tickets"); - menu111b.setPid("SysOrg"); - menu111b.setCatag(true); - menu111b.setAvtag(true); - menu111b.setShtag(false); - menu111b.setType("M"); - menu111b.setPorid("sys"); - menuService.insert(menu111b); - - SysPortalMenu menu112 = new SysPortalMenu(); - menu112.setId("SysOrgUser"); - menu112.setName("用户管理"); - menu112.setCode("SysOrgUser"); - menu112.setPath("/sys/org/user"); - menu112.setComp("/sys/org/user/index"); - menu112.setOrnum(20); - menu112.setIcon("ele-User"); - menu112.setPid("SysOrg"); - menu112.setCatag(true); - menu112.setAvtag(true); - menu112.setShtag(true); - menu112.setType("M"); - menu112.setPorid("sys"); - menuService.insert(menu112); - - SysPortalMenu menu112a = new SysPortalMenu(); - menu112a.setId("SysOrgUserEdit"); - menu112a.setName("用户编辑"); - menu112a.setCode("SysOrgUserEdit"); - menu112a.setPath("/sys/org/user/edit"); - menu112a.setComp("/sys/org/user/edit"); - menu112a.setOrnum(21); - menu112a.setIcon("ele-Tickets"); - menu112a.setPid("SysOrg"); - menu112a.setCatag(true); - menu112a.setAvtag(true); - menu112a.setShtag(false); - menu112a.setType("M"); - menu112a.setPorid("sys"); - menuService.insert(menu112a); - - SysPortalMenu menu113 = new SysPortalMenu(); - menu113.setId("SysOrgPost"); - menu113.setName("岗位管理"); - menu113.setCode("SysOrgPost"); - menu113.setPath("/sys/org/post"); - menu113.setComp("/sys/org/post/index"); - menu113.setOrnum(31); - menu113.setIcon("ele-Help"); - menu113.setPid("SysOrg"); - menu113.setCatag(true); - menu113.setAvtag(true); - menu113.setShtag(true); - menu113.setType("M"); - menu113.setPorid("sys"); - menuService.insert(menu113); - - SysPortalMenu menu113a = new SysPortalMenu(); - menu113a.setId("SysOrgPostEdit"); - menu113a.setName("岗位编辑"); - menu113a.setCode("SysOrgPostEdit"); - menu113a.setPath("/sys/org/post/edit"); - menu113a.setComp("/sys/org/post/edit"); - menu113a.setOrnum(32); - menu113a.setIcon("ele-Tickets"); - menu113a.setPid("SysOrg"); - menu113a.setCatag(true); - menu113a.setAvtag(true); - menu113a.setShtag(false); - menu113a.setType("M"); - menu113a.setPorid("sys"); - menuService.insert(menu113a); - - SysPortalMenu menu114 = new SysPortalMenu(); - menu114.setId("SysOrgGroup"); - menu114.setName("群组管理"); - menu114.setCode("SysOrgGroup"); - menu114.setPath("/sys/org/group"); - menu114.setComp("/sys/org/group/index"); - menu114.setOrnum(40); - menu114.setIcon("ele-Guide"); - menu114.setPid("SysOrg"); - menu114.setCatag(true); - menu114.setAvtag(true); - menu114.setShtag(true); - menu114.setType("M"); - menu114.setPorid("sys"); - menuService.insert(menu114); - - SysPortalMenu menu114a = new SysPortalMenu(); - menu114a.setId("SysOrgGroupEdit"); - menu114a.setName("群组编辑"); - menu114a.setCode("SysOrgGroupEdit"); - menu114a.setPath("/sys/org/group/edit"); - menu114a.setComp("/sys/org/group/edit"); - menu114a.setOrnum(41); - menu114a.setIcon("ele-Tickets"); - menu114a.setPid("SysOrg"); - menu114a.setCatag(true); - menu114a.setAvtag(true); - menu114a.setShtag(false); - menu114a.setType("M"); - menu114a.setPorid("sys"); - menuService.insert(menu114a); - - SysPortalMenu menu115 = new SysPortalMenu(); - menu115.setId("SysOrgRtree"); - menu115.setName("层级角色"); - menu115.setCode("SysOrgRtree"); - menu115.setPath("/sys/org/rtree"); - menu115.setComp("/sys/org/role/tree"); - menu115.setOrnum(50); - menu115.setIcon("ele-Cherry"); - menu115.setPid("SysOrg"); - menu115.setCatag(true); - menu115.setAvtag(true); - menu115.setShtag(true); - menu115.setType("M"); - menu115.setPorid("sys"); - menuService.insert(menu115); - - SysPortalMenu menu115a = new SysPortalMenu(); - menu115a.setId("SysOrgRtreeEdit"); - menu115a.setName("角色树编辑"); - menu115a.setCode("SysOrgRtreeEdit"); - menu115a.setPath("/sys/org/rtree/edit"); - menu115a.setComp("/sys/org/role/tree_edit"); - menu115a.setOrnum(51); - menu115a.setIcon("ele-Tickets"); - menu115a.setPid("SysOrg"); - menu115a.setCatag(true); - menu115a.setAvtag(true); - menu115a.setShtag(false); - menu115a.setType("M"); - menu115a.setPorid("sys"); - menuService.insert(menu115a); - - SysPortalMenu menu115b = new SysPortalMenu(); - menu115b.setId("SysOrgRnode"); - menu115b.setName("角色树节点配置"); - menu115b.setCode("SysOrgRnode"); - menu115b.setPath("/sys/org/rnode"); - menu115b.setComp("/sys/org/role/node"); - menu115b.setOrnum(52); - menu115b.setIcon("ele-Tickets"); - menu115b.setPid("SysOrg"); - menu115b.setCatag(true); - menu115b.setAvtag(true); - menu115b.setShtag(false); - menu115b.setType("M"); - menu115b.setPorid("sys"); - menuService.insert(menu115b); - - - SysPortalMenu menu12 = new SysPortalMenu(); - menu12.setId("SysCoop"); - menu12.setName("外部协同"); - menu12.setCode("SysCoop"); - menu12.setComp("LAYOUT"); - menu12.setPath("/sys/coop"); - menu12.setRedirect("/sys/coop/user"); - menu12.setOrnum(2); - menu12.setIcon("ele-Magnet"); - menu12.setPid("Sys"); - menu12.setAvtag(true); - menu12.setShtag(true); - menu12.setType("D"); - menu12.setPorid("sys"); - menuService.insert(menu12); - - SysPortalMenu menu121 = new SysPortalMenu(); - menu121.setId("SysCoopCate"); - menu121.setName("协同分类"); - menu121.setCode("SysCoopCate"); - menu121.setPath("/sys/coop/cate"); - menu121.setComp("/sys/coop/cate/index"); - menu121.setOrnum(10); - menu121.setIcon("ele-Tickets"); - menu121.setPid("SysCoop"); - menu121.setCatag(true); - menu121.setAvtag(true); - menu121.setShtag(true); - menu121.setType("M"); - menu121.setPorid("sys"); - menuService.insert(menu121); - - SysPortalMenu menu122 = new SysPortalMenu(); - menu122.setId("SysCoopCorp"); - menu122.setName("外部公司"); - menu122.setCode("SysCoopCorp"); - menu122.setPath("/sys/coop/corp"); - menu122.setComp("/sys/coop/corp/index"); - menu122.setOrnum(12); - menu122.setIcon("ele-Tickets"); - menu122.setPid("SysCoop"); - menu122.setCatag(true); - menu122.setAvtag(true); - menu122.setShtag(true); - menu122.setType("M"); - menu122.setPorid("sys"); - menuService.insert(menu122); - - SysPortalMenu menu123 = new SysPortalMenu(); - menu123.setId("SysCoopUser"); - menu123.setName("外部用户"); - menu123.setCode("SysCoopUser"); - menu123.setPath("/sys/coop/user"); - menu123.setComp("/sys/coop/user/index"); - menu123.setOrnum(13); - menu123.setIcon("ele-Tickets"); - menu123.setPid("SysCoop"); - menu123.setCatag(true); - menu123.setAvtag(true); - menu123.setShtag(true); - menu123.setType("M"); - menu123.setPorid("sys"); - menuService.insert(menu123); - - SysPortalMenu menu13 = new SysPortalMenu(); - menu13.setId("SysApi"); - menu13.setName("接口管理"); - menu13.setCode("SysApi"); - menu13.setComp("LAYOUT"); - menu13.setPath("/sys/api"); - menu13.setRedirect("/sys/api/main"); - menu13.setOrnum(3); - menu13.setIcon("ele-Lock"); - menu13.setPid("Sys"); - menu13.setAvtag(true); - menu13.setShtag(true); - menu13.setType("D"); - menu13.setPorid("sys"); - menuService.insert(menu13); - - SysPortalMenu menu131 = new SysPortalMenu(); - menu131.setId("SysApiMain"); - menu131.setName("接口清单"); - menu131.setCode("SysApiMain"); - menu131.setPath("/sys/api/main"); - menu131.setComp("/sys/api/main/index"); - menu131.setOrnum(10); - menu131.setIcon("ele-Tickets"); - menu131.setPid("SysApi"); - menu131.setCatag(true); - menu131.setAvtag(true); - menu131.setShtag(true); - menu131.setType("M"); - menu131.setPorid("sys"); - menuService.insert(menu131); - -// SysPortalMenu menu121a = new SysPortalMenu(); -// menu121a.setId("SysApiMainEdit"); -// menu121a.setName("接口编辑"); -// menu121a.setCode("SysApiMainEdit"); -// menu121a.setPath("/sys/api/main/edit"); -// menu121a.setComp("/sys/api/main/edit"); -// menu121a.setOrnum(11); -// menu121a.setIcon("ele-Tickets"); -// menu121a.setPid("SysApi"); -// menu121a.setCatag(true); -// menu121a.setAvtag(true); -// menu121a.setShtag(false); -// menu121a.setType("M"); -// menu121a.setPorid("sys"); -// menuService.insert(menu121a); - - SysPortalMenu menu132 = new SysPortalMenu(); - menu132.setId("SysApiMainDoc"); - menu132.setName("接口文档"); - menu132.setCode("SysApiMainDoc"); - menu132.setPath("/sys/api/role/doc"); - //menu122.setExtag(true);//外链 - menu132.setIftag(true); - menu132.setComp("http://localhost:5000/doc.html"); - menu132.setOrnum(12); - menu132.setIcon("ele-Tickets"); - menu132.setPid("SysApi"); - menu132.setCatag(false); - menu132.setAvtag(true); - menu132.setShtag(true); - menu132.setType("M"); - menu132.setPorid("sys"); - menuService.insert(menu132); - - SysPortalMenu menu133 = new SysPortalMenu(); - menu133.setId("SysApiRole"); - menu133.setName("接口角色"); - menu133.setCode("SysApiRole"); - menu133.setPath("/sys/api/role"); - menu133.setComp("/sys/api/role/index"); - menu133.setOrnum(20); - menu133.setIcon("ele-Tickets"); - menu133.setPid("SysApi"); - menu133.setCatag(true); - menu133.setAvtag(true); - menu133.setShtag(true); - menu133.setType("M"); - menu133.setPorid("sys"); - menuService.insert(menu133); - - SysPortalMenu menu133a = new SysPortalMenu(); - menu133a.setId("SysApiRoleEdit"); - menu133a.setName("角色编辑"); - menu133a.setCode("SysApiRoleEdit"); - menu133a.setPath("/sys/api/role/edit"); - menu133a.setComp("/sys/api/role/edit"); - menu133a.setOrnum(21); - menu133a.setIcon("ele-Tickets"); - menu133a.setPid("SysApi"); - menu133a.setCatag(true); - menu133a.setAvtag(true); - menu133a.setShtag(false); - menu133a.setType("M"); - menu133a.setPorid("sys"); - menuService.insert(menu133a); - - SysPortalMenu menu14 = new SysPortalMenu(); - menu14.setId("SysPortal"); - menu14.setName("门户管理"); - menu14.setCode("SysPortal"); - menu14.setComp("LAYOUT"); - menu14.setPath("/sys/portal"); - menu14.setRedirect("/sys/portal/main"); - menu14.setOrnum(4); - menu14.setIcon("ele-Notebook"); - menu14.setPid("Sys"); - menu14.setAvtag(true); - menu14.setShtag(true); - menu14.setType("D"); - menu14.setPorid("sys"); - menuService.insert(menu14); - - SysPortalMenu menu141 = new SysPortalMenu(); - menu141.setId("SysPortalMain"); - menu141.setName("门户清单"); - menu141.setCode("SysPortalMain"); - menu141.setPath("/sys/portal/main"); - menu141.setComp("/sys/portal/main/index"); - menu141.setOrnum(10); - menu141.setIcon("ele-Tickets"); - menu141.setPid("SysPortal"); - menu141.setCatag(true); - menu141.setAvtag(true); - menu141.setShtag(true); - menu141.setType("M"); - menu141.setPorid("sys"); - menuService.insert(menu141); - - SysPortalMenu menu141a = new SysPortalMenu(); - menu141a.setId("SysPortalMainEdit"); - menu141a.setName("门户编辑"); - menu141a.setCode("SysPortalMainEdit"); - menu141a.setPath("/sys/portal/main/edit"); - menu141a.setComp("/sys/portal/main/edit"); - menu141a.setOrnum(11); - menu141a.setIcon("ele-Tickets"); - menu141a.setPid("SysPortal"); - menu141a.setCatag(true); - menu141a.setAvtag(true); - menu141a.setShtag(false); - menu141a.setType("M"); - menu141a.setPorid("sys"); - menuService.insert(menu141a); - - SysPortalMenu menu142 = new SysPortalMenu(); - menu142.setId("SysPortalMenu"); - menu142.setName("门户菜单"); - menu142.setCode("SysPortalMenu"); - menu142.setPath("/sys/portal/menu"); - menu142.setComp("/sys/portal/menu/index"); - menu142.setOrnum(12); - menu142.setIcon("ele-Tickets"); - menu142.setPid("SysPortal"); - menu142.setCatag(true); - menu142.setAvtag(true); - menu142.setShtag(true); - menu142.setType("M"); - menu142.setPorid("sys"); - menuService.insert(menu142); - - SysPortalMenu menu142a = new SysPortalMenu(); - menu142a.setId("SysPortalMenuEdit"); - menu142a.setName("菜单编辑"); - menu142a.setCode("SysPortalMenuEdit"); - menu142a.setPath("/sys/portal/menu/edit"); - menu142a.setComp("/sys/portal/menu/edit"); - menu142a.setOrnum(13); - menu142a.setIcon("ele-Tickets"); - menu142a.setPid("SysPortal"); - menu142a.setCatag(true); - menu142a.setAvtag(true); - menu142a.setShtag(false); - menu142a.setType("M"); - menu142a.setPorid("sys"); - menuService.insert(menu142a); - - SysPortalMenu menu143 = new SysPortalMenu(); - menu143.setId("SysPortalRole"); - menu143.setName("门户角色"); - menu143.setCode("SysPortalRole"); - menu143.setPath("/sys/portal/role"); - menu143.setComp("/sys/portal/role/index"); - menu143.setOrnum(14); - menu143.setIcon("ele-Tickets"); - menu143.setPid("SysPortal"); - menu143.setCatag(true); - menu143.setAvtag(true); - menu143.setShtag(true); - menu143.setType("M"); - menu143.setPorid("sys"); - menuService.insert(menu143); - - SysPortalMenu menu143a = new SysPortalMenu(); - menu143a.setId("SysPortalRoleEdit"); - menu143a.setName("角色编辑"); - menu143a.setCode("SysPortalRoleEdit"); - menu143a.setPath("/sys/portal/role/edit"); - menu143a.setComp("/sys/portal/role/edit"); - menu143a.setOrnum(15); - menu143a.setIcon("ele-Tickets"); - menu143a.setPid("SysPortal"); - menu143a.setCatag(true); - menu143a.setAvtag(true); - menu143a.setShtag(false); - menu143a.setType("M"); - menu143a.setPorid("sys"); - menuService.insert(menu143a); - - //-----------------辅助工具-------------------- - SysPortalMenu menu2 = new SysPortalMenu(); - menu2.setId("Ass"); - menu2.setName("辅助工具"); - menu2.setCode("Ass"); - menu2.setComp("LAYOUT"); - menu2.setPath("/ass"); - menu2.setRedirect("/ass/dict/main"); - menu2.setOrnum(2); - menu2.setIcon("ele-Suitcase"); - menu2.setAvtag(true); - menu2.setShtag(true); - menu2.setType("D"); - menu2.setPorid("sys"); - menuService.insert(menu2); - - SysPortalMenu menu211 = new SysPortalMenu(); - menu211.setId("AssCogeForm"); - menu211.setName("表单设计"); - menu211.setCode("AssCogeForm"); - menu211.setPath("/ass/coge/form"); - menu211.setComp("/ass/coge/form/index"); - menu211.setOrnum(211); - menu211.setIcon("ele-Tickets"); - menu211.setPid("Ass"); - menu211.setCatag(false); - menu211.setAvtag(true); - menu211.setShtag(true); - menu211.setType("M"); - menu211.setPorid("sys"); - menuService.insert(menu211); - - SysPortalMenu menu212 = new SysPortalMenu(); - menu212.setId("AssCogeFormEdit"); - menu212.setName("表单设计编辑"); - menu212.setCode("AssCogeFormEdit"); - menu212.setPath("/ass/coge/form/edit"); - menu212.setComp("/ass/coge/form/edit"); - menu212.setOrnum(212); - menu212.setIcon("ele-Tickets"); - menu212.setPid("Ass"); - menu212.setCatag(false); - menu212.setAvtag(true); - menu212.setShtag(false); - menu212.setType("M"); - menu212.setPorid("sys"); - menuService.insert(menu212); - - SysPortalMenu menu241 = new SysPortalMenu(); - menu241.setId("AssCogeTable"); - menu241.setName("代码生成"); - menu241.setCode("AssCogeTable"); - menu241.setPath("/ass/coge/table"); - menu241.setComp("/ass/coge/table/index"); - menu241.setOrnum(241); - menu241.setIcon("ele-Tickets"); - menu241.setPid("Ass"); - menu241.setCatag(false); - menu241.setAvtag(true); - menu241.setShtag(true); - menu241.setType("M"); - menu241.setPorid("sys"); - menuService.insert(menu241); - - SysPortalMenu menu242 = new SysPortalMenu(); - menu242.setId("AssCogeTableEdit"); - menu242.setName("代码生成"); - menu242.setCode("AssCogeTableEdit"); - menu242.setPath("/ass/coge/table/edit"); - menu242.setComp("/ass/coge/table/edit"); - menu242.setOrnum(242); - menu242.setIcon("ele-Tickets"); - menu242.setPid("Ass"); - menu242.setCatag(false); - menu242.setAvtag(true); - menu242.setShtag(false); - menu242.setType("M"); - menu242.setPorid("sys"); - menuService.insert(menu242); - - SysPortalMenu menu251 = new SysPortalMenu(); - menu251.setId("AssDictMain"); - menu251.setName("数据字典"); - menu251.setCode("AssDictMain"); - menu251.setPath("/ass/dict/main"); - menu251.setComp("/ass/dict/main/index"); - menu251.setOrnum(251); - menu251.setIcon("ele-Tickets"); - menu251.setPid("Ass"); - menu251.setCatag(false); - menu251.setAvtag(true); - menu251.setShtag(true); - menu251.setType("M"); - menu251.setPorid("sys"); - menuService.insert(menu251); - - SysPortalMenu menu252 = new SysPortalMenu(); - menu252.setId("AssDictData"); - menu252.setName("字典数据"); - menu252.setCode("AssDictData"); - menu252.setPath("/ass/dict/data"); - menu252.setComp("/ass/dict/data/index"); - menu252.setOrnum(252); - menu252.setIcon("ele-Tickets"); - menu252.setPid("Ass"); - menu252.setCatag(false); - menu252.setAvtag(true); - menu252.setShtag(false); - menu252.setType("M"); - menu252.setPorid("sys"); - menuService.insert(menu252); - - SysPortalMenu menu261 = new SysPortalMenu(); - menu261.setId("AssNumMain"); - menu261.setName("编号策略"); - menu261.setCode("AssNumMain"); - menu261.setPath("/ass/num/main"); - menu261.setComp("/ass/num/main/index"); - menu261.setOrnum(361); - menu261.setIcon("ele-Tickets"); - menu261.setPid("Ass"); - menu261.setCatag(false); - menu261.setAvtag(true); - menu261.setShtag(true); - menu261.setType("M"); - menu261.setPorid("sys"); - menuService.insert(menu261); - - SysPortalMenu menu271 = new SysPortalMenu(); - menu271.setId("AssOssMain"); - menu271.setName("文件存储"); - menu271.setCode("AssOssMain"); - menu271.setPath("/ass/oss/main"); - menu271.setComp("/ass/oss/main/index"); - menu271.setOrnum(271); - menu271.setIcon("ele-Tickets"); - menu271.setPid("Ass"); - menu271.setCatag(false); - menu271.setAvtag(true); - menu271.setShtag(true); - menu271.setType("M"); - menu271.setPorid("sys"); - menuService.insert(menu271); - - SysPortalMenu menu272 = new SysPortalMenu(); - menu272.setId("AssOssConfig"); - menu272.setName("存储配置"); - menu272.setCode("AssOssConfig"); - menu272.setPath("/ass/oss/config"); - menu272.setComp("/ass/oss/config/index"); - menu272.setOrnum(372); - menu272.setIcon("ele-Tickets"); - menu272.setPid("Ass"); - menu272.setCatag(false); - menu272.setAvtag(true); - menu272.setShtag(false); - menu272.setType("M"); - menu272.setPorid("sys"); - menuService.insert(menu272); - - SysPortalMenu menu291 = new SysPortalMenu(); - menu291.setId("AssAddrMain"); - menu291.setName("省市区县"); - menu291.setCode("AssAddrMain"); - menu291.setPath("/ass/addr/main"); - menu291.setComp("/ass/addr/main/index"); - menu291.setOrnum(291); - menu291.setIcon("ele-Tickets"); - menu291.setPid("Ass"); - menu291.setCatag(false); - menu291.setAvtag(true); - menu291.setShtag(true); - menu291.setType("M"); - menu291.setPorid("sys"); - menuService.insert(menu291); - - //-----------------监控中心-------------------- - SysPortalMenu menu3 = new SysPortalMenu(); - menu3.setId("Mon"); - menu3.setName("监控中心"); - menu3.setCode("Mon"); - menu3.setComp("LAYOUT"); - menu3.setPath("/mon"); - menu3.setRedirect("/mon/server/main"); - menu3.setOrnum(3); - menu3.setIcon("ele-DataLine"); - menu3.setAvtag(true); - menu3.setShtag(true); - menu3.setType("D"); - menu3.setPorid("sys"); - menuService.insert(menu3); - - SysPortalMenu menu311 = new SysPortalMenu(); - menu311.setId("MonOnlineUser"); - menu311.setName("在线用户"); - menu311.setCode("MonOnlineUser"); - menu311.setPath("/mon/online/user"); - menu311.setComp("/mon/online/user/index"); - menu311.setOrnum(311); - menu311.setIcon("ele-Tickets"); - menu311.setPid("Mon"); - menu311.setCatag(true); - menu311.setAvtag(true); - menu311.setShtag(true); - menu311.setType("M"); - menu311.setPorid("sys"); - menuService.insert(menu311); - - SysPortalMenu menu321 = new SysPortalMenu(); - menu321.setId("MonLogLogin"); - menu321.setName("登录日志"); - menu321.setCode("MonLogLogin"); - menu321.setPath("/mon/log/login"); - menu321.setComp("/mon/log/login/index"); - menu321.setOrnum(321); - menu321.setIcon("ele-Tickets"); - menu321.setPid("Mon"); - menu321.setCatag(true); - menu321.setAvtag(true); - menu321.setShtag(true); - menu321.setType("M"); - menu321.setPorid("sys"); - menuService.insert(menu321); - - SysPortalMenu menu322 = new SysPortalMenu(); - menu322.setId("MonLogOper"); - menu322.setName("操作日志"); - menu322.setCode("MonLogOper"); - menu322.setPath("/mon/log/oper"); - menu322.setComp("/mon/log/oper/index"); - menu322.setOrnum(322); - menu322.setIcon("ele-Tickets"); - menu322.setPid("Mon"); - menu322.setCatag(true); - menu322.setAvtag(true); - menu322.setShtag(true); - menu322.setType("M"); - menu322.setPorid("sys"); - menuService.insert(menu322); - - SysPortalMenu menu323 = new SysPortalMenu(); - menu323.setId("MonLogError"); - menu323.setName("错误日志"); - menu323.setCode("MonLogError"); - menu323.setPath("/mon/log/error"); - menu323.setComp("/mon/log/error/index"); - menu323.setOrnum(323); - menu323.setIcon("ele-Tickets"); - menu323.setPid("Mon"); - menu323.setCatag(true); - menu323.setAvtag(true); - menu323.setShtag(true); - menu323.setType("M"); - menu323.setPorid("sys"); - menuService.insert(menu323); - - SysPortalMenu menu361 = new SysPortalMenu(); - menu361.setId("MonJobMain"); - menu361.setName("定时任务"); - menu361.setCode("MonJobMain"); - menu361.setPath("/mon/job/main"); - menu361.setComp("/mon/job/main/index"); - menu361.setOrnum(361); - menu361.setIcon("ele-Tickets"); - menu361.setPid("Mon"); - menu361.setCatag(true); - menu361.setAvtag(true); - menu361.setShtag(true); - menu361.setType("M"); - menu361.setPorid("sys"); - menuService.insert(menu361); - - SysPortalMenu menu362 = new SysPortalMenu(); - menu362.setId("MonJobMainEdit"); - menu362.setName("任务编辑"); - menu362.setCode("MonJobMainEdit"); - menu362.setPath("/mon/job/main/edit"); - menu362.setComp("/mon/job/main/edit"); - menu362.setOrnum(362); - menu362.setIcon("ele-Tickets"); - menu362.setPid("Mon"); - menu362.setCatag(true); - menu362.setAvtag(true); - menu362.setShtag(false); - menu362.setType("M"); - menu362.setPorid("sys"); - menuService.insert(menu362); - - SysPortalMenu menu363 = new SysPortalMenu(); - menu363.setId("MonJobLog"); - menu363.setName("任务日志"); - menu363.setCode("MonJobLog"); - menu363.setPath("/mon/job/log"); - menu363.setComp("/mon/job/log/index"); - menu363.setOrnum(363); - menu363.setIcon("ele-Tickets"); - menu363.setPid("Mon"); - menu363.setCatag(true); - menu363.setAvtag(true); - menu363.setShtag(false); - menu363.setType("M"); - menu363.setPorid("sys"); - menuService.insert(menu363); - - SysPortalMenu menu371 = new SysPortalMenu(); - menu371.setId("MonServerMain"); - menu371.setName("服务监控"); - menu371.setCode("MonServerMain"); - menu371.setPath("/mon/server/main"); - menu371.setComp("/mon/server/main/show"); - menu371.setOrnum(371); - menu371.setIcon("ele-Tickets"); - menu371.setPid("Mon"); - menu371.setCatag(false); - menu371.setAvtag(true); - menu371.setShtag(true); - menu371.setType("M"); - menu371.setPorid("sys"); - menuService.insert(menu371); - - SysPortalMenu menu381 = new SysPortalMenu(); - menu381.setId("MonCacheMain"); - menu381.setName("缓存监控"); - menu381.setCode("MonCacheMain"); - menu381.setPath("/mon/cache/main"); - menu381.setComp("/mon/cache/main/show"); - menu381.setOrnum(381); - menu381.setIcon("ele-Tickets"); - menu381.setPid("Mon"); - menu381.setCatag(false); - menu381.setAvtag(true); - menu381.setShtag(true); - menu381.setType("M"); - menu381.setPorid("sys"); - menuService.insert(menu381); - - SysPortalMenu menu391 = new SysPortalMenu(); - menu391.setId("MonDbMain"); - menu391.setName("数据监控"); - menu391.setCode("MonDbMain"); - menu391.setPath("/mon/db/main"); - menu391.setComp("http://localhost:5000/druid/sql.html"); - menu391.setOrnum(391); - menu391.setIcon("ele-Tickets"); - menu391.setPid("Mon"); - menu391.setIftag(true); - //menu122.setExtag(true);//外链 - menu391.setCatag(false); - menu391.setAvtag(true); - menu391.setShtag(true); - menu391.setType("M"); - menu391.setPorid("sys"); - menuService.insert(menu391); - - - //-----------------应用中心-------------------- - SysPortalMenu menu4 = new SysPortalMenu(); - menu4.setId("Oa"); - menu4.setName("应用中心"); - menu4.setCode("Oa"); - menu4.setComp("LAYOUT"); - menu4.setPath("/oa"); - menu4.setRedirect("/oa/flow/temp"); - menu4.setOrnum(4); - menu4.setIcon("ele-Menu"); - menu4.setAvtag(true); - menu4.setShtag(true); - menu4.setType("D"); - menu4.setPorid("sys"); - menuService.insert(menu4); - - SysPortalMenu menu41 = new SysPortalMenu(); - menu41.setId("OaFlow"); - menu41.setName("流程管理"); - menu41.setCode("OaFlow"); - menu41.setComp("LAYOUT"); - menu41.setPath("/oa/flow"); - menu41.setRedirect("/oa/flow/temp"); - menu41.setOrnum(41); - menu41.setIcon("ele-Connection"); - menu41.setPid("Oa"); - menu41.setAvtag(true); - menu41.setShtag(true); - menu41.setType("D"); - menu41.setPorid("sys"); - menuService.insert(menu41); - - SysPortalMenu menu411 = new SysPortalMenu(); - menu411.setId("OaFlowCate"); - menu411.setName("流程分类"); - menu411.setCode("OaFlowCate"); - menu411.setPath("/oa/flow/cate"); - menu411.setComp("/oa/flow/cate/index"); - menu411.setOrnum(411); - menu411.setIcon("ele-Tickets"); - menu411.setPid("OaFlow"); - menu411.setCatag(true); - menu411.setAvtag(true); - menu411.setShtag(true); - menu411.setType("M"); - menu411.setPorid("sys"); - menuService.insert(menu411); - - SysPortalMenu menu411a = new SysPortalMenu(); - menu411a.setId("OaFlowCateEdit"); - menu411a.setName("流程分类编辑"); - menu411a.setCode("OaFlowCateEdit"); - menu411a.setPath("/oa/flow/cate/edit"); - menu411a.setComp("/oa/flow/cate/edit"); - menu411a.setOrnum(4111); - menu411a.setIcon("ele-Tickets"); - menu411a.setPid("OaFlow"); - menu411a.setCatag(true); - menu411a.setAvtag(true); - menu411a.setShtag(false); - menu411a.setType("M"); - menu411a.setPorid("sys"); - menuService.insert(menu411a); - - SysPortalMenu menu412 = new SysPortalMenu(); - menu412.setId("OaFlowTemp"); - menu412.setName("流程模板"); - menu412.setCode("OaFlowTemp"); - menu412.setPath("/oa/flow/temp"); - menu412.setComp("/oa/flow/temp/index"); - menu412.setOrnum(412); - menu412.setIcon("ele-Tickets"); - menu412.setPid("OaFlow"); - menu412.setCatag(true); - menu412.setAvtag(true); - menu412.setShtag(true); - menu412.setType("M"); - menu412.setPorid("sys"); - menuService.insert(menu412); - - SysPortalMenu menu412a = new SysPortalMenu(); - menu412a.setId("OaFlowTempEdit"); - menu412a.setName("流程模板编辑"); - menu412a.setCode("OaFlowTempEdit"); - menu412a.setPath("/oa/flow/temp/edit"); - menu412a.setComp("/oa/flow/temp/edit"); - menu412a.setOrnum(4121); - menu412a.setIcon("ele-Tickets"); - menu412a.setPid("OaFlow"); - menu412a.setCatag(true); - menu412a.setAvtag(true); - menu412a.setShtag(false); - menu412a.setType("M"); - menu412a.setPorid("sys"); - menuService.insert(menu412a); - - SysPortalMenu menu413 = new SysPortalMenu(); - menu413.setId("OaFlowMain"); - menu413.setName("流程实例"); - menu413.setCode("OaFlowMain"); - menu413.setPath("/oa/flow/main"); - menu413.setComp("/oa/flow/main/index"); - menu413.setOrnum(413); - menu413.setIcon("ele-Tickets"); - menu413.setPid("OaFlow"); - menu413.setCatag(true); - menu413.setAvtag(true); - menu413.setShtag(true); - menu413.setType("M"); - menu413.setPorid("sys"); - menuService.insert(menu413); - - SysPortalMenu menu413a = new SysPortalMenu(); - menu413a.setId("OaFlowMainEdit"); - menu413a.setName("流程实例编辑"); - menu413a.setCode("OaFlowMainEdit"); - menu413a.setPath("/oa/flow/main/edit"); - menu413a.setComp("/oa/flow/main/edit"); - menu413a.setOrnum(4131); - menu413a.setIcon("ele-Tickets"); - menu413a.setPid("OaFlow"); - menu413a.setCatag(true); - menu413a.setAvtag(true); - menu413a.setShtag(false); - menu413a.setType("M"); - menu413a.setPorid("sys"); - menuService.insert(menu413a); - - SysPortalMenu menu413b = new SysPortalMenu(); - menu413b.setId("OaFlowMainView"); - menu413b.setName("流程实例查看"); - menu413b.setCode("OaFlowMainView"); - menu413b.setPath("/oa/flow/main/view"); - menu413b.setComp("/oa/flow/main/view"); - menu413b.setOrnum(4132); - menu413b.setIcon("ele-Tickets"); - menu413b.setPid("OaFlow"); - menu413b.setCatag(true); - menu413b.setAvtag(true); - menu413b.setShtag(false); - menu413b.setType("M"); - menu413b.setPorid("sys"); - menuService.insert(menu413b); - - SysPortalMenu menu414 = new SysPortalMenu(); - menu414.setId("SysTodoMain"); - menu414.setName("流程待办"); - menu414.setCode("SysTodoMain"); - menu414.setPath("/sys/todo/main"); - menu414.setComp("/sys/todo/main/index"); - menu414.setOrnum(414); - menu414.setIcon("ele-Tickets"); - menu414.setPid("OaFlow"); - menu414.setCatag(true); - menu414.setAvtag(true); - menu414.setShtag(true); - menu414.setType("M"); - menu414.setPorid("sys"); - menuService.insert(menu414); - - SysPortalMenu menu414a = new SysPortalMenu(); - menu414a.setId("SysTodoMainEdit"); - menu414a.setName("流程待办查看"); - menu414a.setCode("SysTodoMainEdit"); - menu414a.setPath("/sys/todo/main/edit"); - menu414a.setComp("/sys/todo/main/edit"); - menu414a.setOrnum(4141); - menu414a.setIcon("ele-Tickets"); - menu414a.setPid("OaFlow"); - menu414a.setCatag(true); - menu414a.setAvtag(true); - menu414a.setShtag(false); - menu414a.setType("M"); - menu414a.setPorid("sys"); - menuService.insert(menu414a); - - //-----------------DEMO-------------------- - SysPortalMenu menu8 = new SysPortalMenu(); - menu8.setId("My"); - menu8.setName("测试样例"); - menu8.setCode("My"); - menu8.setComp("LAYOUT"); - menu8.setPath("/my"); - menu8.setRedirect("/my/demo/main"); - menu8.setOrnum(8); - menu8.setIcon("ele-GobletSquare"); - menu8.setAvtag(true); - menu8.setShtag(true); - menu8.setType("D"); - menu8.setPorid("sys"); - menuService.insert(menu8); - - SysPortalMenu menu811 = new SysPortalMenu(); - menu811.setId("MyDemoCate"); - menu811.setName("DEMO分类"); - menu811.setCode("MyDemoCate"); - menu811.setPath("/my/demo/cate"); - menu811.setComp("/my/demo/cate/index"); - menu811.setOrnum(811); - menu811.setIcon("ele-Tickets"); - menu811.setPid("My"); - menu811.setCatag(true); - menu811.setAvtag(true); - menu811.setShtag(true); - menu811.setType("M"); - menu811.setPorid("sys"); - menuService.insert(menu811); - - SysPortalMenu menu811a = new SysPortalMenu(); - menu811a.setId("MyDemoCateEdit"); - menu811a.setName("DEMO分类编辑"); - menu811a.setCode("MyDemoCateEdit"); - menu811a.setPath("/my/demo/cate/edit"); - menu811a.setComp("/my/demo/cate/edit"); - menu811a.setOrnum(811); - menu811a.setIcon("ele-Tickets"); - menu811a.setPid("My"); - menu811a.setCatag(true); - menu811a.setAvtag(true); - menu811a.setShtag(false); - menu811a.setType("M"); - menu811a.setPorid("sys"); - menuService.insert(menu811a); - - SysPortalMenu menu812 = new SysPortalMenu(); - menu812.setId("MyDemoMain"); - menu812.setName("DEMO清单"); - menu812.setCode("MyDemoMain"); - menu812.setPath("/my/demo/main"); - menu812.setComp("/my/demo/main/index"); - menu812.setOrnum(812); - menu812.setIcon("ele-Tickets"); - menu812.setPid("My"); - menu812.setCatag(true); - menu812.setAvtag(true); - menu812.setShtag(true); - menu812.setType("M"); - menu812.setPorid("sys"); - menuService.insert(menu812); - - SysPortalMenu menu813 = new SysPortalMenu(); - menu813.setId("MyDemoMainEdit"); - menu813.setName("DEMO编辑"); - menu813.setCode("MyDemoMainEdit"); - menu813.setPath("/my/demo/main/edit"); - menu813.setComp("/my/demo/main/edit"); - menu813.setOrnum(813); - menu813.setIcon("ele-Tickets"); - menu813.setPid("My"); - menu813.setCatag(true); - menu813.setAvtag(true); - menu813.setShtag(false); - menu813.setType("M"); - menu813.setPorid("sys"); - menuService.insert(menu813); - - SysPortalMenu menu814 = new SysPortalMenu(); - menu814.setId("MyDemoMainView"); - menu814.setName("DEMO查看"); - menu814.setCode("MyDemoMainView"); - menu814.setPath("/my/demo/main/view"); - menu814.setComp("/my/demo/main/view"); - menu814.setOrnum(814); - menu814.setIcon("ele-Tickets"); - menu814.setPid("My"); - menu814.setCatag(true); - menu814.setAvtag(true); - menu814.setShtag(false); - menu814.setType("M"); - menu814.setPorid("sys"); - menuService.insert(menu814); - - SysPortalMenu menu815 = new SysPortalMenu(); - menu815.setId("MyDemoMainEdit2"); - menu815.setName("DEMO编辑"); - menu815.setCode("MyDemoMainEdit2"); - menu815.setPath("/my/demo/main/edit2"); - menu815.setComp("/my/demo/main/edit2"); - menu815.setOrnum(815); - menu815.setIcon("ele-Tickets"); - menu815.setPid("My"); - menu815.setCatag(true); - menu815.setAvtag(true); - menu815.setShtag(false); - menu815.setType("M"); - menu815.setPorid("sys"); - menuService.insert(menu815); - - SysPortalMenu menu816 = new SysPortalMenu(); - menu816.setId("MyDemoMainView2"); - menu816.setName("DEMO查看"); - menu816.setCode("MyDemoMainView2"); - menu816.setPath("/my/demo/main/view2"); - menu816.setComp("/my/demo/main/view2"); - menu816.setOrnum(816); - menu816.setIcon("ele-Tickets"); - menu816.setPid("My"); - menu816.setCatag(true); - menu816.setAvtag(true); - menu816.setShtag(false); - menu816.setType("M"); - menu816.setPorid("sys"); - menuService.insert(menu816); - - } - - //营销门户的菜单初始化 - protected void initSaMenu() { - SysPortalMenu home = new SysPortalMenu(); - home.setId("Sa-Home"); - home.setName("营销首页"); - home.setCode("Home"); - home.setComp("/home/sa"); - home.setPath("/home"); - home.setOrnum(0); - home.setIcon("ele-House"); - home.setAvtag(true); - home.setShtag(true); - home.setType("M"); - home.setPorid("sa"); - menuService.insert(home); - - SysPortalMenu menu1 = new SysPortalMenu(); - menu1.setId("Sa-Oa"); - menu1.setName("日常办公"); - menu1.setCode("Oa"); - menu1.setComp("LAYOUT"); - menu1.setPath("/oa"); - menu1.setRedirect("/oa/flow/main"); - menu1.setOrnum(1); - menu1.setIcon("ele-Menu"); - menu1.setAvtag(true); - menu1.setShtag(true); - menu1.setType("D"); - menu1.setPorid("sa"); - menuService.insert(menu1); - - SysPortalMenu menu11 = new SysPortalMenu(); - menu11.setId("Sa-OaFlowMain"); - menu11.setName("流程审批"); - menu11.setCode("OaFlowMain"); - menu11.setPath("/oa/flow/main"); - menu11.setComp("/oa/flow/main/index"); - menu11.setOrnum(11); - menu11.setIcon("ele-Tickets"); - menu11.setPid("Sa-Oa"); - menu11.setCatag(true); - menu11.setAvtag(true); - menu11.setShtag(true); - menu11.setType("M"); - menu11.setPorid("sa"); - menuService.insert(menu11); - } - - @Autowired - private SysPortalMainService mainService; - - @Autowired - private SysPortalMenuService menuService; - - -} diff --git a/vben-admin/src/main/resources/application-dev.properties b/vben-admin/src/main/resources/application-dev.properties deleted file mode 100644 index 8ca84a2..0000000 --- a/vben-admin/src/main/resources/application-dev.properties +++ /dev/null @@ -1,76 +0,0 @@ -server.port=5000 - -#主数据源druid连接池配置 -spring.datasource.primary.initialSize=5 -spring.datasource.primary.minIdle=10 -spring.datasource.primary.maxActive=20 -spring.datasource.primary.maxWait=60000 -spring.datasource.primary.timeBetweenEvictionRunsMillis=60000 -spring.datasource.primary.minEvictableIdleTimeMillis=300000 -spring.datasource.primary.maxEvictableIdleTimeMillis=900000 -spring.datasource.primary.testWhileIdle=true -spring.datasource.primary.testOnBorrow=false -spring.datasource.primary.testOnReturn=false - -#主数据源JPA配置 -spring.datasource.primary.jpa.entityScan=com.abc.module -spring.datasource.primary.jpa.hbm2ddl.auto=update -#spring.datasource.primary.jpa.hbm2ddl.auto=none - -#主数据源-mysql5.7 -#spring.datasource.primary.dbType=mysql -#spring.datasource.primary.validationQuery=SELECT 1 FROM DUAL -#spring.datasource.primary.driver-class-name=com.mysql.jdbc.Driver -#spring.datasource.primary.url=jdbc:mysql://localhost:3306/vben-java?characterEncoding=utf-8&useSSL=false -#spring.datasource.primary.username=root -#spring.datasource.primary.password=123456 - -#主数据源-mysql8 -spring.datasource.primary.dbType=mysql -spring.datasource.primary.validationQuery=SELECT 1 FROM DUAL -spring.datasource.primary.driver-class-name=com.mysql.cj.jdbc.Driver -spring.datasource.primary.url=jdbc:mysql://localhost:3306/vben-java?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC&nullCatalogMeansCurrent=true -spring.datasource.primary.username=root -spring.datasource.primary.password=123456 - -#主数据源-oracle -#spring.datasource.primary.dbType=oracle -#spring.datasource.primary.validationQuery=SELECT 1 FROM DUAL -#spring.datasource.primary.driver-class-name=oracle.jdbc.OracleDriver -##spring.datasource.primary.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl -##spring.datasource.primary.username=scott -##spring.datasource.primary.password=123456 - -#主数据源-sqlserver -#spring.datasource.primary.dbType=sqlserver -#spring.datasource.primary.validationQuery=SELECT 1 -#spring.datasource.primary.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver -##spring.datasource.primary.url=jdbc:sqlserver://127.0.0.1:1433;SelectMethod=cursor;DatabaseName=vben -##spring.datasource.primary.username=sa -##spring.datasource.primary.password=123456 - -#本地附件上传位置 -app.att.path=C:/vben/att -#app.att.path=/home/linux64/java/att -#认证方式 1代表session,2待办jwt token -app.authc.type=2 - -ldap.url=ldap://10.0.0.0:389 -ldap.base=OU=xxx,DC=xxx,DC=com -ldap.userDn=CN=xxx,CN=Users,DC=xxx,DC=com -ldap.userPwd=xxx -ldap.referral=follow -ldap.domainName=%s@xxx.com -management.health.ldap.enabled=false - -oss.configkey= -oss.accesskey= -oss.secretkey= -oss.bucket= -oss.endpoint= -oss.ishttps=N -oss.region= - -vben.amap.key=key维护地址:https://lbs.amap.com/api/webservice/summary/ - -logging.config=classpath:config/logback-dev.xml \ No newline at end of file diff --git a/vben-admin/src/main/resources/application-prd.properties b/vben-admin/src/main/resources/application-prd.properties deleted file mode 100644 index 8ca84a2..0000000 --- a/vben-admin/src/main/resources/application-prd.properties +++ /dev/null @@ -1,76 +0,0 @@ -server.port=5000 - -#主数据源druid连接池配置 -spring.datasource.primary.initialSize=5 -spring.datasource.primary.minIdle=10 -spring.datasource.primary.maxActive=20 -spring.datasource.primary.maxWait=60000 -spring.datasource.primary.timeBetweenEvictionRunsMillis=60000 -spring.datasource.primary.minEvictableIdleTimeMillis=300000 -spring.datasource.primary.maxEvictableIdleTimeMillis=900000 -spring.datasource.primary.testWhileIdle=true -spring.datasource.primary.testOnBorrow=false -spring.datasource.primary.testOnReturn=false - -#主数据源JPA配置 -spring.datasource.primary.jpa.entityScan=com.abc.module -spring.datasource.primary.jpa.hbm2ddl.auto=update -#spring.datasource.primary.jpa.hbm2ddl.auto=none - -#主数据源-mysql5.7 -#spring.datasource.primary.dbType=mysql -#spring.datasource.primary.validationQuery=SELECT 1 FROM DUAL -#spring.datasource.primary.driver-class-name=com.mysql.jdbc.Driver -#spring.datasource.primary.url=jdbc:mysql://localhost:3306/vben-java?characterEncoding=utf-8&useSSL=false -#spring.datasource.primary.username=root -#spring.datasource.primary.password=123456 - -#主数据源-mysql8 -spring.datasource.primary.dbType=mysql -spring.datasource.primary.validationQuery=SELECT 1 FROM DUAL -spring.datasource.primary.driver-class-name=com.mysql.cj.jdbc.Driver -spring.datasource.primary.url=jdbc:mysql://localhost:3306/vben-java?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC&nullCatalogMeansCurrent=true -spring.datasource.primary.username=root -spring.datasource.primary.password=123456 - -#主数据源-oracle -#spring.datasource.primary.dbType=oracle -#spring.datasource.primary.validationQuery=SELECT 1 FROM DUAL -#spring.datasource.primary.driver-class-name=oracle.jdbc.OracleDriver -##spring.datasource.primary.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl -##spring.datasource.primary.username=scott -##spring.datasource.primary.password=123456 - -#主数据源-sqlserver -#spring.datasource.primary.dbType=sqlserver -#spring.datasource.primary.validationQuery=SELECT 1 -#spring.datasource.primary.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver -##spring.datasource.primary.url=jdbc:sqlserver://127.0.0.1:1433;SelectMethod=cursor;DatabaseName=vben -##spring.datasource.primary.username=sa -##spring.datasource.primary.password=123456 - -#本地附件上传位置 -app.att.path=C:/vben/att -#app.att.path=/home/linux64/java/att -#认证方式 1代表session,2待办jwt token -app.authc.type=2 - -ldap.url=ldap://10.0.0.0:389 -ldap.base=OU=xxx,DC=xxx,DC=com -ldap.userDn=CN=xxx,CN=Users,DC=xxx,DC=com -ldap.userPwd=xxx -ldap.referral=follow -ldap.domainName=%s@xxx.com -management.health.ldap.enabled=false - -oss.configkey= -oss.accesskey= -oss.secretkey= -oss.bucket= -oss.endpoint= -oss.ishttps=N -oss.region= - -vben.amap.key=key维护地址:https://lbs.amap.com/api/webservice/summary/ - -logging.config=classpath:config/logback-dev.xml \ No newline at end of file diff --git a/vben-admin/src/main/resources/application.properties b/vben-admin/src/main/resources/application.properties deleted file mode 100644 index 9dca478..0000000 --- a/vben-admin/src/main/resources/application.properties +++ /dev/null @@ -1,19 +0,0 @@ -#web配置 -spring.servlet.multipart.max-file-size=10240000 -spring.servlet.multipart.max-request-size=10240000 -server.compression.enabled=true -server.compression.mime-types=application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css -server.compression.min-response-size=40960000 - - -#最大连接数 -http.maxTotal=100 -http.defaultMaxPerRoute=20 -http.connectTimeout=1000 -http.connectionRequestTimeout=500 -http.socketTimeout=10000 -http.staleConnectionCheckEnabled=true -http.validateAfterInactivity=3000000 - -spring.profiles.active=dev -#spring.profiles.active=prd \ No newline at end of file diff --git a/vben-admin/src/main/resources/application.yml b/vben-admin/src/main/resources/application.yml deleted file mode 100644 index 75b6403..0000000 --- a/vben-admin/src/main/resources/application.yml +++ /dev/null @@ -1,115 +0,0 @@ -# druid配置 -spring: - datasource: - druid: - webStatFilter: - enabled: true - statViewServlet: - enabled: true - # 设置白名单,不填则允许所有访问 - allow: - url-pattern: /druid/* - # 控制台管理用户名和密码 -# login-username: 1 -# login-password: 1 - filter: - stat: - enabled: true - # 慢SQL记录 - log-slow-sql: true - slow-sql-millis: 20000 - merge-sql: true - wall: - config: - multi-statement-allow: true - jpa: - open-in-view: true - banner: - location: classpath:config/banner.txt - jackson: - date-format: yyyy-MM-dd HH:mm:ss - time-zone: GMT+8 - - ---- # redis -spring: - redis: - # 地址 - host: localhost - # 端口,默认为6379 - port: 6379 - # 数据库索引 - database: 1 - # 密码 -# password: -# # 连接超时时间 - timeout: 10s - # 是否开启ssl - ssl: false - -redisson: - # 线程池数量 - threads: 4 - # Netty线程池数量 - nettyThreads: 8 - # 单节点配置 - singleServerConfig: - # 客户端名称 - clientName: zsvg - # 最小空闲连接数 - connectionMinimumIdleSize: 8 - # 连接池大小 - connectionPoolSize: 32 - # 连接空闲超时,单位:毫秒 - idleConnectionTimeout: 10000 - # 命令等待超时,单位:毫秒 - timeout: 3000 - # 发布和订阅连接池大小 - subscriptionConnectionPoolSize: 50 - - -#logging.config: classpath:config/logback.xml - -knife4j: - # 是否开启Knife4j增强模式 - enable: true - # 是否开启生产环境保护策略 - production: false -# basic: -# enable: true -# username: vben -# password: 123456 - # 前端Ui的个性化配置属性 - setting: - # 默认语言 - language: zh-CN - # 是否显示Footer - enableFooter: false - # 是否开启动态参数调试功能 - enableDynamicParameter: true - # 是否在每个Debug调试栏后显示刷新变量按钮 - enableReloadCacheParameter: true - -zsvg: - jwt: - header: Authorization - prefix: "Bearer " - #生成accessToken用的key - akey: 6EtRVaDRFyIe5pBlBh1p6dRD+fLA5phPMyEeVkaNcEMUcpvQwZtGNby24TzuTZ4OBuXTYUaWgZqsRwROg1XWFA== - #生成refreshToken用的key - rkey: W3UZyVu0VQCGMRPvU11CqDovDUku3XASJlXLu0zFZdvUyAvXoEVrumKnz1DSBJ4O5l49Mi2Hesx7Kct4UPTL9g== - #accessToken过期时间 此处单位秒 ,默认8小时 28800 - atime: 28800 - #accessToken过期时间 此处单位秒 ,默认30天 3456000 - rtime: 3456000 - # # 在线用户key - # online-key: online-token- - # # 验证码 - # code-key: code-key- - # # token 续期检查时间范围(默认30分钟,单位毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期 - # detect: 1800000 - # # 续期时间范围,默认1小时,单位毫秒 - # renew: 3600000 - - - diff --git a/vben-admin/src/main/resources/config/app-init.properties b/vben-admin/src/main/resources/config/app-init.properties deleted file mode 100644 index 46dfb4e..0000000 --- a/vben-admin/src/main/resources/config/app-init.properties +++ /dev/null @@ -1,9 +0,0 @@ -#应用初始化类型 -app.init.orgName=XX集团 -app.init.orgRootId=1 -#-- sa:组织架构只包含一个sa管理员与一个vben的演示账户 -#-- test:除了以上数据还包含张三李四等测试人员 -#-- wc:除了以上数据还包含了一些世界杯球队与球员,用于测试大数据量 -app.init.orgType=test -#第一次启动为哪个ui生成菜单 -app.init.uiType=vue \ No newline at end of file diff --git a/vben-admin/src/main/resources/config/banner.txt b/vben-admin/src/main/resources/config/banner.txt deleted file mode 100644 index 7b5282b..0000000 --- a/vben-admin/src/main/resources/config/banner.txt +++ /dev/null @@ -1,6 +0,0 @@ -${AnsiColor.GREEN} - -vben V0.1 一个开箱即用的快速开发平台JAVA版 - -${AnsiColor.GREEN} -${spring-boot.version} \ No newline at end of file diff --git a/vben-admin/src/main/resources/config/logback-dev.xml b/vben-admin/src/main/resources/config/logback-dev.xml deleted file mode 100644 index b3d79ec..0000000 --- a/vben-admin/src/main/resources/config/logback-dev.xml +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - logback - - - - - - - - - - - - - - - - - - - debug - - - ${CONSOLE_LOG_PATTERN} - - - - - - - - - - ${log.path}/web_debug.log - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - UTF-8 - - - - - ${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log - - 100MB - - - 15 - - - - debug - ACCEPT - DENY - - - - - - - ${log.path}/web_info.log - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - UTF-8 - - - - - ${log.path}/web-info-%d{yyyy-MM-dd}.%i.log - - 100MB - - - 15 - - - - info - ACCEPT - DENY - - - - - - - ${log.path}/web_warn.log - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - UTF-8 - - - - ${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log - - 100MB - - - 15 - - - - warn - ACCEPT - DENY - - - - - - - ${log.path}/web_error.log - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - UTF-8 - - - - ${log.path}/web-error-%d{yyyy-MM-dd}.%i.log - - 100MB - - - 15 - - - - ERROR - ACCEPT - DENY - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vben-admin/src/main/resources/config/logback-prd.xml b/vben-admin/src/main/resources/config/logback-prd.xml deleted file mode 100644 index 0b67242..0000000 --- a/vben-admin/src/main/resources/config/logback-prd.xml +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - logback - - - - - - - - - - - - - - - - - - - debug - - - ${CONSOLE_LOG_PATTERN} - - - - - - - - - - ${log.path}/web_debug.log - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - UTF-8 - - - - - ${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log - - 100MB - - - 15 - - - - debug - ACCEPT - DENY - - - - - - - ${log.path}/web_info.log - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - UTF-8 - - - - - ${log.path}/web-info-%d{yyyy-MM-dd}.%i.log - - 100MB - - - 15 - - - - info - ACCEPT - DENY - - - - - - - ${log.path}/web_warn.log - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - UTF-8 - - - - ${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log - - 100MB - - - 15 - - - - warn - ACCEPT - DENY - - - - - - - ${log.path}/web_error.log - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - UTF-8 - - - - ${log.path}/web-error-%d{yyyy-MM-dd}.%i.log - - 100MB - - - 15 - - - - ERROR - ACCEPT - DENY - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vben-admin/src/main/resources/vms/java/api.java.vm b/vben-admin/src/main/resources/vms/java/api.java.vm deleted file mode 100644 index efa3b16..0000000 --- a/vben-admin/src/main/resources/vms/java/api.java.vm +++ /dev/null @@ -1,44 +0,0 @@ -package ${packageName}; - -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("${table.name.replace("_","/")}") -public class ${table.bunam}Api { - - @GetMapping - public R get(String name) { - Sqler sqler = new Sqler("${table.name}"); - sqler.addLike("t.name", name); - return R.ok(service.findPageData(sqler)); - } - - - @GetMapping("one/{id}") - public R getOne(@PathVariable String id) { - ${table.bunam} main = service.findOne(id); - return R.ok(main); - } - - @PostMapping - public R post(@RequestBody ${table.bunam} main) { - return R.ok(service.insert(main)); - } - - @PutMapping - public R put(@RequestBody ${table.bunam} main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private ${table.bunam}Service service; - -} diff --git a/vben-admin/src/main/resources/vms/java/entity.java.vm b/vben-admin/src/main/resources/vms/java/entity.java.vm deleted file mode 100644 index f9111bc..0000000 --- a/vben-admin/src/main/resources/vms/java/entity.java.vm +++ /dev/null @@ -1,36 +0,0 @@ -package ${packageName}; - -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.*; - -@Entity -@Getter -@Setter -public class $table.bunam extends BaseMainEntity { - -#foreach ($field in $fields) - #if($field.type=="string") - @Column(length = $field.length) - private String $field.name; - - #elseif($field.type=="int") - private Integer $field.name; - - #elseif($field.type=="long") - private Long $field.name; - - #elseif($field.type=="bool") - private Boolean $field.name; - - #elseif($field.type=="date") - private Date $field.name; - - #elseif($field.type=="decimal") - private BigDecimal $field.name; - - #end -#end - -} diff --git a/vben-admin/src/main/resources/vms/java/repo.java.vm b/vben-admin/src/main/resources/vms/java/repo.java.vm deleted file mode 100644 index 2f6f279..0000000 --- a/vben-admin/src/main/resources/vms/java/repo.java.vm +++ /dev/null @@ -1,9 +0,0 @@ -package ${packageName}; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface ${table.bunam}Repo extends JpaRepository<${table.bunam},String> { - - -} - diff --git a/vben-admin/src/main/resources/vms/java/service.java.vm b/vben-admin/src/main/resources/vms/java/service.java.vm deleted file mode 100644 index 8848d2d..0000000 --- a/vben-admin/src/main/resources/vms/java/service.java.vm +++ /dev/null @@ -1,20 +0,0 @@ -package ${packageName}; - -import org.springframework.beans.factory.annotation.Autowired; -import vben.core.common.mvc.service.BaseMainService; - -import javax.annotation.PostConstruct; - -@Service -public class ${table.bunam}Service extends BaseMainService<${table.bunam}> { - - @Autowired - private ${table.bunam}Repo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} - diff --git a/vben-admin/src/main/resources/vms/route/route.json.vm b/vben-admin/src/main/resources/vms/route/route.json.vm deleted file mode 100644 index 4fe2d85..0000000 --- a/vben-admin/src/main/resources/vms/route/route.json.vm +++ /dev/null @@ -1,32 +0,0 @@ -{ - path: '/${table.name.replace("_","/")}', - name: '${table.bunam}', - component: () => import('/@/pages/${table.name.replace("_","/")}/index.vue'), - meta:{ - title: '${table.remark}清单', - isLink: '', - isHide: false, - isKeepAlive: true, - isAffix: false, - isIframe: false, - roles: ['admin'], - icon: 'ele-Tickets', - }, -}, -#if($table.edtyp=="tab") -{ - path: '/${table.name.replace("_","/")}/edit', - name: '${table.bunam}Edit', - component: () => import('/@/pages/${table.name.replace("_","/")}/edit.vue'), - meta: { - title: '${table.remark}编辑', - isLink: '', - isHide: true, - isKeepAlive: true, - isAffix: false, - isIframe: false, - roles: ['admin'], - icon: 'ele-Tickets', - }, -}, -#end \ No newline at end of file diff --git a/vben-admin/src/main/resources/vms/route/route.sql.vm b/vben-admin/src/main/resources/vms/route/route.sql.vm deleted file mode 100644 index 9dcf9ba..0000000 --- a/vben-admin/src/main/resources/vms/route/route.sql.vm +++ /dev/null @@ -1,7 +0,0 @@ - insert into sys_portal_menu (id,ornum,pid,porid,type,code,icon,path,comp,extag,catag,shtag,iftag,name,crman,avtag) - values ('${table.bunam}',999991,null,'sys','M','${table.bunam}','ele-Tickets','/${table.name.replace("_","/")}','/${table.name.replace("_","/")}/index',0,1,1,0,'${table.remark}清单','sa',1); - -#if($table.edtyp=="tab") - insert into sys_portal_menu (id,ornum,pid,porid,type,code,icon,path,comp,extag,catag,shtag,iftag,name,crman,avtag) - values ('${table.bunam}Edit',999992,null,'sys','M','${table.bunam}Edit','ele-Tickets','/${table.name.replace("_","/")}/edit','/${table.name.replace("_","/")}/edit',0,1,0,0,'${table.remark}编辑','sa',1); -#end \ No newline at end of file diff --git a/vben-admin/src/main/resources/vms/vue/drawer/edit.vue.vm b/vben-admin/src/main/resources/vms/vue/drawer/edit.vue.vm deleted file mode 100644 index 532dc9d..0000000 --- a/vben-admin/src/main/resources/vms/vue/drawer/edit.vue.vm +++ /dev/null @@ -1,86 +0,0 @@ - - - \ No newline at end of file diff --git a/vben-admin/src/main/resources/vms/vue/drawer/index.vue.vm b/vben-admin/src/main/resources/vms/vue/drawer/index.vue.vm deleted file mode 100644 index 8f51678..0000000 --- a/vben-admin/src/main/resources/vms/vue/drawer/index.vue.vm +++ /dev/null @@ -1,72 +0,0 @@ - - - diff --git a/vben-admin/src/main/resources/vms/vue/popup/edit.vue.vm b/vben-admin/src/main/resources/vms/vue/popup/edit.vue.vm deleted file mode 100644 index 9a78e03..0000000 --- a/vben-admin/src/main/resources/vms/vue/popup/edit.vue.vm +++ /dev/null @@ -1,76 +0,0 @@ - - - diff --git a/vben-admin/src/main/resources/vms/vue/popup/index.vue.vm b/vben-admin/src/main/resources/vms/vue/popup/index.vue.vm deleted file mode 100644 index db2b2bf..0000000 --- a/vben-admin/src/main/resources/vms/vue/popup/index.vue.vm +++ /dev/null @@ -1,71 +0,0 @@ - - - diff --git a/vben-admin/src/main/resources/vms/vue/tab/edit.vue.vm b/vben-admin/src/main/resources/vms/vue/tab/edit.vue.vm deleted file mode 100644 index 6495107..0000000 --- a/vben-admin/src/main/resources/vms/vue/tab/edit.vue.vm +++ /dev/null @@ -1,88 +0,0 @@ - - - diff --git a/vben-admin/src/main/resources/vms/vue/tab/index.vue.vm b/vben-admin/src/main/resources/vms/vue/tab/index.vue.vm deleted file mode 100644 index 2793faa..0000000 --- a/vben-admin/src/main/resources/vms/vue/tab/index.vue.vm +++ /dev/null @@ -1,70 +0,0 @@ - - - diff --git a/vben-core/pom.xml b/vben-core/pom.xml deleted file mode 100644 index cdd5a83..0000000 --- a/vben-core/pom.xml +++ /dev/null @@ -1,359 +0,0 @@ - - - - vben - com.zsvg - 0.1 - - 4.0.0 - - vben-core - - - - com.alibaba - druid-spring-boot-starter - 1.2.23 - - - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.databene - contiperf - 2.3.4 - test - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-configuration-processor - true - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - - - - - - - org.springframework.boot - spring-boot-starter-data-redis - - - - com.microsoft.sqlserver - sqljdbc4 - 4.0 - - - - - - org.projectlombok - lombok - - - - - net.coobird - thumbnailator - 0.4.8 - - - - - com.github.xiaoymin - knife4j-spring-boot-starter - 3.0.3 - - - - io.swagger - swagger-annotations - 1.5.22 - - - - - - - - - - org.apache.commons - commons-lang3 - 3.8.1 - - - org.apache.commons - commons-collections4 - 4.2 - - - - - org.springframework.boot - spring-boot-starter-security - - - - - - - - - - org.quartz-scheduler - quartz - 2.3.0 - - - - - - javax.mail - mail - 1.4.7 - - - - org.springframework.boot - spring-boot-starter-websocket - - - - - - com.alibaba - easyexcel - 3.0.5 - - - cglib - cglib - - - - - cglib - cglib - 3.1 - - - - - - ch.ethz.ganymed - ganymed-ssh2 - build210 - - - - com.jcraft - jsch - 0.1.55 - - - - com.github.oshi - oshi-core - 6.1.6 - - - - org.snmp4j - snmp4j - 2.6.3 - - - - - - net.sf.json-lib - json-lib - 2.2.3 - jdk15 - - - - com.alibaba - fastjson - 1.2.83 - - - - com.google.code.gson - gson - 2.8.6 - - - - - - com.google.zxing - core - 3.4.0 - - - com.google.zxing - javase - 3.4.0 - - - - - com.itextpdf - itextpdf - 5.5.9 - - - com.itextpdf - itext-asian - 5.2.0 - - - - - org.springframework.boot - spring-boot-starter-web-services - - - - org.springframework.boot - spring-boot-starter-validation - - - - org.apache.cxf - cxf-rt-frontend-jaxws - 3.2.0 - - - org.apache.cxf - cxf-core - 3.3.5 - - - org.apache.cxf - cxf-rt-transports-http - 3.2.4 - - - - io.jsonwebtoken - jjwt-api - 0.11.1 - - - io.jsonwebtoken - jjwt-impl - 0.11.1 - - - io.jsonwebtoken - jjwt-jackson - 0.11.1 - - - - cn.hutool - hutool-all - 5.8.35 - - - - org.lionsoul - ip2region - 1.7.2 - - - - - nl.basjes.parse.useragent - yauaa - 5.23 - - - - eu.bitwalker - UserAgentUtils - 1.21 - - - - - - commons-io - commons-io - 2.11.0 - - - - - org.apache.velocity - velocity-engine-core - 2.3 - - - - - com.alibaba.fastjson2 - fastjson2 - 2.0.4 - - - - com.baomidou - mybatis-plus-boot-starter - 3.4.1 - - - - org.jsoup - jsoup - 1.14.3 - - - - - org.redisson - redisson-spring-boot-starter - 3.17.4 - - - - com.amazonaws - aws-java-sdk-s3 - 1.12.248 - - - - org.dom4j - dom4j - 2.1.4 - compile - - - - - \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/common/exception/BadConfigurationException.java b/vben-core/src/main/java/vben/core/common/exception/BadConfigurationException.java deleted file mode 100644 index e26c949..0000000 --- a/vben-core/src/main/java/vben/core/common/exception/BadConfigurationException.java +++ /dev/null @@ -1,77 +0,0 @@ -package vben.core.common.exception; - -public class BadConfigurationException extends RuntimeException { - /** - * Constructs a new runtime exception with {@code null} as its - * detail message. The cause is not initialized, and may subsequently be - * initialized by a call to {@link #initCause}. - */ - public BadConfigurationException() { - super(); - } - - /** - * Constructs a new runtime exception with the specified detail message. - * The cause is not initialized, and may subsequently be initialized by a - * call to {@link #initCause}. - * - * @param message the detail message. The detail message is saved for - * later retrieval by the {@link #getMessage()} method. - */ - public BadConfigurationException(String message) { - super(message); - } - - /** - * Constructs a new runtime exception with the specified detail message and - * cause.

Note that the detail message associated with - * {@code cause} is not automatically incorporated in - * this runtime exception's detail message. - * - * @param message the detail message (which is saved for later retrieval - * by the {@link #getMessage()} method). - * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A {@code null} value is - * permitted, and indicates that the cause is nonexistent or - * unknown.) - * @since 1.4 - */ - public BadConfigurationException(String message, Throwable cause) { - super(message, cause); - } - - /** - * Constructs a new runtime exception with the specified cause and a - * detail message of {@code (cause==null ? null : cause.toString())} - * (which typically contains the class and detail message of - * {@code cause}). This constructor is useful for runtime exceptions - * that are little more than wrappers for other throwables. - * - * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A {@code null} value is - * permitted, and indicates that the cause is nonexistent or - * unknown.) - * @since 1.4 - */ - public BadConfigurationException(Throwable cause) { - super(cause); - } - - /** - * Constructs a new runtime exception with the specified detail - * message, cause, suppression enabled or disabled, and writable - * stack trace enabled or disabled. - * - * @param message the detail message. - * @param cause the cause. (A {@code null} value is permitted, - * and indicates that the cause is nonexistent or unknown.) - * @param enableSuppression whether or not suppression is enabled - * or disabled - * @param writableStackTrace whether or not the stack trace should - * be writable - * @since 1.7 - */ - protected BadConfigurationException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } -} diff --git a/vben-core/src/main/java/vben/core/common/exception/BadRequestException.java b/vben-core/src/main/java/vben/core/common/exception/BadRequestException.java deleted file mode 100644 index d25bde1..0000000 --- a/vben-core/src/main/java/vben/core/common/exception/BadRequestException.java +++ /dev/null @@ -1,21 +0,0 @@ -package vben.core.common.exception; - -import lombok.Getter; -import org.springframework.http.HttpStatus; - -import static org.springframework.http.HttpStatus.BAD_REQUEST; - -@Getter -public class BadRequestException extends RuntimeException{ - - private Integer status = BAD_REQUEST.value(); - - public BadRequestException(String msg){ - super(msg); - } - - public BadRequestException(HttpStatus status, String msg){ - super(msg); - this.status = status.value(); - } -} diff --git a/vben-core/src/main/java/vben/core/common/exception/EntityExistException.java b/vben-core/src/main/java/vben/core/common/exception/EntityExistException.java deleted file mode 100644 index 7708621..0000000 --- a/vben-core/src/main/java/vben/core/common/exception/EntityExistException.java +++ /dev/null @@ -1,15 +0,0 @@ -package vben.core.common.exception; - -import org.springframework.util.StringUtils; - -public class EntityExistException extends RuntimeException { - - public EntityExistException(Class clazz, String field, String val) { - super(EntityExistException.generateMessage(clazz.getSimpleName(), field, val)); - } - - private static String generateMessage(String entity, String field, String val) { - return StringUtils.capitalize(entity) - + " with " + field + " "+ val + " existed"; - } -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/common/exception/EntityNotFoundException.java b/vben-core/src/main/java/vben/core/common/exception/EntityNotFoundException.java deleted file mode 100644 index 296e5f9..0000000 --- a/vben-core/src/main/java/vben/core/common/exception/EntityNotFoundException.java +++ /dev/null @@ -1,15 +0,0 @@ -package vben.core.common.exception; - -import org.springframework.util.StringUtils; - -public class EntityNotFoundException extends RuntimeException { - - public EntityNotFoundException(Class clazz, String field, String val) { - super(EntityNotFoundException.generateMessage(clazz.getSimpleName(), field, val)); - } - - private static String generateMessage(String entity, String field, String val) { - return StringUtils.capitalize(entity) - + " with " + field + " "+ val + " does not exist"; - } -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/common/exception/base/BaseException.java b/vben-core/src/main/java/vben/core/common/exception/base/BaseException.java deleted file mode 100644 index e7ea7c5..0000000 --- a/vben-core/src/main/java/vben/core/common/exception/base/BaseException.java +++ /dev/null @@ -1,74 +0,0 @@ -package vben.core.common.exception.base; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import vben.core.common.utils.ruoyi.StringUtils; - -/** - * 基础异常 - * - * @author ruoyi - */ -@Data -@EqualsAndHashCode(callSuper = true) -@NoArgsConstructor -public class BaseException extends RuntimeException { - private static final long serialVersionUID = 1L; - - /** - * 所属模块 - */ - private String module; - - /** - * 错误码 - */ - private String code; - - /** - * 错误码对应的参数 - */ - private Object[] args; - - /** - * 错误消息 - */ - private String defaultMessage; - - public BaseException(String module, String code, Object[] args, String defaultMessage) { - this.module = module; - this.code = code; - this.args = args; - this.defaultMessage = defaultMessage; - } - - public BaseException(String module, String code, Object[] args) { - this(module, code, args, null); - } - - public BaseException(String module, String defaultMessage) { - this(module, null, null, defaultMessage); - } - - public BaseException(String code, Object[] args) { - this(null, code, args, null); - } - - public BaseException(String defaultMessage) { - this(null, null, null, defaultMessage); - } - - @Override - public String getMessage() { - String message = null; - if (!StringUtils.isEmpty(code)) { - message = MessageUtils.message(code, args); - } - if (message == null) { - message = defaultMessage; - } - return message; - } - -} diff --git a/vben-core/src/main/java/vben/core/common/exception/base/MessageUtils.java b/vben-core/src/main/java/vben/core/common/exception/base/MessageUtils.java deleted file mode 100644 index 8a240f1..0000000 --- a/vben-core/src/main/java/vben/core/common/exception/base/MessageUtils.java +++ /dev/null @@ -1,29 +0,0 @@ -package vben.core.common.exception.base; - -import lombok.AccessLevel; -import lombok.NoArgsConstructor; -import org.springframework.context.MessageSource; -import org.springframework.context.i18n.LocaleContextHolder; -import vben.core.common.utils.extra.SpringUtils; - -/** - * 获取i18n资源文件 - * - * @author Lion Li - */ -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class MessageUtils { - - private static final MessageSource MESSAGE_SOURCE = SpringUtils.getBean(MessageSource.class); - - /** - * 根据消息键和参数 获取消息 委托给spring messageSource - * - * @param code 消息键 - * @param args 参数 - * @return 获取国际化翻译值 - */ - public static String message(String code, Object... args) { - return MESSAGE_SOURCE.getMessage(code, args, LocaleContextHolder.getLocale()); - } -} diff --git a/vben-core/src/main/java/vben/core/common/exception/handler/ApiError.java b/vben-core/src/main/java/vben/core/common/exception/handler/ApiError.java deleted file mode 100644 index 90acbde..0000000 --- a/vben-core/src/main/java/vben/core/common/exception/handler/ApiError.java +++ /dev/null @@ -1,34 +0,0 @@ -package vben.core.common.exception.handler; - -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; - -import java.time.LocalDateTime; - -@Data -class ApiError { - - private Integer code = 500; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime timestamp; - private String msg; - - private ApiError() { - timestamp = LocalDateTime.now(); - } - - public static ApiError error(String message){ - ApiError apiError = new ApiError(); - apiError.setMsg(message); - return apiError; - } - - public static ApiError error(Integer status, String message){ - ApiError apiError = new ApiError(); - apiError.setCode(status); - apiError.setMsg(message); - return apiError; - } -} - - diff --git a/vben-core/src/main/java/vben/core/common/exception/handler/GlobalExceptionHandler.java b/vben-core/src/main/java/vben/core/common/exception/handler/GlobalExceptionHandler.java deleted file mode 100644 index f692865..0000000 --- a/vben-core/src/main/java/vben/core/common/exception/handler/GlobalExceptionHandler.java +++ /dev/null @@ -1,96 +0,0 @@ -package vben.core.common.exception.handler; - -import vben.core.common.exception.BadRequestException; -import vben.core.common.exception.EntityExistException; -import vben.core.common.exception.EntityNotFoundException; -import lombok.extern.slf4j.Slf4j; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.web.bind.MethodArgumentNotValidException; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.RestControllerAdvice; - -import java.util.Objects; - -import static org.springframework.http.HttpStatus.NOT_FOUND; - -@Slf4j -@RestControllerAdvice -public class GlobalExceptionHandler { - - /** - * 处理所有不可知的异常 - */ - @ExceptionHandler(Throwable.class) - public ResponseEntity handleException(Throwable e){ - System.out.println("处理所有不可知的异常"); - // 打印堆栈信息 - log.error(ThrowableUtil.getStackTrace(e)); - return buildResponseEntity(ApiError.error(e.getMessage())); - } - - /** - * BadCredentialsException - */ - @ExceptionHandler(BadCredentialsException.class) - public ResponseEntity badCredentialsException(BadCredentialsException e){ - // 打印堆栈信息 - String message = "坏的凭证".equals(e.getMessage()) ? "用户名或密码不正确" : e.getMessage(); - log.error(message); - return buildResponseEntity(ApiError.error(message)); - } - - /** - * 处理自定义异常 - */ - @ExceptionHandler(value = BadRequestException.class) - public ResponseEntity badRequestException(BadRequestException e) { - // 打印堆栈信息 - log.error(ThrowableUtil.getStackTrace(e)); - return buildResponseEntity(ApiError.error(e.getStatus(),e.getMessage())); - } - - /** - * 处理 EntityExist - */ - @ExceptionHandler(value = EntityExistException.class) - public ResponseEntity entityExistException(EntityExistException e) { - // 打印堆栈信息 - log.error(ThrowableUtil.getStackTrace(e)); - return buildResponseEntity(ApiError.error(e.getMessage())); - } - - /** - * 处理 EntityNotFound - */ - @ExceptionHandler(value = EntityNotFoundException.class) - public ResponseEntity entityNotFoundException(EntityNotFoundException e) { - // 打印堆栈信息 - log.error(ThrowableUtil.getStackTrace(e)); - return buildResponseEntity(ApiError.error(NOT_FOUND.value(),e.getMessage())); - } - - /** - * 处理所有接口数据验证异常 - */ - @ExceptionHandler(MethodArgumentNotValidException.class) - public ResponseEntity handleMethodArgumentNotValidException(MethodArgumentNotValidException e){ - // 打印堆栈信息 - log.error(ThrowableUtil.getStackTrace(e)); - String[] str = Objects.requireNonNull(e.getBindingResult().getAllErrors().get(0).getCodes())[1].split("\\."); - String message = e.getBindingResult().getAllErrors().get(0).getDefaultMessage(); - String msg = "不能为空"; - if(msg.equals(message)){ - message = str[1] + ":" + message; - } - return buildResponseEntity(ApiError.error(message)); - } - - /** - * 统一返回 - */ - private ResponseEntity buildResponseEntity(ApiError apiError) { - return new ResponseEntity<>(apiError, HttpStatus.valueOf(200)); - } -} diff --git a/vben-core/src/main/java/vben/core/common/exception/handler/ThrowableUtil.java b/vben-core/src/main/java/vben/core/common/exception/handler/ThrowableUtil.java deleted file mode 100644 index 828118c..0000000 --- a/vben-core/src/main/java/vben/core/common/exception/handler/ThrowableUtil.java +++ /dev/null @@ -1,18 +0,0 @@ -package vben.core.common.exception.handler; - -import java.io.PrintWriter; -import java.io.StringWriter; - -public class ThrowableUtil { - - /** - * 获取堆栈信息 - */ - public static String getStackTrace(Throwable throwable){ - StringWriter sw = new StringWriter(); - try (PrintWriter pw = new PrintWriter(sw)) { - throwable.printStackTrace(pw); - return sw.toString(); - } - } -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/api/PageData.java b/vben-core/src/main/java/vben/core/common/mvc/api/PageData.java deleted file mode 100644 index 48d7918..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/api/PageData.java +++ /dev/null @@ -1,20 +0,0 @@ -package vben.core.common.mvc.api; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; -import java.util.Map; - -//分页数据返回用VO -@Data -@AllArgsConstructor -@NoArgsConstructor -public class PageData { - - private Integer total; - - private List> items; - -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/api/R.java b/vben-core/src/main/java/vben/core/common/mvc/api/R.java deleted file mode 100644 index fd880ea..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/api/R.java +++ /dev/null @@ -1,72 +0,0 @@ -package vben.core.common.mvc.api; - -import java.util.ArrayList; -import java.util.HashMap; - -//Rest Result结果返回 -public class R extends HashMap { - private static final long serialVersionUID = 1L; - - public static final String CODE_TAG = "code"; - -// public static final String MSG_TAG = "message"; - public static final String MSG_TAG = "msg"; - -// public static final String DATA_TAG = "result"; - public static final String DATA_TAG = "data"; - - public R() { - - } - - public R(int code, String msg) { - super.put(CODE_TAG, code); - super.put(MSG_TAG, msg); - } - - public R(int code, String msg, Object data) { - super.put(CODE_TAG, code); - super.put(MSG_TAG, msg); - super.put(DATA_TAG, data); - } - - public R put(String key, Object value) { - super.put(key, value); - return this; - } - - public static R ok() { - return R.ok("操作成功"); - } - - public static R ok(Object data) { - return R.ok("操作成功", data); - } - - public static R empty() { - return R.ok("操作成功", new ArrayList<>()); - } - -// public static R ok(String msg, Object data) { -// return new R(0, msg, data); -// } - public static R ok(String msg, Object data) { - return new R(200, msg, data); - } - - public static R error(Object data) { - return R.error("操作失败", data); - } - - public static R error(String msg, Object data) { - return new R(500, msg, data); - } - - public static R build(int code, String msg) { - return new R(code, msg, null); - } - - public static R build(int code, String msg, Object data) { - return new R(code, msg, data); - } -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/dao/BaseSqler.java b/vben-core/src/main/java/vben/core/common/mvc/dao/BaseSqler.java deleted file mode 100644 index 3edc797..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/dao/BaseSqler.java +++ /dev/null @@ -1,13 +0,0 @@ -package vben.core.common.mvc.dao; - -import java.sql.SQLException; - - -//增删改SqlHelper的基类 为多个增删改时提供方便的统一处理 -public abstract class BaseSqler { - - public abstract String getSql() throws SQLException; - - public abstract Object[] getParams(); - -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/dao/CacheDao.java b/vben-core/src/main/java/vben/core/common/mvc/dao/CacheDao.java deleted file mode 100644 index 2a0983c..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/dao/CacheDao.java +++ /dev/null @@ -1,170 +0,0 @@ -package vben.core.common.mvc.dao; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.stereotype.Component; - -import java.util.Map; -import java.util.concurrent.TimeUnit; - -//缓存Dao -@Component -public class CacheDao { - - private RedisTemplate redisTemplate; - - @Autowired - public CacheDao(RedisTemplate redisTemplate) { - this.redisTemplate = redisTemplate; - } - - - /** - * 普通缓存获取 - * - * @param key 键 - * @return 值 - */ - public T getCache(String key) { - return key == null ? null : redisTemplate.opsForValue().get(key); - } - - /** - * 普通缓存放入 - * - * @param key 键 - * @param value 值 - * @return true成功 false失败 - */ - public boolean setCache(String key, T value) { - try { - redisTemplate.opsForValue().set(key, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - - } - - /** - * 普通缓存放入并设置时间 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 - * @return true成功 false 失败 - */ - public boolean setCache(String key, T value, long time) { - try { - if (time > 0) { - redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); - } else { - setCache(key, value); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * HashGet - * - * @param key 键 不能为null - * @param item 项 不能为null - * @return 值 - */ - public Object getHashCache(String key, String item) { - return redisTemplate.opsForHash().get(key, item); - } - - /** - * 获取hashKey对应的所有键值 - * - * @param key 键 - * @return 对应的多个键值 - */ - public Map getHashCache(String key) { - return redisTemplate.opsForHash().entries(key); - } - - /** - * HashSet - * - * @param key 键 - * @param map 对应多个键值 - * @return true 成功 false 失败 - */ - public boolean setHashCache(String key, Map map) { - try { - redisTemplate.opsForHash().putAll(key, map); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - -// /** -// * HashSet 并设置时间 -// * -// * @param key 键 -// * @param map 对应多个键值 -// * @param time 时间(秒) -// * @return true成功 false失败 -// */ -// public boolean setHashCache(String key, Map map, long time) { -// try { -// redisTemplate.opsForHash().putAll(key, map); -// if (time > 0) { -// setExpireTime(key, time); -// } -// return true; -// } catch (Exception e) { -// e.printStackTrace(); -// return false; -// } -// } - - /** - * 向一张hash表中放入数据,如果不存在将创建 - * - * @param key 键 - * @param item 项 - * @param value 值 - * @return true 成功 false失败 - */ - public boolean setHashCache(String key, String item, T value) { - try { - redisTemplate.opsForHash().put(key, item, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - -// /** -// * 向一张hash表中放入数据,如果不存在将创建 -// * -// * @param key 键 -// * @param hashKey 项 -// * @param value 值 -// * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 -// * @return true 成功 false失败 -// */ -// public boolean setHashCache(String key, String hashKey, T value, long time) { -// try { -// redisTemplate.opsForHash().put(key, hashKey, value); -// if (time > 0) { -// setExpireTime(key, time); -// } -// return true; -// } catch (Exception e) { -// e.printStackTrace(); -// return false; -// } -// } -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/common/mvc/dao/Dsqler.java b/vben-core/src/main/java/vben/core/common/mvc/dao/Dsqler.java deleted file mode 100644 index 2875f8c..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/dao/Dsqler.java +++ /dev/null @@ -1,52 +0,0 @@ -package vben.core.common.mvc.dao; - -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; - -//删除用的SqlHelper 配合JdbcTemplate使用 -public class Dsqler extends BaseSqler{ - private String deleteClause = ""; - private String whereClause = ""; - private List whereParameters = new ArrayList(); - - - public Dsqler(String table) - { - this.deleteClause = "DELETE FROM " + table + " "; - } - - - public Dsqler addWhere(String condition, Object... params) - { - if (whereClause.length() == 0) - { - whereClause = " WHERE " + condition; - } else - { - whereClause += " AND " + condition; - } - if (params != null && params.length > 0) - { - for (Object obj : params) - { - whereParameters.add(obj); - } - } - return this; - } - - public String getSql() throws SQLException { - if("".equals(whereClause)){ - throw new SQLException("为防止误删,delete 语句必须要有where条件"); - } - return deleteClause + whereClause; - } - - public Object[] getParams() - { - return whereParameters.toArray(); - } - - -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/dao/Isqler.java b/vben-core/src/main/java/vben/core/common/mvc/dao/Isqler.java deleted file mode 100644 index 2361f2d..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/dao/Isqler.java +++ /dev/null @@ -1,63 +0,0 @@ -package vben.core.common.mvc.dao; - -import java.util.ArrayList; -import java.util.List; - -//插入用的SqlHelper 配合JdbcTemplate使用 -public class Isqler extends BaseSqler -{ - private String insertClause = ""; - private String keyClause = ""; - private String valueClause = ""; - private List parameters = new ArrayList(); - - public Isqler(String table) - { - this.insertClause = "INSERT INTO " + table; - } - - public Isqler add(String key, Object value) - { - if ("true".equals(value)) - { - keyClause += key + ","; - valueClause += "?,"; - parameters.add(true); - } else if ("false".equals(value)) - { - keyClause += key + ","; - valueClause += "?,"; - parameters.add(false); - } else - { - keyClause += key + ","; - valueClause += "?,"; - parameters.add(value); - } - return this; - } - - public String getSql() - { - return insertClause + "(" + keyClause.substring(0, keyClause.length() - 1) + ")" + " VALUES(" + valueClause.substring(0, valueClause.length() - 1) + ")"; - } - - public Object[] getParams() - { - return parameters.toArray(); - } - - public void testParams() - { - for (int i = 0; i < parameters.size(); i++) - { - if (i == parameters.size() - 1) - { - System.out.println(parameters.get(i) + ";"); - } else - { - System.out.print(parameters.get(i) + ","); - } - } - } -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/dao/JdbcDao.java b/vben-core/src/main/java/vben/core/common/mvc/dao/JdbcDao.java deleted file mode 100644 index 72c98b0..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/dao/JdbcDao.java +++ /dev/null @@ -1,217 +0,0 @@ -package vben.core.common.mvc.dao; - -import cn.hutool.core.util.StrUtil; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import vben.core.common.utils.db.DbType; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.common.mvc.api.PageData; -import vben.core.common.mvc.pojo.ZidName; -import vben.core.common.mvc.pojo.Ztree; -import vben.core.common.utils.lang.TreeUtils; -import vben.core.common.utils.web.XreqUtil; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -@Component -public class JdbcDao { - - @Value("${spring.datasource.primary.dbType}") - private String DB_TYPE; - - public PageData findPageData(Sqler sqler) { - XreqUtil.setPageParam(sqler); - Integer count = jdbcTemplate.queryForObject(sqler.getSizeSql(), sqler.getParams(), Integer.class); - if (count == null || count == 0) { - return new PageData(0, new ArrayList<>()); - } - List> list; - if (DbType.MYSQL.equals(DB_TYPE)) { - list = jdbcTemplate.queryForList(sqler.getMysqlPagingSql(), sqler.getParams()); - } else if (DbType.ORACLE.equals(DB_TYPE)) { - list = jdbcTemplate.queryForList(sqler.getOraclePagingLowerCaseSql(), sqler.getParams()); - } else if (DbType.SQL_SERVER.equals(DB_TYPE)) { - System.out.println(sqler.getSqlserverPagingSql()); - list = jdbcTemplate.queryForList(sqler.getSqlserverPagingSql(), sqler.getParams()); - } else { - System.err.println("目前只支持mysql,oracle与sqlserver"); - list = new ArrayList<>(); - } - return new PageData(count, list); - } - - public List> findPageMapList(Sqler sqler) { - Integer count = jdbcTemplate.queryForObject(sqler.getSizeSql(), sqler.getParams(), Integer.class); - if (count == null || count == 0) { - return null; - } - List> list; - if (DbType.MYSQL.equals(DB_TYPE)) { - list = jdbcTemplate.queryForList(sqler.getMysqlPagingSql(), sqler.getParams()); - } else if (DbType.ORACLE.equals(DB_TYPE)) { - list = jdbcTemplate.queryForList(sqler.getOraclePagingLowerCaseSql(), sqler.getParams()); - } else if (DbType.SQL_SERVER.equals(DB_TYPE)) { - System.out.println(sqler.getSqlserverPagingSql()); - list = jdbcTemplate.queryForList(sqler.getSqlserverPagingSql(), sqler.getParams()); - } else { - System.err.println("目前只支持mysql,oracle与sqlserver"); - list = new ArrayList<>(); - } - return list; - } - - //-------------------------------------------------------------------------------- - public List findTreeList(String sql, Object... args) { - List list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Ztree.class)); - return TreeUtils.build(list); - } - - public List findTreeList(Sqler sqler) { - List list = jdbcTemplate.query(sqler.getSql(), sqler.getParams(), (rs, rowNum) -> { - Ztree ztree = new Ztree(); - ztree.setId(rs.getString("id")); - ztree.setName(rs.getString("name")); - ztree.setPid(rs.getString("pid")); - return ztree; - }); - return TreeUtils.build(list); - } - - public List findIdNameList(String sql, Object... args) { - return jdbcTemplate.query(sql, args, (rs, rowNum) -> { - ZidName ztwo = new ZidName(); - ztwo.setId(rs.getString("id")); - ztwo.setName(rs.getString("name")); - return ztwo; - }); - } - - public List getIdNameListByTable(String table, String name) { - String sql = "select id,name from " + table + " where avtag = 1"; - if (StrUtil.isBlank(name)) { - return findIdNameList(sql); - } else { - return jdbcTemplate.query(sql + " and name like ?", new Object[]{"%" + name + "%"}, (rs, rowNum) -> { - ZidName ztwo = new ZidName(); - ztwo.setId(rs.getString("id")); - ztwo.setName(rs.getString("name")); - return ztwo; - }); - } - } - - - public List findIdNameList(Sqler sqler) { - return findIdNameList((sqler.getSql()), sqler.getParams()); - } - - public List findOrgList(String sql, Object... args) { - return jdbcTemplate.query(sql, args, (rs, rowNum) -> { - SysOrg sysOrg = new SysOrg(); - sysOrg.setId(rs.getString("id")); - sysOrg.setName(rs.getString("name")); - return sysOrg; - }); - } - - public List findStringList(String sql, Object... args) { - return jdbcTemplate.query(sql, args, (rs, rowNum) -> rs.getString("id")); - } - - public List findStringList(Sqler sqler) { - return jdbcTemplate.query(sqler.getSql(), sqler.getParams(), (rs, rowNum) -> rs.getString("id")); - } - - public Integer findSize(Sqler sqler) { - return jdbcTemplate.queryForObject(sqler.getSizeSql(), sqler.getParams(), Integer.class); - } - - public String findOneString(String sql, Object... args) { - String str = null; - try { - str = jdbcTemplate.queryForObject(sql, args, String.class); - } catch (Exception ignored) { - - } - return str; - } - - public String findOneString(Sqler sqler) { - return findOneString(sqler.getSql(), sqler.getParams()); - } - - public Map findMap(Sqler sqler) { - List> list = jdbcTemplate.queryForList(sqler.getSql(), sqler.getParams()); - if (list.size() > 0) { - return list.get(0); - } else { - return null; - } -// return jdbcTemplate.queryForMap(sqler.getSql(), sqler.getParams()); - } - - public Map findMap(String sql, Object... args) { - List> list = jdbcTemplate.queryForList(sql, args); - if (list.size()==0) { - return null; - } else { - return list.get(0); - } - } - - public List> findMapList(Sqler sqler) { - if (DbType.ORACLE.equals(DB_TYPE)) { - return jdbcTemplate.queryForList(sqler.getLowerCaseSql(), sqler.getParams()); - } else{ - return jdbcTemplate.queryForList(sqler.getSql(), sqler.getParams()); - } - } - - public List> findMapList(String sql, Object... args) { - return jdbcTemplate.queryForList(sql, args); - } - - - public String findOneName(String table, String id) { - if (StrUtil.isBlank(id)) { - return null; - } else { - return jdbcTemplate.queryForObject("select name from " + table + " where id = ?", new Object[]{id}, String.class); - } - } - - - //queryForObject 如果返回没结果会报错 - - - //增删改---------------------------------------------------------------------------------- - public int update(String sql, Object... args) { - return jdbcTemplate.update(sql, args); - } - - public int update(BaseSqler sqler) throws SQLException { - return jdbcTemplate.update(sqler.getSql(), sqler.getParams()); - } - - public int[] batch(String sql, List list) { - return jdbcTemplate.batchUpdate(sql, list); - } - - public String getDbType() { - return DB_TYPE; - } - - public JdbcTemplate getTp() { -// jdbcDao.getTp().query(sql, new Object[]{}, new BeanPropertyRowMapper<>(Qmarg.class)); - return jdbcTemplate; - } - - @Resource - private JdbcTemplate jdbcTemplate; -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/dao/Sqler.java b/vben-core/src/main/java/vben/core/common/mvc/dao/Sqler.java deleted file mode 100644 index 8fedcd4..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/dao/Sqler.java +++ /dev/null @@ -1,487 +0,0 @@ -package vben.core.common.mvc.dao; - -import cn.hutool.core.util.StrUtil; -import vben.core.common.utils.db.DbType; -import vben.core.framework.security.pojo.Zuser; - -import java.util.ArrayList; -import java.util.List; - -//查询用的SqlHelper 配合JdbcTemplate使用 -public class Sqler -{ - private String fromClause = ""; - private String whereClause = ""; - private String orderClause = ""; - private String selectClause = ""; - private String groupClause = ""; - private Integer panum = 1; - private Integer pasiz = 10; - private int autoType=1; - private List parameters = new ArrayList<>(); // 参数清单 - - public Sqler() - { - - } - - public Sqler(String table, Integer panum, Integer pasiz) - { - this.selectClause = "SELECT t.id,t.name"; - this.fromClause = " FROM " + table+" t"; - if (panum != null) - { - this.panum = panum; - } - if (pasiz != null) - { - this.pasiz = pasiz; - } - } - - public Sqler(String fields, String table, Integer panum, Integer pasiz) - { - this.selectClause = "SELECT " + fields; - this.fromClause = " FROM " + table+" t"; - if (panum != null) - { - this.panum = panum; - } - if (pasiz != null) - { - this.pasiz = pasiz; - } - } - - - public Sqler(String table) - { - this.selectClause = "SELECT t.id,t.name"; - this.fromClause = " FROM " + table+" t"; - } - - public Sqler(String fields, String table) - { - this.selectClause = "SELECT " + fields; - this.fromClause = " FROM " + table+" t"; - } - - public void addSelect(String fields) - { - selectClause += "," + fields; - } - - public Sqler addInnerJoin(String fields, String table, String condition) - { - if (!fields.equals("")) - { - selectClause += "," + fields; - } - fromClause += " INNER JOIN " + table + " ON " + condition; - return this; - } - - public Sqler addLeftJoin(String fields, String table, String condition) - { - if (!fields.equals("")) - { - selectClause += "," + fields; - } - fromClause += " Left JOIN " + table + " ON " + condition; - return this; - } - - public Sqler addWhere(String condition, Object... params) - { - if (whereClause.length() == 0) - { - whereClause = " WHERE " + condition; - } else - { - whereClause += " AND " + condition; - } - if (params != null && params.length > 0) - { - for (Object obj : params) - { - parameters.add(obj); - } - } - return this; - } - - public Sqler addWhere(boolean append, String condition, Object... params) - { - if (append) - { - addWhere(condition, params); - } - return this; - } - - public Sqler addEqual(String name, String value) - { - if (StrUtil.isNotBlank(value)) - { - if (whereClause.length() == 0) - { - whereClause = " WHERE " + name + " = ?"; - } else - { - whereClause += " AND " + name + " = ?"; - } - parameters.add(value); - } - return this; - } - - public Sqler addLike(String name, String value) - { - if (StrUtil.isNotBlank(value)) - { - if (whereClause.length() == 0) - { - whereClause = " WHERE " + name + " like ?"; - } else - { - whereClause += " AND " + name + " like ?"; - } - parameters.add("%"+value.trim()+"%"); - } - return this; - } - - public Sqler addGtStringDate(String name, String value) - { - if (StrUtil.isNotBlank(value)) - { - if (whereClause.length() == 0) - { - whereClause = " WHERE " + name + ">=?"; - } else - { - whereClause += " AND " + name + ">=?"; - } - parameters.add(value); - } - return this; - } - - public Sqler addGtDate(String name, String value, String dbType) - { - if(DbType.ORACLE.equals(dbType)){ - if (StrUtil.isNotBlank(value)) - { - if (whereClause.length() == 0) - { - whereClause = " WHERE " + name + ">=to_date(?,'yyyy-MM-dd')"; - } else - { - whereClause += " AND " + name + ">=to_date(?,'yyyy-MM-dd')"; - } - parameters.add(value); - } - }else if(DbType.MYSQL.equals(dbType)){ - if (StrUtil.isNotBlank(value)) - { - if (whereClause.length() == 0) - { - whereClause = " WHERE unix_timestamp(" + name + ") >=unix_timestamp(?)"; - } else - { - whereClause += " AND unix_timestamp(" + name + ") >=unix_timestamp(?)"; - } - parameters.add(value); - } - } - - return this; - } - - public Sqler addLtDate(String name, String value, String dbType) - { - if(DbType.ORACLE.equals(dbType)) { - if (StrUtil.isNotBlank(value)) { - if (whereClause.length() == 0) { - whereClause = " WHERE " + name + " " + rn; - } - - public String getOraclePagingSql() - { - int rownum = panum * pasiz; - int rn = (panum - 1) * pasiz; - return " SELECT * FROM (SELECT PPGG.*, ROWNUM RN FROM (" + selectClause + fromClause + whereClause+groupClause + orderClause + ") PPGG WHERE ROWNUM <= " + rownum + ") WHERE RN > " + rn; -// return " SELECT * FROM (SELECT PPGG.*, ROWNUM RN FROM (" + changeSelectClause.toString() + fromClause + whereClause+groupClause + orderClause + ") PPGG WHERE ROWNUM <= " + rownum + ") WHERE RN > " + rn; - } - - public String getOraclePagingLowerCaseSql() - { - //字段转成小写 - StringBuilder changeSelectClause= new StringBuilder(); - String[] strArr= selectClause.split(","); - lowerCaseSelect(changeSelectClause, strArr); - changeSelectClause.deleteCharAt(changeSelectClause.length()-1); - //分页 - int rownum = panum * pasiz; - int rn = (panum - 1) * pasiz; - return " SELECT * FROM (SELECT PPGG.*, ROWNUM RN FROM (" + changeSelectClause.toString() + fromClause + whereClause+groupClause + orderClause + ") PPGG WHERE ROWNUM <= " + rownum + ") WHERE RN > " + rn; - } - - private void lowerCaseSelect(StringBuilder changeSelectClause, String[] strArr) { - for (String aStrArr : strArr) { - if(aStrArr.contains("(")&&!aStrArr.contains(")")){ - changeSelectClause.append(" ").append(aStrArr); - }else if(aStrArr.contains("SELECT")){ - String[] firstArr = aStrArr.split(" "); - if(firstArr.length>=3){ - firstArr[firstArr.length - 1] = "\"" + firstArr[firstArr.length - 1] + "\""; - }else{ - firstArr[1]=firstArr[1]+" \"" + firstArr[1].substring(firstArr[1].lastIndexOf(".")+1) + "\""; - } - for (String afirstArr : firstArr) { - changeSelectClause.append(" ").append(afirstArr); - } - }else{ - - String[] strArr2 = aStrArr.split(" "); - if(strArr2.length>=2){ - strArr2[strArr2.length - 1] = "\"" + strArr2[strArr2.length - 1] + "\""; - }else{ - strArr2[0]=strArr2[0]+" \"" + strArr2[0].substring(strArr2[0].lastIndexOf(".")+1) + "\""; - } - for (String aStrArr2 : strArr2) { - changeSelectClause.append(" ").append(aStrArr2); - } - } - changeSelectClause.append(","); - } - } - - -// public String getOraclePagingSql() -// { -// int rownum = panum * pasiz; -// int rn = (panum - 1) * pasiz; -// return " SELECT * FROM (SELECT PPGG.*, ROWNUM RN FROM (" + selectClause + fromClause + whereClause+groupClause + orderClause + ") PPGG WHERE ROWNUM <= " + rownum + ") WHERE RN > " + rn; -//// return " SELECT * FROM (SELECT PPGG.*, ROWNUM RN FROM (" + changeSelectClause.toString() + fromClause + whereClause+groupClause + orderClause + ") PPGG WHERE ROWNUM <= " + rownum + ") WHERE RN > " + rn; -// } -// -// public String getOraclePagingLowerCaseSql() -// { -// //字段转成小写 -// StringBuilder changeSelectClause= new StringBuilder(); -// String[] strArr= selectClause.split(","); -// lowerCaseSelect(changeSelectClause, strArr); -// changeSelectClause.deleteCharAt(changeSelectClause.length()-1); -// //分页 -// int rownum = panum * pasiz; -// int rn = (panum - 1) * pasiz; -// return " SELECT * FROM (SELECT PPGG.*, ROWNUM RN FROM (" + changeSelectClause.toString() + fromClause + whereClause+groupClause + orderClause + ") PPGG WHERE ROWNUM <= " + rownum + ") WHERE RN > " + rn; -// } -// -// private void lowerCaseSelect(StringBuilder changeSelectClause, String[] strArr) { -// for (String aStrArr : strArr) { -// if(aStrArr.contains("(")&&!aStrArr.contains(")")){ -// changeSelectClause.append(" ").append(aStrArr); -// }else{ -// String[] strArr2 = aStrArr.split(" "); -// strArr2[strArr2.length - 1] = "\"" + strArr2[strArr2.length - 1] + "\""; -// for (String aStrArr2 : strArr2) { -// changeSelectClause.append(" ").append(aStrArr2); -// } -// } -// changeSelectClause.append(","); -// } -// } - - public Object[] getParams() - { - return parameters.toArray(); - } - - public void testParams() - { - for (int i = 0; i < parameters.size(); i++) - { - if (i == parameters.size() - 1) - { - System.out.println(parameters.get(i) + ";"); - } else - { - System.out.print(parameters.get(i) + ","); - } - } - } - //get and set----------------------------------------------- - - - public Integer getPanum() { - return panum; - } - - public Integer getPasiz() { - return pasiz; - } - - public int getAutoType() { - return autoType; - } - - public void setAutoType(int autoType) { - this.autoType = autoType; - } - - public void setPanum(Integer panum) { - this.panum = panum; - } - - public void setPasiz(Integer pasiz) { - this.pasiz = pasiz; - } -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/dao/Usqler.java b/vben-core/src/main/java/vben/core/common/mvc/dao/Usqler.java deleted file mode 100644 index 7814bc6..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/dao/Usqler.java +++ /dev/null @@ -1,85 +0,0 @@ -package vben.core.common.mvc.dao; - -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; - -//更新用的SqlHelper 配合JdbcTemplate使用 -public class Usqler extends BaseSqler -{ - private String updateClause = ""; - private String keyClause = ""; - private String whereClause = ""; - private List parameters = new ArrayList(); //参数列表 - private List whereParameters = new ArrayList(); - - - public Usqler(String table) - { - this.updateClause = "UPDATE " + table + " SET "; - } - - public Usqler add(String key, Object value) - { - if ("true".equals(value)) - { - keyClause += key + "=?,"; - parameters.add(true); - } else if ("false".equals(value)) - { - keyClause += key + "=?,"; - parameters.add(false); - } else - { - keyClause += key + "=?,"; - parameters.add(value); - } - return this; - } - - public Usqler addWhere(String condition, Object... params) - { - if (whereClause.length() == 0) - { - whereClause = " WHERE " + condition; - } else - { - whereClause += " AND " + condition; - } - if (params != null && params.length > 0) - { - for (Object obj : params) - { - whereParameters.add(obj); - } - } - return this; - } - - public String getSql() throws SQLException { - if("".equals(whereClause)){ - throw new SQLException("为防止误更新,update 语句必须要有where条件"); - } - return updateClause + keyClause.substring(0, keyClause.length() - 1) + whereClause; - } - - public Object[] getParams() - { - parameters.addAll(whereParameters); - return parameters.toArray(); - } - - public void testParams() - { - for (int i = 0; i < parameters.size(); i++) - { - if (i == parameters.size() - 1) - { - System.out.println(parameters.get(i) + ";"); - } else - { - System.out.print(parameters.get(i) + ","); - } - } - } -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/entity/BaseCateEntity.java b/vben-core/src/main/java/vben/core/common/mvc/entity/BaseCateEntity.java deleted file mode 100644 index 70dda6a..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/entity/BaseCateEntity.java +++ /dev/null @@ -1,74 +0,0 @@ -package vben.core.common.mvc.entity; - -import io.swagger.annotations.ApiModelProperty; -import vben.core.module.sys.org.root.SysOrg; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.*; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -//分类Entity基类,可实现无限多级的树结构 -@MappedSuperclass -@Getter -@Setter -public class BaseCateEntity { - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - protected String id; - - //----------------------层级属性参考----------------------- - @Column(length = 1000) - @ApiModelProperty("层级信息") - protected String tier; - - @Transient - @ApiModelProperty("父分类ID") - protected String pid; - - @Transient - @ApiModelProperty("父分类") - protected BaseCateEntity parent; - - @Transient - @ApiModelProperty("子分类列表") - protected List children = new ArrayList<>(); - //----------------------通用属性----------------------- - @ApiModelProperty("名称") - protected String name; - - @Column(length = 64) - @ApiModelProperty("标签") - protected String label; - - @Column(length = 500) - @ApiModelProperty("备注") - protected String notes; - - @ApiModelProperty("可用标记 1启用,0禁用") - protected Boolean avtag; - - @ApiModelProperty("排序号") - protected Integer ornum; - - @ManyToOne - @JoinColumn(name = "crmid", updatable = false) - @ApiModelProperty("创建人") - protected SysOrg crman; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - protected Date crtim = new Date(); - - @ApiModelProperty("更新时间") - protected Date uptim; - - @ManyToOne - @JoinColumn(name = "upmid") - @ApiModelProperty("更新人") - protected SysOrg upman; - -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/entity/BaseEntity.java b/vben-core/src/main/java/vben/core/common/mvc/entity/BaseEntity.java deleted file mode 100644 index a71d4b0..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/entity/BaseEntity.java +++ /dev/null @@ -1,26 +0,0 @@ -package vben.core.common.mvc.entity; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Id; -import javax.persistence.MappedSuperclass; - -//简单Entity基类,仅提供id与name字段,如有租户需求,可加租户ID。 -@MappedSuperclass -@Getter -@Setter -public class BaseEntity { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - protected String id; - - @Column(length = 126) - @ApiModelProperty("名称") - protected String name; - -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/entity/BaseMainEntity.java b/vben-core/src/main/java/vben/core/common/mvc/entity/BaseMainEntity.java deleted file mode 100644 index 3dd5b0e..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/entity/BaseMainEntity.java +++ /dev/null @@ -1,65 +0,0 @@ -package vben.core.common.mvc.entity; - -import com.alibaba.excel.annotation.ExcelIgnore; -import io.swagger.annotations.ApiModelProperty; -import vben.core.module.sys.org.root.SysOrg; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.*; -import java.util.Date; - -//主数据Entity基类,提供通用的字段 -@MappedSuperclass -@Getter -@Setter -public class BaseMainEntity { - //----------------------id属性----------------------- - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - protected String id; - - //----------------------权限属性----------------------- -// @ManyToMany -// @JoinTable(name = "xxx_viewer", joinColumns = {@JoinColumn(name = "id")}, -// inverseJoinColumns = {@JoinColumn(name = "org")}) -// private List viewers;//记录可查看者 -// -// @ManyToMany -// @JoinTable(name = "xxx_editor", joinColumns = {@JoinColumn(name = "id")}, -// inverseJoinColumns = {@JoinColumn(name = "org")}) -// private List editors;//记录可编辑者 - - - //----------------------norm标准属性----------------------- - @Column(length = 126) - @ApiModelProperty("名称") - protected String name; - - @ApiModelProperty("可用标记")// 1启用,0禁用 - protected Boolean avtag = true; - - @ManyToOne - @JoinColumn(name = "crmid", updatable = false) - @ExcelIgnore - @ApiModelProperty("创建人") - protected SysOrg crman; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - protected Date crtim = new Date(); - - @ManyToOne - @JoinColumn(name = "upmid") - @ExcelIgnore - @ApiModelProperty("更新人") - protected SysOrg upman; - - @ApiModelProperty("更新时间") - protected Date uptim; - - @ApiModelProperty("备注") - protected String notes; - -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/pojo/TreeMovePo.java b/vben-core/src/main/java/vben/core/common/mvc/pojo/TreeMovePo.java deleted file mode 100644 index 85e5e7c..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/pojo/TreeMovePo.java +++ /dev/null @@ -1,14 +0,0 @@ -package vben.core.common.mvc.pojo; - -import lombok.Data; - -@Data -public class TreeMovePo { - - private String draid; - - private String droid; - - private String type; - -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/pojo/ZidName.java b/vben-core/src/main/java/vben/core/common/mvc/pojo/ZidName.java deleted file mode 100644 index efb1039..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/pojo/ZidName.java +++ /dev/null @@ -1,47 +0,0 @@ -package vben.core.common.mvc.pojo; - -//基础pojo,只有id与name属性 -public class ZidName -{ - private String id; - private String name; - - @Override - public String toString() { - return "ZidName{" + - "id='" + id + '\'' + - ", name='" + name + '\'' + - '}'; - } - - public ZidName(String id, String name) - { - this.id = id; - this.name = name; - } - - public ZidName() - { - } - - //get and set------- - public String getId() - { - return id; - } - - public void setId(String id) - { - this.id = id; - } - - public String getName() - { - return name; - } - - public void setName(String name) - { - this.name = name; - } -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/pojo/ZidNamePid.java b/vben-core/src/main/java/vben/core/common/mvc/pojo/ZidNamePid.java deleted file mode 100644 index 447b7e2..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/pojo/ZidNamePid.java +++ /dev/null @@ -1,13 +0,0 @@ -package vben.core.common.mvc.pojo; - -import lombok.Data; - -@Data -public class ZidNamePid { - - private String id; - - private String name; - - private String pid; -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/pojo/ZidOrnum.java b/vben-core/src/main/java/vben/core/common/mvc/pojo/ZidOrnum.java deleted file mode 100644 index 3a35b3d..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/pojo/ZidOrnum.java +++ /dev/null @@ -1,11 +0,0 @@ -package vben.core.common.mvc.pojo; - -import lombok.Data; - -@Data -public class ZidOrnum { - - private String id; - - private Integer ornum; -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/pojo/Ztree.java b/vben-core/src/main/java/vben/core/common/mvc/pojo/Ztree.java deleted file mode 100644 index f8070a0..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/pojo/Ztree.java +++ /dev/null @@ -1,21 +0,0 @@ -package vben.core.common.mvc.pojo; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; - -import java.util.List; - -@Data -public class Ztree { - private String id; - - private String name; - - @JsonIgnore - private String pid; - - private String type; - - private List children; - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/common/mvc/service/BaseCateService.java b/vben-core/src/main/java/vben/core/common/mvc/service/BaseCateService.java deleted file mode 100644 index 36f5afc..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/service/BaseCateService.java +++ /dev/null @@ -1,241 +0,0 @@ -package vben.core.common.mvc.service; - -import cn.hutool.core.util.StrUtil; -import vben.core.common.mvc.api.PageData; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.entity.BaseCateEntity; -import vben.core.common.mvc.pojo.ZidName; -import vben.core.common.utils.lang.IdUtils; -import vben.core.common.mvc.pojo.Ztree; -import vben.core.common.utils.web.XuserUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -//分类Service基类,提供分类Entity增删改查的通用方法 -@Transactional(rollbackFor = Exception.class) -public abstract class BaseCateService { - - //---------------------------------------查询------------------------------------- - //查询Tree树形集合数据 - public List findTreeList(String table, String name) { - Sqler sqler = new Sqler(table); - sqler.addSelect("t.pid"); - sqler.addLike("t.name", name); - sqler.addOrder("t.ornum"); - List list = jdbcDao.findTreeList(sqler); - return list; - } - - //查询分页 - @Transactional(readOnly = true) - public PageData findPageData(Sqler sqler) { - sqler.selectCUinfo().addSelect("t.label"); - sqler.addOrder("t.ornum"); - return jdbcDao.findPageData(sqler); - } - - //查询ZidName集合 - @Transactional(readOnly = true) - public List findIdNameRes(Sqler sqler) { - return jdbcDao.findIdNameList(sqler); - } - - - //用户编辑时选择父类别,不能选择自己及孩子节点,否则会造成无限循环 -// @Transactional(readOnly = true) -// public List inpChoose(String table, String id, String name){ -// Sqler sqler = new Sqler(table); -// sqler.addSelect("pid"); -// sqler.addWhere("t.avtag = 1"); -// if (StrUtil.isNotBlank(id)) { -// sqler.addWhere("t.tier not like ?", "%;" + id + ";%"); -// sqler.addWhere("t.id <> ?", id); -// } -// if(StrUtil.isNotBlank(name)){ -// sqler.addLike("t.name", name); -// } -// sqler.addOrder("t.ornum"); -// return jdbcDao.findInpList(sqler); -// } - - //查询ZidName集合 - @Transactional(readOnly = true) - public List tier2Choose(String table, String id, String name){ - Sqler sqler = new Sqler(table); - sqler.addSelect("pid"); - sqler.addWhere("t.avtag = 1"); - if (StrUtil.isNotBlank(id)) { - sqler.addWhere("t.tier not like ?", "%x" + id + "x%"); - sqler.addWhere("t.id <> ?", id); - } - if(StrUtil.isNotBlank(name)){ - sqler.addLike("t.name", name); - } - sqler.addOrder("t.ornum"); - return jdbcDao.findTreeList(sqler); - } - -// @Transactional(readOnly = true) -// public R inpFind(String table){ -// Sqler sqlHelper = new Sqler(table); -// sqlHelper.addSelect("pid"); -// sqlHelper.addWhere("t.avtag = 1"); -// sqlHelper.addOrder("t.ornum"); -// return R.ok(jdbcDao.findInpList(sqlHelper)); -// } -// -// public R inpDele(String table, String id){ -// String sql = "select id from " + table + " where tier like ? order by tier"; -// List stringList = jdbcDao.findStringList(sql, "%;" + id + ";%"); -// for (String sid : stringList) { -// repo.deleteById(sid); -// } -// repo.deleteById(id); -// return R.ok(); -// } - - //查询单个实体详细信息 - @Transactional(readOnly = true) - public T findOne(String id) { - return repo.findById(id).get(); - } - - //---------------------------------------增删改------------------------------------- - //新增 - public String insert(T cate) { - if(cate.getId()==null||"".equals(cate.getId())){ - cate.setId(IdUtils.getUID()); - } - if(cate.getCrman()==null){ - cate.setCrman(XuserUtil.getUser()); - } - if (cate.getParent() != null) { - T parent = repo.findById(cate.getParent().getId()).get(); - cate.setTier(parent.getTier()+cate.getId()+ "x"); - } else { - cate.setTier("x"+cate.getId()+"x"); - } -// cate.setCrtim(new Date()); - cate.setUptim(cate.getCrtim()); - repo.save(cate); - return cate.getId(); - } - - //更新 - public String update(T cate){ - cate.setUptim(new Date()); - if(cate.getUpman()==null){ - cate.setUpman(XuserUtil.getUser()); - } - repo.save(cate); - return cate.getId(); - } - - //级联更新 - public String update(T cate,String table,boolean tierChange){ - cate.setUptim(new Date()); - if(cate.getUpman()==null){ - cate.setUpman(XuserUtil.getUser()); - } - String newPid = ""; - if(cate.getParent()!=null){ - newPid=cate.getParent().getId(); - } - T oldCate=repo.findById(cate.getId()).get(); - String oldPid=""; - if(oldCate.getParent()!=null){ - oldPid =oldCate.getParent().getId(); - } - String oldTier=oldCate.getTier(); - if(oldPid.equals(newPid)&&!tierChange){//如果父节点没有变,则只更新自己 -// System.out.println("父节点没有变"); - cate.setTier(oldTier); - repo.save(cate); - }else{//如果父节点变了,则另外需要更新自己孩子节点的tier层级 - String newTier = "x"+cate.getId()+"x"; - if(cate.getParent()!=null){ -// System.out.println("父节点变成其他点了"); - T newParentCate=repo.findById(cate.getParent().getId()).get(); - newTier =newParentCate.getTier()+cate.getId()+"x"; - } - cate.setTier(newTier); - repo.save(cate); - //更新子节点 - String sql = "select id,tier as name from " + table + " where tier like ? and id<>?"; -// System.out.println(sql); - List list = jdbcDao.findIdNameList(sql, oldTier+"%",cate.getId()); - - String updateSql = "update " + table + " set tier=? where id=?"; - List updateList = new ArrayList(); - for (ZidName ztwo : list) { - Object[] arr = new Object[2]; - arr[0] = ztwo.getName().replace(oldTier,newTier); - arr[1] = ztwo.getId(); - updateList.add(arr); - } - jdbcDao.batch(updateSql, updateList); - } - return cate.getId(); - } - - //删除 - public int delete(String[] ids) { - for (String id : ids) { - repo.deleteById(id); - } - return ids.length; - } - - //---------------------------------------构建树形结构辅助方法------------------------------------- - //使用递归方法建树 - public List buildByRecursive(List nodes) { - List list = new ArrayList<>(); - for (T node : nodes) { - if (node.getPid() == null) { - list.add(findChildrenByTier(node, nodes)); - } else { - boolean flag = false; - for (BaseCateEntity node2 : nodes) { - if (node.getPid().equals(node2.getId())) { - flag = true; - break; - } - } - if (!flag) { - list.add(findChildrenByTier(node, nodes)); - } - } - } - return list; - } - - //递归查找子节点 - private T findChildrenByTier(T node, List nodes) { - for (T item : nodes) { - if (node.getId().equals(item.getPid())) { - if (node.getChildren() == null) { - node.setChildren(new ArrayList<>()); - } - node.getChildren().add(findChildrenByTier(item, nodes)); - } - } - return node; - } - - //---------------------------------------bean注入------------------------------------- - - @Autowired - protected JdbcDao jdbcDao; - - protected JpaRepository repo; - - public void setRepo(JpaRepository repo) { - this.repo = repo; - } -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/common/mvc/service/BaseMainService.java b/vben-core/src/main/java/vben/core/common/mvc/service/BaseMainService.java deleted file mode 100644 index 949e16b..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/service/BaseMainService.java +++ /dev/null @@ -1,105 +0,0 @@ -package vben.core.common.mvc.service; - -import vben.core.common.mvc.api.PageData; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.entity.BaseMainEntity; -import vben.core.common.utils.web.XuserUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; - -import java.util.Date; -import java.util.List; -import java.util.Map; - -//主数据Service基类,提供主数据Entity增删改查的通用方法 -@Transactional(rollbackFor = Exception.class) -public abstract class BaseMainService { - - //---------------------------------------查询------------------------------------- - //查询分页 - @Transactional(readOnly = true) - public PageData findPageData(Sqler sqler) { - if (sqler.getAutoType() == 1) { - sqler.selectCUinfo(); - sqler.addOrder("t.crtim desc"); - } - return jdbcDao.findPageData(sqler); - } - - //查询MapList数据 - @Transactional(readOnly = true) - public List> findMapList(Sqler sqler) { - return jdbcDao.findMapList(sqler); - } - - //根据ID判断数据库实体是否存在 - @Transactional(readOnly = true) - public boolean existsById(String id) { - return repo.existsById(id); - } - - //查询单个实体详细信息 - @Transactional(readOnly = true) - public T findOne(String id) { - return repo.findById(id).get(); - } - - //查询所有记录 - @Transactional(readOnly = true) - public List findAll() { - return repo.findAll(); - } - - //---------------------------------------增删改------------------------------------- - //新增 - public String insert(T main) { - if (main.getId() == null || "".equals(main.getId())) { - main.setId(IdUtils.getUID()); - } -// main.setCrtim(new Date()); - main.setUptim(main.getCrtim()); - if (main.getCrman() == null) { - main.setCrman(XuserUtil.getUser()); - } - repo.save(main); - return main.getId(); - } - - //修改 - public String update(T main) { - main.setUptim(new Date()); - if (main.getUpman() == null) { - main.setUpman(XuserUtil.getUser()); - } - repo.save(main); - return main.getId(); - } - - //删除 - public int delete(String[] ids) { - for (String id : ids) { - repo.deleteById(id); - } - return ids.length; - } - - //新增或修改 - public T save(T t) { - return repo.save(t); - } - - - //---------------------------------------bean注入------------------------------------- - @Autowired - protected JdbcDao jdbcDao; - - protected JpaRepository repo; - - public void setRepo(JpaRepository repo) { - this.repo = repo; - } - -} diff --git a/vben-core/src/main/java/vben/core/common/mvc/service/BaseService.java b/vben-core/src/main/java/vben/core/common/mvc/service/BaseService.java deleted file mode 100644 index baeaba5..0000000 --- a/vben-core/src/main/java/vben/core/common/mvc/service/BaseService.java +++ /dev/null @@ -1,92 +0,0 @@ -package vben.core.common.mvc.service; - -import vben.core.common.mvc.api.PageData; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.entity.BaseEntity; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; - -import java.util.List; -import java.util.Map; - -//简单表Service基类,提供简单Entity增删改查的通用方法 -@Transactional(rollbackFor = Exception.class) -public abstract class BaseService { - - //---------------------------------------查询------------------------------------- - //查询分页 - @Transactional(readOnly = true) - public PageData findPageData(Sqler sqler) { - return jdbcDao.findPageData(sqler); - } - - //查询MapList数据 - @Transactional(readOnly = true) - public List> findMapList(Sqler sqler) { - return jdbcDao.findMapList(sqler); - } - - //根据ID判断数据库实体是否存在 - @Transactional(readOnly = true) - public boolean existsById(String id) { - return repo.existsById(id); - } - - //查询单个实体详细信息 - @Transactional(readOnly = true) - public T findOne(String id) { - return repo.findById(id).get(); - } - - //查询所有记录 - @Transactional(readOnly = true) - public List findAll() { - return repo.findAll(); - } - - - //---------------------------------------增删改------------------------------------- - //新增 - public String insert(T main) { - if (main.getId() == null||"".equals(main.getId())) { - main.setId(IdUtils.getUID()); - } - repo.save(main); - return main.getId(); - } - - //修改 - public String update(T main) { - repo.save(main); - return main.getId(); - } - - //删除 - public int delete(String[] ids) { - for (String id : ids) { - repo.deleteById(id); - } - return ids.length; - } - - //新增或修改 - public T save(T t) { - return repo.save(t); - } - - - //---------------------------------------bean注入------------------------------------- - @Autowired - protected JdbcDao jdbcDao; - - protected JpaRepository repo; - - public void setRepo(JpaRepository repo) { - this.repo = repo; - } - - -} diff --git a/vben-core/src/main/java/vben/core/common/others/MapHelper.java b/vben-core/src/main/java/vben/core/common/others/MapHelper.java deleted file mode 100644 index 78c9f3b..0000000 --- a/vben-core/src/main/java/vben/core/common/others/MapHelper.java +++ /dev/null @@ -1,34 +0,0 @@ -package vben.core.common.others; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -public class MapHelper { - private Map map; - - public MapHelper(){ - map = new LinkedHashMap<>(); - } - - public MapHelper(String field,String title){ - map = new LinkedHashMap<>(); - map.put("field", field); - map.put("title", title); - } - - public MapHelper put(String key,String value){ - map.put(key, value); - return this; - } - - public Map get(){ - return map; - } - - public MapHelper addTo(List list){ - list.add(map); - return this; - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/db/DataTypeEnum.java b/vben-core/src/main/java/vben/core/common/utils/db/DataTypeEnum.java deleted file mode 100644 index 0c08b1b..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/db/DataTypeEnum.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * << - * Davinci - * == - * Copyright (C) 2016 - 2019 EDP - * == - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * >> - * - */ - -package vben.core.common.utils.db; -import lombok.extern.slf4j.Slf4j; -/** - * @author / - */ -@Slf4j -@SuppressWarnings({"unchecked","all"}) -public enum DataTypeEnum { - - /** mysql */ - MYSQL("mysql", "mysql", "com.mysql.jdbc.Driver", "`", "`", "'", "'"), - - /** oracle */ - ORACLE("oracle", "oracle", "oracle.jdbc.driver.OracleDriver", "\"", "\"", "\"", "\""), - - /** sql server */ - SQLSERVER("sqlserver", "sqlserver", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "\"", "\"", "\"", "\""), - - /** h2 */ - H2("h2", "h2", "org.h2.Driver", "`", "`", "\"", "\""), - - /** phoenix */ - PHOENIX("phoenix", "hbase phoenix", "org.apache.phoenix.jdbc.PhoenixDriver", "", "", "\"", "\""), - - /** mongo */ - MONGODB("mongo", "mongodb", "mongodb.jdbc.MongoDriver", "`", "`", "\"", "\""), - - /** sql4es */ - ELASTICSEARCH("sql4es", "elasticsearch", "nl.anchormen.sql4es.jdbc.ESDriver", "", "", "'", "'"), - - /** presto */ - PRESTO("presto", "presto", "com.facebook.presto.jdbc.PrestoDriver", "", "", "\"", "\""), - - /** moonbox */ - MOONBOX("moonbox", "moonbox", "moonbox.jdbc.MbDriver", "`", "`", "`", "`"), - - /** cassandra */ - CASSANDRA("cassandra", "cassandra", "com.github.adejanovski.cassandra.jdbc.CassandraDriver", "", "", "'", "'"), - - /** click house */ - CLICKHOUSE("clickhouse", "clickhouse", "ru.yandex.clickhouse.ClickHouseDriver", "", "", "\"", "\""), - - /** kylin */ - KYLIN("kylin", "kylin", "org.apache.kylin.jdbc.Driver", "\"", "\"", "\"", "\""), - - /** vertica */ - VERTICA("vertica", "vertica", "com.vertica.jdbc.Driver", "", "", "'", "'"), - - /** sap */ - HANA("sap", "sap hana", "com.sap.db.jdbc.Driver", "", "", "'", "'"), - - /** impala */ - IMPALA("impala", "impala", "com.cloudera.impala.jdbc41.Driver", "", "", "'", "'"); - - private String feature; - private String desc; - private String driver; - private String keywordPrefix; - private String keywordSuffix; - private String aliasPrefix; - private String aliasSuffix; - - private static final String JDBC_URL_PREFIX = "jdbc:"; - - DataTypeEnum(String feature, String desc, String driver, String keywordPrefix, String keywordSuffix, String aliasPrefix, String aliasSuffix) { - this.feature = feature; - this.desc = desc; - this.driver = driver; - this.keywordPrefix = keywordPrefix; - this.keywordSuffix = keywordSuffix; - this.aliasPrefix = aliasPrefix; - this.aliasSuffix = aliasSuffix; - } - - public static DataTypeEnum urlOf(String jdbcUrl) { - String url = jdbcUrl.toLowerCase().trim(); - for (DataTypeEnum dataTypeEnum : values()) { - if (url.startsWith(JDBC_URL_PREFIX + dataTypeEnum.feature)) { - try { - Class aClass = Class.forName(dataTypeEnum.getDriver()); - if (null == aClass) { - throw new RuntimeException("Unable to get driver instance for jdbcUrl: " + jdbcUrl); - } - } catch (ClassNotFoundException e) { - throw new RuntimeException("Unable to get driver instance: " + jdbcUrl); - } - return dataTypeEnum; - } - } - return null; - } - - public String getFeature() { - return feature; - } - - public String getDesc() { - return desc; - } - - public String getDriver() { - return driver; - } - - public String getKeywordPrefix() { - return keywordPrefix; - } - - public String getKeywordSuffix() { - return keywordSuffix; - } - - public String getAliasPrefix() { - return aliasPrefix; - } - - public String getAliasSuffix() { - return aliasSuffix; - } -} diff --git a/vben-core/src/main/java/vben/core/common/utils/db/DbType.java b/vben-core/src/main/java/vben/core/common/utils/db/DbType.java deleted file mode 100644 index aaffe80..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/db/DbType.java +++ /dev/null @@ -1,15 +0,0 @@ -package vben.core.common.utils.db; - -public class DbType { - - public static final String MYSQL = "mysql"; - - public static final String MYSQL8 = "mysql8"; - - public static final String ORACLE = "oracle"; - - public static final String SQL_SERVER = "sqlserver"; - - public static final String DB2 = "db2"; - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/db/Jdao.java b/vben-core/src/main/java/vben/core/common/utils/db/Jdao.java deleted file mode 100644 index 8f20e6c..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/db/Jdao.java +++ /dev/null @@ -1,215 +0,0 @@ -package vben.core.common.utils.db; - -import cn.hutool.core.util.StrUtil; -import org.springframework.jdbc.core.JdbcTemplate; -import vben.core.common.mvc.api.PageData; -import vben.core.common.mvc.dao.BaseSqler; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.ZidName; -import vben.core.common.mvc.pojo.Ztree; -import vben.core.common.utils.lang.TreeUtils; -import vben.core.common.utils.web.XreqUtil; -import vben.core.module.sys.org.root.SysOrg; - -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public class Jdao { - - public Jdao(JdbcTemplate jdbcTemplate, String dbType){ - this.jdbcTemplate=jdbcTemplate; - this.DB_TYPE=dbType; - } - - private JdbcTemplate jdbcTemplate; - - private String DB_TYPE; - - public PageData findPageData(Sqler sqler) { - XreqUtil.setPageParam(sqler); - Integer count = jdbcTemplate.queryForObject(sqler.getSizeSql(), sqler.getParams(), Integer.class); - if (count == null || count == 0) { - return new PageData(0, new ArrayList<>()); - } - List> list; - if (DbType.MYSQL.equals(DB_TYPE)) { - list = jdbcTemplate.queryForList(sqler.getMysqlPagingSql(), sqler.getParams()); - } else if (DbType.ORACLE.equals(DB_TYPE)) { - list = jdbcTemplate.queryForList(sqler.getOraclePagingLowerCaseSql(), sqler.getParams()); - } else if (DbType.SQL_SERVER.equals(DB_TYPE)) { - System.out.println(sqler.getSqlserverPagingSql()); - list = jdbcTemplate.queryForList(sqler.getSqlserverPagingSql(), sqler.getParams()); - } else { - System.err.println("目前只支持mysql,oracle与sqlserver"); - list = new ArrayList<>(); - } - return new PageData(count, list); - } - - public List> findPageMapList(Sqler sqler) { - Integer count = jdbcTemplate.queryForObject(sqler.getSizeSql(), sqler.getParams(), Integer.class); - if (count == null || count == 0) { - return null; - } - List> list; - if (DbType.MYSQL.equals(DB_TYPE)) { - list = jdbcTemplate.queryForList(sqler.getMysqlPagingSql(), sqler.getParams()); - } else if (DbType.ORACLE.equals(DB_TYPE)) { - list = jdbcTemplate.queryForList(sqler.getOraclePagingLowerCaseSql(), sqler.getParams()); - } else if (DbType.SQL_SERVER.equals(DB_TYPE)) { - System.out.println(sqler.getSqlserverPagingSql()); - list = jdbcTemplate.queryForList(sqler.getSqlserverPagingSql(), sqler.getParams()); - } else { - System.err.println("目前只支持mysql,oracle与sqlserver"); - list = new ArrayList<>(); - } - return list; - } - - //-------------------------------------------------------------------------------- - - public List findTreeList(Sqler sqler) { - List list = jdbcTemplate.query(sqler.getSql(), sqler.getParams(), (rs, rowNum) -> { - Ztree ztree = new Ztree(); - ztree.setId(rs.getString("id")); - ztree.setName(rs.getString("name")); - ztree.setPid(rs.getString("pid")); - return ztree; - }); - return TreeUtils.build(list); - } - - - public List findIdNameList(String sql, Object... args) { - return jdbcTemplate.query(sql, args, (rs, rowNum) -> { - ZidName ztwo = new ZidName(); - ztwo.setId(rs.getString("id")); - ztwo.setName(rs.getString("name")); - return ztwo; - }); - } - - public List getIdNameListByTable(String table, String name) { - String sql = "select id,name from " + table + " where avtag = 1"; - if (StrUtil.isBlank(name)) { - return findIdNameList(sql); - } else { - return jdbcTemplate.query(sql + " and name like ?", new Object[]{"%" + name + "%"}, (rs, rowNum) -> { - ZidName ztwo = new ZidName(); - ztwo.setId(rs.getString("id")); - ztwo.setName(rs.getString("name")); - return ztwo; - }); - } - } - - - public List findIdNameList(Sqler sqlHelper) { - return findIdNameList((sqlHelper.getSql()), sqlHelper.getParams()); - } - - - public List findOrgList(String sql, Object... args) { - return jdbcTemplate.query(sql, args, (rs, rowNum) -> { - SysOrg sysOrg = new SysOrg(); - sysOrg.setId(rs.getString("id")); - sysOrg.setName(rs.getString("name")); - return sysOrg; - }); - } - - public List findStringList(String sql, Object... args) { - return jdbcTemplate.query(sql, args, (rs, rowNum) -> rs.getString("id")); - } - - public List findStringList(Sqler sqler) { - return jdbcTemplate.query(sqler.getSql(), sqler.getParams(), (rs, rowNum) -> rs.getString("id")); - } - - public Integer findSize(Sqler sqler) { - return jdbcTemplate.queryForObject(sqler.getSizeSql(), sqler.getParams(), Integer.class); - } - - public String findOneString(String sql, Object... args) { - String str = null; - try { - str = jdbcTemplate.queryForObject(sql, args, String.class); - } catch (Exception ignored) { - - } - return str; - } - - public String findOneString(Sqler sqler) { - return findOneString(sqler.getSql(), sqler.getParams()); - } - - public Map findMap(Sqler sqler) { - List> list = jdbcTemplate.queryForList(sqler.getSql(), sqler.getParams()); - if (list.size() > 0) { - return list.get(0); - } else { - return null; - } -// return jdbcTemplate.queryForMap(sqler.getSql(), sqler.getParams()); - } - - public Map findMap(String sql, Object... args) { - List> list = jdbcTemplate.queryForList(sql, args); - if (list.size()==0) { - return null; - } else { - return list.get(0); - } - } - - public List> findMapList(Sqler sqler) { - if (DbType.ORACLE.equals(DB_TYPE)) { - return jdbcTemplate.queryForList(sqler.getLowerCaseSql(), sqler.getParams()); - } else{ - return jdbcTemplate.queryForList(sqler.getSql(), sqler.getParams()); - } - } - - public List> findMapList(String sql, Object... args) { - return jdbcTemplate.queryForList(sql, args); - } - - - public String findOneName(String table, String id) { - if (StrUtil.isBlank(id)) { - return null; - } else { - return jdbcTemplate.queryForObject("select name from " + table + " where id = ?", new Object[]{id}, String.class); - } - } - - - //queryForObject 如果返回没结果会报错 - - - //增删改---------------------------------------------------------------------------------- - public int update(String sql, Object... args) { - return jdbcTemplate.update(sql, args); - } - - public int update(BaseSqler sqler) throws SQLException { - return jdbcTemplate.update(sqler.getSql(), sqler.getParams()); - } - - public int[] batch(String sql, List list) { - return jdbcTemplate.batchUpdate(sql, list); - } - - public String getDbType() { - return DB_TYPE; - } - - public JdbcTemplate getTp() { -// jdbcDao.getTp().query(sql, new Object[]{}, new BeanPropertyRowMapper<>(Qmarg.class)); - return jdbcTemplate; - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/db/SqlUtils.java b/vben-core/src/main/java/vben/core/common/utils/db/SqlUtils.java deleted file mode 100644 index 2ba42d2..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/db/SqlUtils.java +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package vben.core.common.utils.db; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.druid.pool.DruidDataSource; -import com.alibaba.druid.util.StringUtils; -import lombok.extern.slf4j.Slf4j; -import org.springframework.jdbc.core.JdbcTemplate; -import vben.core.module.mon.server.main.CloseUtil; - -import javax.sql.DataSource; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; -import java.util.HashMap; -import java.util.Map; - -/** - * @author / - */ -@Slf4j -public class SqlUtils { - - private static Map dataSourceMap = new HashMap<>(); - - private static Map jdaoMap = new HashMap<>(); - - private static DataSource getDataSource(Zconn zconn) { - if (StrUtil.isNotBlank(zconn.getName())) { - DruidDataSource ds = dataSourceMap.get(zconn.getName()); - if (ds != null) { - return ds; - } - } - DruidDataSource druidDataSource = new DruidDataSource(); - String className; - try { - className = DriverManager.getDriver(zconn.getUrl().trim()).getClass().getName(); - } catch (SQLException e) { - throw new RuntimeException("Get class name error: =" + zconn.getUrl()); - } - if (StringUtils.isEmpty(className)) { - DataTypeEnum dataTypeEnum = DataTypeEnum.urlOf(zconn.getUrl()); - if (null == dataTypeEnum) { - throw new RuntimeException("Not supported data type: jdbcUrl=" + zconn.getUrl()); - } - druidDataSource.setDriverClassName(dataTypeEnum.getDriver()); - } else { - druidDataSource.setDriverClassName(className); - } - - if (StrUtil.isNotBlank(zconn.getName())) { - druidDataSource.setName(zconn.getName()); - } - druidDataSource.setUrl(zconn.getUrl()); - druidDataSource.setUsername(zconn.getUsername()); - druidDataSource.setPassword(zconn.getPasscode()); - // 配置获取连接等待超时的时间 - druidDataSource.setMaxWait(3000); - // 配置初始化大小、最小、最大 - druidDataSource.setInitialSize(1); - druidDataSource.setMinIdle(1); - druidDataSource.setMaxActive(5); - - if(DbType.SQL_SERVER.equals(zconn.getType())){ - druidDataSource.setValidationQuery("SELECT 1"); - } - - // 如果链接出现异常则直接判定为失败而不是一直重试 - druidDataSource.setBreakAfterAcquireFailure(true); - try { - druidDataSource.init(); - } catch (SQLException e) { - log.error("Exception during pool initialization", e); - throw new RuntimeException(e.getMessage()); - } - if(StrUtil.isNotBlank(zconn.getName())){ - dataSourceMap.put(zconn.getName(), druidDataSource); - } - return druidDataSource; - } - - public static Jdao getJdao(Zconn zconn) { - Jdao jdao = jdaoMap.get(zconn.getName()); - if (jdao != null) { - return jdao; - } else { - DataSource druidDataSource = getDataSource(zconn); - JdbcTemplate jdbcTemplate = new JdbcTemplate(druidDataSource); - jdao = new Jdao(jdbcTemplate, zconn.getType()); - jdaoMap.put(zconn.getName(), jdao); - return jdao; - } - } - - private static Connection getConnection(Zconn zconn) { - DataSource dataSource = getDataSource(zconn); - Connection connection = null; - try { - connection = dataSource.getConnection(); - } catch (Exception ignored) { - } - try { - int timeOut = 5; - if (null == connection || connection.isClosed() || !connection.isValid(timeOut)) { - log.info("connection is closed or invalid, retry get connection!"); - connection = dataSource.getConnection(); - } - } catch (Exception e) { - log.error("create connection error, jdbcUrl: {}", zconn.getUrl()); - throw new RuntimeException("create connection error, jdbcUrl: " + zconn.getUrl()); - } finally { - CloseUtil.close(connection); - } - return connection; - } - - private static void releaseConnection(Connection connection) { - if (null != connection) { - try { - connection.close(); - } catch (Exception e) { - log.error(e.getMessage(), e); - log.error("connection close error:" + e.getMessage()); - } - } - } - - public static boolean testConnection(Zconn zconn) { - Connection connection = null; - DataSource dataSource = null; - try { - dataSource = getDataSource(zconn); - connection = dataSource.getConnection(); - int timeOut = 5; - if (null == connection || connection.isClosed() || !connection.isValid(timeOut)) { - log.info("connection is closed or invalid, retry get connection!"); - connection = dataSource.getConnection(); - } - if (null != connection) { - return true; - } - } catch (Exception e) { - log.info("Get connection failed:" + e.getMessage()); - } finally { - CloseUtil.close(connection); - releaseConnection(connection); - assert dataSource != null; - ((DruidDataSource) dataSource).close(); - } - return false; - } - -// public static boolean testConnection(String name,String jdbcUrl, String userName, String password) { -// Connection connection = null; -// try { -// connection = getConnection(name,jdbcUrl, userName, password); -// if (null != connection) { -// return true; -// } -// } catch (Exception e) { -// log.info("Get connection failed:" + e.getMessage()); -// } finally { -// releaseConnection(connection); -// } -// return false; -// } - -// public static boolean execSql(String name, String jdbcUrl, String userName, String password) { -// Connection connection = null; -// try { -// connection = getConnection(name, jdbcUrl, userName, password); -// if (null != connection) { -// return true; -// } -// } catch (Exception e) { -// log.info("Get connection failed:" + e.getMessage()); -// } finally { -// releaseConnection(connection); -// } -// return false; -// } - -// public static String executeFile(String name, String jdbcUrl, String userName, String password, File sqlFile) { -// Connection connection = getConnection(name, jdbcUrl, userName, password); -// try { -// batchExecute(connection, readSqlList(sqlFile)); -// } catch (Exception e) { -// log.error("sql脚本执行发生异常:{}", e.getMessage()); -// return e.getMessage(); -// } finally { -// releaseConnection(connection); -// } -// return "success"; -// } - - - /** - * 批量执行sql - * - * @param connection / - * @param sqlList / - */ -// public static void batchExecute(Connection connection, List sqlList) { -// Statement st = null; -// try { -// st = connection.createStatement(); -// for (String sql : sqlList) { -// if (sql.endsWith(";")) { -// sql = sql.substring(0, sql.length() - 1); -// } -// st.addBatch(sql); -// } -// st.executeBatch(); -// } catch (SQLException throwables) { -// throwables.printStackTrace(); -// } finally { -// CloseUtil.close(st); -// } -// } - - /** - * 将文件中的sql语句以;为单位读取到列表中 - * - * @param sqlFile / - * @return / - * @throws Exception e - */ -// private static List readSqlList(File sqlFile) throws Exception { -// List sqlList = Lists.newArrayList(); -// StringBuilder sb = new StringBuilder(); -// try (BufferedReader reader = new BufferedReader(new InputStreamReader( -// new FileInputStream(sqlFile), StandardCharsets.UTF_8))) { -// String tmp; -// while ((tmp = reader.readLine()) != null) { -// log.info("line:{}", tmp); -// if (tmp.endsWith(";")) { -// sb.append(tmp); -// sqlList.add(sb.toString()); -// sb.delete(0, sb.length()); -// } else { -// sb.append(tmp); -// } -// } -// if (!"".endsWith(sb.toString().trim())) { -// sqlList.add(sb.toString()); -// } -// } -// -// return sqlList; -// } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/db/Zconn.java b/vben-core/src/main/java/vben/core/common/utils/db/Zconn.java deleted file mode 100644 index 44c2b0e..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/db/Zconn.java +++ /dev/null @@ -1,86 +0,0 @@ -package vben.core.common.utils.db; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -//数据库连接Pojo -@Data -@AllArgsConstructor -@NoArgsConstructor -public class Zconn { - private String name; - - private String type; - - private String url; - - private String username; - - private String passcode; - - public String getSid() - { - if(isMysql()) - { - String lasturl=url.split("\\?")[0]; - return lasturl.substring(lasturl.lastIndexOf("/")+1); - } - else if (isOracle()) - { - if(url.indexOf("/")>0){ - return url.substring(url.lastIndexOf("/")+1); - }else{ - return url.substring(url.lastIndexOf(":")+1); - } - } - else if (isSqlserver()) - { - return url.substring(url.lastIndexOf("Name=")+5); - } - else if (isDb2()) - { - return url.substring(url.lastIndexOf("/")+1); - } - else{ - return null; - } - } - - public String getDriver(){ - if(isOracle()){ - return "oracle.jdbc.driver.OracleDriver"; - }else if(isMysql()){ - return "com.mysql.jdbc.Driver"; - }else if(isMysql8()){ - return "com.mysql.cj.jdbc.Driver"; - }else if(isDb2()){ - return "com.ibm.db2.jcc.DB2Driver"; - }else{ - return "暂不支持"; - } - } - - public boolean isOracle() - { - return DbType.ORACLE.equals(type); - } - public boolean isMysql() - { - return DbType.MYSQL.equals(type); - } - public boolean isMysql8() - { - return DbType.MYSQL8.equals(type); - } - - public boolean isDb2() - { - return DbType.DB2.equals(type); - } - - public boolean isSqlserver() - { - return DbType.SQL_SERVER.equals(type); - } -} diff --git a/vben-core/src/main/java/vben/core/common/utils/extra/SpringUtils.java b/vben-core/src/main/java/vben/core/common/utils/extra/SpringUtils.java deleted file mode 100644 index 039faf9..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/extra/SpringUtils.java +++ /dev/null @@ -1,65 +0,0 @@ -package vben.core.common.utils.extra; - -import cn.hutool.extra.spring.SpringUtil; -import org.springframework.aop.framework.AopContext; -import org.springframework.beans.factory.NoSuchBeanDefinitionException; -import org.springframework.stereotype.Component; - -/** - * spring工具类 - * - * @author Lion Li - */ -@Component -public final class SpringUtils extends SpringUtil { - - /** - * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true - * - * @param name - * @return boolean - */ - public static boolean containsBean(String name) { - return getBeanFactory().containsBean(name); - } - - /** - * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 - * 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException) - * - * @param name - * @return boolean - */ - public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { - return getBeanFactory().isSingleton(name); - } - - /** - * @param name - * @return Class 注册对象的类型 - */ - public static Class getType(String name) throws NoSuchBeanDefinitionException { - return getBeanFactory().getType(name); - } - - /** - * 如果给定的bean名字在bean定义中有别名,则返回这些别名 - * - * @param name - */ - public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { - return getBeanFactory().getAliases(name); - } - - /** - * 获取aop代理对象 - * - * @param invoker - * @return - */ - @SuppressWarnings("unchecked") - public static T getAopProxy(T invoker) { - return (T) AopContext.currentProxy(); - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/file/ExcelUtil.java b/vben-core/src/main/java/vben/core/common/utils/file/ExcelUtil.java deleted file mode 100644 index 8220a6f..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/ExcelUtil.java +++ /dev/null @@ -1,159 +0,0 @@ -package vben.core.common.utils.file; - -import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; -import lombok.AccessLevel; -import lombok.NoArgsConstructor; -import vben.core.common.utils.file.excel.DefaultExcelListener; -import vben.core.common.utils.file.excel.ExcelBigNumberConvert; -import vben.core.common.utils.file.excel.ExcelListener; -import vben.core.common.utils.file.excel.ExcelResult; -import vben.core.common.utils.ruoyi.StringUtils; - -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; - -/** - * Excel相关处理 - * - * @author Lion Li - */ -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class ExcelUtil { - - /** - * 同步导入(适用于小数据量) - * - * @param is 输入流 - * @return 转换后集合 - */ - public static List importExcel(InputStream is, Class clazz) { - return EasyExcel.read(is).head(clazz).autoCloseStream(false).sheet().doReadSync(); - } - - - /** - * 使用校验监听器 异步导入 同步返回 - * - * @param is 输入流 - * @param clazz 对象类型 - * @param isValidate 是否 Validator 检验 默认为是 - * @return 转换后集合 - */ - public static ExcelResult importExcel(InputStream is, Class clazz, boolean isValidate) { - DefaultExcelListener listener = new DefaultExcelListener<>(isValidate); - EasyExcel.read(is, clazz, listener).sheet().doRead(); - return listener.getExcelResult(); - } - - /** - * 使用自定义监听器 异步导入 自定义返回 - * - * @param is 输入流 - * @param clazz 对象类型 - * @param listener 自定义监听器 - * @return 转换后集合 - */ - public static ExcelResult importExcel(InputStream is, Class clazz, ExcelListener listener) { - EasyExcel.read(is, clazz, listener).sheet().doRead(); - return listener.getExcelResult(); - } - - /** - * 导出excel - * - * @param list 导出数据集合 - * @param sheetName 工作表的名称 - * @return 结果 - */ - public static void exportExcel(List list, String sheetName, Class clazz, HttpServletResponse response) { - try { - String filename = encodingFilename(sheetName); -// response.reset(); - FileUtils.setAttachmentResponseHeader(response, filename); -// response.setContentType("application/vnd.ms-excel"); - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"); -// response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"); - ServletOutputStream os = response.getOutputStream(); - EasyExcel.write(os, clazz) - .autoCloseStream(false) - // 自动适配 - .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) - // 大数值自动转换 防止失真 - .registerConverter(new ExcelBigNumberConvert()) - .sheet(sheetName).doWrite(list); - } catch (IOException e) { - throw new RuntimeException("导出Excel异常"); - } - } - - /** - * 解析导出值 0=男,1=女,2=未知 - * - * @param propertyValue 参数值 - * @param converterExp 翻译注解 - * @param separator 分隔符 - * @return 解析后值 - */ - public static String convertByExp(String propertyValue, String converterExp, String separator) { - StringBuilder propertyString = new StringBuilder(); - String[] convertSource = converterExp.split(","); - for (String item : convertSource) { - String[] itemArray = item.split("="); - if (StringUtils.containsAny(separator, propertyValue)) { - for (String value : propertyValue.split(separator)) { - if (itemArray[0].equals(value)) { - propertyString.append(itemArray[1] + separator); - break; - } - } - } else { - if (itemArray[0].equals(propertyValue)) { - return itemArray[1]; - } - } - } - return StringUtils.stripEnd(propertyString.toString(), separator); - } - - /** - * 反向解析值 男=0,女=1,未知=2 - * - * @param propertyValue 参数值 - * @param converterExp 翻译注解 - * @param separator 分隔符 - * @return 解析后值 - */ - public static String reverseByExp(String propertyValue, String converterExp, String separator) { - StringBuilder propertyString = new StringBuilder(); - String[] convertSource = converterExp.split(","); - for (String item : convertSource) { - String[] itemArray = item.split("="); - if (StringUtils.containsAny(separator, propertyValue)) { - for (String value : propertyValue.split(separator)) { - if (itemArray[1].equals(value)) { - propertyString.append(itemArray[0] + separator); - break; - } - } - } else { - if (itemArray[1].equals(propertyValue)) { - return itemArray[0]; - } - } - } - return StringUtils.stripEnd(propertyString.toString(), separator); - } - - /** - * 编码文件名 - */ - public static String encodingFilename(String filename) { -// return IdUtil.fastSimpleUUID() + "_" + filename + ".xlsx"; - return filename + ".xlsx"; - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/file/FileUtils.java b/vben-core/src/main/java/vben/core/common/utils/file/FileUtils.java deleted file mode 100644 index 4aed125..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/FileUtils.java +++ /dev/null @@ -1,52 +0,0 @@ -package vben.core.common.utils.file; - -import cn.hutool.core.io.FileUtil; -import lombok.AccessLevel; -import lombok.NoArgsConstructor; - -import javax.servlet.http.HttpServletResponse; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; - -/** - * 文件处理工具类 - * - * @author Lion Li - */ -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class FileUtils extends FileUtil { - - /** - * 下载文件名重新编码 - * - * @param response 响应对象 - * @param realFileName 真实文件名 - */ - public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException { - String percentEncodedFileName = percentEncode(realFileName); - - StringBuilder contentDispositionValue = new StringBuilder(); - contentDispositionValue.append("attachment; filename=") - .append(percentEncodedFileName) - .append(";") - .append("filename*=") - .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); - } - - /** - * 百分号编码工具方法 - * - * @param s 需要百分号编码的字符串 - * @return 百分号编码后的字符串 - */ - public static String percentEncode(String s) throws UnsupportedEncodingException { - String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString()); - return encode.replaceAll("\\+", "%20"); - } -} diff --git a/vben-core/src/main/java/vben/core/common/utils/file/XexcelUtil.java b/vben-core/src/main/java/vben/core/common/utils/file/XexcelUtil.java deleted file mode 100644 index fd0b3b8..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/XexcelUtil.java +++ /dev/null @@ -1,186 +0,0 @@ -package vben.core.common.utils.file; - -import org.apache.poi.hssf.usermodel.HSSFCellStyle; -import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.apache.poi.ss.usermodel.*; -import org.apache.poi.ss.util.CellRangeAddress; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.springframework.web.multipart.MultipartFile; - -import java.io.IOException; -import java.io.InputStream; -import java.text.SimpleDateFormat; -import java.util.Iterator; - -@SuppressWarnings("unchecked") -public class XexcelUtil -{ - //转换列数字序号列字母序号 - public static String excelColIndexToStr(int columnIndex) - { - if (columnIndex <= 0) - { - return null; - } - String columnStr = ""; - columnIndex--; - do - { - if (columnStr.length() > 0) - { - columnIndex--; - } - columnStr = ((char) (columnIndex % 26 + (int) 'A')) + columnStr; - columnIndex = ((columnIndex - columnIndex % 26) / 26); - } while (columnIndex > 0); - return columnStr; - } - - - //---------------------以下为EXCEL复制功能----------------- - - - //行复制功能 - public static void copyRow(Row fromRow, Row toRow, boolean copyValueFlag) { - toRow.setHeight(fromRow.getHeight()); - for(Iterator cellIt = fromRow.cellIterator(); cellIt.hasNext(); ) { - Cell tmpCell = (Cell) cellIt.next(); - Cell newCell = toRow.createCell(tmpCell.getColumnIndex()); - copyCell(tmpCell, newCell, copyValueFlag); - } - Sheet worksheet = fromRow.getSheet(); - for(int i = 0; i < worksheet.getNumMergedRegions(); i++) { - CellRangeAddress cellRangeAddress = worksheet.getMergedRegion(i); - if(cellRangeAddress.getFirstRow() == fromRow.getRowNum()) { - CellRangeAddress newCellRangeAddress = new CellRangeAddress(toRow.getRowNum(), (toRow.getRowNum() + - (cellRangeAddress.getLastRow() - cellRangeAddress.getFirstRow())), cellRangeAddress - .getFirstColumn(), cellRangeAddress.getLastColumn()); - worksheet.addMergedRegionUnsafe(newCellRangeAddress); - } - } - } - - //复制单元格 true则连同cell的内容一起复制 - public static void copyCell(Cell srcCell, Cell distCell, boolean copyValueFlag) { - //样式 - distCell.setCellStyle(srcCell.getCellStyle()); - //评论 - if(srcCell.getCellComment() != null) { - distCell.setCellComment(srcCell.getCellComment()); - } - // 不同数据类型处理 - CellType srcCellType = srcCell.getCellTypeEnum(); - distCell.setCellType(srcCellType); - if(copyValueFlag) { - if(srcCellType == CellType.NUMERIC) { - if(DateUtil.isCellDateFormatted(srcCell)) { - distCell.setCellValue(srcCell.getDateCellValue()); - } else { - distCell.setCellValue(srcCell.getNumericCellValue()); - } - } else if(srcCellType == CellType.STRING) { - distCell.setCellValue(srcCell.getRichStringCellValue()); - } else if(srcCellType == CellType.BLANK) { - - } else if(srcCellType == CellType.BOOLEAN) { - distCell.setCellValue(srcCell.getBooleanCellValue()); - } else if(srcCellType == CellType.ERROR) { - distCell.setCellErrorValue(srcCell.getErrorCellValue()); - } else if(srcCellType == CellType.FORMULA) { - distCell.setCellFormula(srcCell.getCellFormula()); - } else { - } - } - } - - //复制单元格 true则连同cell的内容一起复制 - public static HSSFCellStyle createCellStyle(HSSFWorkbook workbook,short index) - { - HSSFCellStyle style = workbook.createCellStyle(); - style.setFillPattern(FillPatternType.SOLID_FOREGROUND); - style.setFillForegroundColor(index); - style.setBorderBottom(BorderStyle.HAIR); - style.setBorderTop(BorderStyle.HAIR); - style.setBorderLeft(BorderStyle.HAIR); - style.setBorderRight(BorderStyle.HAIR); - return style; - } - - public static Object getCellValue(Cell cell) - { - Object back = null; - if (null != cell) - { - switch (cell.getCellType()) - { - case BLANK: - back = null; - break; - case BOOLEAN: - back = Boolean.toString(cell.getBooleanCellValue()); - break; - //数值 - case NUMERIC: - if (DateUtil.isCellDateFormatted(cell)) - { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - back = dateFormat.format(cell.getDateCellValue()); - } else - { - cell.setCellType(CellType.STRING); - String temp = cell.getStringCellValue(); - //判断是否包含小数点,如果不含小数点,则以字符串读取,如果含小数点,则转换为Double类型的字符串 - if (temp.indexOf(".") > -1) - { - back = String.valueOf(new Double(temp)).trim(); - } else - { - back = temp.trim(); - } - } - break; - case STRING: - back = cell.getStringCellValue().trim(); - if ("".equals(back)) - { - back = null; - } - break; - case ERROR: - back = null; - break; - case FORMULA: - cell.setCellType(CellType.STRING); - back = cell.getStringCellValue(); - break; - default: - back = null; - break; - } - } - return back; - } - - public static Workbook getWorkbook(MultipartFile file) throws IOException { - InputStream in = file.getInputStream(); - String fileName = file.getOriginalFilename(); - if (fileName.toLowerCase().endsWith("xls")) { - return new HSSFWorkbook(in); - } - if (fileName.toLowerCase().endsWith("xlsx")) { - return new XSSFWorkbook(in); - } - return null; - } - - public static void closeWorkBook(Workbook workbook) { - if(workbook!=null){ - try { - workbook.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/file/XfileUtil.java b/vben-core/src/main/java/vben/core/common/utils/file/XfileUtil.java deleted file mode 100644 index b0b6a75..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/XfileUtil.java +++ /dev/null @@ -1,76 +0,0 @@ -package vben.core.common.utils.file; - -import java.io.*; -import java.nio.charset.Charset; -import java.text.DecimalFormat; -import java.util.Enumeration; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -public class XfileUtil -{ - public static String getFileSize(long fileS) - { - String size = ""; - DecimalFormat df = new DecimalFormat("#.00"); - if (fileS < 1024) - { - size = df.format((double) fileS) + "B"; - } else if (fileS < 1048576) - { - size = df.format((double) fileS / 1024) + "KB"; - } else if (fileS < 1073741824) - { - size = df.format((double) fileS / 1048576) + "MB"; - } else - { - size = df.format((double) fileS / 1073741824) + "GB"; - } - return size; - } - - public static void unZipFiles(File zipFile,String descDir)throws IOException - { - File pathFile = new File(descDir); - if(!pathFile.exists()) - { - pathFile.mkdirs(); - } - //解决zip文件中有中文目录或者中文文件 - ZipFile zip = new ZipFile(zipFile, Charset.forName("GBK")); - for(Enumeration entries = zip.entries(); entries.hasMoreElements();) - { - ZipEntry entry = (ZipEntry)entries.nextElement(); - String zipEntryName = entry.getName(); - int len2=zipEntryName.split("/")[0].length(); - zipEntryName = zipEntryName.substring(len2, zipEntryName.length()); - System.out.println(zipEntryName); - InputStream in = zip.getInputStream(entry); - String outPath = (descDir+zipEntryName).replaceAll("\\*", "/");; - //判断路径是否存在,不存在则创建文件路径 - File file = new File(outPath.substring(0, outPath.lastIndexOf('/'))); - if(!file.exists()) - { - file.mkdirs(); - } - //判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压 - if(new File(outPath).isDirectory()) - { - continue; - } - //输出文件路径信息 -// System.out.println(outPath); - OutputStream out = new FileOutputStream(outPath); - byte[] buf1 = new byte[1024]; - int len; - while((len=in.read(buf1))>0) - { - out.write(buf1,0,len); - } - in.close(); - out.close(); - } -// System.out.println("******************解压完毕********************"); - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/file/XpdfUtil.java b/vben-core/src/main/java/vben/core/common/utils/file/XpdfUtil.java deleted file mode 100644 index acca341..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/XpdfUtil.java +++ /dev/null @@ -1,100 +0,0 @@ -package vben.core.common.utils.file; - -import com.itextpdf.text.BaseColor; -import com.itextpdf.text.DocumentException; -import com.itextpdf.text.Element; -import com.itextpdf.text.pdf.BaseFont; -import com.itextpdf.text.pdf.PdfContentByte; -import com.itextpdf.text.pdf.PdfGState; -import com.itextpdf.text.pdf.PdfReader; -import com.itextpdf.text.pdf.PdfStamper; - -import java.io.*; - -public class XpdfUtil { - - - /** - * 中间或者两边水印 - * @param bos 添加完水印的输出 - * @param input 原PDF文件输入 - * @param word 水印内容 - * @param model 水印添加位置1中间,2两边 - */ - public static void setWatermark(BufferedOutputStream bos, InputStream input, String word, int model) { - PdfReader reader = null; - try { - reader = new PdfReader(input); - PdfStamper stamper = new PdfStamper(reader, bos); - PdfContentByte content; - // 创建字体,第一个参数是字体路径,itext有一些默认的字体比如说: -// BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED); - //2 BaseFont base = BaseFont.createFont("/msyh.ttf", BaseFont.IDENTITY_H, - // BaseFont.EMBEDDED); - //这个是为了解决linux服务器,水印乱码问题,如果是windows服务器,用第一个就可以。 - // 需要指定的字体,用第2,3个写法,在resources文件夹下放置对应字体就行。 - -// BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); - BaseFont base = BaseFont.createFont("C:/WINDOWS/Fonts/simhei.ttf", BaseFont.IDENTITY_H,BaseFont.EMBEDDED); -// BaseFont base = BaseFont.createFont(); - - PdfGState gs = new PdfGState(); - // 获取PDF页数 - int total = reader.getNumberOfPages(); - // 遍历每一页 - for (int i = 0; i < total; i++) { - // 页宽度 - float width = reader.getPageSize(i + 1).getWidth(); - // 页高度 - float height = reader.getPageSize(i + 1).getHeight(); - // 内容 - content = stamper.getOverContent(i + 1); - //开始写入文本 - content.beginText(); - //水印透明度 - gs.setFillOpacity(0.2f); - content.setGState(gs); - content.setColorFill(BaseColor.LIGHT_GRAY); - //设置字体的输出位置 - content.setTextMatrix(70, 200); - - if (model == 1) { - //平行居中的3条水印 - //字体大小 - content.setFontAndSize(base, 50); - //showTextAligned 方法的参数分别是(文字对齐方式,位置内容,输出水印X轴位置,Y轴位置,旋转角度) - content.showTextAligned(Element.ALIGN_CENTER, word, width / 2, 650, 30); - content.showTextAligned(Element.ALIGN_CENTER, word, width / 2, 400, 30); - content.showTextAligned(Element.ALIGN_CENTER, word, width / 2, 150, 30); - } else { - // 左右两边个从上到下4条水印 - // 水印旋转度数 - float rotation = 30; - content.setFontAndSize(base, 20); - content.showTextAligned(Element.ALIGN_LEFT, word, 20, height - 50, rotation); - content.showTextAligned(Element.ALIGN_LEFT, word, 20, height / 4 * 3 - 50, rotation); - content.showTextAligned(Element.ALIGN_LEFT, word, 20, height / 2 - 50, rotation); - content.showTextAligned(Element.ALIGN_LEFT, word, 20, height / 4 - 50, rotation); - - content.setFontAndSize(base, 22); - content.showTextAligned(Element.ALIGN_RIGHT, word, width - 20, height - 50, rotation); - content.showTextAligned(Element.ALIGN_RIGHT, word, width - 20, height / 4 * 3 - 50, rotation); - content.showTextAligned(Element.ALIGN_RIGHT, word, width - 20, height / 2 - 50, rotation); - content.showTextAligned(Element.ALIGN_RIGHT, word, width - 20, height / 4 - 50, rotation); - } - //结束写入文本 - content.endText(); - //要打图片水印的话 - //Image image = Image.getInstance("c:/1.jpg"); - //content.addImage(image); - } - stamper.close(); - } catch (IOException e) { - e.printStackTrace(); - } catch (DocumentException e) { - e.printStackTrace(); - } - - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/file/XqcodeUtil.java b/vben-core/src/main/java/vben/core/common/utils/file/XqcodeUtil.java deleted file mode 100644 index 5d60863..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/XqcodeUtil.java +++ /dev/null @@ -1,103 +0,0 @@ -package vben.core.common.utils.file; - -import com.google.zxing.*; -import com.google.zxing.client.j2se.BufferedImageLuminanceSource; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.HybridBinarizer; -import com.google.zxing.qrcode.QRCodeReader; -import com.google.zxing.qrcode.QRCodeWriter; -import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; - -import javax.imageio.ImageIO; -import java.awt.*; -import java.awt.image.BufferedImage; -import java.io.*; -import java.util.Hashtable; - -public class XqcodeUtil { - /** - * 生成包含字符串信息的二维码图片 - * @param outputStream 文件输出流路径 - * @param content 二维码携带信息 - * @param qrCodeSize 二维码图片大小 - * @param imageFormat 二维码的格式 - * @throws WriterException - * @throws IOException - */ - public static boolean createQrCode(OutputStream outputStream, String content, int qrCodeSize, String imageFormat) throws WriterException, IOException{ - //设置二维码纠错级别MAP - Hashtable hintMap = new Hashtable(); - hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); // 矫错级别 - QRCodeWriter qrCodeWriter = new QRCodeWriter(); - //创建比特矩阵(位矩阵)的QR码编码的字符串 - BitMatrix byteMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize, hintMap); - // 使BufferedImage勾画QRCode (matrixWidth 是行二维码像素点) - int matrixWidth = byteMatrix.getWidth(); - BufferedImage image = new BufferedImage(matrixWidth-200, matrixWidth-200, BufferedImage.TYPE_INT_RGB); - image.createGraphics(); - Graphics2D graphics = (Graphics2D) image.getGraphics(); - graphics.setColor(Color.WHITE); - graphics.fillRect(0, 0, matrixWidth, matrixWidth); - // 使用比特矩阵画并保存图像 - graphics.setColor(Color.BLACK); - for (int i = 0; i < matrixWidth; i++){ - for (int j = 0; j < matrixWidth; j++){ - if (byteMatrix.get(i, j)){ - graphics.fillRect(i-100, j-100, 1, 1); - } - } - } - return ImageIO.write(image, imageFormat, outputStream); - } - - - public static InputStream createQrCode(String content, int qrCodeSize, String imageFormat) throws WriterException, IOException{ - //设置二维码纠错级别MAP - Hashtable hintMap = new Hashtable(); - hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); // 矫错级别 - QRCodeWriter qrCodeWriter = new QRCodeWriter(); - //创建比特矩阵(位矩阵)的QR码编码的字符串 - BitMatrix byteMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize, hintMap); - // 使BufferedImage勾画QRCode (matrixWidth 是行二维码像素点) - int matrixWidth = byteMatrix.getWidth(); - BufferedImage image = new BufferedImage(matrixWidth-200, matrixWidth-200, BufferedImage.TYPE_INT_RGB); - image.createGraphics(); - Graphics2D graphics = (Graphics2D) image.getGraphics(); - graphics.setColor(Color.WHITE); - graphics.fillRect(0, 0, matrixWidth, matrixWidth); - // 使用比特矩阵画并保存图像 - graphics.setColor(Color.BLACK); - for (int i = 0; i < matrixWidth; i++){ - for (int j = 0; j < matrixWidth; j++){ - if (byteMatrix.get(i, j)){ - graphics.fillRect(i-100, j-100, 1, 1); - } - } - } - ByteArrayOutputStream os = new ByteArrayOutputStream(); - ImageIO.write(image, imageFormat, os); - return new ByteArrayInputStream(os.toByteArray()); - } - - - /** - * 读二维码并输出携带的信息 - */ - public static void readQrCode(InputStream inputStream) throws IOException{ - //从输入流中获取字符串信息 - BufferedImage image = ImageIO.read(inputStream); - //将图像转换为二进制位图源 - LuminanceSource source = new BufferedImageLuminanceSource(image); - BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); - QRCodeReader reader = new QRCodeReader(); - Result result = null ; - try { - result = reader.decode(bitmap); - } catch (ReaderException e) { - e.printStackTrace(); - } -// System.out.println(result.getText()); - } - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/common/utils/file/excel/DefaultExcelListener.java b/vben-core/src/main/java/vben/core/common/utils/file/excel/DefaultExcelListener.java deleted file mode 100644 index 4d6aec4..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/excel/DefaultExcelListener.java +++ /dev/null @@ -1,107 +0,0 @@ -package vben.core.common.utils.file.excel; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.excel.context.AnalysisContext; -import com.alibaba.excel.event.AnalysisEventListener; -import com.alibaba.excel.exception.ExcelAnalysisException; -import com.alibaba.excel.exception.ExcelDataConvertException; -import lombok.NoArgsConstructor; -import lombok.extern.slf4j.Slf4j; - -import javax.validation.ConstraintViolation; -import javax.validation.ConstraintViolationException; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; - -/** - * Excel 导入监听 - * - * @author Yjoioooo - * @author Lion Li - */ -@Slf4j -@NoArgsConstructor -public class DefaultExcelListener extends AnalysisEventListener implements ExcelListener { - - /** - * 是否Validator检验,默认为是 - */ - private Boolean isValidate = Boolean.TRUE; - - /** - * excel 表头数据 - */ - private Map headMap; - - /** - * 导入回执 - */ - private ExcelResult excelResult; - - public DefaultExcelListener(boolean isValidate) { - this.excelResult = new DefautExcelResult<>(); - this.isValidate = isValidate; - } - - /** - * 处理异常 - * - * @param exception ExcelDataConvertException - * @param context Excel 上下文 - */ - @Override - public void onException(Exception exception, AnalysisContext context) throws Exception { - String errMsg = null; - if (exception instanceof ExcelDataConvertException) { - // 如果是某一个单元格的转换异常 能获取到具体行号 - ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException) exception; - Integer rowIndex = excelDataConvertException.getRowIndex(); - Integer columnIndex = excelDataConvertException.getColumnIndex(); - errMsg = StrUtil.format("第{}行-第{}列-表头{}: 解析异常
", - rowIndex + 1, columnIndex + 1, headMap.get(columnIndex)); - if (log.isDebugEnabled()) { - log.error(errMsg); - } - } - if (exception instanceof ConstraintViolationException) { - ConstraintViolationException constraintViolationException = (ConstraintViolationException) exception; - Set> constraintViolations = constraintViolationException.getConstraintViolations(); - String constraintViolationsMsg = constraintViolations.stream() - .map(ConstraintViolation::getMessage) - .collect(Collectors.joining(", ")); - errMsg = StrUtil.format("第{}行数据校验异常: {}", context.readRowHolder().getRowIndex() + 1, constraintViolationsMsg); - if (log.isDebugEnabled()) { - log.error(errMsg); - } - } - excelResult.getErrorList().add(errMsg); - throw new ExcelAnalysisException(errMsg); - } - - @Override - public void invokeHeadMap(Map headMap, AnalysisContext context) { - this.headMap = headMap; -// log.debug("解析到一条表头数据: {}", JsonUtils.toJsonString(headMap)); - log.debug("解析到一条表头数据: {}"); - } - - @Override - public void invoke(T data, AnalysisContext context) { - if (isValidate) { -// ValidatorUtils.validate(data); - } - excelResult.getList().add(data); - } - - @Override - public void doAfterAllAnalysed(AnalysisContext context) { - log.debug("所有数据解析完成!"); - } - - @Override - public ExcelResult getExcelResult() { - return excelResult; - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/file/excel/DefautExcelResult.java b/vben-core/src/main/java/vben/core/common/utils/file/excel/DefautExcelResult.java deleted file mode 100644 index e581947..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/excel/DefautExcelResult.java +++ /dev/null @@ -1,73 +0,0 @@ -package vben.core.common.utils.file.excel; - -import cn.hutool.core.util.StrUtil; -import lombok.Setter; - -import java.util.ArrayList; -import java.util.List; - -/** - * 默认excel返回对象 - * - * @author Yjoioooo - * @author Lion Li - */ -public class DefautExcelResult implements ExcelResult { - - /** - * 数据对象list - */ - @Setter - private List list; - - /** - * 错误信息列表 - */ - @Setter - private List errorList; - - public DefautExcelResult() { - this.list = new ArrayList<>(); - this.errorList = new ArrayList<>(); - } - - public DefautExcelResult(List list, List errorList) { - this.list = list; - this.errorList = errorList; - } - - public DefautExcelResult(ExcelResult excelResult) { - this.list = excelResult.getList(); - this.errorList = excelResult.getErrorList(); - } - - @Override - public List getList() { - return list; - } - - @Override - public List getErrorList() { - return errorList; - } - - /** - * 获取导入回执 - * - * @return 导入回执 - */ - @Override - public String getAnalysis() { - int successCount = list.size(); - int errorCount = errorList.size(); - if (successCount == 0) { - return "读取失败,未解析到数据"; - } else { - if (errorCount == 0) { - return StrUtil.format("恭喜您,全部读取成功!共{}条", successCount); - } else { - return ""; - } - } - } -} diff --git a/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelBigNumberConvert.java b/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelBigNumberConvert.java deleted file mode 100644 index 9b8a05e..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelBigNumberConvert.java +++ /dev/null @@ -1,52 +0,0 @@ -package vben.core.common.utils.file.excel; - -import cn.hutool.core.convert.Convert; -import cn.hutool.core.util.ObjectUtil; -import com.alibaba.excel.converters.Converter; -import com.alibaba.excel.enums.CellDataTypeEnum; -import com.alibaba.excel.metadata.GlobalConfiguration; -import com.alibaba.excel.metadata.data.ReadCellData; -import com.alibaba.excel.metadata.data.WriteCellData; -import com.alibaba.excel.metadata.property.ExcelContentProperty; -import lombok.extern.slf4j.Slf4j; - -import java.math.BigDecimal; - -/** - * 大数值转换 - * Excel 数值长度位15位 大于15位的数值转换位字符串 - * - * @author Lion Li - */ -@Slf4j -public class ExcelBigNumberConvert implements Converter { - - @Override - public Class supportJavaTypeKey() { - return Long.class; - } - - @Override - public CellDataTypeEnum supportExcelTypeKey() { - return CellDataTypeEnum.STRING; - } - - @Override - public Long convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { - return Convert.toLong(cellData.getData()); - } - - @Override - public WriteCellData convertToExcelData(Long object, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { - if (ObjectUtil.isNotNull(object)) { - String str = Convert.toStr(object); - if (str.length() > 15) { - return new WriteCellData<>(str); - } - } - WriteCellData cellData = new WriteCellData<>(new BigDecimal(object)); - cellData.setType(CellDataTypeEnum.NUMBER); - return cellData; - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelDictConvert.java b/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelDictConvert.java deleted file mode 100644 index d5c90cb..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelDictConvert.java +++ /dev/null @@ -1,62 +0,0 @@ -package vben.core.common.utils.file.excel; - -import cn.hutool.core.annotation.AnnotationUtil; -import com.alibaba.excel.converters.Converter; -import com.alibaba.excel.enums.CellDataTypeEnum; -import lombok.extern.slf4j.Slf4j; - -import java.lang.reflect.Field; - -/** - * 字典格式化转换处理 - * - * @author Lion Li - */ -@Slf4j -public class ExcelDictConvert implements Converter { - - @Override - public Class supportJavaTypeKey() { - return Object.class; - } - - @Override - public CellDataTypeEnum supportExcelTypeKey() { - return null; - } - -// @Override -// public Object convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { -// ExcelDictFormat anno = getAnnotation(contentProperty.getField()); -// String type = anno.dictType(); -// String label = cellData.getStringValue(); -// String value; -// if (StringUtils.isBlank(type)) { -// value = ExcelUtil.reverseByExp(label, anno.readConverterExp(), anno.separator()); -// } else { -// value = SpringUtils.getBean(DictService.class).getDictValue(type, label, anno.separator()); -// } -// return Convert.convert(contentProperty.getField().getType(), value); -// } -// -// @Override -// public WriteCellData convertToExcelData(Object object, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { -// if (ObjectUtil.isNull(object)) { -// return new WriteCellData<>(""); -// } -// ExcelDictFormat anno = getAnnotation(contentProperty.getField()); -// String type = anno.dictType(); -// String value = Convert.toStr(object); -// String label; -// if (StringUtils.isBlank(type)) { -// label = ExcelUtil.convertByExp(value, anno.readConverterExp(), anno.separator()); -// } else { -// label = SpringUtils.getBean(DictService.class).getDictLabel(type, value, anno.separator()); -// } -// return new WriteCellData<>(label); -// } - - private ExcelDictFormat getAnnotation(Field field) { - return AnnotationUtil.getAnnotation(field, ExcelDictFormat.class); - } -} diff --git a/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelDictFormat.java b/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelDictFormat.java deleted file mode 100644 index f0903f4..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelDictFormat.java +++ /dev/null @@ -1,30 +0,0 @@ -package vben.core.common.utils.file.excel; - -import java.lang.annotation.*; - -/** - * 字典格式化 - * - * @author Lion Li - */ -@Target({ElementType.FIELD}) -@Retention(RetentionPolicy.RUNTIME) -@Inherited -public @interface ExcelDictFormat { - - /** - * 如果是字典类型,请设置字典的type值 (如: sys_user_sex) - */ - String dictType() default ""; - - /** - * 读取内容转表达式 (如: 0=男,1=女,2=未知) - */ - String readConverterExp() default ""; - - /** - * 分隔符,读取字符串组内容 - */ - String separator() default ","; - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelListener.java b/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelListener.java deleted file mode 100644 index 70350d6..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelListener.java +++ /dev/null @@ -1,14 +0,0 @@ -package vben.core.common.utils.file.excel; - -import com.alibaba.excel.read.listener.ReadListener; - -/** - * Excel 导入监听 - * - * @author Lion Li - */ -public interface ExcelListener extends ReadListener { - - ExcelResult getExcelResult(); - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelResult.java b/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelResult.java deleted file mode 100644 index 0232d09..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/file/excel/ExcelResult.java +++ /dev/null @@ -1,26 +0,0 @@ -package vben.core.common.utils.file.excel; - -import java.util.List; - -/** - * excel返回对象 - * - * @author Lion Li - */ -public interface ExcelResult { - - /** - * 对象列表 - */ - List getList(); - - /** - * 错误列表 - */ - List getErrorList(); - - /** - * 导入回执 - */ - String getAnalysis(); -} diff --git a/vben-core/src/main/java/vben/core/common/utils/lang/IdUtils.java b/vben-core/src/main/java/vben/core/common/utils/lang/IdUtils.java deleted file mode 100644 index 7bf435e..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/lang/IdUtils.java +++ /dev/null @@ -1,38 +0,0 @@ -package vben.core.common.utils.lang; - -import cn.hutool.core.util.IdUtil; - -import java.util.Random; - -public class IdUtils { - - public static String getUID() - { - return IdUtil.getSnowflake().nextIdStr(); - } - - public static String getRSID(int length) { - String val = ""; - Random random = new Random(); - //参数length,表示生成几位随机数 - for(int i = 0; i < length; i++) { - String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num"; - //输出字母还是数字 - if( "char".equalsIgnoreCase(charOrNum) ) { - //输出是大写字母还是小写字母 -// int temp = random.nextInt(2) % 2 == 0 ? 65 : 97; - val += (char)(random.nextInt(26) + 97); - } else if( "num".equalsIgnoreCase(charOrNum) ) { - val += String.valueOf(random.nextInt(10)); - } - } - return val; - } - - public static String getRSID4() { return getRSID(4); } - - public static String getRSID8() { - return getRSID(8); - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/lang/SecureUtils.java b/vben-core/src/main/java/vben/core/common/utils/lang/SecureUtils.java deleted file mode 100644 index cfb21d8..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/lang/SecureUtils.java +++ /dev/null @@ -1,11 +0,0 @@ -package vben.core.common.utils.lang; - -import cn.hutool.crypto.SecureUtil; - -public class SecureUtils { - - public static String passwordEncrypt(String password){ - return SecureUtil.md5("abc" + password + "xyz"); - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/lang/TreeUtils.java b/vben-core/src/main/java/vben/core/common/utils/lang/TreeUtils.java deleted file mode 100644 index 37357de..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/lang/TreeUtils.java +++ /dev/null @@ -1,85 +0,0 @@ -package vben.core.common.utils.lang; - -import vben.core.common.mvc.pojo.Ztree; - -import java.util.ArrayList; -import java.util.List; - -public class TreeUtils { - - //高性能转换,但是要求顶层有pid,这里假设为0 -// public static List buildTree(List pidList) { -// Map> pidListMap = pidList.stream().collect(Collectors.groupingBy(Ztree::getPid)); -// pidList.stream().forEach(item -> item.setChildren(pidListMap.get(item.getId()))); -// //返回结果也改为返回顶层节点的list -// return pidListMap.get("0"); -// } - - public static List build(List nodes) { - List list = new ArrayList<>(); - for (Ztree node : nodes) { - if (node.getPid() == null) { - list.add(findZtreeChildrenByTier(node, nodes)); - } else { - boolean flag = false; - for (Ztree node2 : nodes) { - if (node.getPid().equals(node2.getId())) { - flag = true; - break; - } - } - if (!flag) { - list.add(findZtreeChildrenByTier(node, nodes)); - } - } - } - return list; - } - - //递归查找子节点 - private static Ztree findZtreeChildrenByTier(Ztree node, List nodes) { - for (Ztree item : nodes) { - if (node.getId().equals(item.getPid())) { - if (node.getChildren() == null) { - node.setChildren(new ArrayList<>()); - } - node.getChildren().add(findZtreeChildrenByTier(item, nodes)); - } - } - return node; - } - - public static List buildEtree(List nodes) { - List list = new ArrayList<>(); - for (T node : nodes) { - if (node.getPid() == null) { - list.add(findEtreeChildrenByTier(node, nodes)); - } else { - boolean flag = false; - for (T node2 : nodes) { - if (node.getPid().equals(node2.getId())) { - flag = true; - break; - } - } - if (!flag) { - list.add(findEtreeChildrenByTier(node, nodes)); - } - } - } - return list; - } - - private static T findEtreeChildrenByTier(T node, List nodes) { - for (T item : nodes) { - if (node.getId().equals(item.getPid())) { - if (node.getChildren() == null) { - node.setChildren(new ArrayList<>()); - } - node.getChildren().add(findEtreeChildrenByTier(item, nodes)); - } - } - return node; - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/ruoyi/Arith.java b/vben-core/src/main/java/vben/core/common/utils/ruoyi/Arith.java deleted file mode 100644 index 8ba066a..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/ruoyi/Arith.java +++ /dev/null @@ -1,114 +0,0 @@ -package vben.core.common.utils.ruoyi; - -import java.math.BigDecimal; -import java.math.RoundingMode; - -/** - * 精确的浮点数运算 - * - * @author ruoyi - */ -public class Arith -{ - - /** 默认除法运算精度 */ - private static final int DEF_DIV_SCALE = 10; - - /** 这个类不能实例化 */ - private Arith() - { - } - - /** - * 提供精确的加法运算。 - * @param v1 被加数 - * @param v2 加数 - * @return 两个参数的和 - */ - public static double add(double v1, double v2) - { - BigDecimal b1 = new BigDecimal(Double.toString(v1)); - BigDecimal b2 = new BigDecimal(Double.toString(v2)); - return b1.add(b2).doubleValue(); - } - - /** - * 提供精确的减法运算。 - * @param v1 被减数 - * @param v2 减数 - * @return 两个参数的差 - */ - public static double sub(double v1, double v2) - { - BigDecimal b1 = new BigDecimal(Double.toString(v1)); - BigDecimal b2 = new BigDecimal(Double.toString(v2)); - return b1.subtract(b2).doubleValue(); - } - - /** - * 提供精确的乘法运算。 - * @param v1 被乘数 - * @param v2 乘数 - * @return 两个参数的积 - */ - public static double mul(double v1, double v2) - { - BigDecimal b1 = new BigDecimal(Double.toString(v1)); - BigDecimal b2 = new BigDecimal(Double.toString(v2)); - return b1.multiply(b2).doubleValue(); - } - - /** - * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 - * 小数点以后10位,以后的数字四舍五入。 - * @param v1 被除数 - * @param v2 除数 - * @return 两个参数的商 - */ - public static double div(double v1, double v2) - { - return div(v1, v2, DEF_DIV_SCALE); - } - - /** - * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 - * 定精度,以后的数字四舍五入。 - * @param v1 被除数 - * @param v2 除数 - * @param scale 表示表示需要精确到小数点以后几位。 - * @return 两个参数的商 - */ - public static double div(double v1, double v2, int scale) - { - if (scale < 0) - { - throw new IllegalArgumentException( - "The scale must be a positive integer or zero"); - } - BigDecimal b1 = new BigDecimal(Double.toString(v1)); - BigDecimal b2 = new BigDecimal(Double.toString(v2)); - if (b1.compareTo(BigDecimal.ZERO) == 0) - { - return BigDecimal.ZERO.doubleValue(); - } - return b1.divide(b2, scale, RoundingMode.HALF_UP).doubleValue(); - } - - /** - * 提供精确的小数位四舍五入处理。 - * @param v 需要四舍五入的数字 - * @param scale 小数点后保留几位 - * @return 四舍五入后的结果 - */ - public static double round(double v, int scale) - { - if (scale < 0) - { - throw new IllegalArgumentException( - "The scale must be a positive integer or zero"); - } - BigDecimal b = new BigDecimal(Double.toString(v)); - BigDecimal one = BigDecimal.ONE; - return b.divide(one, scale, RoundingMode.HALF_UP).doubleValue(); - } -} diff --git a/vben-core/src/main/java/vben/core/common/utils/ruoyi/DateUtils.java b/vben-core/src/main/java/vben/core/common/utils/ruoyi/DateUtils.java deleted file mode 100644 index 7553872..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/ruoyi/DateUtils.java +++ /dev/null @@ -1,184 +0,0 @@ -package vben.core.common.utils.ruoyi; - -import org.apache.commons.lang3.time.DateFormatUtils; - -import java.lang.management.ManagementFactory; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.time.*; -import java.util.Date; - -/** - * 时间工具类 - * - * @author ruoyi - */ -public class DateUtils extends org.apache.commons.lang3.time.DateUtils -{ - public static String YYYY = "yyyy"; - - public static String YYYY_MM = "yyyy-MM"; - - public static String YYYY_MM_DD = "yyyy-MM-dd"; - - 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", - "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; - - /** - * 获取当前Date型日期 - * - * @return Date() 当前日期 - */ - public static Date getNowDate() - { - return new Date(); - } - - /** - * 获取当前日期, 默认格式为yyyy-MM-dd - * - * @return String - */ - public static String getDate() - { - return dateTimeNow(YYYY_MM_DD); - } - - public static final String getTime() - { - return dateTimeNow(YYYY_MM_DD_HH_MM_SS); - } - - public static final String dateTimeNow() - { - return dateTimeNow(YYYYMMDDHHMMSS); - } - - public static final String dateTimeNow(final String format) - { - return parseDateToStr(format, new Date()); - } - - public static final String dateTime(final Date date) - { - return parseDateToStr(YYYY_MM_DD, date); - } - - public static final String parseDateToStr(final String format, final Date date) - { - return new SimpleDateFormat(format).format(date); - } - - public static final Date dateTime(final String format, final String ts) - { - try - { - return new SimpleDateFormat(format).parse(ts); - } - catch (ParseException e) - { - throw new RuntimeException(e); - } - } - - /** - * 日期路径 即年/月/日 如2018/08/08 - */ - public static final String datePath() - { - Date now = new Date(); - return DateFormatUtils.format(now, "yyyy/MM/dd"); - } - - /** - * 日期路径 即年/月/日 如20180808 - */ - public static final String dateTime() - { - Date now = new Date(); - return DateFormatUtils.format(now, "yyyyMMdd"); - } - - /** - * 日期型字符串转化为日期 格式 - */ - public static Date parseDate(Object str) - { - if (str == null) - { - return null; - } - try - { - return parseDate(str.toString(), parsePatterns); - } - catch (ParseException e) - { - return null; - } - } - - /** - * 获取服务器启动时间 - */ - public static Date getServerStartDate() - { - long time = ManagementFactory.getRuntimeMXBean().getStartTime(); - return new Date(time); - } - - /** - * 计算相差天数 - */ - public static int differentDaysByMillisecond(Date date1, Date date2) - { - return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); - } - - /** - * 计算两个时间差 - */ - public static String getDatePoor(Date endDate, Date nowDate) - { - 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 day = diff / nd; - // 计算差多少小时 - long hour = diff % nd / nh; - // 计算差多少分钟 - long min = diff % nd % nh / nm; - // 计算差多少秒//输出结果 - // 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/vben-core/src/main/java/vben/core/common/utils/ruoyi/IpUtils.java b/vben-core/src/main/java/vben/core/common/utils/ruoyi/IpUtils.java deleted file mode 100644 index 23b0609..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/ruoyi/IpUtils.java +++ /dev/null @@ -1,264 +0,0 @@ -package vben.core.common.utils.ruoyi; - - -import javax.servlet.http.HttpServletRequest; -import java.net.InetAddress; -import java.net.UnknownHostException; - -/** - * 获取IP方法 - * - * @author ruoyi - */ -public class IpUtils -{ - /** - * 获取客户端IP - * - * @param request 请求对象 - * @return IP地址 - */ - public static String getIpAddr(HttpServletRequest request) - { - if (request == null) - { - return "unknown"; - } - String ip = request.getHeader("x-forwarded-for"); - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) - { - ip = request.getHeader("Proxy-Client-IP"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) - { - ip = request.getHeader("X-Forwarded-For"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) - { - ip = request.getHeader("WL-Proxy-Client-IP"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) - { - ip = request.getHeader("X-Real-IP"); - } - - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) - { - ip = request.getRemoteAddr(); - } - - 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 ( addr==null || addr.length < 2) - { - return true; - } - final byte b0 = addr[0]; - final byte b1 = addr[1]; - // 10.x.x.x/8 - final byte SECTION_1 = 0x0A; - // 172.16.x.x/12 - final byte SECTION_2 = (byte) 0xAC; - final byte SECTION_3 = (byte) 0x10; - final byte SECTION_4 = (byte) 0x1F; - // 192.168.x.x/16 - final byte SECTION_5 = (byte) 0xC0; - final byte SECTION_6 = (byte) 0xA8; - switch (b0) - { - case SECTION_1: - return true; - case SECTION_2: - if (b1 >= SECTION_3 && b1 <= SECTION_4) - { - return true; - } - case SECTION_5: - switch (b1) - { - case SECTION_6: - return true; - } - default: - return false; - } - } - - /** - * 将IPv4地址转换成字节 - * - * @param text IPv4地址 - * @return byte 字节 - */ - public static byte[] textToNumericFormatV4(String text) - { - if (text.length() == 0) - { - return null; - } - - byte[] bytes = new byte[4]; - String[] elements = text.split("\\.", -1); - try - { - long l; - int i; - switch (elements.length) - { - case 1: - l = Long.parseLong(elements[0]); - if ((l < 0L) || (l > 4294967295L)) - { - return null; - } - bytes[0] = (byte) (int) (l >> 24 & 0xFF); - bytes[1] = (byte) (int) ((l & 0xFFFFFF) >> 16 & 0xFF); - bytes[2] = (byte) (int) ((l & 0xFFFF) >> 8 & 0xFF); - bytes[3] = (byte) (int) (l & 0xFF); - break; - case 2: - l = Integer.parseInt(elements[0]); - if ((l < 0L) || (l > 255L)) - { - return null; - } - bytes[0] = (byte) (int) (l & 0xFF); - l = Integer.parseInt(elements[1]); - if ((l < 0L) || (l > 16777215L)) - { - return null; - } - bytes[1] = (byte) (int) (l >> 16 & 0xFF); - bytes[2] = (byte) (int) ((l & 0xFFFF) >> 8 & 0xFF); - bytes[3] = (byte) (int) (l & 0xFF); - break; - case 3: - for (i = 0; i < 2; ++i) - { - l = Integer.parseInt(elements[i]); - if ((l < 0L) || (l > 255L)) - { - return null; - } - bytes[i] = (byte) (int) (l & 0xFF); - } - l = Integer.parseInt(elements[2]); - if ((l < 0L) || (l > 65535L)) - { - return null; - } - bytes[2] = (byte) (int) (l >> 8 & 0xFF); - bytes[3] = (byte) (int) (l & 0xFF); - break; - case 4: - for (i = 0; i < 4; ++i) - { - l = Integer.parseInt(elements[i]); - if ((l < 0L) || (l > 255L)) - { - return null; - } - bytes[i] = (byte) (int) (l & 0xFF); - } - break; - default: - return null; - } - } - catch (NumberFormatException e) - { - return null; - } - return bytes; - } - - /** - * 获取IP地址 - * - * @return 本地IP地址 - */ - public static String getHostIp() - { - try - { - return InetAddress.getLocalHost().getHostAddress(); - } - catch (UnknownHostException e) - { - } - return "127.0.0.1"; - } - - /** - * 获取主机名 - * - * @return 本地主机名 - */ - public static String getHostName() - { - try - { - return InetAddress.getLocalHost().getHostName(); - } - catch (UnknownHostException e) - { - } - 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 ip; - } - - /** - * 检测给定字符串是否为未知,多用于检测HTTP请求相关 - * - * @param checkString 被检测的字符串 - * @return 是否未知 - */ - public static boolean isUnknown(String checkString) - { - return StringUtils.isBlank(checkString) || "unknown".equalsIgnoreCase(checkString); - } -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/common/utils/ruoyi/JsonUtils.java b/vben-core/src/main/java/vben/core/common/utils/ruoyi/JsonUtils.java deleted file mode 100644 index 85970a8..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/ruoyi/JsonUtils.java +++ /dev/null @@ -1,108 +0,0 @@ -package vben.core.common.utils.ruoyi; - -import cn.hutool.core.lang.Dict; -import cn.hutool.core.util.ArrayUtil; -import cn.hutool.core.util.ObjectUtil; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.AccessLevel; -import lombok.NoArgsConstructor; -import vben.core.common.utils.extra.SpringUtils; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -/** - * JSON 工具类 - * - * @author 芋道源码 - */ -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class JsonUtils { - - private static final ObjectMapper OBJECT_MAPPER = SpringUtils.getBean(ObjectMapper.class); - - public static ObjectMapper getObjectMapper() { - return OBJECT_MAPPER; - } - - public static String toJsonString(Object object) { - if (ObjectUtil.isNull(object)) { - return null; - } - try { - return OBJECT_MAPPER.writeValueAsString(object); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } - } - - public static T parseObject(String text, Class clazz) { - if (StringUtils.isEmpty(text)) { - return null; - } - try { - return OBJECT_MAPPER.readValue(text, clazz); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public static T parseObject(byte[] bytes, Class clazz) { - if (ArrayUtil.isEmpty(bytes)) { - return null; - } - try { - return OBJECT_MAPPER.readValue(bytes, clazz); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public static T parseObject(String text, TypeReference typeReference) { - if (StringUtils.isBlank(text)) { - return null; - } - try { - return OBJECT_MAPPER.readValue(text, typeReference); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public static Dict parseMap(String text) { - if (StringUtils.isBlank(text)) { - return null; - } - try { - return OBJECT_MAPPER.readValue(text, OBJECT_MAPPER.getTypeFactory().constructType(Dict.class)); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public static List parseArrayMap(String text) { - if (StringUtils.isBlank(text)) { - return null; - } - try { - return OBJECT_MAPPER.readValue(text, OBJECT_MAPPER.getTypeFactory().constructCollectionType(List.class, Dict.class)); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public static List parseArray(String text, Class clazz) { - if (StringUtils.isEmpty(text)) { - return new ArrayList<>(); - } - try { - return OBJECT_MAPPER.readValue(text, OBJECT_MAPPER.getTypeFactory().constructCollectionType(List.class, clazz)); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/ruoyi/RedisUtils.java b/vben-core/src/main/java/vben/core/common/utils/ruoyi/RedisUtils.java deleted file mode 100644 index 49666ed..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/ruoyi/RedisUtils.java +++ /dev/null @@ -1,431 +0,0 @@ -package vben.core.common.utils.ruoyi; - -import cn.hutool.core.collection.IterUtil; -import lombok.AccessLevel; -import lombok.NoArgsConstructor; -import org.redisson.api.*; -import vben.core.common.utils.extra.SpringUtils; - -import java.time.Duration; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.Consumer; - -/** - * redis 工具类 - * - * @author Lion Li - * @version 3.1.0 新增 - */ -@NoArgsConstructor(access = AccessLevel.PRIVATE) -@SuppressWarnings(value = {"unchecked", "rawtypes"}) -public class RedisUtils { - - private static final RedissonClient CLIENT = SpringUtils.getBean(RedissonClient.class); - - /** - * 限流 - * - * @param key 限流key - * @param rateType 限流类型 - * @param rate 速率 - * @param rateInterval 速率间隔 - * @return -1 表示失败 - */ - public static long rateLimiter(String key, RateType rateType, int rate, int rateInterval) { - RRateLimiter rateLimiter = CLIENT.getRateLimiter(key); - rateLimiter.trySetRate(rateType, rate, rateInterval, RateIntervalUnit.SECONDS); - if (rateLimiter.tryAcquire()) { - return rateLimiter.availablePermits(); - } else { - return -1L; - } - } - - /** - * 获取客户端实例 - */ - public static RedissonClient getClient() { - return CLIENT; - } - - /** - * 发布通道消息 - * - * @param channelKey 通道key - * @param msg 发送数据 - * @param consumer 自定义处理 - */ - public static void publish(String channelKey, T msg, Consumer consumer) { - RTopic topic = CLIENT.getTopic(channelKey); - topic.publish(msg); - consumer.accept(msg); - } - - public static void publish(String channelKey, T msg) { - RTopic topic = CLIENT.getTopic(channelKey); - topic.publish(msg); - } - - /** - * 订阅通道接收消息 - * - * @param channelKey 通道key - * @param clazz 消息类型 - * @param consumer 自定义处理 - */ - public static void subscribe(String channelKey, Class clazz, Consumer consumer) { - RTopic topic = CLIENT.getTopic(channelKey); - topic.addListener(clazz, (channel, msg) -> consumer.accept(msg)); - } - - /** - * 缓存基本的对象,Integer、String、实体类等 - * - * @param key 缓存的键值 - * @param value 缓存的值 - */ - public static void setCacheObject(final String key, final T value) { - setCacheObject(key, value, false); - } - - /** - * 缓存基本的对象,保留当前对象 TTL 有效期 - * - * @param key 缓存的键值 - * @param value 缓存的值 - * @param isSaveTtl 是否保留TTL有效期(例如: set之前ttl剩余90 set之后还是为90) - * @since Redis 6.X 以上使用 setAndKeepTTL 兼容 5.X 方案 - */ - public static void setCacheObject(final String key, final T value, final boolean isSaveTtl) { - RBucket bucket = CLIENT.getBucket(key); - if (isSaveTtl) { - try { - bucket.setAndKeepTTL(value); - } catch (Exception e) { - long timeToLive = bucket.remainTimeToLive(); - bucket.set(value); - bucket.expire(Duration.ofMillis(timeToLive)); - } - } else { - bucket.set(value); - } - } - - /** - * 缓存基本的对象,Integer、String、实体类等 - * - * @param key 缓存的键值 - * @param value 缓存的值 - * @param duration 时间 - */ - public static void setCacheObject(final String key, final T value, final Duration duration) { - RBucket result = CLIENT.getBucket(key); - result.set(value); - result.expire(duration); - } - - /** - * 注册对象监听器 - *

- * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置 - * - * @param key 缓存的键值 - * @param listener 监听器配置 - */ - public static void addObjectListener(final String key, final ObjectListener listener) { - RBucket result = CLIENT.getBucket(key); - result.addListener(listener); - } - - /** - * 设置有效时间 - * - * @param key Redis键 - * @param timeout 超时时间 - * @return true=设置成功;false=设置失败 - */ - public static boolean expire(final String key, final long timeout) { - return expire(key, Duration.ofSeconds(timeout)); - } - - /** - * 设置有效时间 - * - * @param key Redis键 - * @param duration 超时时间 - * @return true=设置成功;false=设置失败 - */ - public static boolean expire(final String key, final Duration duration) { - RBucket rBucket = CLIENT.getBucket(key); - return rBucket.expire(duration); - } - - /** - * 获得缓存的基本对象。 - * - * @param key 缓存键值 - * @return 缓存键值对应的数据 - */ - public static T getCacheObject(final String key) { - RBucket rBucket = CLIENT.getBucket(key); - return rBucket.get(); - } - - /** - * 获得key剩余存活时间 - * - * @param key 缓存键值 - * @return 剩余存活时间 - */ - public static long getTimeToLive(final String key) { - RBucket rBucket = CLIENT.getBucket(key); - return rBucket.remainTimeToLive(); - } - - /** - * 删除单个对象 - * - * @param key 缓存的键值 - */ - public static boolean deleteObject(final String key) { - return CLIENT.getBucket(key).delete(); - } - - /** - * 删除集合对象 - * - * @param collection 多个对象 - */ - public static void deleteObject(final Collection collection) { - RBatch batch = CLIENT.createBatch(); - collection.forEach(t -> { - batch.getBucket(t.toString()).deleteAsync(); - }); - batch.execute(); - } - - /** - * 缓存List数据 - * - * @param key 缓存的键值 - * @param dataList 待缓存的List数据 - * @return 缓存的对象 - */ - public static boolean setCacheList(final String key, final List dataList) { - RList rList = CLIENT.getList(key); - return rList.addAll(dataList); - } - - /** - * 注册List监听器 - *

- * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置 - * - * @param key 缓存的键值 - * @param listener 监听器配置 - */ - public static void addListListener(final String key, final ObjectListener listener) { - RList rList = CLIENT.getList(key); - rList.addListener(listener); - } - - /** - * 获得缓存的list对象 - * - * @param key 缓存的键值 - * @return 缓存键值对应的数据 - */ - public static List getCacheList(final String key) { - RList rList = CLIENT.getList(key); - return rList.readAll(); - } - - /** - * 缓存Set - * - * @param key 缓存键值 - * @param dataSet 缓存的数据 - * @return 缓存数据的对象 - */ - public static boolean setCacheSet(final String key, final Set dataSet) { - RSet rSet = CLIENT.getSet(key); - return rSet.addAll(dataSet); - } - - /** - * 注册Set监听器 - *

- * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置 - * - * @param key 缓存的键值 - * @param listener 监听器配置 - */ - public static void addSetListener(final String key, final ObjectListener listener) { - RSet rSet = CLIENT.getSet(key); - rSet.addListener(listener); - } - - /** - * 获得缓存的set - * - * @param key 缓存的key - * @return set对象 - */ - public static Set getCacheSet(final String key) { - RSet rSet = CLIENT.getSet(key); - return rSet.readAll(); - } - - /** - * 缓存Map - * - * @param key 缓存的键值 - * @param dataMap 缓存的数据 - */ - public static void setCacheMap(final String key, final Map dataMap) { - if (dataMap != null) { - RMap rMap = CLIENT.getMap(key); - rMap.putAll(dataMap); - } - } - - /** - * 注册Map监听器 - *

- * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置 - * - * @param key 缓存的键值 - * @param listener 监听器配置 - */ - public static void addMapListener(final String key, final ObjectListener listener) { - RMap rMap = CLIENT.getMap(key); - rMap.addListener(listener); - } - - /** - * 获得缓存的Map - * - * @param key 缓存的键值 - * @return map对象 - */ - public static Map getCacheMap(final String key) { - RMap rMap = CLIENT.getMap(key); - return rMap.getAll(rMap.keySet()); - } - - /** - * 往Hash中存入数据 - * - * @param key Redis键 - * @param hKey Hash键 - * @param value 值 - */ - public static void setCacheMapValue(final String key, final String hKey, final T value) { - RMap rMap = CLIENT.getMap(key); - rMap.put(hKey, value); - } - - /** - * 获取Hash中的数据 - * - * @param key Redis键 - * @param hKey Hash键 - * @return Hash中的对象 - */ - public static T getCacheMapValue(final String key, final String hKey) { - RMap rMap = CLIENT.getMap(key); - return rMap.get(hKey); - } - - /** - * 删除Hash中的数据 - * - * @param key Redis键 - * @param hKey Hash键 - * @return Hash中的对象 - */ - public static T delCacheMapValue(final String key, final String hKey) { - RMap rMap = CLIENT.getMap(key); - return rMap.remove(hKey); - } - - /** - * 获取多个Hash中的数据 - * - * @param key Redis键 - * @param hKeys Hash键集合 - * @return Hash对象集合 - */ - public static Map getMultiCacheMapValue(final String key, final Set hKeys) { - RMap rMap = CLIENT.getMap(key); - return rMap.getAll(hKeys); - } - - /** - * 设置原子值 - * - * @param key Redis键 - * @param value 值 - */ - public static void setAtomicValue(String key, long value) { - RAtomicLong atomic = CLIENT.getAtomicLong(key); - atomic.set(value); - } - - /** - * 获取原子值 - * - * @param key Redis键 - * @return 当前值 - */ - public static long getAtomicValue(String key) { - RAtomicLong atomic = CLIENT.getAtomicLong(key); - return atomic.get(); - } - - /** - * 递增原子值 - * - * @param key Redis键 - * @return 当前值 - */ - public static long incrAtomicValue(String key) { - RAtomicLong atomic = CLIENT.getAtomicLong(key); - return atomic.incrementAndGet(); - } - - /** - * 递减原子值 - * - * @param key Redis键 - * @return 当前值 - */ - public static long decrAtomicValue(String key) { - RAtomicLong atomic = CLIENT.getAtomicLong(key); - return atomic.decrementAndGet(); - } - - /** - * 获得缓存的基本对象列表 - * - * @param pattern 字符串前缀 - * @return 对象列表 - */ - public static Collection keys(final String pattern) { - Iterable iterable = CLIENT.getKeys().getKeysByPattern(pattern); - return IterUtil.toList(iterable); - } - - /** - * 检查redis中是否存在key - * - * @param key 键 - */ - public static Boolean hasKey(String key) { - RKeys rKeys = CLIENT.getKeys(); - return rKeys.countExists(key) > 0; - } -} diff --git a/vben-core/src/main/java/vben/core/common/utils/ruoyi/StringUtils.java b/vben-core/src/main/java/vben/core/common/utils/ruoyi/StringUtils.java deleted file mode 100644 index 2017026..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/ruoyi/StringUtils.java +++ /dev/null @@ -1,301 +0,0 @@ -package vben.core.common.utils.ruoyi; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.lang.Validator; -import cn.hutool.core.util.StrUtil; -import lombok.AccessLevel; -import lombok.NoArgsConstructor; -import org.springframework.util.AntPathMatcher; - -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -/** - * 字符串工具类 - * - * @author Lion Li - */ -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class StringUtils extends org.apache.commons.lang3.StringUtils { - - /** - * 获取参数不为空值 - * - * @param str defaultValue 要判断的value - * @return value 返回值 - */ - public static String blankToDefault(String str, String defaultValue) { - return StrUtil.blankToDefault(str, defaultValue); - } - - /** - * * 判断一个字符串是否为空串 - * - * @param str String - * @return true:为空 false:非空 - */ - public static boolean isEmpty(String str) { - return StrUtil.isEmpty(str); - } - - /** - * * 判断一个字符串是否为非空串 - * - * @param str String - * @return true:非空串 false:空串 - */ - public static boolean isNotEmpty(String str) { - return !isEmpty(str); - } - - /** - * 去空格 - */ - public static String trim(String str) { - return StrUtil.trim(str); - } - - /** - * 截取字符串 - * - * @param str 字符串 - * @param start 开始 - * @return 结果 - */ - public static String substring(final String str, int start) { - return substring(str, start, str.length()); - } - - /** - * 截取字符串 - * - * @param str 字符串 - * @param start 开始 - * @param end 结束 - * @return 结果 - */ - public static String substring(final String str, int start, int end) { - return StrUtil.sub(str, start, end); - } - - /** - * 格式化文本, {} 表示占位符
- * 此方法只是简单将占位符 {} 按照顺序替换为参数
- * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
- * 例:
- * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b
- * 转义{}: format("this is \\{} for {}", "a", "b") -> this is {} for a
- * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b
- * - * @param template 文本模板,被替换的部分用 {} 表示 - * @param params 参数值 - * @return 格式化后的文本 - */ - public static String format(String template, Object... params) { - return StrUtil.format(template, params); - } - - /** - * 是否为http(s)://开头 - * - * @param link 链接 - * @return 结果 - */ - public static boolean ishttp(String link) { - return Validator.isUrl(link); - } - - /** - * 字符串转set - * - * @param str 字符串 - * @param sep 分隔符 - * @return set集合 - */ - public static Set str2Set(String str, String sep) { - return new HashSet<>(str2List(str, sep, true, false)); - } - - /** - * 字符串转list - * - * @param str 字符串 - * @param sep 分隔符 - * @param filterBlank 过滤纯空白 - * @param trim 去掉首尾空白 - * @return list集合 - */ - public static List str2List(String str, String sep, boolean filterBlank, boolean trim) { - List list = new ArrayList<>(); - if (isEmpty(str)) { - return list; - } - - // 过滤空白字符串 - if (filterBlank && isBlank(str)) { - return list; - } - String[] split = str.split(sep); - for (String string : split) { - if (filterBlank && isBlank(string)) { - continue; - } - if (trim) { - string = trim(string); - } - list.add(string); - } - - return list; - } - - /** - * 查找指定字符串是否包含指定字符串列表中的任意一个字符串同时串忽略大小写 - * - * @param cs 指定字符串 - * @param searchCharSequences 需要检查的字符串数组 - * @return 是否包含任意一个字符串 - */ - public static boolean containsAnyIgnoreCase(CharSequence cs, CharSequence... searchCharSequences) { - return StrUtil.containsAnyIgnoreCase(cs, searchCharSequences); - } - - /** - * 驼峰转下划线命名 - */ - public static String toUnderScoreCase(String str) { - return StrUtil.toUnderlineCase(str); - } - - /** - * 是否包含字符串 - * - * @param str 验证字符串 - * @param strs 字符串组 - * @return 包含返回true - */ - public static boolean inStringIgnoreCase(String str, String... strs) { - return StrUtil.equalsAnyIgnoreCase(str, strs); - } - - /** - * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld - * - * @param name 转换前的下划线大写方式命名的字符串 - * @return 转换后的驼峰式命名的字符串 - */ - public static String convertToCamelCase(String name) { - return StrUtil.upperFirst(StrUtil.toCamelCase(name)); - } - - /** - * 驼峰式命名法 例如:user_name->userName - */ - public static String toCamelCase(String s) { - return StrUtil.toCamelCase(s); - } - - /** - * 查找指定字符串是否匹配指定字符串列表中的任意一个字符串 - * - * @param str 指定字符串 - * @param strs 需要检查的字符串数组 - * @return 是否匹配 - */ - public static boolean matches(String str, List strs) { - if (isEmpty(str) || CollUtil.isEmpty(strs)) { - return false; - } - for (String pattern : strs) { - if (isMatch(pattern, str)) { - return true; - } - } - return false; - } - - /** - * 判断url是否与规则配置: - * ? 表示单个字符; - * * 表示一层路径内的任意字符串,不可跨层级; - * ** 表示任意层路径; - * - * @param pattern 匹配规则 - * @param url 需要匹配的url - * @return - */ - public static boolean isMatch(String pattern, String url) { - AntPathMatcher matcher = new AntPathMatcher(); - return matcher.match(pattern, url); - } - - /** - * 数字左边补齐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(); - } - - /* - 溢出的int负数取补码 - */ - public static String getComplementBinaryCode(int a) - { - String val = ""; - for (int i = 0; i < 32; i++) - { - // 0x80000000 是一个首位为1,其余位数为0的整数 - int t = (a & 0x80000000 >>> i) >>> (31 - i); - val += t; - } - return val; - } - - /* - 如果包含负值,则需要转换 - */ - public static String changeValBinary(String val) { - if(val.indexOf("-") < 0) { - return val; - } - String binaryVal = getComplementBinaryCode(Integer.parseInt(val)); - return new BigInteger(binaryVal, 2).toString(); - } - - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/web/XaddressUtil.java b/vben-core/src/main/java/vben/core/common/utils/web/XaddressUtil.java deleted file mode 100644 index 9b7e97e..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/web/XaddressUtil.java +++ /dev/null @@ -1,47 +0,0 @@ -package vben.core.common.utils.web; - -import cn.hutool.core.net.NetUtil; -import cn.hutool.http.HtmlUtil; -import cn.hutool.http.HttpUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; - -@Slf4j -public class XaddressUtil { - - // IP地址查询 - public static final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp"; - - // 未知地址 - public static final String UNKNOWN = "XX XX"; - - public static String getRealAddressByIP(String ip) { - String address = UNKNOWN; - if (StringUtils.isBlank(ip)) { - return address; - } - // 内网不查询 - ip = "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : HtmlUtil.cleanHtmlTag(ip); - if (NetUtil.isInnerIP(ip)) { - return "内网IP"; - } - try { - String rspStr = HttpUtil.createGet(IP_URL) - .body("ip=" + ip + "&json=true", "GBK") - .execute() - .body(); - if (StringUtils.isEmpty(rspStr)) { - log.error("获取地理位置异常 {}", ip); - return UNKNOWN; - } -// Map obj = JsonUtils.parseMap(rspStr); -// String region = obj.get("pro"); -// String city = obj.get("city"); -// return String.format("%s %s", region, city); - return String.format("%s %s", "region", "city"); - } catch (Exception e) { - log.error("获取地理位置异常 {}", ip); - } - return address; - } -} diff --git a/vben-core/src/main/java/vben/core/common/utils/web/XreqUtil.java b/vben-core/src/main/java/vben/core/common/utils/web/XreqUtil.java deleted file mode 100644 index 2fa0e43..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/web/XreqUtil.java +++ /dev/null @@ -1,206 +0,0 @@ -package vben.core.common.utils.web; - -import cn.hutool.core.convert.Convert; -import vben.core.common.mvc.dao.Sqler; -import org.springframework.web.context.request.RequestAttributes; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.util.Enumeration; - -public class XreqUtil { - /** - * 当前记录起始索引 - */ - public static final String PAGE_NUM = "page"; - - /** - * 每页显示记录数 - */ - public static final String PAGE_SIZE = "pageSize"; - - - public static void testParams(HttpServletRequest request) { - Enumeration pNames = request.getParameterNames(); - while (pNames.hasMoreElements()) { - String pName = (String) pNames.nextElement(); - Object pValue = request.getParameter(pName); - System.out.println(pName + ":" + pValue); - } - } - - - - public static String getIpAddress(HttpServletRequest request) { - String ip = request.getHeader("x-forwarded-for"); - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { - ip = request.getHeader("Proxy-Client-IP"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { - ip = request.getHeader("WL-Proxy-Client-IP"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { - ip = request.getHeader("HTTP_CLIENT_IP"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { - ip = request.getHeader("HTTP_X_FORWARDED_FOR"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { - ip = request.getRemoteAddr(); - } - return ip; - } - - - public static void setPageParam(Sqler sqler) { - HttpServletRequest request = getRequest(); - Integer pageNum = Convert.toInt(request.getParameter(PAGE_NUM)); - Integer pageSize = Convert.toInt(request.getParameter(PAGE_SIZE)); - if(pageNum!=null){ - sqler.setPanum(pageNum); - } - if(pageSize!=null){ - sqler.setPasiz(pageSize); - } - } - - - /** - * 获取String参数 - */ - public static String getParameter(String name) - { - return getRequest().getParameter(name); - } - - /** - * 获取String参数 - */ - public static String getParameter(String name, String defaultValue) - { - return Convert.toStr(getRequest().getParameter(name), defaultValue); - } - - /** - * 获取Integer参数 - */ - public static Integer getParameterToInt(String name) - { - return Convert.toInt(getRequest().getParameter(name)); - } - - /** - * 获取Integer参数 - */ - public static Integer getParameterToInt(String name, Integer defaultValue) - { - return Convert.toInt(getRequest().getParameter(name), defaultValue); - } - - /** - * 获取Boolean参数 - */ - public static Boolean getParameterToBool(String name) - { - return Convert.toBool(getRequest().getParameter(name)); - } - - /** - * 获取Boolean参数 - */ - public static Boolean getParameterToBool(String name, Boolean defaultValue) - { - return Convert.toBool(getRequest().getParameter(name), defaultValue); - } - - /** - * 获取request - */ - public static HttpServletRequest getRequest() - { - return getRequestAttributes().getRequest(); - } - - /** - * 获取response - */ - public static HttpServletResponse getResponse() - { - return getRequestAttributes().getResponse(); - } - - /** - * 获取session - */ - public static HttpSession getSession() - { - return getRequest().getSession(); - } - - public static ServletRequestAttributes getRequestAttributes() - { - RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); - return (ServletRequestAttributes) attributes; - } - - /** - * 将字符串渲染到客户端 - * - * @param response 渲染对象 - * @param string 待渲染的字符串 - * @return null - */ - public static String renderString(HttpServletResponse response, String string) - { - try - { - response.setStatus(200); - response.setContentType("application/json"); - response.setCharacterEncoding("utf-8"); - response.getWriter().print(string); - } - catch (IOException e) - { - e.printStackTrace(); - } - return null; - } - - /** - * 是否是Ajax异步请求 - * - * @param request - */ -// public static boolean isAjaxRequest(HttpServletRequest request) -// { -// String accept = request.getHeader("accept"); -// if (accept != null && accept.indexOf("application/json") != -1) -// { -// return true; -// } -// -// String xRequestedWith = request.getHeader("X-Requested-With"); -// if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1) -// { -// return true; -// } -// -// String uri = request.getRequestURI(); -// if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) -// { -// return true; -// } -// -// String ajax = request.getParameter("__ajax"); -// if (StringUtils.inStringIgnoreCase(ajax, "json", "xml")) -// { -// return true; -// } -// return false; -// } - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/common/utils/web/XresUtil.java b/vben-core/src/main/java/vben/core/common/utils/web/XresUtil.java deleted file mode 100644 index d95cbc4..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/web/XresUtil.java +++ /dev/null @@ -1,35 +0,0 @@ -package vben.core.common.utils.web; - -import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; - -import javax.servlet.http.HttpServletResponse; -import java.io.*; -import java.net.URLEncoder; - -public class XresUtil { - - public static void downloadExcelXls(HttpServletResponse response, HSSFWorkbook workbook, String name) throws IOException { - String fileName = URLEncoder.encode(name, "UTF-8"); - response.setHeader("content-disposition", "attachment;filename=" + fileName + ".xls"); - response.setContentType("application/vnd.ms-excel"); - OutputStream out = response.getOutputStream(); - workbook.write(out); - out.flush(); - out.close(); - } - - public static void downloadExcelXlsx(HttpServletResponse response, XSSFWorkbook workbook, String name) throws IOException { - String fileName = URLEncoder.encode(name, "UTF-8"); - response.setHeader("content-disposition", "attachment;filename=" + fileName + ".xlsx"); - response.setContentType("application/vnd.ms-excel"); - OutputStream out = response.getOutputStream(); - workbook.write(out); - out.flush(); - out.close(); - } - - - - -} diff --git a/vben-core/src/main/java/vben/core/common/utils/web/XuserUtil.java b/vben-core/src/main/java/vben/core/common/utils/web/XuserUtil.java deleted file mode 100644 index 952d226..0000000 --- a/vben-core/src/main/java/vben/core/common/utils/web/XuserUtil.java +++ /dev/null @@ -1,51 +0,0 @@ -package vben.core.common.utils.web; - -import vben.core.module.sys.org.root.SysOrg; -import vben.core.framework.security.pojo.Zuser; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; - -public class XuserUtil { - - public static String[] admins; - - public static boolean isAdmin(String usnam) { - if ("sa".equals(usnam)) { - return true; - } - for (int i = 0; i < XuserUtil.admins.length; i++) { - if (XuserUtil.admins[i].equals(usnam)) { - return true; - } - } - return false; - } - - public static SysOrg getUser() { - String userId = null; - Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - userId = calcUserId(userId, authentication); - return new SysOrg(userId, ""); - } - - public static String getUserId() { - String userId = null; - Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - userId = calcUserId(userId, authentication); - return userId; - } - - private static String calcUserId(String userId, Authentication authentication) { -// if(authentication==null){ -// return "sa"; -// } - if (authentication.getPrincipal() instanceof String) { - userId = (String) authentication.getPrincipal(); - } else if (authentication.getPrincipal() instanceof Zuser) { - Zuser zuser = (Zuser) authentication.getPrincipal(); - userId = zuser.getId(); - } - return userId; - } - -} diff --git a/vben-core/src/main/java/vben/core/framework/cache/RedisConfig.java b/vben-core/src/main/java/vben/core/framework/cache/RedisConfig.java deleted file mode 100644 index 6837c2f..0000000 --- a/vben-core/src/main/java/vben/core/framework/cache/RedisConfig.java +++ /dev/null @@ -1,197 +0,0 @@ -package vben.core.framework.cache; - -import cn.hutool.core.lang.Assert; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.parser.ParserConfig; -import com.alibaba.fastjson.serializer.SerializerFeature; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.codec.digest.DigestUtils; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.data.redis.RedisProperties; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cache.Cache; -import org.springframework.cache.annotation.CachingConfigurerSupport; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.cache.interceptor.CacheErrorHandler; -import org.springframework.cache.interceptor.KeyGenerator; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.redis.cache.RedisCacheConfiguration; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.core.RedisOperations; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.serializer.RedisSerializationContext; -import org.springframework.data.redis.serializer.RedisSerializer; - -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import java.time.Duration; -import java.util.HashMap; -import java.util.Map; - -@Slf4j -@Configuration -@EnableCaching -@ConditionalOnClass(RedisOperations.class) -@EnableConfigurationProperties(RedisProperties.class) -public class RedisConfig extends CachingConfigurerSupport { - - /** - * 设置 redis 数据默认过期时间,默认2小时 - * 设置@cacheable 序列化方式 - */ - @Bean - public RedisCacheConfiguration redisCacheConfiguration() { - FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer<>(Object.class); - RedisCacheConfiguration configuration = RedisCacheConfiguration.defaultCacheConfig(); - configuration = configuration.serializeValuesWith(RedisSerializationContext. - SerializationPair.fromSerializer(fastJsonRedisSerializer)).entryTtl(Duration.ofHours(6)); - return configuration; - } - - @SuppressWarnings("all") - @Bean(name = "redisTemplate") - @ConditionalOnMissingBean(name = "redisTemplate") - public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { - RedisTemplate template = new RedisTemplate<>(); - //序列化 - FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer<>(Object.class); - // value值的序列化采用fastJsonRedisSerializer - template.setValueSerializer(fastJsonRedisSerializer); - template.setHashValueSerializer(fastJsonRedisSerializer); - // 全局开启AutoType,这里方便开发,使用全局的方式 - ParserConfig.getGlobalInstance().setAutoTypeSupport(true); - // 建议使用这种方式,小范围指定白名单 - // ParserConfig.getGlobalInstance().addAccept("me.zhengjie.domain"); - // key的序列化采用StringRedisSerializer - template.setKeySerializer(new StringRedisSerializer()); - template.setHashKeySerializer(new StringRedisSerializer()); - template.setConnectionFactory(redisConnectionFactory); - return template; - } - - /** - * 自定义缓存key生成策略,默认将使用该策略 - */ - @Bean - @Override - public KeyGenerator keyGenerator() { - return (target, method, params) -> { - Map container = new HashMap<>(3); - Class targetClassClass = target.getClass(); - // 类地址 - container.put("class", targetClassClass.toGenericString()); - // 方法名称 - container.put("methodName", method.getName()); - // 包名称 - container.put("package", targetClassClass.getPackage()); - // 参数列表 - for (int i = 0; i < params.length; i++) { - container.put(String.valueOf(i), params[i]); - } - // 转为JSON字符串 - String jsonString = JSON.toJSONString(container); - // 做SHA256 Hash计算,得到一个SHA256摘要作为Key - return DigestUtils.sha256Hex(jsonString); - }; - } - - @Bean - @Override - public CacheErrorHandler errorHandler() { - // 异常处理,当Redis发生异常时,打印日志,但是程序正常走 - log.info("初始化 -> [{}]", "Redis CacheErrorHandler"); - return new CacheErrorHandler() { - @Override - public void handleCacheGetError(RuntimeException e, Cache cache, Object key) { - log.error("Redis occur handleCacheGetError:key -> [{}]", key, e); - } - - @Override - public void handleCachePutError(RuntimeException e, Cache cache, Object key, Object value) { - log.error("Redis occur handleCachePutError:key -> [{}];value -> [{}]", key, value, e); - } - - @Override - public void handleCacheEvictError(RuntimeException e, Cache cache, Object key) { - log.error("Redis occur handleCacheEvictError:key -> [{}]", key, e); - } - - @Override - public void handleCacheClearError(RuntimeException e, Cache cache) { - log.error("Redis occur handleCacheClearError:", e); - } - }; - } - -} - -/** - * Value 序列化 - * - * @param - * @author / - */ -class FastJsonRedisSerializer implements RedisSerializer { - - private final Class clazz; - - FastJsonRedisSerializer(Class clazz) { - super(); - this.clazz = clazz; - } - - @Override - public byte[] serialize(T t) { - if (t == null) { - return new byte[0]; - } - return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(StandardCharsets.UTF_8); - } - - @Override - public T deserialize(byte[] bytes) { - if (bytes == null || bytes.length <= 0) { - return null; - } - String str = new String(bytes, StandardCharsets.UTF_8); - return JSON.parseObject(str, clazz); - } - -} - -/** - * 重写序列化器 - * - * @author / - */ -class StringRedisSerializer implements RedisSerializer { - - private final Charset charset; - - StringRedisSerializer() { - this(StandardCharsets.UTF_8); - } - - private StringRedisSerializer(Charset charset) { - Assert.notNull(charset, "Charset must not be null!"); - this.charset = charset; - } - - @Override - public String deserialize(byte[] bytes) { - return (bytes == null ? null : new String(bytes, charset)); - } - - @Override - public byte[] serialize(Object object) { - String string = JSON.toJSONString(object); - if (StrUtil.isBlank(string)) { - return null; - } - string = string.replace("\"", ""); - return string.getBytes(charset); - } -} diff --git a/vben-core/src/main/java/vben/core/framework/cache/RedisHandler.java b/vben-core/src/main/java/vben/core/framework/cache/RedisHandler.java deleted file mode 100644 index 85e21a2..0000000 --- a/vben-core/src/main/java/vben/core/framework/cache/RedisHandler.java +++ /dev/null @@ -1,693 +0,0 @@ -package vben.core.framework.cache; - -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.data.redis.connection.RedisConnection; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.core.Cursor; -import org.springframework.data.redis.core.RedisConnectionUtils; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.core.ScanOptions; -import org.springframework.stereotype.Component; - -import java.util.*; -import java.util.concurrent.TimeUnit; - -@Component -@SuppressWarnings({"unchecked", "all"}) -public class RedisHandler { - private static final Logger log = LoggerFactory.getLogger(RedisHandler.class); - private RedisTemplate redisTemplate; - -// @Value("${jwt.online-key}") - private String onlineKey="online-key"; - - public RedisHandler(RedisTemplate redisTemplate) { - this.redisTemplate = redisTemplate; - } - - /** - * 指定缓存失效时间 - * - * @param key 键 - * @param time 时间(秒) - */ - public boolean expire(String key, long time) { - try { - if (time > 0) { - redisTemplate.expire(key, time, TimeUnit.SECONDS); - } - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - return true; - } - - /** - * 指定缓存失效时间 - * - * @param key 键 - * @param time 时间(秒) - * @param timeUnit 单位 - */ - public boolean expire(String key, long time, TimeUnit timeUnit) { - try { - if (time > 0) { - redisTemplate.expire(key, time, timeUnit); - } - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - return true; - } - - /** - * 根据 key 获取过期时间 - * - * @param key 键 不能为null - * @return 时间(秒) 返回0代表为永久有效 - */ - public long getExpire(Object key) { - return redisTemplate.getExpire(key, TimeUnit.SECONDS); - } - - /** - * 查找匹配key - * - * @param pattern key - * @return / - */ - public List scan(String pattern) { - ScanOptions options = ScanOptions.scanOptions().match(pattern).build(); - RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); - RedisConnection rc = Objects.requireNonNull(factory).getConnection(); - Cursor cursor = rc.scan(options); - List result = new ArrayList<>(); - while (cursor.hasNext()) { - result.add(new String(cursor.next())); - } - try { - RedisConnectionUtils.releaseConnection(rc, factory); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - return result; - } - - /** - * 分页查询 key - * - * @param patternKey key - * @param page 页码 - * @param size 每页数目 - * @return / - */ - public List findKeysForPage(String patternKey, int page, int size) { - ScanOptions options = ScanOptions.scanOptions().match(patternKey).build(); - RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); - RedisConnection rc = Objects.requireNonNull(factory).getConnection(); - Cursor cursor = rc.scan(options); - List result = new ArrayList<>(size); - int tmpIndex = 0; - int fromIndex = page * size; - int toIndex = page * size + size; - while (cursor.hasNext()) { - if (tmpIndex >= fromIndex && tmpIndex < toIndex) { - result.add(new String(cursor.next())); - tmpIndex++; - continue; - } - // 获取到满足条件的数据后,就可以退出了 - if (tmpIndex >= toIndex) { - break; - } - tmpIndex++; - cursor.next(); - } - try { - RedisConnectionUtils.releaseConnection(rc, factory); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - return result; - } - - /** - * 判断key是否存在 - * - * @param key 键 - * @return true 存在 false不存在 - */ - public boolean hasKey(String key) { - try { - return redisTemplate.hasKey(key); - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 删除缓存 - * - * @param key 可以传一个值 或多个 - */ - public void del(String... keys) { - if (keys != null && keys.length > 0) { - if (keys.length == 1) { - boolean result = redisTemplate.delete(keys[0]); - log.debug("--------------------------------------------"); - log.debug(new StringBuilder("删除缓存:").append(keys[0]).append(",结果:").append(result).toString()); - log.debug("--------------------------------------------"); - } else { - Set keySet = new HashSet<>(); - for (String key : keys) { - keySet.addAll(redisTemplate.keys(key)); - } - long count = redisTemplate.delete(keySet); - log.debug("--------------------------------------------"); - log.debug("成功删除缓存:" + keySet.toString()); - log.debug("缓存删除数量:" + count + "个"); - log.debug("--------------------------------------------"); - } - } - } - - // ============================String============================= - - /** - * 普通缓存获取 - * - * @param key 键 - * @return 值 - */ - public Object get(String key) { - return key == null ? null : redisTemplate.opsForValue().get(key); - } - - /** - * 批量获取 - * - * @param keys - * @return - */ - public List multiGet(List keys) { - List list = redisTemplate.opsForValue().multiGet(Sets.newHashSet(keys)); - List resultList = Lists.newArrayList(); - Optional.ofNullable(list).ifPresent(e -> list.forEach(ele -> Optional.ofNullable(ele).ifPresent(resultList::add))); - return resultList; - } - - /** - * 普通缓存放入 - * - * @param key 键 - * @param value 值 - * @return true成功 false失败 - */ - public boolean set(String key, Object value) { - try { - redisTemplate.opsForValue().set(key, value); - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 普通缓存放入并设置时间 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 - * @return true成功 false 失败 - */ - public boolean set(String key, Object value, long time) { - try { - if (time > 0) { - redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); - } else { - set(key, value); - } - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 普通缓存放入并设置时间 - * - * @param key 键 - * @param value 值 - * @param time 时间 - * @param timeUnit 类型 - * @return true成功 false 失败 - */ - public boolean set(String key, Object value, long time, TimeUnit timeUnit) { - try { - if (time > 0) { - redisTemplate.opsForValue().set(key, value, time, timeUnit); - } else { - set(key, value); - } - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - // ================================Map================================= - - /** - * HashGet - * - * @param key 键 不能为null - * @param item 项 不能为null - * @return 值 - */ - public Object hget(String key, String item) { - return redisTemplate.opsForHash().get(key, item); - } - - /** - * 获取hashKey对应的所有键值 - * - * @param key 键 - * @return 对应的多个键值 - */ - public Map hmget(String key) { - return redisTemplate.opsForHash().entries(key); - - } - - /** - * HashSet - * - * @param key 键 - * @param map 对应多个键值 - * @return true 成功 false 失败 - */ - public boolean hmset(String key, Map map) { - try { - redisTemplate.opsForHash().putAll(key, map); - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * HashSet 并设置时间 - * - * @param key 键 - * @param map 对应多个键值 - * @param time 时间(秒) - * @return true成功 false失败 - */ - public boolean hmset(String key, Map map, long time) { - try { - redisTemplate.opsForHash().putAll(key, map); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 向一张hash表中放入数据,如果不存在将创建 - * - * @param key 键 - * @param item 项 - * @param value 值 - * @return true 成功 false失败 - */ - public boolean hset(String key, String item, Object value) { - try { - redisTemplate.opsForHash().put(key, item, value); - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 向一张hash表中放入数据,如果不存在将创建 - * - * @param key 键 - * @param item 项 - * @param value 值 - * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 - * @return true 成功 false失败 - */ - public boolean hset(String key, String item, Object value, long time) { - try { - redisTemplate.opsForHash().put(key, item, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 删除hash表中的值 - * - * @param key 键 不能为null - * @param item 项 可以使多个 不能为null - */ - public void hdel(String key, Object... item) { - redisTemplate.opsForHash().delete(key, item); - } - - /** - * 判断hash表中是否有该项的值 - * - * @param key 键 不能为null - * @param item 项 不能为null - * @return true 存在 false不存在 - */ - public boolean hHasKey(String key, String item) { - return redisTemplate.opsForHash().hasKey(key, item); - } - - /** - * hash递增 如果不存在,就会创建一个 并把新增后的值返回 - * - * @param key 键 - * @param item 项 - * @param by 要增加几(大于0) - * @return - */ - public double hincr(String key, String item, double by) { - return redisTemplate.opsForHash().increment(key, item, by); - } - - /** - * hash递减 - * - * @param key 键 - * @param item 项 - * @param by 要减少记(小于0) - * @return - */ - public double hdecr(String key, String item, double by) { - return redisTemplate.opsForHash().increment(key, item, -by); - } - - // ============================set============================= - - /** - * 根据key获取Set中的所有值 - * - * @param key 键 - * @return - */ - public Set sGet(String key) { - try { - return redisTemplate.opsForSet().members(key); - } catch (Exception e) { - log.error(e.getMessage(), e); - return null; - } - } - - /** - * 根据value从一个set中查询,是否存在 - * - * @param key 键 - * @param value 值 - * @return true 存在 false不存在 - */ - public boolean sHasKey(String key, Object value) { - try { - return redisTemplate.opsForSet().isMember(key, value); - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 将数据放入set缓存 - * - * @param key 键 - * @param values 值 可以是多个 - * @return 成功个数 - */ - public long sSet(String key, Object... values) { - try { - return redisTemplate.opsForSet().add(key, values); - } catch (Exception e) { - log.error(e.getMessage(), e); - return 0; - } - } - - /** - * 将set数据放入缓存 - * - * @param key 键 - * @param time 时间(秒) - * @param values 值 可以是多个 - * @return 成功个数 - */ - public long sSetAndTime(String key, long time, Object... values) { - try { - Long count = redisTemplate.opsForSet().add(key, values); - if (time > 0) { - expire(key, time); - } - return count; - } catch (Exception e) { - log.error(e.getMessage(), e); - return 0; - } - } - - /** - * 获取set缓存的长度 - * - * @param key 键 - * @return - */ - public long sGetSetSize(String key) { - try { - return redisTemplate.opsForSet().size(key); - } catch (Exception e) { - log.error(e.getMessage(), e); - return 0; - } - } - - /** - * 移除值为value的 - * - * @param key 键 - * @param values 值 可以是多个 - * @return 移除的个数 - */ - public long setRemove(String key, Object... values) { - try { - Long count = redisTemplate.opsForSet().remove(key, values); - return count; - } catch (Exception e) { - log.error(e.getMessage(), e); - return 0; - } - } - - // ===============================list================================= - - /** - * 获取list缓存的内容 - * - * @param key 键 - * @param start 开始 - * @param end 结束 0 到 -1代表所有值 - * @return - */ - public List lGet(String key, long start, long end) { - try { - return redisTemplate.opsForList().range(key, start, end); - } catch (Exception e) { - log.error(e.getMessage(), e); - return null; - } - } - - /** - * 获取list缓存的长度 - * - * @param key 键 - * @return - */ - public long lGetListSize(String key) { - try { - return redisTemplate.opsForList().size(key); - } catch (Exception e) { - log.error(e.getMessage(), e); - return 0; - } - } - - /** - * 通过索引 获取list中的值 - * - * @param key 键 - * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 - * @return - */ - public Object lGetIndex(String key, long index) { - try { - return redisTemplate.opsForList().index(key, index); - } catch (Exception e) { - log.error(e.getMessage(), e); - return null; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @return - */ - public boolean lSet(String key, Object value) { - try { - redisTemplate.opsForList().rightPush(key, value); - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) - * @return - */ - public boolean lSet(String key, Object value, long time) { - try { - redisTemplate.opsForList().rightPush(key, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @return - */ - public boolean lSet(String key, List value) { - try { - redisTemplate.opsForList().rightPushAll(key, value); - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) - * @return - */ - public boolean lSet(String key, List value, long time) { - try { - redisTemplate.opsForList().rightPushAll(key, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 根据索引修改list中的某条数据 - * - * @param key 键 - * @param index 索引 - * @param value 值 - * @return / - */ - public boolean lUpdateIndex(String key, long index, Object value) { - try { - redisTemplate.opsForList().set(key, index, value); - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 移除N个值为value - * - * @param key 键 - * @param count 移除多少个 - * @param value 值 - * @return 移除的个数 - */ - public long lRemove(String key, long count, Object value) { - try { - return redisTemplate.opsForList().remove(key, count, value); - } catch (Exception e) { - log.error(e.getMessage(), e); - return 0; - } - } - - /** - * @param prefix 前缀 - * @param ids id - */ - public void delByKeys(String prefix, Set ids) { - Set keys = new HashSet<>(); - for (Long id : ids) { - keys.addAll(redisTemplate.keys(new StringBuffer(prefix).append(id).toString())); - } - long count = redisTemplate.delete(keys); - // 此处提示可自行删除 - log.debug("--------------------------------------------"); - log.debug("成功删除缓存:" + keys.toString()); - log.debug("缓存删除数量:" + count + "个"); - log.debug("--------------------------------------------"); - } -} diff --git a/vben-core/src/main/java/vben/core/framework/cache/RedissonProperties.java b/vben-core/src/main/java/vben/core/framework/cache/RedissonProperties.java deleted file mode 100644 index 123a742..0000000 --- a/vben-core/src/main/java/vben/core/framework/cache/RedissonProperties.java +++ /dev/null @@ -1,165 +0,0 @@ -package vben.core.framework.cache; - -import lombok.Data; -import lombok.NoArgsConstructor; -import org.redisson.config.ReadMode; -import org.redisson.config.SubscriptionMode; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -import java.util.List; - -/** - * Redisson 配置属性 - * - * @author Lion Li - */ -@Data -@Component -@ConfigurationProperties(prefix = "redisson") -public class RedissonProperties { - - /** - * 线程池数量,默认值 = 当前处理核数量 * 2 - */ - private int threads; - - /** - * Netty线程池数量,默认值 = 当前处理核数量 * 2 - */ - private int nettyThreads; - - /** - * 单机服务配置 - */ - private SingleServerConfig singleServerConfig; - - /** - * 集群服务配置 - */ - private ClusterServersConfig clusterServersConfig; - - /** - * 缓存组 - */ - private List cacheGroup; - - @Data - @NoArgsConstructor - public static class SingleServerConfig { - - /** - * 客户端名称 - */ - private String clientName; - - /** - * 最小空闲连接数 - */ - private int connectionMinimumIdleSize; - - /** - * 连接池大小 - */ - private int connectionPoolSize; - - /** - * 连接空闲超时,单位:毫秒 - */ - private int idleConnectionTimeout; - - /** - * 命令等待超时,单位:毫秒 - */ - private int timeout; - - /** - * 发布和订阅连接池大小 - */ - private int subscriptionConnectionPoolSize; - - } - - @Data - @NoArgsConstructor - public static class ClusterServersConfig { - - /** - * 客户端名称 - */ - private String clientName; - - /** - * master最小空闲连接数 - */ - private int masterConnectionMinimumIdleSize; - - /** - * master连接池大小 - */ - private int masterConnectionPoolSize; - - /** - * slave最小空闲连接数 - */ - private int slaveConnectionMinimumIdleSize; - - /** - * slave连接池大小 - */ - private int slaveConnectionPoolSize; - - /** - * 连接空闲超时,单位:毫秒 - */ - private int idleConnectionTimeout; - - /** - * 命令等待超时,单位:毫秒 - */ - private int timeout; - - /** - * 发布和订阅连接池大小 - */ - private int subscriptionConnectionPoolSize; - - /** - * 读取模式 - */ - private ReadMode readMode; - - /** - * 订阅模式 - */ - private SubscriptionMode subscriptionMode; - - } - - @Data - @NoArgsConstructor - public static class CacheGroup { - - /** - * 组id - */ - private String groupId; - - /** - * 组过期时间 - */ - private long ttl; - - /** - * 组最大空闲时间 - */ - private long maxIdleTime; - - /** - * 组最大长度 - */ - private int maxSize; - - } - -} diff --git a/vben-core/src/main/java/vben/core/framework/config/AppConfig.java b/vben-core/src/main/java/vben/core/framework/config/AppConfig.java deleted file mode 100644 index f390d02..0000000 --- a/vben-core/src/main/java/vben/core/framework/config/AppConfig.java +++ /dev/null @@ -1,51 +0,0 @@ -package vben.core.framework.config; - -import lombok.Getter; -import lombok.Setter; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; -import org.springframework.validation.annotation.Validated; - -import javax.validation.Valid; - -@Validated -@Configuration -@ConfigurationProperties(prefix = "zsvg") -public class AppConfig { - - @Getter - @Setter - @Valid - private Jwt jwt = new Jwt(); - - @Getter - @Setter - public static class Jwt { - private String header = "Authorization"; //HTTP 报头的认证字段的 key - private String prefix = "Bearer "; //HTTP 报头的认证字段的值的前缀 - - private long atime = 28800L; //accessToken过期时间 此处单位秒 ,默认8小时 28800 - - private long rtime = 3456000L; //accessToken过期时间 此处单位秒 ,默认30天 3456000 - - private String akey;//生成accessToken用的key - - private String rkey;//生成refreshToken用的key - - - //以下赞未用到 -// //在线用户 key,根据 key 查询 redis 中在线用户的数据 -// private String onlineKey; -// -// //验证码 key -// private String codeKey; -// -// //token 续期检查 -// private Long detect; -// -// //续期时间 -// private Long renew; - - } - -} diff --git a/vben-core/src/main/java/vben/core/framework/config/CorsConfig.java b/vben-core/src/main/java/vben/core/framework/config/CorsConfig.java deleted file mode 100644 index 48182dc..0000000 --- a/vben-core/src/main/java/vben/core/framework/config/CorsConfig.java +++ /dev/null @@ -1,52 +0,0 @@ -package vben.core.framework.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -//springboot 整合 SecurityConfig后, 前端访问后端跨域的坑 -//https://blog.csdn.net/qq_41463655/article/details/108038756 -@Configuration -public class CorsConfig implements WebMvcConfigurer { - -// @Bean -// public CorsFilter corsFilter() { -// final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource(); -// final CorsConfiguration corsConfiguration = new CorsConfiguration(); -// corsConfiguration.setAllowCredentials(true); /*是否允许请求带有验证信息*/ -// corsConfiguration.addAllowedOrigin("*");/*允许访问的客户端域名*/ -// corsConfiguration.addAllowedHeader("*");/*允许服务端访问的客户端请求头*/ -// corsConfiguration.addAllowedMethod("*"); /*允许访问的方法名,GET POST等*/ -// corsConfiguration.addExposedHeader("Authorization"); -// urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration); -// return new CorsFilter(urlBasedCorsConfigurationSource); -// } - - - @Override - public void addCorsMappings(CorsRegistry registry) { - registry.addMapping("/**") - .allowedOriginPatterns("*") // 使用模式匹配替代 - .allowCredentials(true) - .allowedMethods("*") - .allowedHeaders("*"); - } -} - -//@Configuration -//public class CorsConfig { -// @Bean -// public WebMvcConfigurer corsConfigurer() { -// return new WebMvcConfigurer() { -// @Override -// public void addCorsMappings(CorsRegistry registry) { -// registry.addMapping("/**") -//// .allowedHeaders("Authorization") -// .allowedOrigins("*") -// .allowCredentials(true) -// .allowedMethods("GET", "POST", "DELETE", "PUT", "PATCH") -// .maxAge(3600); -// } -// }; -// } -//} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/framework/config/RestTemplateConfig.java b/vben-core/src/main/java/vben/core/framework/config/RestTemplateConfig.java deleted file mode 100644 index 5232452..0000000 --- a/vben-core/src/main/java/vben/core/framework/config/RestTemplateConfig.java +++ /dev/null @@ -1,75 +0,0 @@ -package vben.core.framework.config; - -import org.apache.http.client.HttpClient; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.config.Registry; -import org.apache.http.config.RegistryBuilder; -import org.apache.http.conn.socket.ConnectionSocketFactory; -import org.apache.http.conn.socket.PlainConnectionSocketFactory; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.client.ClientHttpRequestFactory; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; -import org.springframework.web.client.RestTemplate; - -@Configuration -public class RestTemplateConfig { - @Value("${http.maxTotal}") - private Integer maxTotal; - - @Value("${http.defaultMaxPerRoute}") - private Integer defaultMaxPerRoute; - - @Value("${http.connectTimeout}") - private Integer connectTimeout; - - @Value("${http.connectionRequestTimeout}") - private Integer connectionRequestTimeout; - - @Value("${http.socketTimeout}") - private Integer socketTimeout; - - @Value("${http.staleConnectionCheckEnabled}") - private boolean staleConnectionCheckEnabled; - - @Value("${http.validateAfterInactivity}") - private Integer validateAfterInactivity; - - - @Bean - public RestTemplate restTemplate() { - return new RestTemplate(httpRequestFactory()); - } - - @Bean - public ClientHttpRequestFactory httpRequestFactory() { - return new HttpComponentsClientHttpRequestFactory(httpClient()); - } - - @Bean - public HttpClient httpClient() { - Registry registry = RegistryBuilder.create() - .register("http", PlainConnectionSocketFactory.getSocketFactory()) - .register("https", SSLConnectionSocketFactory.getSocketFactory()) - .build(); - PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry); - connectionManager.setMaxTotal(maxTotal); // 最大连接数 - connectionManager.setDefaultMaxPerRoute(defaultMaxPerRoute); //单个路由最大连接数 - connectionManager.setValidateAfterInactivity(validateAfterInactivity); // 最大空间时间 - RequestConfig requestConfig = RequestConfig.custom() - .setSocketTimeout(socketTimeout) //服务器返回数据(response)的时间,超过抛出read timeout - .setConnectTimeout(connectTimeout) //连接上服务器(握手成功)的时间,超出抛出connect timeout - .setStaleConnectionCheckEnabled(staleConnectionCheckEnabled) // 提交前检测是否可用 - .setConnectionRequestTimeout(connectionRequestTimeout)//从连接池中获取连接的超时时间,超时间未拿到可用连接,会抛出org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool - .build(); - return HttpClientBuilder.create() - .setDefaultRequestConfig(requestConfig) - .setConnectionManager(connectionManager) - .build(); - } - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/framework/config/SwaggerConfig.java b/vben-core/src/main/java/vben/core/framework/config/SwaggerConfig.java deleted file mode 100644 index a32f6a0..0000000 --- a/vben-core/src/main/java/vben/core/framework/config/SwaggerConfig.java +++ /dev/null @@ -1,152 +0,0 @@ -package vben.core.framework.config; -import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; -import lombok.RequiredArgsConstructor; -import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.*; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import vben.core.common.utils.ruoyi.StringUtils; -import vben.core.common.utils.extra.SpringUtils; - -import javax.annotation.PostConstruct; - -//Swagger 文档配置 -@RequiredArgsConstructor -@Configuration -@EnableKnife4j -public class SwaggerConfig { - - @PostConstruct - public void createRestApi() { - Docket appDocket = new Docket(DocumentationType.SWAGGER_2) - .apiInfo(appInfo()) - .groupName("1.应用中心") - .select() - .apis(RequestHandlerSelectors.basePackage("vben.admin")) - .paths(PathSelectors.any()) - .build(); - String app = StringUtils.substringAfterLast("vben.admin", ".") + "Docket"; - SpringUtils.registerBean(app, appDocket); - - Docket extDocket = new Docket(DocumentationType.SWAGGER_2) - .apiInfo(extInfo()) - .groupName("2.扩展模块") - .select() - .apis(RequestHandlerSelectors.basePackage("vben.extend")) - .paths(PathSelectors.any()) - .build(); - String ext = StringUtils.substringAfterLast("vben.extend", ".") + "Docket"; - SpringUtils.registerBean(ext, extDocket); - - Docket sysDocket = new Docket(DocumentationType.SWAGGER_2) - .apiInfo(sysInfo()) - .groupName("3.系统管理") - .select() - .apis(RequestHandlerSelectors.basePackage("vben.core.module.sys")) - .paths(PathSelectors.any()) - .build(); - String sys = StringUtils.substringAfterLast("vben.core.module.sys", ".") + "Docket"; - SpringUtils.registerBean(sys, sysDocket); - - Docket monDocket = new Docket(DocumentationType.SWAGGER_2) - .apiInfo(monInfo()) - .groupName("4.监控中心") - .select() - .apis(RequestHandlerSelectors.basePackage("vben.core.module.mon")) - .paths(PathSelectors.any()) - .build(); - String mon = StringUtils.substringAfterLast("vben.core.module.mon", ".") + "Docket"; - SpringUtils.registerBean(mon, monDocket); - - Docket assDocket = new Docket(DocumentationType.SWAGGER_2) - .apiInfo(assInfo()) - .groupName("5.辅助工具") - .select() - .apis(RequestHandlerSelectors.basePackage("vben.core.module.ass")) - .paths(PathSelectors.any()) - .build(); - String ass = StringUtils.substringAfterLast("vben.core.module.ass", ".") + "Docket"; - SpringUtils.registerBean(ass, assDocket); - - Docket genDocket = new Docket(DocumentationType.SWAGGER_2) - .apiInfo(genInfo()) - .groupName("6.通用模块") - .select() - .apis(RequestHandlerSelectors.basePackage("vben.core.module.gen")) - .paths(PathSelectors.any()) - .build(); - String gen = StringUtils.substringAfterLast("vben.core.module.gen", ".") + "Docket"; - SpringUtils.registerBean(gen, genDocket); - - Docket bpmDocket = new Docket(DocumentationType.SWAGGER_2) - .apiInfo(bpmInfo()) - .groupName("7.流程引擎") - .select() - .apis(RequestHandlerSelectors.basePackage("vben.core.module.bpm")) - .paths(PathSelectors.any()) - .build(); - String bpm = StringUtils.substringAfterLast("vben.core.module.bpm", ".") + "Docket"; - SpringUtils.registerBean(bpm, bpmDocket); - - } - - private ApiInfo appInfo() { - return new ApiInfoBuilder() - .title("应用中心") - .description("这里是自定义的业务模块,在测试API请求之前,请先通过auth/login接口登录") - .version("0.1") - .build(); - } - - private ApiInfo extInfo() { - return new ApiInfoBuilder() - .title("扩展模块") - .description("主要会有流程管理,数据库可视化,项目管理等") - .version("0.1") - .build(); - } - - private ApiInfo sysInfo() { - return new ApiInfoBuilder() - .title("系统管理") - .description("系统管理主要包括组织架构,权限管理,一般只有系统管理员有此分组的权限") - .version("0.1") - .build(); - } - - private ApiInfo monInfo() { - return new ApiInfoBuilder() - .title("监控中心") - .description("监控中心主要包括系统日志,定时任务,服务监控等,一般只有系统管理员有此分组的权限") - .version("0.1") - .build(); - } - - private ApiInfo assInfo() { - return new ApiInfoBuilder() - .title("辅助工具") - .description("辅助模块主要有数据字典,代码生成器等,为业务模块服务") - .version("0.1") - .build(); - } - - private ApiInfo genInfo() { - return new ApiInfoBuilder() - .title("通用模块") - .description("通用模块一般只要登录了,不管什么角色,都应有的通用公共权限") - .version("0.1") - .build(); - } - - private ApiInfo bpmInfo() { - return new ApiInfoBuilder() - .title("流程引擎") - .description("流程引擎是针对流程的专门模块") - .version("0.1") - .build(); - } - -} diff --git a/vben-core/src/main/java/vben/core/framework/jpa/CommentIntegrator.java b/vben-core/src/main/java/vben/core/framework/jpa/CommentIntegrator.java deleted file mode 100644 index e8f8143..0000000 --- a/vben-core/src/main/java/vben/core/framework/jpa/CommentIntegrator.java +++ /dev/null @@ -1,140 +0,0 @@ -package vben.core.framework.jpa; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import org.hibernate.boot.Metadata; -import org.hibernate.engine.spi.SessionFactoryImplementor; -import org.hibernate.integrator.spi.Integrator; -import org.hibernate.mapping.PersistentClass; -import org.hibernate.mapping.Property; -import org.hibernate.mapping.Selectable; -import org.hibernate.service.spi.SessionFactoryServiceRegistry; -import org.springframework.stereotype.Component; - -import java.lang.reflect.Field; -import java.util.Iterator; - -/** - * Integrator used to process comment annotation. - * - * @author Elyar Adil - * @since 1.0 - */ -@Component -public class CommentIntegrator implements Integrator { - public static final CommentIntegrator INSTANCE = new CommentIntegrator(); - - public CommentIntegrator() { - super(); - } - - /** - * Perform comment integration. - * - * @param metadata The "compiled" representation of the mapping information - * @param sessionFactory The session factory being created - * @param serviceRegistry The session factory's service registry - */ - @Override - public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) { - processComment(metadata); - } - - /** - * Not used. - * - * @param sessionFactoryImplementor The session factory being closed. - * @param sessionFactoryServiceRegistry That session factory's service registry - */ - @Override - public void disintegrate(SessionFactoryImplementor sessionFactoryImplementor, SessionFactoryServiceRegistry sessionFactoryServiceRegistry) { - } - - /** - * Process comment annotation. - * - * @param metadata process annotation of this {@code Metadata}. - */ - private void processComment(Metadata metadata) { - for (PersistentClass persistentClass : metadata.getEntityBindings()) { - // Process the Comment annotation is applied to Class - Class clz = persistentClass.getMappedClass(); - if (clz.isAnnotationPresent(ApiModel.class)) { - ApiModel comment = clz.getAnnotation(ApiModel.class); - persistentClass.getTable().setComment(comment.value()); - } - - // Process Comment annotations of identifier. - Property identifierProperty = persistentClass.getIdentifierProperty(); - if (identifierProperty != null) { -// if ("供应商信息".equals(persistentClass.getTable().getComment())) { -// System.out.println("1:" + identifierProperty.getName()); -// } - fieldComment(persistentClass, identifierProperty.getName()); - } else { - org.hibernate.mapping.Component component = persistentClass.getIdentifierMapper(); - if (component != null) { - //noinspection unchecked - Iterator iterator = component.getPropertyIterator(); - while (iterator.hasNext()) { -// if ("供应商信息".equals(persistentClass.getTable().getComment())) { -// System.out.println("2:" + iterator); -// } - fieldComment(persistentClass, iterator.next().getName()); - } - } - } - // Process fields with Comment annotation. - //noinspection unchecked - Iterator iterator = persistentClass.getPropertyIterator(); - while (iterator.hasNext()) { -// String nextField = iterator.next().getName(); -// if ("供应商信息".equals(persistentClass.getTable().getComment())) { -// System.out.println("3:" + nextField); -// } -// fieldComment(persistentClass, nextField); - fieldComment(persistentClass, iterator.next().getName()); - } - } - } - - /** - * Process @{code comment} annotation of field. - * - * @param persistentClass Hibernate {@code PersistentClass} - * @param columnName name of field - */ - private void fieldComment(PersistentClass persistentClass, String columnName) { -// if ("供应商信息".equals(persistentClass.getTable().getComment())) { -// System.out.println("columnName=" + columnName); -// } - try { - Field field = null; - try { - field = persistentClass.getMappedClass().getDeclaredField(columnName); - } catch (Exception e) { - - } - if (field == null) { - field = persistentClass.getMappedClass().getSuperclass().getDeclaredField(columnName); - } - if (field.isAnnotationPresent(ApiModelProperty.class)) { - String comment = field.getAnnotation(ApiModelProperty.class).value(); -// if ("供应商信息".equals(persistentClass.getTable().getComment())) { -// System.out.println("comment=" + comment); -// } - Iterator iter = persistentClass.getProperty(columnName).getValue().getColumnIterator(); - String sqlColumnName = iter.hasNext() ? iter.next().getText() : ""; - Iterator columnIterator = persistentClass.getTable().getColumnIterator(); - while (columnIterator.hasNext()) { - org.hibernate.mapping.Column column = columnIterator.next(); - if (sqlColumnName.equalsIgnoreCase(column.getName())) { - column.setComment(comment); - break; - } - } - } - } catch (NoSuchFieldException | SecurityException ignored) { - } - } -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/framework/jpa/PrimaryDataSourceConfig.java b/vben-core/src/main/java/vben/core/framework/jpa/PrimaryDataSourceConfig.java deleted file mode 100644 index 3023d54..0000000 --- a/vben-core/src/main/java/vben/core/framework/jpa/PrimaryDataSourceConfig.java +++ /dev/null @@ -1,28 +0,0 @@ -package vben.core.framework.jpa; - -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.jdbc.core.JdbcTemplate; - -import javax.sql.DataSource; - -@Configuration -public class PrimaryDataSourceConfig { - - @Primary - @Bean(name = "dataSource") - @ConfigurationProperties("spring.datasource.primary") - public DataSource primaryDataSource() { - return DruidDataSourceBuilder.create().build(); - } - - @Bean(name = "jdbcTemplate") - public JdbcTemplate primaryJdbcTemplate(@Qualifier("dataSource") DataSource dataSource) { - return new JdbcTemplate(dataSource); - } -} - diff --git a/vben-core/src/main/java/vben/core/framework/jpa/PrimaryJpaConfig.java b/vben-core/src/main/java/vben/core/framework/jpa/PrimaryJpaConfig.java deleted file mode 100644 index a3c605d..0000000 --- a/vben-core/src/main/java/vben/core/framework/jpa/PrimaryJpaConfig.java +++ /dev/null @@ -1,69 +0,0 @@ -package vben.core.framework.jpa; - -import org.hibernate.jpa.boot.spi.IntegratorProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.orm.jpa.JpaTransactionManager; -import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; -import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -import javax.persistence.EntityManager; -import javax.sql.DataSource; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -@Configuration -@EnableTransactionManagement -public class PrimaryJpaConfig { - - @Autowired - private DataSource dataSource; - - @Value("${spring.datasource.primary.jpa.entityScan}") - private String ENTITY_SCAN; - - @Value("${spring.datasource.primary.jpa.hbm2ddl.auto}") - private String DDL_AUTO; - - @Primary - @Bean(name = "entityManager") - public EntityManager entityManager(EntityManagerFactoryBuilder builder) { - return entityManagerFactory(builder).getObject().createEntityManager(); - } - - private Map getVendorProperties() { - Map map = new HashMap<>(); -// map.put("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect"); -// map.put("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect"); - map.put("hibernate.hbm2ddl.auto", DDL_AUTO); - map.put("hibernate.physical_naming_strategy", "vben.core.framework.jpa.VbenNamingStrategy"); - map.put("hibernate.use_sql_comments", true); - map.put("hibernate.integrator_provider", - (IntegratorProvider) () -> Collections.singletonList(CommentIntegrator.INSTANCE)); - return map; - } - - @Primary - @Bean(name = "entityManagerFactory") - public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder) { - return builder - .dataSource(dataSource) - .packages("vben",ENTITY_SCAN) - .properties(getVendorProperties()) - .persistenceUnit("persistenceUnit") - .build(); - } - - @Primary - @Bean(name = "transactionManager") - public PlatformTransactionManager transactionManager(EntityManagerFactoryBuilder builder) { - return new JpaTransactionManager(entityManagerFactory(builder).getObject()); - } - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/framework/jpa/VbenNamingStrategy.java b/vben-core/src/main/java/vben/core/framework/jpa/VbenNamingStrategy.java deleted file mode 100644 index eac8e5c..0000000 --- a/vben-core/src/main/java/vben/core/framework/jpa/VbenNamingStrategy.java +++ /dev/null @@ -1,63 +0,0 @@ -package vben.core.framework.jpa; - -import org.hibernate.boot.model.naming.Identifier; -import org.hibernate.boot.model.naming.PhysicalNamingStrategy; -import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; -import org.springframework.stereotype.Component; - -@Component -public class VbenNamingStrategy implements PhysicalNamingStrategy { - - - protected String addUnderscores(String name) { - if (name == null) { - return null; - } - StringBuffer stringBuffer = new StringBuffer(name.replace('.', '_')); - for (int i = 1; i < stringBuffer.length() - 1; i++) { - if (Character.isLowerCase(stringBuffer.charAt(i-1)) && Character.isUpperCase(stringBuffer.charAt(i)) && Character.isLowerCase(stringBuffer.charAt(i+1))) { - stringBuffer.insert(i++, '_'); - } - } - return stringBuffer.toString().toLowerCase(); - } - - @Override - public Identifier toPhysicalCatalogName(Identifier identifier, JdbcEnvironment jdbcEnvironment) { - return identifier; - } - - @Override - public Identifier toPhysicalSchemaName(Identifier identifier, JdbcEnvironment jdbcEnvironment) { - return identifier; - } - - @Override - public Identifier toPhysicalTableName(Identifier identifier, JdbcEnvironment jdbcEnvironment) { - String tid=addUnderscores(identifier.getText()); - if(tid.contains("2")&&tid.indexOf("2")!=tid.length()-1){ - tid=tid.replaceFirst("2", "2_"); - }else if(tid.contains("3")&&tid.indexOf("3")!=tid.length()-1){ - tid=tid.replaceFirst("3", "3_"); - }else if(tid.contains("4")&&tid.indexOf("4")!=tid.length()-1){ - tid=tid.replaceFirst("4", "4_"); - }else if(tid.contains("5")&&tid.indexOf("5")!=tid.length()-1){ - tid=tid.replaceFirst("5", "5_"); - } - return Identifier.toIdentifier(tid); - } - - @Override - public Identifier toPhysicalSequenceName(Identifier identifier, JdbcEnvironment jdbcEnvironment) { - return identifier; - } - - @Override - public Identifier toPhysicalColumnName(Identifier identifier, JdbcEnvironment jdbcEnvironment) { - String fid=addUnderscores(identifier.getText()); -// return Identifier.toIdentifier(fid+"_"); - return Identifier.toIdentifier(fid); - } - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/framework/ldap/LdapConfig.java b/vben-core/src/main/java/vben/core/framework/ldap/LdapConfig.java deleted file mode 100644 index eef3bc5..0000000 --- a/vben-core/src/main/java/vben/core/framework/ldap/LdapConfig.java +++ /dev/null @@ -1,53 +0,0 @@ -//package vben.core.framework.ldap; -// -// -//import org.springframework.beans.factory.annotation.Value; -//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -//import org.springframework.context.annotation.Bean; -//import org.springframework.context.annotation.Configuration; -//import org.springframework.ldap.core.LdapTemplate; -//import org.springframework.ldap.core.support.LdapContextSource; -// -//import java.util.HashMap; -//import java.util.Map; -// -//@Configuration -////@ConditionalOnProperty(prefix="ldap",name = "enable", havingValue = "true") -//public class LdapConfig { -// -// @Value("${ldap.url}") -// private String ldapUrl; -// -// @Value("${ldap.base}") -// private String ldapBase; -// -// @Value("${ldap.userDn}") -// private String ldapUserDn; -// -// @Value("${ldap.userPwd}") -// private String ldapUserPwd; -// -// @Value("${ldap.referral}") -// private String ldapReferral; -// -// @Bean -// public LdapTemplate ldapTemplate() { -// return new LdapTemplate(contextSourceTarget()); -// } -// -// @Bean -// public LdapContextSource contextSourceTarget() { -// LdapContextSource ldapContextSource = new LdapContextSource(); -// ldapContextSource.setUrl(ldapUrl); -// ldapContextSource.setBase(ldapBase); -// ldapContextSource.setUserDn(ldapUserDn); -// ldapContextSource.setPassword(ldapUserPwd); -// ldapContextSource.setReferral(ldapReferral); -// Map config = new HashMap(); -// config.put("java.naming.ldap.attributes.binary", "objectGUID"); -//// config.put("com.sun.jndi.ldap.read.timeout","3000"); -// ldapContextSource.setPooled(false); -// ldapContextSource.setBaseEnvironmentProperties(config); -// return ldapContextSource; -// } -//} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/framework/ldap/LdapHandler.java b/vben-core/src/main/java/vben/core/framework/ldap/LdapHandler.java deleted file mode 100644 index 4316619..0000000 --- a/vben-core/src/main/java/vben/core/framework/ldap/LdapHandler.java +++ /dev/null @@ -1,42 +0,0 @@ -package vben.core.framework.ldap; - -//import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -//import org.springframework.ldap.core.LdapTemplate; -//import org.springframework.ldap.support.LdapUtils; -import org.springframework.stereotype.Component; - -@Component -public class LdapHandler { - -// @Autowired -// private LdapTemplate ldapTemplate; - - @Value("${ldap.domainName}") - private String ldapDomainName; - - @Value("${management.health.ldap.enabled}") - private Boolean ldapEnable; - - @Value("${ldap.base}") - private String ldapBaseDn; - - public boolean authenticate(String userName, String password) { -// if(!ldapEnable){ -// return false; -// } -//// String userDomainName = getDnForUser(userName); -// String userDomainName = String.format(ldapDomainName, userName); -// DirContext ctx = null; -// try { -// ctx = ldapTemplate.getContextSource().getContext(userDomainName, password); -// return true; -// } catch (Exception e) { -//// e.printStackTrace(); -// } finally { -// LdapUtils.closeContext(ctx); -// } - return false; - } - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/framework/security/SecurityConfig.java b/vben-core/src/main/java/vben/core/framework/security/SecurityConfig.java deleted file mode 100644 index 0f17d04..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/SecurityConfig.java +++ /dev/null @@ -1,125 +0,0 @@ -package vben.core.framework.security; - -import vben.core.framework.cache.RedisHandler; -import vben.core.framework.security.authc.AuthcFailedHandler; -import vben.core.framework.security.authz.AuthzDeniedHandler; -import vben.core.framework.security.authz.JwtFilterAdapter; -import vben.core.framework.security.authz.JwtHandler; -import lombok.RequiredArgsConstructor; -import org.springframework.context.annotation.Configuration; -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.AbstractHttpConfigurer; -import org.springframework.security.config.http.SessionCreationPolicy; - -//Spring Security的配置 -@Configuration -@RequiredArgsConstructor -public class SecurityConfig extends WebSecurityConfigurerAdapter { - - @Override - protected void configure(HttpSecurity http) throws Exception { - //1.禁用JWT登录无关的相关功能 - http.headers().frameOptions().disable().and() - .formLogin(AbstractHttpConfigurer::disable) - .httpBasic(AbstractHttpConfigurer::disable) - .csrf(AbstractHttpConfigurer::disable) - .logout(AbstractHttpConfigurer::disable) - .sessionManagement(sessionManagement -> sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS)); - - //2.跨域处理 - http.cors(); -// http.cors(cors -> cors.configurationSource(corsConfigurationSource())); - - //3.启用JWT过滤器 - http.apply(securityConfigurerAdapter()); - - //4.过滤器异常与授权失败处理 - http.exceptionHandling() - .authenticationEntryPoint(authcFailedHandler) - .accessDeniedHandler(authzDeniedHandler); - - //5.授权配置 - http.authorizeRequests(authorizeRequests -> authorizeRequests - .antMatchers("/","/auth/**","/wsv/**","/ass/oss/main/show","/druid/**","/login","/autologin","/gen/**").permitAll() - .antMatchers("/doc.html","/swagger-ui.html","/webjars/**","/swagger-resources/**","/v2/**","/v3/**").permitAll() - .antMatchers("/index.html","/favicon.ico", "/assets/**", "/resource/**","/_app.config.js").permitAll() -// .antMatchers("/index.html","/favicon.ico", "/assets/**", "/resource/**","/_app.config.js").permitAll()//放行静态资源 -// .antMatchers("/sys/**").hasRole("ADMIN")//sys开头的需要管理员权限 -// .antMatchers(HttpMethod.OPTIONS, "/**").permitAll()//放行OPTIONS请求 - .antMatchers("/**").access("@authzHandler.hasPermission(request, authentication)")//其他请求统一认证 -// .antMatchers("/getUserInfo").hasRole("xxx") - .anyRequest().authenticated()); - - - - } - - //<<-------------------------------2.跨域处理------------------------------- -// @Bean -// CorsConfigurationSource corsConfigurationSource() { -// CorsConfiguration configuration = new CorsConfiguration(); -// //可限制域名 -//// if (environment.acceptsProfiles(Profiles.of("dev"))) { -//// configuration.setAllowedOrigins(Collections.singletonList("http://localhost:3100")); -//// } else { -//// configuration.setAllowedOrigins(Collections.singletonList("http://zsvg.com")); -//// } -//// configuration.setAllowedOrigins(Collections.singletonList("http://localhost:3100")); -// configuration.setAllowCredentials(true); -// configuration.setAllowedOrigins(Collections.singletonList("*")); -// configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE", "OPTIONS")); -// configuration.setAllowedHeaders(Collections.singletonList("*")); -// configuration.addExposedHeader("X-Authenticate"); -// configuration.setMaxAge(3600L); -//// configuration.addExposedHeader("Authorization"); -// UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); -// source.registerCorsConfiguration("/**", configuration); -// return source; -// } - //>> - - //<<-------------------------------3.启用JWT过滤器------------------------------- - private final JwtHandler jwtHandler; - - private final RedisHandler redisHandler; - - //JwtFilter 如果通过@Component 注解注入,则web.ignoring().antMatchers 不起作用,还是会被拦截过滤 - private JwtFilterAdapter securityConfigurerAdapter() { - return new JwtFilterAdapter(jwtHandler, redisHandler); - } - //>> - - //<<-------------------------------4.过滤器异常与授权失败处理------------------------------- - private final AuthzDeniedHandler authzDeniedHandler;//解决认证过的用户访问无权限资源时的异常 - - private final AuthcFailedHandler authcFailedHandler;//解决匿名用户访问无权限资源时的异常 - //>> - - //<<-------------------------------X.其他配置------------------------------- - //配置security忽略的请求与资源 升级springboot 后不兼容,放上面 -// @Override -// public void configure(WebSecurity web) { -// web.ignoring().antMatchers("/","/auth/**","/wsv/**","/ass/oss/main/show","/druid/**","/login","/autologin"); -// //测试环境swagger放行 -// web.ignoring().antMatchers("/doc.html","/swagger-ui.html","/webjars/**","/swagger-resources/**","/v2/**","/v3/**"); -// //前端放在一起时放行前端UI -// web.ignoring().antMatchers("/jquery.js","/sso.html","/index.html","/favicon.ico", "/assets/**", "/resource/**","/_app.config.js"); -// } - - - -// @Override -// protected void configure(AuthenticationManagerBuilder auth) throws Exception { -// auth.authenticationProvider(ssLoginProvider); -//// auth.userDetailsService(ssUserDetailsService).passwordEncoder( passwordEncoder()); -// } - -// @Bean -// public PasswordEncoder passwordEncoder() { -// return new BCryptPasswordEncoder(); -// } - //authn是认证相关的类,authz是授权相关的类 - - -} diff --git a/vben-core/src/main/java/vben/core/framework/security/authc/AuthcApi.java b/vben-core/src/main/java/vben/core/framework/security/authc/AuthcApi.java deleted file mode 100644 index 3d6cc19..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/authc/AuthcApi.java +++ /dev/null @@ -1,179 +0,0 @@ -package vben.core.framework.security.authc; - -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.StrUtil; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.framework.config.AppConfig; -import vben.core.framework.cache.RedisHandler; -import vben.core.framework.security.authz.JwtHandler; -import vben.core.framework.security.pojo.*; -import vben.core.framework.sms.enums.SmsTypeEnum; -import vben.core.framework.sms.service.SmsService; -import vben.core.framework.sms.vo.SmsVo; -import vben.core.module.mon.log.login.MonLogLoginService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.Authentication; -import vben.core.module.sys.org.user.SysOrgUserService; - -import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; -import javax.websocket.server.PathParam; -import java.util.HashMap; -import java.util.Map; - -//认证API:主要包含登录登出、token刷新、菜单获取、用户信息获取 -@RestController -public class AuthcApi { - - //登录 - @PostMapping("/login") - public R login(@Valid @RequestBody LoginVo loginVo, HttpServletRequest request) { - //1.登录验证 - UserDo userDo = authcService.getDbUserByUsername(loginVo.getUsername()); - boolean passFlag = authcService.check(userDo, loginVo); - if (!passFlag) { - return R.build(402, "账号不存在或密码错误"); - } - - //2.创建accessToken与refreshToken -// String atokenUUID = IdUtil.simpleUUID(); -// String atoken = jwtHandler.createTokenByUuid(atokenUUID); -// String rtoken = jwtHandler.createTokenByUuid(loginVo.getUsername());//需要加密下 -// -// Map backMap = new HashMap<>(); -// backMap.put("token", atoken); -// backMap.put("rtoken", rtoken); -// -// //3.初始化用户信息,获取门户,菜单与按钮 -// //Zuser zuser = new Zuser(userDo.getId(), userDo.getName(), loginVo.getUsername(),userDo.getCorid(),userDo.getType()); -// Zuser zuser = new Zuser(userDo); -// authcService.initZuser(zuser, userDo, backMap); //这个方法非常重要 -// -// redisHandler.set("online-key:" + atokenUUID, zuser, appConfig.getJwt().getAtime());//默认8小时过期 -// -// //4.异步方式记录登录日志 -// monLogLoginService.save("online-key:" + atokenUUID, zuser, request); - return R.ok(getBackMap(userDo,request)); - } - - //注册 - @PostMapping(value = "auth/register") - public R register(@Validated @RequestBody RegisterVo registerVo) { - // 验证 - smsService.verifySms(registerVo.getPhone(), registerVo.getCode(), SmsTypeEnum.REGISTERED); - // 注册 - userService.register(registerVo); - return R.ok("注册成功,请登录",null); - } - - @PostMapping("/auth/sendCode") - public R sendCode(@Validated @RequestBody SmsVo smsVo) { - return R.ok(smsService.sendSms(smsVo)).put("msg", "验证码已发送"); - } - - - @PostMapping("/auth/loginByCode") - public R loginByCode(@Validated @RequestBody LoginByCodeVo codeVo,HttpServletRequest request) { - smsService.verifySms(codeVo.getPhone(), codeVo.getCode(), SmsTypeEnum.LOGIN); - UserDo userDo = authcService.getDbUserByUsername(codeVo.getPhone()); - - return R.ok(getBackMap(userDo,request)); - } - - private Map getBackMap(UserDo userDo,HttpServletRequest request){ - //2.创建accessToken与refreshToken - String atokenUUID = IdUtil.simpleUUID(); - String atoken = jwtHandler.createTokenByUuid(atokenUUID); - String rtoken = jwtHandler.createTokenByUuid(userDo.getUsnam());//需要加密下 - - Map backMap = new HashMap<>(); - backMap.put("token", atoken); - backMap.put("rtoken", rtoken); - - //3.初始化用户信息,获取门户,菜单与按钮 - //Zuser zuser = new Zuser(userDo.getId(), userDo.getName(), loginVo.getUsername(),userDo.getCorid(),userDo.getType()); - Zuser zuser = new Zuser(userDo); - authcService.initZuser(zuser, userDo, backMap); //这个方法非常重要 - - redisHandler.set("online-key:" + atokenUUID, zuser, appConfig.getJwt().getAtime());//默认8小时过期 - - //4.异步方式记录登录日志 - monLogLoginService.save("online-key:" + atokenUUID, zuser, request); - return backMap; - } - - - - //登出 - @GetMapping("/logout") - public R logout(Authentication auth) { - return R.ok(); - } - - - - //token刷新 - @GetMapping("/rtoken") - public R rtoken(@PathParam("token2") String token2) { - System.out.println("token2=" + token2); - String username = jwtHandler.getClaims(token2).getId(); - System.out.println("username=" + username); - String uuid = IdUtil.simpleUUID(); - String token = jwtHandler.createTokenByUuid(uuid); - Zuser zuser = authcService.getUser(username); - redisHandler.set(uuid, zuser, 10000 / 1000); - Map backMap = new HashMap<>(); - backMap.put("token", token); - return R.ok(backMap); - } - - //获取用户信息 - @GetMapping("/getUserInfo") - public R getUserInfo(Authentication auth, HttpServletRequest request) { - Zuser zuser = (Zuser) auth.getPrincipal(); - return R.ok(zuser); - } - - //获取菜单树 - @GetMapping("/getMenuList") - public R getMenuList(String porid, Authentication auth, HttpServletRequest request) { - if (auth == null) { - return R.build(401, "登录过期"); - } - Map backMap = new HashMap<>(); - Zuser zuser = (Zuser) auth.getPrincipal(); - - if (StrUtil.isBlank(porid)) { - UserDo userDo= authcService.getDbUserById(zuser.getId()); - authcService.initZuser(zuser, userDo, backMap); - } else { - authcService.switchPortal(zuser, backMap, porid); - } - return R.ok(backMap); - } - - @Autowired - private AuthcService authcService; - - @Autowired - private AppConfig appConfig; - - @Autowired - private RedisHandler redisHandler; - - @Autowired - private JwtHandler jwtHandler; - - @Autowired - private MonLogLoginService monLogLoginService; - - @Autowired - private SysOrgUserService userService; - - @Autowired - private SmsService smsService; - - -} diff --git a/vben-core/src/main/java/vben/core/framework/security/authc/AuthcFailedHandler.java b/vben-core/src/main/java/vben/core/framework/security/authc/AuthcFailedHandler.java deleted file mode 100644 index 1e778f6..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/authc/AuthcFailedHandler.java +++ /dev/null @@ -1,41 +0,0 @@ -package vben.core.framework.security.authc; - -import com.alibaba.fastjson.JSON; -import org.apache.http.HttpStatus; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.AuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; - -//认证失败后的处理 -@Component -public class AuthcFailedHandler implements AuthenticationEntryPoint { - - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) throws IOException { - if (!response.isCommitted()) { - response.setCharacterEncoding(StandardCharsets.UTF_8.name()); - response.setStatus(200); - response.setHeader("Content-Type", "application/json;charset=UTF-8"); - try (ServletOutputStream ous = response.getOutputStream()) { - Map map = new HashMap<>(16); - map.put("code", HttpStatus.SC_UNAUTHORIZED); -// map.put("code", HttpStatus.SC_OK); - map.put("success", false); - System.out.println(e.getMessage()); -// response.sendError(HttpServletResponse.SC_UNAUTHORIZED, authException==null?"Unauthorized":authException.getMessage()); - - map.put("message", Optional.ofNullable(request.getAttribute("errorMessage")).orElse("认证失败").toString()); - ous.write(JSON.toJSONString(map).getBytes(StandardCharsets.UTF_8)); - } - } - } -} diff --git a/vben-core/src/main/java/vben/core/framework/security/authc/AuthcOrgHandler.java b/vben-core/src/main/java/vben/core/framework/security/authc/AuthcOrgHandler.java deleted file mode 100644 index 903f0a5..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/authc/AuthcOrgHandler.java +++ /dev/null @@ -1,74 +0,0 @@ -package vben.core.framework.security.authc; - -import cn.hutool.core.util.StrUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.framework.security.pojo.UserDo; - -import java.util.List; - -//服务于认证Service,提供组织架构相关逻辑处理 -@Component -public class AuthcOrgHandler { - - //获取组织架构可用集 - public String findConds(UserDo duser) { - StringBuilder conds = new StringBuilder(); - //1. conds拼接父级id - if (StrUtil.isNotBlank(duser.getTier())) { - String[] pidArr = duser.getTier().split("x"); - for (int i = pidArr.length - 1; i >= 0; i--) { - if (!"".equals(pidArr[i])) { - conds.append("'").append(pidArr[i]).append("',"); - } - } - } else { - conds = new StringBuilder("'" + duser.getId() + "',"); - } - //2. conds拼接岗位id - List postList = findPostList(duser.getId()); - for (String str : postList) { - conds.append("'").append(str).append("',"); - } - conds = new StringBuilder(conds.substring(0, conds.length() - 1));//优化 - //3. conds拼接群组id - List groupList = findGroupList(conds.toString()); - for (String str : groupList) { - conds.append(",'").append(str).append("'"); - } - return conds.toString(); - } - - //获取组织架构岗位id集合 - private List findPostList(String uid) { - String sql = "select pid as id from sys_org_post_org where oid=?"; - return jdbcDao.findStringList(sql, uid); - } - - //获取组织架构群组id集合 - private List findGroupList(String conds) { - String sql = "select DISTINCT gid as id from sys_org_group_org where oid in (" + conds + ")"; - return jdbcDao.findStringList(sql); - } - - public String findCoopConds(UserDo duser) { - StringBuilder conds = new StringBuilder(); - //1. conds拼接父级id - if (StrUtil.isNotBlank(duser.getTier())) { - String[] pidArr = duser.getTier().split("x"); - for (int i = pidArr.length - 1; i >= 0; i--) { - if (!"".equals(pidArr[i])) { - conds.append("'").append(pidArr[i]).append("',"); - } - } - } else { - conds = new StringBuilder("'" + duser.getId() + "',"); - } - conds = new StringBuilder(conds.substring(0, conds.length() - 1));//优化 - return conds.toString(); - } - - @Autowired - private JdbcDao jdbcDao; -} diff --git a/vben-core/src/main/java/vben/core/framework/security/authc/AuthcPortalHandler.java b/vben-core/src/main/java/vben/core/framework/security/authc/AuthcPortalHandler.java deleted file mode 100644 index eb358c4..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/authc/AuthcPortalHandler.java +++ /dev/null @@ -1,290 +0,0 @@ -package vben.core.framework.security.authc; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Component; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.framework.security.pojo.Zmenu; -import vben.core.framework.security.pojo.Zmeta; -import vben.core.framework.security.pojo.Zportal; - -import java.util.ArrayList; -import java.util.List; - -//服务于认证Service,提供门户及菜单相关逻辑处理 -@Component -public class AuthcPortalHandler { - - //获取门户集合 - public List findPortalList(String conds) { - String sql = "select distinct m.name,m.id,m.ornum from sys_portal_main m inner join sys_portal_role r on r.porid=m.id" + - " inner join sys_portal_role_org ro on ro.rid=r.id where m.avtag=1 and ro.oid in (" + conds + ") order by m.ornum"; - return jdbcDao.getTp().query(sql, new BeanPropertyRowMapper<>(Zportal.class)); - } - - //获取菜单集合 - public List findMenuList(String conds, List portalList, String porid) { - String portals = ""; - for (Zportal zportal : portalList) { - portals += "'" + zportal.getId() + "',"; - } - portals = portals.substring(0, portals.length() - 1); - - //1.获取目录集合 - String direSql = "select m.porid,m.shtag,m.name,m.code,m.path,m.icon,m.comp,m.ornum,m.id,m.pid,m.perm from sys_portal_menu m where m.type = 'D' and m.porid in (" + portals + ") and m.avtag=1 order by m.ornum"; - List direList = jdbcDao.getTp().query(direSql, (rs, rowNum) -> { - Zmenu zmenu = new Zmenu(); - zmenu.setType("D"); - zmenu.setId(rs.getString("id")); - zmenu.setPorid(rs.getString("porid")); - zmenu.setPid(rs.getString("pid")); - zmenu.setPerm(rs.getString("perm")); - zmenu.setName(rs.getString("code")); - zmenu.setPath(rs.getString("path")); - zmenu.setComponent(rs.getString("comp")); - Zmeta zmeta = new Zmeta(); - zmeta.setTitle(rs.getString("name")); - zmeta.setOrderNo(rs.getInt("ornum")); - zmeta.setIsHide(!rs.getBoolean("shtag")); - if (!porid.equals(rs.getString("porid"))) { - zmeta.setIsHide(true); - } - zmeta.setIcon(rs.getString("icon")); - zmenu.setMeta(zmeta); - return zmenu; - }); - - //2.获取菜单集合 - String sql = "select distinct m.porid,m.shtag,m.type,m.name,m.code,m.path,m.icon,m.comp,m.ornum,m.id,m.pid,m.perm,m.extag,m.iftag,m.catag from sys_portal_menu m inner join sys_portal_role_menu rm on rm.mid=m.id inner join sys_portal_role_org ru on ru.rid=rm.rid where m.type = 'M' and m.porid in (" + portals + ") and m.avtag=1 and ru.oid in (" + conds + ") order by m.ornum"; - List list = jdbcDao.getTp().query(sql, (rs, rowNum) -> { - Zmenu zmenu = new Zmenu(); - zmenu.setId(rs.getString("id")); - zmenu.setType("M"); - zmenu.setPorid(rs.getString("porid")); - zmenu.setPid(rs.getString("pid")); - zmenu.setPerm(rs.getString("perm")); - zmenu.setName(rs.getString("code")); - zmenu.setPath(rs.getString("path")); - zmenu.setComponent(rs.getString("comp")); - Zmeta zmeta = new Zmeta(); - zmeta.setTitle(rs.getString("name")); - zmeta.setIsHide(!rs.getBoolean("shtag")); - if (!porid.equals(rs.getString("porid"))) { - zmeta.setIsHide(true); - } - zmeta.setIsKeepAlive(rs.getBoolean("catag")); - if(rs.getBoolean("extag")){ - zmeta.setIsLink(rs.getString("comp")); - zmenu.setComponent("layout/routerView/link"); - } - if(rs.getBoolean("iftag")){ - zmeta.setIsLink(rs.getString("comp")); - zmeta.setIsIframe(true); - zmenu.setComponent("layout/routerView/iframes"); - } - zmeta.setOrderNo(rs.getInt("ornum")); - zmeta.setIcon(rs.getString("icon")); - zmenu.setMeta(zmeta); - return zmenu; - }); - - //3.将菜单装载到目录 - List shouldAddlist1 = new ArrayList<>(); - for (Zmenu zdire : direList) { - for (Zmenu zmenu : list) { - if (zdire.getId().equals(zmenu.getPid())) { - shouldAddlist1.add(zdire); - break; - } - } - } - - List shouldAddlist2 = new ArrayList<>(); - for (Zmenu zdire : direList) { - for (Zmenu zshould : shouldAddlist1) { - if (zshould.getPid() != null) { - if (zdire.getId().equals(zshould.getPid())) { - shouldAddlist2.add(zdire); - break; - } - } - } - } - - List shouldAddlist3 = new ArrayList<>(); - for (Zmenu zdire : direList) { - for (Zmenu zshould : shouldAddlist2) { - if (zshould.getPid() != null) { - if (zdire.getId().equals(zshould.getPid())) { - shouldAddlist3.add(zdire); - break; - } - } - } - } - list.addAll(shouldAddlist1); - list.addAll(shouldAddlist2); - list.addAll(shouldAddlist3); - if (list.size() == 0) { - return findNoPowerMenuList(); - } - if (portalList.size() == 1) { - return list; - } - - //4.如果存在多个门户,则要进一步处理。 - //去除其他门户相同name或path的菜单 - List backList = new ArrayList<>(); - for (Zmenu zmenu : list) { - if (porid.equals(zmenu.getPorid())) { - backList.add(zmenu); - } - } - for (Zmenu zmenu : list) { - if (!porid.equals(zmenu.getPorid())) { - boolean flag = false; - for (Zmenu backMenu : backList) { - if (backMenu.getName().equals(zmenu.getName()) || backMenu.getPath().equals(zmenu.getPath())) { - flag = true; - break; - } - } - if (!flag) { - backList.add(zmenu); - } - } - } - return backList; - } - - //获取所有门户列表,管理员用 - public List findAllPortalList() { - String sql = "select id,name from sys_portal_main where avtag=1 order by ornum"; - return jdbcDao.getTp().query(sql, new BeanPropertyRowMapper<>(Zportal.class)); - } - - //获取管理员门户的菜单,管理员用 - public List findSysMenuList(String porid) { - String sql = "select m.porid,m.shtag,m.type,m.name,m.code,m.path,m.icon,m.comp,m.ornum,m.id,m.pid,m.perm,m.extag,m.iftag,m.catag from sys_portal_menu m where m.avtag=1 order by m.ornum"; - List list = jdbcDao.getTp().query(sql, (rs, rowNum) -> { - Zmenu zmenu = new Zmenu(); - zmenu.setId(rs.getString("id")); - zmenu.setPorid(rs.getString("porid")); - zmenu.setPid(rs.getString("pid")); - zmenu.setPerm(rs.getString("perm")); - zmenu.setType(rs.getString("type")); - zmenu.setName(rs.getString("code")); - zmenu.setPath(rs.getString("path")); - zmenu.setComponent(rs.getString("comp")); - Zmeta zmeta = new Zmeta(); - zmeta.setIsHide(!rs.getBoolean("shtag")); - if (!porid.equals(rs.getString("porid"))) { - zmeta.setIsHide(true); - } - zmeta.setTitle(rs.getString("name")); - zmeta.setOrderNo(rs.getInt("ornum")); - zmeta.setIcon(rs.getString("icon")); - zmeta.setIsKeepAlive(rs.getBoolean("catag")); - if(rs.getBoolean("extag")){ - zmeta.setIsLink(rs.getString("comp")); - zmenu.setComponent("layout/routerView/link"); - } - if(rs.getBoolean("iftag")){ - zmeta.setIsLink(rs.getString("comp")); - zmeta.setIsIframe(true); - zmenu.setComponent("layout/routerView/iframes"); - } - zmenu.setMeta(zmeta); - return zmenu; - }); - //去除其他门户相同name或path的菜单 - List backList = new ArrayList<>(); - for (Zmenu zmenu : list) { - if (porid.equals(zmenu.getPorid())) { - backList.add(zmenu); - } - } - for (Zmenu zmenu : list) { - if (!porid.equals(zmenu.getPorid())) { - boolean flag = false; - for (Zmenu backMenu : backList) { - if (backMenu.getName().equals(zmenu.getName()) || backMenu.getPath().equals(zmenu.getPath())) { - flag = true; - break; - } - } - if (!flag) { - backList.add(zmenu); - } - } - } - return backList; - } - - //如果用户没有菜单授权,则返回一个未授权的菜单 - public List findNoPowerMenuList() { - List list = new ArrayList<>(); - Zmenu zmenu = new Zmenu(); - zmenu.setType("M"); - zmenu.setId("Home"); - zmenu.setName("Home"); - zmenu.setPath("/home"); - zmenu.setComponent("/home/noPower"); - Zmeta zmeta = new Zmeta(); - zmeta.setTitle("未授权"); - zmeta.setOrderNo(0); - zmeta.setIsHide(false); - zmeta.setIcon("ele-Lock"); - zmenu.setMeta(zmeta); - list.add(zmenu); - return list; - } - - //使用递归方法建树 - public List buildByRecursive(List nodes) - { - List list = new ArrayList<>(); - for (Zmenu node : nodes) { - if (node.getPid() == null) - { - list.add(findChildrenByTier(node, nodes)); - } - else - { - boolean flag = false; - for (Zmenu node2 : nodes) { - if (node.getPid().equals(node2.getId())) - { - flag = true; - break; - } - } - if (!flag) - { - list.add(findChildrenByTier(node, nodes)); - } - } - } - return list; - } - - //递归查找子节点 - private Zmenu findChildrenByTier(Zmenu node, List nodes) - { - for (Zmenu item : nodes) { - if (node.getId().equals(item.getPid())) - { - if (node.getChildren() == null) - { - node.setChildren(new ArrayList<>()); - } - node.getChildren().add(findChildrenByTier(item, nodes)); - } - } - return node; - } - - @Autowired - private JdbcDao jdbcDao; - -} diff --git a/vben-core/src/main/java/vben/core/framework/security/authc/AuthcService.java b/vben-core/src/main/java/vben/core/framework/security/authc/AuthcService.java deleted file mode 100644 index d0e401e..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/authc/AuthcService.java +++ /dev/null @@ -1,288 +0,0 @@ -package vben.core.framework.security.authc; - -import com.alibaba.fastjson.JSON; -import org.springframework.dao.DataAccessException; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.utils.lang.SecureUtils; -import vben.core.framework.ldap.LdapHandler; -import vben.core.framework.security.authz.AuthzApiData; -import vben.core.framework.security.pojo.Yapi; -import vben.core.framework.security.pojo.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -//认证Service -@Service -@Transactional(rollbackFor = Exception.class) -public class AuthcService { - - public UserDo getDbUserByUsername(String username) { - UserDo userDo = null; - try { - userDo = jdbcDao.getTp().queryForObject( - "select t.id,t.name,t.usnam,t.monum,t.pacod,t.relog,t.catag,t.tier,t.type,t.depid,'org' label,d.name depna,t.avimg from sys_org_user t " + - "left join sys_org_dept d on d.id=t.depid where (t.usnam=? or t.monum=? or t.email=?) and t.avtag=1", - new Object[]{username,username,username}, new BeanPropertyRowMapper<>(UserDo.class)); - } catch (DataAccessException ignored) { - try { - userDo = jdbcDao.getTp().queryForObject( - "select t.id,t.name,t.usnam,t.monum,t.pacod,t.relog,t.catag,t.tier,t.type,t.corid depid,c.catid label,c.name depna,t.avimg from sys_coop_user t " + - "left join sys_coop_corp c on c.id=t.corid where (t.usnam=? or t.monum=? or t.email=?) and t.avtag=1", - new Object[]{username,username,username}, new BeanPropertyRowMapper<>(UserDo.class)); - } catch (DataAccessException ignored2) { - } - } - return userDo; - } - - public UserDo getDbUserById(String id) { - UserDo userDo = null; - try { - userDo = jdbcDao.getTp().queryForObject("select t.id,t.name,t.usnam,t.monum,t.pacod,t.relog,t.catag,t.tier,t.type,t.depid,'org' label,d.name depna,t.avimg from sys_org_user t " + - "left join sys_org_dept d on d.id=t.depid where t.id=? and t.avtag=1", - new Object[]{id}, new BeanPropertyRowMapper<>(UserDo.class)); - } catch (DataAccessException ignored) { - try { - userDo = jdbcDao.getTp().queryForObject("select t.id,t.name,t.usnam,t.monum,t.pacod,t.relog,t.catag,t.tier,t.type,t.corid depid,c.catid label,c.name depna,t.avimg from sys_coop_user t " + - "left join sys_coop_corp c on c.id=t.corid where t.id=? and t.avtag=1", - new Object[]{id}, new BeanPropertyRowMapper<>(UserDo.class)); - } catch (DataAccessException ignored2) { - } - } - return userDo; - } - - //校验密码是否正确 - public boolean check(UserDo userDo, LoginVo loginVo) { - - boolean passFlag = false; - if (userDo != null) { - //前台传入的登录密码做加盐MD5加密 - String encodePassword = SecureUtils.passwordEncrypt(loginVo.getPassword()); - //比较数据里的加盐密码是否相同 - if (encodePassword.equals(userDo.getPacod())) { - passFlag = true; - } else { - //如数据库校验不通过,可尝试其他方式校验,比如下面的AD域密码验证校验 - passFlag = ldapHandler.authenticate(loginVo.getUsername(), loginVo.getPassword()); - } - } - return passFlag; - } - - //初始化用户 - //查询用户组织架构可用集,门户列表,菜单树,API权限集 - //查询完后做缓存,下次查询直接通过缓存查询 - public void initZuser(Zuser zuser, UserDo userDo, Map backMap) { - //判断是否已经初始化过了,如已初始化,则可走缓存路线 - if (!userDo.getCatag()) {//数据库按步骤路线 - //1.获取用户所有的组织架构集:conds - if ("org".equals(userDo.getLabel())) { - zuser.setConds(orgHandler.findConds(userDo)); - } else { - zuser.setConds(orgHandler.findCoopConds(userDo)); - } - - //2.根据组织架构集conds查询前台菜单集:menus - List menuList; - List portalList; - if (zuser.isAdmin()) { - portalList = portalHandler.findAllPortalList(); - menuList = portalHandler.findSysMenuList(portalList.get(0).getId()); - } else { - portalList = portalHandler.findPortalList(zuser.getConds()); - if (portalList != null && portalList.size() > 0) { - menuList = portalHandler.findMenuList(zuser.getConds(), portalList, portalList.get(0).getId()); - } else { - menuList = portalHandler.findNoPowerMenuList(); - } - } - - //3.根据组织架构集conds查询前台按钮集:btns - List btnList = findBtnList(zuser);//附加功能:设置zuser的权限集 - - //4.设置前台返回数据 - menuList = portalHandler.buildByRecursive(menuList); - backMap.put("portals", portalList); - backMap.put("menus", menuList); - backMap.put("btns", btnList); - backMap.put("zuser", zuser); - - //5.更新用户,序列化保存数据,使下次这些数据可直接从缓存表读取 - if ("org".equals(userDo.getLabel())) { - updateOrgUserCache(zuser, portalList, menuList, btnList); - } - { - updateCoopUserCache(zuser, portalList, menuList, btnList); - } - //System.out.println("通过数据库"); - } else {//缓存路线,可扩展成redis方式 - Map map = null; - if ("org".equals(userDo.getLabel())) { - String sql = "select conds,menus,btns,perms,portals from sys_org_user_cache where id=?"; - map = jdbcDao.findMap(sql, zuser.getId()); - zuser.setConds((String) map.get("conds")); - } else { - String sql = "select conds,menus,btns,perms,portals from sys_coop_user_cache where id=?"; - map = jdbcDao.findMap(sql, zuser.getId()); - zuser.setConds((String) map.get("conds")); - } - - List menuList = JSON.parseArray((String) map.get("menus"), Zmenu.class); - List portalList = JSON.parseArray((String) map.get("portals"), Zportal.class); - - String[] btnArr = null; - String btns = (String) map.get("btns"); - if (btns != null) { - btnArr = btns.split(";"); - } - - String[] permStrArr = null; - String perms = (String) map.get("perms"); - if (perms != null) { - permStrArr = perms.split(";"); - } - long[] permLongArr = new long[permStrArr.length]; - for (int i = 0; i < permStrArr.length; i++) { - permLongArr[i] = Long.parseLong(permStrArr[i]); - } - zuser.setPermArr(permLongArr); - - backMap.put("menus", menuList); - backMap.put("portals", portalList); - backMap.put("btns", btnArr); - backMap.put("zuser", zuser); - //System.out.println("通过缓存"); - } - } - - //切换门户,根据门户id,设置菜单 - public void switchPortal(Zuser zuser, Map backMap, String porid) { - //1.根据组织架构集conds查询前台菜单集:menus - List menuList; - List portalList; - if (zuser.isAdmin()) { - portalList = portalHandler.findAllPortalList(); - menuList = portalHandler.findSysMenuList(porid); - } else { - portalList = portalHandler.findPortalList(zuser.getConds()); - if (portalList != null && portalList.size() > 0) { - menuList = portalHandler.findMenuList(zuser.getConds(), portalList, porid); - } else { - menuList = portalHandler.findNoPowerMenuList(); - } - } - - //2.设置前台返回数据 - menuList = portalHandler.buildByRecursive(menuList); - backMap.put("portals", portalList); - backMap.put("menus", menuList); - } - - //获取用户信息 - @Transactional(readOnly = true) - public Zuser getUser(String username) { - Map map = jdbcDao.getTp().queryForMap("select u.id,u.name from sys_org_user u where u.usnam=? and u.avtag=1", username); - Zuser user = new Zuser(); - user.setId((String) map.get("id")); - user.setName((String) map.get("name")); - return user; - } - - //获取前台按钮集合,设置用户API权限集 - private List findBtnList(Zuser zuser) { - List btnList = new ArrayList<>(); - - String sql = "select distinct m.id url,m.pos,m.code from sys_api_main m " + - "inner join sys_api_role_api rm on rm.mid=m.id " + - "inner join sys_api_role_org ru on ru.rid=rm.rid " + - "where m.avtag=1 and ru.oid in (" + zuser.getConds() + ") and code<>0"; - List apiList = jdbcDao.getTp().query(sql, new BeanPropertyRowMapper<>(Yapi.class)); - - int posSum = AuthzApiData.AUTHPOS + 1; - long[] permArr = new long[posSum]; - for (Yapi api : apiList) { - for (int i = 0; i < posSum; i++) { - if (i == api.getPos()) { - permArr[i] += api.getCode(); - } - } - btnList.add(api.getUrl()); - } - zuser.setPermArr(permArr); - return btnList; - } - - //缓存用户门户、菜单、按钮到缓存表 - private void updateOrgUserCache(Zuser zuser, List portalList, List menuList, List btnList) { - - String menus = JSON.toJSONString(menuList); - String portals = JSON.toJSONString(portalList); - StringBuilder btns = new StringBuilder(); - for (String str : btnList) { - btns.append(str).append(";"); - } - - StringBuilder perms = new StringBuilder(); - for (long perm : zuser.getPermArr()) { - perms.append(perm).append(";"); - } - - String existSql = "select count(*) from sys_org_user_cache where id=?"; - Integer integer = jdbcDao.getTp().queryForObject(existSql, new Object[]{zuser.getId()}, Integer.class); - if (integer > 0) { - String sql = "update sys_org_user_cache set conds=?,menus=?,btns=?,perms=?,portals=? where id=?"; - jdbcDao.update(sql, zuser.getConds(), menus, btns.toString(), perms.toString(), portals, zuser.getId()); - } else { - String sql = "insert into sys_org_user_cache(id,conds,menus,btns,perms,portals) VALUES(?,?,?,?,?,?)"; - jdbcDao.update(sql, zuser.getId(), zuser.getConds(), menus, btns.toString(), perms.toString(), portals); - } - String catagSql = "update sys_org_user set catag=1 where id=?"; - jdbcDao.update(catagSql, zuser.getId()); - } - - private void updateCoopUserCache(Zuser zuser, List portalList, List menuList, List btnList) { - - String menus = JSON.toJSONString(menuList); - String portals = JSON.toJSONString(portalList); - StringBuilder btns = new StringBuilder(); - for (String str : btnList) { - btns.append(str).append(";"); - } - - StringBuilder perms = new StringBuilder(); - for (long perm : zuser.getPermArr()) { - perms.append(perm).append(";"); - } - - String existSql = "select count(*) from sys_coop_user_cache where id=?"; - Integer integer = jdbcDao.getTp().queryForObject(existSql, new Object[]{zuser.getId()}, Integer.class); - if (integer > 0) { - String sql = "update sys_coop_user_cache set conds=?,menus=?,btns=?,perms=?,portals=? where id=?"; - jdbcDao.update(sql, zuser.getConds(), menus, btns.toString(), perms.toString(), portals, zuser.getId()); - } else { - String sql = "insert into sys_coop_user_cache(id,conds,menus,btns,perms,portals) VALUES(?,?,?,?,?,?)"; - jdbcDao.update(sql, zuser.getId(), zuser.getConds(), menus, btns.toString(), perms.toString(), portals); - } - String catagSql = "update sys_coop_user set catag=1 where id=?"; - jdbcDao.update(catagSql, zuser.getId()); - } - - @Autowired - private AuthcOrgHandler orgHandler; - - @Autowired - private AuthcPortalHandler portalHandler; - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private LdapHandler ldapHandler; -} diff --git a/vben-core/src/main/java/vben/core/framework/security/authz/AuthzApiData.java b/vben-core/src/main/java/vben/core/framework/security/authz/AuthzApiData.java deleted file mode 100644 index 79e1769..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/authz/AuthzApiData.java +++ /dev/null @@ -1,24 +0,0 @@ -package vben.core.framework.security.authz; - -import vben.core.framework.security.pojo.Yapi; - -import java.util.ArrayList; -import java.util.List; - -//所有需要认证API(URL)的内存快照,根据请求method分类,用于快速找到请求URL的权限码 -public class AuthzApiData { - - public static List GET1_APIS = new ArrayList<>(); - - public static List GET2_APIS = new ArrayList<>(); - - public static List POST_APIS = new ArrayList<>(); - - public static List PUT_APIS = new ArrayList<>(); - - public static List DELETE_APIS = new ArrayList<>(); - - public static List PATCH_APIS = new ArrayList<>(); - - public static int AUTHPOS = 0; -} diff --git a/vben-core/src/main/java/vben/core/framework/security/authz/AuthzDeniedHandler.java b/vben-core/src/main/java/vben/core/framework/security/authz/AuthzDeniedHandler.java deleted file mode 100644 index 1085727..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/authz/AuthzDeniedHandler.java +++ /dev/null @@ -1,37 +0,0 @@ -package vben.core.framework.security.authz; - -import com.alibaba.fastjson.JSON; -import org.apache.http.HttpStatus; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.web.access.AccessDeniedHandler; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; - -//授权拒绝时候的处理 -@Component -public class AuthzDeniedHandler implements AccessDeniedHandler { - - @Override - public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException { - response.setStatus(403); - response.setCharacterEncoding(StandardCharsets.UTF_8.name()); - response.setHeader("Content-Type", "application/json;charset=UTF-8"); - - try (ServletOutputStream ous = response.getOutputStream()) { - Map map = new HashMap<>(16); - map.put("code", HttpStatus.SC_FORBIDDEN); - map.put("success", false); - map.put("message", Optional.ofNullable(request.getAttribute("errorMessage")).orElse("授权失败").toString()); - ous.write(JSON.toJSONString(map).getBytes(StandardCharsets.UTF_8)); - } - - } -} diff --git a/vben-core/src/main/java/vben/core/framework/security/authz/AuthzFilter.java b/vben-core/src/main/java/vben/core/framework/security/authz/AuthzFilter.java deleted file mode 100644 index aa719d6..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/authz/AuthzFilter.java +++ /dev/null @@ -1,65 +0,0 @@ -package vben.core.framework.security.authz; - -import vben.core.framework.cache.RedisHandler; -import vben.core.framework.security.pojo.Zuser; -import lombok.extern.slf4j.Slf4j; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -//授权过滤器 -@Slf4j -public class AuthzFilter extends OncePerRequestFilter { - - private final JwtHandler jwtHandler; - - private final RedisHandler redisHandler; - - - public AuthzFilter(JwtHandler jwtHandler, RedisHandler redisHandler) { - this.jwtHandler = jwtHandler; - this.redisHandler = redisHandler; - } - - @Override - protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException { -// System.out.println("拦截的URL:" + request.getRequestURI()); - String token = jwtHandler.getToken(request); - if (token != null) { - String uuid = jwtHandler.getClaims(token).getId(); -// System.out.println("过滤器:uuid:" + uuid); - Zuser zuser = (Zuser) redisHandler.get("online-key:"+uuid); - if (zuser != null) { - UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(zuser, null, zuser.getAuthorities()); - authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - SecurityContextHolder.getContext().setAuthentication(authenticationToken); - } else { -// response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "当前登录状态过期"); - throw new BadCredentialsException("当前登录状态过期"); - } - } - - //测试用时 - String uri = request.getRequestURI(); - String ip = request.getRemoteAddr(); - long start = System.currentTimeMillis(); - log.debug(ip + "--" + uri + "--开始▼..."); - chain.doFilter(request, response); - long time = (System.currentTimeMillis() - start); - if (time > 3000) { - log.warn(ip + "--" +uri + "--结束▲...用时:" + time / 1000 + "秒"); - } else { - log.debug(ip + "--"+uri + "--结束▲...用时:" + time + "毫秒"); - } - } - - -} diff --git a/vben-core/src/main/java/vben/core/framework/security/authz/AuthzHandler.java b/vben-core/src/main/java/vben/core/framework/security/authz/AuthzHandler.java deleted file mode 100644 index 73de19f..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/authz/AuthzHandler.java +++ /dev/null @@ -1,80 +0,0 @@ -package vben.core.framework.security.authz; - -import vben.core.framework.security.pojo.Zuser; -import org.springframework.security.core.Authentication; -import org.springframework.stereotype.Component; - -import javax.servlet.http.HttpServletRequest; - -//权限校验处理器 -@Component -public class AuthzHandler { - - public boolean hasPermission(HttpServletRequest request, Authentication authentication) { - String uri = request.getRequestURI(); - if("/ws".equals(uri)){ - return true; - } - Zuser zuser; - try { - zuser = (Zuser) authentication.getPrincipal(); - } catch (Exception e) { - //e.printStackTrace(); - return false; - } - String method = request.getMethod(); - if("/getMenuList".equals(uri)||"/getUserInfo".equals(uri)){ - return true; - } - return checkPerm(zuser, method, uri); - } - - private boolean checkPerm(Zuser zuser, String method,String url){ - if(zuser.isAdmin()){ - return true; - } - boolean flag=false; - //根据method分类快速定位到请求url的权限码,再通过二进制&计算快速校验用户是否有权限 - if("GET".equals(method)){ - for (int i = 0; i < AuthzApiData.GET1_APIS.size(); i++) { - if(AuthzApiData.GET1_APIS.get(i).getUrl().equals(url)){ - flag = zuser.hasPerm(AuthzApiData.GET1_APIS.get(i).getPos(), AuthzApiData.GET1_APIS.get(i).getCode()); - break; - } - } - if(!flag){ - String frontUrl=url.substring(0,url.lastIndexOf("/")); - for (int i = 0; i < AuthzApiData.GET2_APIS.size(); i++) { - if(AuthzApiData.GET2_APIS.get(i).getUrl().equals(frontUrl)){ - flag = zuser.hasPerm(AuthzApiData.GET2_APIS.get(i).getPos(), AuthzApiData.GET2_APIS.get(i).getCode()); - break; - } - } - } - }else if("POST".equals(method)){ - for (int i = 0; i < AuthzApiData.POST_APIS.size(); i++) { - if(AuthzApiData.POST_APIS.get(i).getUrl().equals(url)){ - flag = zuser.hasPerm(AuthzApiData.POST_APIS.get(i).getPos(), AuthzApiData.POST_APIS.get(i).getCode()); - break; - } - } - }else if("PUT".equals(method)){ - for (int i = 0; i < AuthzApiData.PUT_APIS.size(); i++) { - if(AuthzApiData.PUT_APIS.get(i).getUrl().equals(url)){ - flag = zuser.hasPerm(AuthzApiData.PUT_APIS.get(i).getPos(), AuthzApiData.PUT_APIS.get(i).getCode()); - break; - } - } - }else if("DELETE".equals(method)){ - String frontUrl=url.substring(0,url.lastIndexOf("/")); - for (int i = 0; i < AuthzApiData.DELETE_APIS.size(); i++) { - if(AuthzApiData.DELETE_APIS.get(i).getUrl().equals(frontUrl)){ - flag = zuser.hasPerm(AuthzApiData.DELETE_APIS.get(i).getPos(), AuthzApiData.DELETE_APIS.get(i).getCode()); - break; - } - } - } - return flag; - } - -} diff --git a/vben-core/src/main/java/vben/core/framework/security/authz/JwtFilterAdapter.java b/vben-core/src/main/java/vben/core/framework/security/authz/JwtFilterAdapter.java deleted file mode 100644 index 042bb82..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/authz/JwtFilterAdapter.java +++ /dev/null @@ -1,23 +0,0 @@ -package vben.core.framework.security.authz; - -import lombok.RequiredArgsConstructor; -import vben.core.framework.cache.RedisHandler; -import org.springframework.security.config.annotation.SecurityConfigurerAdapter; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.web.DefaultSecurityFilterChain; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - -//授权过滤器适配器 -@RequiredArgsConstructor -public class JwtFilterAdapter extends SecurityConfigurerAdapter { - - private final JwtHandler jwtHandler; - - private final RedisHandler redisHandler; - - @Override - public void configure(HttpSecurity http) { - AuthzFilter jwtFilter = new AuthzFilter(jwtHandler, redisHandler); - http.addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class); - } -} diff --git a/vben-core/src/main/java/vben/core/framework/security/authz/JwtHandler.java b/vben-core/src/main/java/vben/core/framework/security/authz/JwtHandler.java deleted file mode 100644 index 11b433b..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/authz/JwtHandler.java +++ /dev/null @@ -1,94 +0,0 @@ -package vben.core.framework.security.authz; - -import cn.hutool.core.util.IdUtil; -import vben.core.framework.config.AppConfig; -import vben.core.framework.cache.RedisHandler; -import io.jsonwebtoken.*; -import io.jsonwebtoken.io.Decoders; -import io.jsonwebtoken.security.Keys; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.userdetails.User; -import org.springframework.stereotype.Component; - -import javax.servlet.http.HttpServletRequest; -import java.security.Key; -import java.util.ArrayList; - -//Jwt处理器 -@Component -public class JwtHandler implements InitializingBean { - - private final Key key; // 用于签名 Access Token - private final Key refreshKey; // 用于签名 Refresh Token - private final AppConfig appConfig; - private JwtParser jwtParser; - private JwtBuilder jwtBuilder; - private final RedisHandler redisHandler; - - public JwtHandler(AppConfig appConfig, RedisHandler redisHandler) { - this.appConfig = appConfig; - this.redisHandler = redisHandler; - key = Keys.hmacShaKeyFor(Decoders.BASE64.decode(appConfig.getJwt().getAkey())); - refreshKey = Keys.hmacShaKeyFor(Decoders.BASE64.decode(appConfig.getJwt().getRkey())); - } - - @Override - public void afterPropertiesSet() { - jwtParser = Jwts.parserBuilder().setSigningKey(key).build(); - jwtBuilder = Jwts.builder().signWith(key, SignatureAlgorithm.HS512); - } - - //创建Token 设置永不过期,Token 的时间有效性转到Redis 维护 - public String createToken(Authentication authentication) { - return jwtBuilder - // 加入ID确保生成的 Token 都不一致 - .setId(IdUtil.simpleUUID()) - .claim("user", authentication.getName()) - .setSubject(authentication.getName()) - .compact(); - } - - public String createTokenByUuid(String uuid) { - return jwtBuilder.setId(uuid).claim("username", uuid) - .setSubject(uuid).compact(); - } - - - //依据Token 获取鉴权信息 - Authentication getAuthentication(String token) { - Claims claims = getClaims(token); - User principal = new User(claims.getSubject(), "******", new ArrayList<>()); - return new UsernamePasswordAuthenticationToken(principal, token, new ArrayList<>()); - } - - public Claims getClaims(String token) { - return jwtParser - .parseClaimsJws(token) - .getBody(); - } - - //需要检查的token -// public void checkRenewal(String token) { -// // 判断是否续期token,计算token的过期时间 -// long time = redisHandler.getExpire("online" + token) * 1000; -// Date expireDate = DateUtil.offset(new Date(), DateField.MILLISECOND, (int) time); -// // 判断当前时间与过期时间的时间差 -// long differ = expireDate.getTime() - System.currentTimeMillis(); -// // 如果在续期检查的范围内,则续期 -// if (differ <= appConfig.getJwt().getDetect()) { -// long renew = time + appConfig.getJwt().getRenew(); -// redisHandler.expire(appConfig.getJwt().getOnlineKey() + token, renew, TimeUnit.MILLISECONDS); -// } -// } - - public String getToken(HttpServletRequest request) { - final String requestHeader = request.getHeader(appConfig.getJwt().getHeader()); - if (requestHeader != null && requestHeader.startsWith(appConfig.getJwt().getPrefix())) { - return requestHeader.substring(7); - } - return null; - } - -} diff --git a/vben-core/src/main/java/vben/core/framework/security/pojo/LoginByCodeVo.java b/vben-core/src/main/java/vben/core/framework/security/pojo/LoginByCodeVo.java deleted file mode 100644 index 0dba057..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/pojo/LoginByCodeVo.java +++ /dev/null @@ -1,27 +0,0 @@ -package vben.core.framework.security.pojo; - -import lombok.Data; - -import javax.validation.constraints.NotBlank; - -@Data -public class LoginByCodeVo { - - /** - * 手机号 - */ - @NotBlank(message = "手机号不能为空") - private String phone; - - /** - * 验证码 - */ - @NotBlank(message = "验证码不能为空") - private String code; - - /** - * 推送ID - */ - private String cid; - -} diff --git a/vben-core/src/main/java/vben/core/framework/security/pojo/LoginVo.java b/vben-core/src/main/java/vben/core/framework/security/pojo/LoginVo.java deleted file mode 100644 index e8eece7..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/pojo/LoginVo.java +++ /dev/null @@ -1,23 +0,0 @@ -package vben.core.framework.security.pojo; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.validation.constraints.NotNull; -import java.io.Serializable; - -//用户名与密码VO,登录时用到 -@Data -@NoArgsConstructor -@AllArgsConstructor -public class LoginVo implements Serializable { - - private static final long serialVersionUID = 1L; - - @NotNull - private String username; - - @NotNull - private String password; -} diff --git a/vben-core/src/main/java/vben/core/framework/security/pojo/RegisterVo.java b/vben-core/src/main/java/vben/core/framework/security/pojo/RegisterVo.java deleted file mode 100644 index ba96376..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/pojo/RegisterVo.java +++ /dev/null @@ -1,37 +0,0 @@ -package vben.core.framework.security.pojo; - -import lombok.Data; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; - - -@Data -public class RegisterVo { - - /** - * 手机号 - */ - @NotBlank(message = "手机号不能为空") - private String phone; - - /** - * 密码 - */ - @NotBlank(message = "密码不能为空") - private String password; - - /** - * 昵称 - */ - @NotBlank(message = "昵称不能为空") - @Size(max = 20, message = "昵称长度不能大于20") - private String nickName; - - /** - * 验证码 - */ - @NotBlank(message = "验证码不能为空") - private String code; - -} diff --git a/vben-core/src/main/java/vben/core/framework/security/pojo/UserDo.java b/vben-core/src/main/java/vben/core/framework/security/pojo/UserDo.java deleted file mode 100644 index 0239c92..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/pojo/UserDo.java +++ /dev/null @@ -1,35 +0,0 @@ -package vben.core.framework.security.pojo; - -import lombok.Data; - -//数据库用户信息,登录时用到 -@Data -public class UserDo { - - private String id; - - private String name; - - private String usnam; - - private String pacod; - - private Boolean catag; - - private String tier; - - private String depid; - - private String depna; - - private String monum; - - private String label; - - private String type; - - private String relog; - - private String avimg; - -} diff --git a/vben-core/src/main/java/vben/core/framework/security/pojo/UserVo.java b/vben-core/src/main/java/vben/core/framework/security/pojo/UserVo.java deleted file mode 100644 index 4a87bf2..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/pojo/UserVo.java +++ /dev/null @@ -1,28 +0,0 @@ -package vben.core.framework.security.pojo; - -import lombok.Data; - -@Data -public class UserVo { - - private String id;//用户ID - - private String name;//用户姓名 - - private String usnam;//用户名 - - private String monum;//手机号 - - private String label;//账号标签 - - private String type;//账号类型 - - private String depid;//部门id,协同用户则是公司id - - private String depna;//部门名称,协同用户则是公司名称 - - private String relog;//前台通知是否查看过的标记 - - private String avimg;//头像 - -} diff --git a/vben-core/src/main/java/vben/core/framework/security/pojo/Yapi.java b/vben-core/src/main/java/vben/core/framework/security/pojo/Yapi.java deleted file mode 100644 index 4ca757b..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/pojo/Yapi.java +++ /dev/null @@ -1,19 +0,0 @@ -package vben.core.framework.security.pojo; - -import lombok.Data; - -import java.io.Serializable; - -//api pojo:存储URL,权限位与权限码 -@Data -public class Yapi implements Serializable { - private static final long serialVersionUID = 7712491509249951764L; - - private int pos; - - private long code; - - private String url; - - //get and set------------ -} diff --git a/vben-core/src/main/java/vben/core/framework/security/pojo/Yurl.java b/vben-core/src/main/java/vben/core/framework/security/pojo/Yurl.java deleted file mode 100644 index b81b47a..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/pojo/Yurl.java +++ /dev/null @@ -1,15 +0,0 @@ -package vben.core.framework.security.pojo; - -import lombok.Data; - -//url扫描收集时是用到的pojo -@Data -public class Yurl { - private String id ; - - private String url ; - - private String pid ; - - private String type; -} diff --git a/vben-core/src/main/java/vben/core/framework/security/pojo/Zmenu.java b/vben-core/src/main/java/vben/core/framework/security/pojo/Zmenu.java deleted file mode 100644 index 1dac856..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/pojo/Zmenu.java +++ /dev/null @@ -1,40 +0,0 @@ -package vben.core.framework.security.pojo; - -import com.alibaba.fastjson.annotation.JSONField; -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; - -import java.io.Serializable; -import java.util.List; - -//前台返回菜单 -@Data -public class Zmenu implements Serializable { - private static final long serialVersionUID = 1L; - - private String id; - - private String pid; - - @JsonIgnore - @JSONField(serialize = false) - private String perm; - - private String path; - - private String name; - - private String component; - - private Zmeta meta; - - private String redirect; - - private List children; - - private String type; - - private String porid; - - -} diff --git a/vben-core/src/main/java/vben/core/framework/security/pojo/Zmeta.java b/vben-core/src/main/java/vben/core/framework/security/pojo/Zmeta.java deleted file mode 100644 index 7edbea9..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/pojo/Zmeta.java +++ /dev/null @@ -1,28 +0,0 @@ -package vben.core.framework.security.pojo; - -import lombok.Data; - -import java.io.Serializable; - -//前台返回菜单meta信息 -@Data -public class Zmeta implements Serializable { - private static final long serialVersionUID = 1L; - - private String title; - - private Boolean isHide; - - private Boolean isIframe=false; - - private String isLink; - - private String affix; - - private String icon; - - private Integer orderNo; - - private Boolean isKeepAlive; - -} diff --git a/vben-core/src/main/java/vben/core/framework/security/pojo/Zportal.java b/vben-core/src/main/java/vben/core/framework/security/pojo/Zportal.java deleted file mode 100644 index c7a0fb2..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/pojo/Zportal.java +++ /dev/null @@ -1,10 +0,0 @@ -package vben.core.framework.security.pojo; - -import lombok.Data; - -//前台返回门户 -@Data -public class Zportal { - private String id; - private String name; -} diff --git a/vben-core/src/main/java/vben/core/framework/security/pojo/Zuser.java b/vben-core/src/main/java/vben/core/framework/security/pojo/Zuser.java deleted file mode 100644 index c75326a..0000000 --- a/vben-core/src/main/java/vben/core/framework/security/pojo/Zuser.java +++ /dev/null @@ -1,145 +0,0 @@ -package vben.core.framework.security.pojo; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.io.Serializable; -import java.util.Collection; - -//用户pojo,前台与后台都会用到,前台用于获取用户信息,后台存在redis里,用于获取用户信息及权限校验 -@Data -public class Zuser implements UserDetails, Serializable { - - private static final long serialVersionUID = -2487878824333265058L; - - private String id;//用户ID - - private String name;//用户姓名 - - private String usnam;//用户名 - - private String monum;//手机号 - - private String label;//账号标签 - - private String type;//账号类型 - - private String depid;//部门id,协同用户则是公司id - - private String depna;//部门名称,协同用户则是公司名称 - - private String relog;//前台通知是否查看过的标记 - - private String avimg;//头像 - - @JsonIgnore//前端不需要 - private long[] permArr;//权限集,用于验证URL权限 - - @JsonIgnore//前端不需要 - private String conds;//组织架构集,用户ID,所有上级部门ID,岗位ID,群组ID - -// public Zuser(String id, String name, String usnam, long[] perms, String conds) { -// this.id = id; -// this.name = name; -// this.usnam = usnam; -// this.conds = conds; -// this.permArr = perms; -// } - -// public Zuser(String id, String name, String usnam) { -// this.id = id; -// this.name = name; -// this.usnam = usnam; -// } - - public Zuser() { - - } - - public Zuser(UserDo userDo) { - this.id = userDo.getId(); - this.name = userDo.getName(); - this.usnam = userDo.getUsnam(); - this.monum = userDo.getMonum(); - this.label = userDo.getLabel(); - this.type = userDo.getType(); - this.depid = userDo.getDepid(); - this.depna = userDo.getDepna(); - this.relog = userDo.getRelog(); - this.avimg = userDo.getAvimg(); - } - - //------------------------------ - private boolean isAdmin; - - public boolean isAdmin() { - if("sa".equals(usnam)||"admin".equals(usnam)||"vben".equals(usnam)){ - return true; - } - return isAdmin; -// return true; - } - - public void setAdmin(boolean admin) { - isAdmin = admin; - } - - //权限校验 - public boolean hasPerm(int pos, long code) { - if (isAdmin()) { - return true; - } - if (permArr.length <= pos) { - return false; - } - long ret = permArr[pos] & code; - return !(ret == 0); - } - - //----------------------------UserDetails------------------------------------------------ - @JsonIgnore - @Override - public Collection getAuthorities() { - return null; - } - - @JsonIgnore - @Override - public String getPassword() { - return null; - } - - @JsonIgnore - @Override - public String getUsername() { - return this.getUsnam(); - } - - @JsonIgnore - @Override - public boolean isAccountNonExpired() { - return true; - } - - @JsonIgnore - @Override - public boolean isAccountNonLocked() { - return true; - } - - @JsonIgnore - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @JsonIgnore - @Override - public boolean isEnabled() { - return true; - } - - //@JSONField(serialize = false) -} diff --git a/vben-core/src/main/java/vben/core/framework/sms/enums/SmsTemplateEnum.java b/vben-core/src/main/java/vben/core/framework/sms/enums/SmsTemplateEnum.java deleted file mode 100644 index af1739d..0000000 --- a/vben-core/src/main/java/vben/core/framework/sms/enums/SmsTemplateEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package vben.core.framework.sms.enums; - -import lombok.Getter; - -/** - * 短信模板枚举 - */ -@Getter -public enum SmsTemplateEnum { - - /** - * 验证码-00 - */ - VERIFY_CODE("SMS_209335004", "验证码-00"), - ; - - private String code; - private String info; - - SmsTemplateEnum(String code, String info) { - this.code = code; - this.info = info; - } - -} diff --git a/vben-core/src/main/java/vben/core/framework/sms/enums/SmsTypeEnum.java b/vben-core/src/main/java/vben/core/framework/sms/enums/SmsTypeEnum.java deleted file mode 100644 index fd19119..0000000 --- a/vben-core/src/main/java/vben/core/framework/sms/enums/SmsTypeEnum.java +++ /dev/null @@ -1,39 +0,0 @@ -package vben.core.framework.sms.enums; - -import com.baomidou.mybatisplus.annotation.EnumValue; -import com.fasterxml.jackson.annotation.JsonValue; -import lombok.Getter; - -/** - * 短信类型枚举 - */ -@Getter -public enum SmsTypeEnum { - - /** - * 注册 - */ - REGISTERED("1", "chat:code:reg:", 5), - /** - * 登录 - */ - LOGIN("2", "chat:code:login:", 5), - /** - * 忘记密码 - */ - FORGET("3", "chat:code:forget:", 5), - ; - - @EnumValue - @JsonValue - private String code; - private String prefix; - private Integer timeout; - - SmsTypeEnum(String code, String prefix, Integer timeout) { - this.code = code; - this.prefix = prefix; - this.timeout = timeout; - } - -} diff --git a/vben-core/src/main/java/vben/core/framework/sms/service/SmsService.java b/vben-core/src/main/java/vben/core/framework/sms/service/SmsService.java deleted file mode 100644 index 67003f6..0000000 --- a/vben-core/src/main/java/vben/core/framework/sms/service/SmsService.java +++ /dev/null @@ -1,28 +0,0 @@ -package vben.core.framework.sms.service; - -import cn.hutool.core.lang.Dict; -import vben.core.framework.sms.enums.SmsTypeEnum; -import vben.core.framework.sms.vo.SmsVo; - -/** - *

- * 短信 服务层 - *

- */ -public interface SmsService { - - /** - * 发送短信 - * - * @return - */ - Dict sendSms(SmsVo smsVo); - - /** - * 验证短信 - * - * @return - */ - void verifySms(String phone, String code, SmsTypeEnum type); - -} diff --git a/vben-core/src/main/java/vben/core/framework/sms/service/impl/SmsServiceImpl.java b/vben-core/src/main/java/vben/core/framework/sms/service/impl/SmsServiceImpl.java deleted file mode 100644 index 6efcf01..0000000 --- a/vben-core/src/main/java/vben/core/framework/sms/service/impl/SmsServiceImpl.java +++ /dev/null @@ -1,100 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - *

- * https://www.q3z3.com - * QQ : 939313737 - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package vben.core.framework.sms.service.impl; - -import cn.hutool.core.lang.Dict; -import cn.hutool.core.lang.Validator; -import cn.hutool.core.util.RandomUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.stereotype.Service; -import vben.core.common.exception.base.BaseException; -import vben.core.framework.sms.enums.SmsTemplateEnum; -import vben.core.framework.sms.enums.SmsTypeEnum; -import vben.core.framework.sms.service.SmsService; -import vben.core.framework.sms.vo.SmsVo; - -import java.util.concurrent.TimeUnit; - -/** - * token 服务层 - */ -@Service("smsService") -@Slf4j -public class SmsServiceImpl implements SmsService { - -// @Autowired -// private RedisUtils redisUtils; - - @Autowired - private StringRedisTemplate redisTemplate; - - @Override - public Dict sendSms(SmsVo smsVo) { - // 验证手机号 - if (!Validator.isMobile(smsVo.getPhone())) { - throw new BaseException("请输入正确的手机号"); - } - SmsTypeEnum smsType = smsVo.getType(); - String key = smsType.getPrefix().concat(smsVo.getPhone()); - // 生成验证码 - String code = String.valueOf(RandomUtil.randomInt(1000, 9999)); - // 发送短信 -// if (YesOrNoEnum.YES.equals(PlatformConfig.SMS)) { - if (true) { - Dict dict = Dict.create() - .set("code", code); - doSendSms(smsVo.getPhone(), SmsTemplateEnum.VERIFY_CODE, dict); - } - // 存入缓存 - redisTemplate.opsForValue().set(key, code, smsType.getTimeout(), TimeUnit.MINUTES); - return Dict.create().set("code", code).set("expiration", smsType.getTimeout()); - } - - @Override - public void verifySms(String phone, String code, SmsTypeEnum type) { - // 验证手机号 - if (!Validator.isMobile(phone)) { - throw new BaseException("请输入正确的手机号"); - } - String key = type.getPrefix().concat(phone); - System.out.println(key); - if (!redisTemplate.hasKey(key)) { - throw new BaseException("验证码已过期,请重新获取"); - } - String value = redisTemplate.opsForValue().get(key); - if (value.equalsIgnoreCase(code)) { - redisTemplate.delete(key); - } else { - throw new BaseException("验证码不正确,请重新获取"); - } - } - - /** - * 执行发送短信 - * - * @param phone - * @param templateCode - * @param dict - */ - private void doSendSms(String phone, SmsTemplateEnum templateCode, Dict dict) { - // 短信待集成 - } - -} diff --git a/vben-core/src/main/java/vben/core/framework/sms/vo/SmsVo.java b/vben-core/src/main/java/vben/core/framework/sms/vo/SmsVo.java deleted file mode 100644 index f215529..0000000 --- a/vben-core/src/main/java/vben/core/framework/sms/vo/SmsVo.java +++ /dev/null @@ -1,26 +0,0 @@ -package vben.core.framework.sms.vo; - -import lombok.Data; -import vben.core.framework.sms.enums.SmsTypeEnum; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; - -/** - * 用户登录对象 - */ -@Data -public class SmsVo { - /** - * 手机号 - */ - @NotBlank(message = "手机号不能为空") - private String phone; - - /** - * 短信类型 - */ - @NotNull(message = "短信类型不能为空") - private SmsTypeEnum type; - -} diff --git a/vben-core/src/main/java/vben/core/framework/webservice/AutoPublish.java b/vben-core/src/main/java/vben/core/framework/webservice/AutoPublish.java deleted file mode 100644 index 833db05..0000000 --- a/vben-core/src/main/java/vben/core/framework/webservice/AutoPublish.java +++ /dev/null @@ -1,23 +0,0 @@ -package vben.core.framework.webservice; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - *

description:自动发布接口地址注解

- * - * @author newzhong - * @version 1.0 - */ -@Target({ElementType.TYPE}) -@Retention(RetentionPolicy.RUNTIME) -public @interface AutoPublish { - /** - *

description:发布地址

- * @return String - * @author newzhong - */ - String publishAddress(); -} diff --git a/vben-core/src/main/java/vben/core/framework/webservice/CxfConfig.java b/vben-core/src/main/java/vben/core/framework/webservice/CxfConfig.java deleted file mode 100644 index 51226a2..0000000 --- a/vben-core/src/main/java/vben/core/framework/webservice/CxfConfig.java +++ /dev/null @@ -1,26 +0,0 @@ -package vben.core.framework.webservice; - -import org.apache.cxf.Bus; -import org.apache.cxf.bus.spring.SpringBus; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - - -//https://blog.csdn.net/m0_50172764/article/details/126014196 -//https://blog.csdn.net/m0_48958478/article/details/125274698 -/** - * 功能描述:CXF配置类
- * - * @author newzhong - * @version 1.0.0 - * @since JDK 1.8 - */ -@Configuration -public class CxfConfig { - @Bean(name = Bus.DEFAULT_BUS_ID) - public SpringBus springBus() { - SpringBus bus = new SpringBus(); -// bus.getFeatures().add(new LoggingFeature()); - return bus; - } -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/framework/webservice/PigService.java b/vben-core/src/main/java/vben/core/framework/webservice/PigService.java deleted file mode 100644 index 9476d11..0000000 --- a/vben-core/src/main/java/vben/core/framework/webservice/PigService.java +++ /dev/null @@ -1,14 +0,0 @@ -package vben.core.framework.webservice; - - -import javax.jws.WebService; - -//@AutoPublish(publishAddress = "/pig") -@WebService(name = "PigService", // 暴露服务名称 - targetNamespace = "http://service.sbmpservice.usts.edu.cn"// 命名空间,一般是接口的包名倒序 -) -public interface PigService { - - int addUser(); - -} diff --git a/vben-core/src/main/java/vben/core/framework/webservice/PigServiceImpl.java b/vben-core/src/main/java/vben/core/framework/webservice/PigServiceImpl.java deleted file mode 100644 index d62377a..0000000 --- a/vben-core/src/main/java/vben/core/framework/webservice/PigServiceImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package vben.core.framework.webservice; - - -import org.springframework.stereotype.Component; - -import javax.jws.WebService; - -@Component -@AutoPublish(publishAddress = "/pig") -@WebService(serviceName = "PigService", // 与接口中指定的name一致 - targetNamespace = "http://service.sbmpservice.usts.edu.cn", // 与接口中的命名空间一致,一般是接口的包名倒 - endpointInterface = "vben.core.framework.webservice.PigService"// 接口地址 -) -public class PigServiceImpl implements PigService { - - - @Override - public int addUser(){ - System.out.println("addUser"); - return 2; - } - -} - diff --git a/vben-core/src/main/java/vben/core/framework/webservice/StartClas.java b/vben-core/src/main/java/vben/core/framework/webservice/StartClas.java deleted file mode 100644 index c743a93..0000000 --- a/vben-core/src/main/java/vben/core/framework/webservice/StartClas.java +++ /dev/null @@ -1,77 +0,0 @@ -package vben.core.framework.webservice; - -import lombok.extern.slf4j.Slf4j; -import org.apache.cxf.Bus; -import org.apache.cxf.bus.spring.SpringBus; -import org.apache.cxf.jaxws.EndpointImpl; -import org.apache.cxf.transport.servlet.CXFServlet; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.ApplicationArguments; -import org.springframework.boot.ApplicationRunner; -import org.springframework.boot.web.servlet.ServletRegistrationBean; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Component; -import org.springframework.web.context.WebApplicationContext; - -@Component -@Slf4j -public class StartClas implements ApplicationRunner { - -// @Bean(name = Bus.DEFAULT_BUS_ID) -// public SpringBus springBus() { -// return new SpringBus(); -// } - - @Autowired - private WebApplicationContext applicationConnect; - - @Autowired() - @Qualifier(Bus.DEFAULT_BUS_ID) - private SpringBus bus; - - @Bean(name = "wsBean") - public ServletRegistrationBean dispatcherServlet() { - ServletRegistrationBean wbsServlet = new ServletRegistrationBean(new CXFServlet(), "/wsv/*"); - return wbsServlet; - } - -// @Bean -// public PigService pigService() { -// return new PigServiceImpl(); -// } - - - - @SuppressWarnings("resource") - @Override - public void run(ApplicationArguments applicationArguments) throws Exception { -// log.info("开始进行自动发布webService接口"); -// - String[] beanNames = applicationConnect.getBeanNamesForAnnotation(AutoPublish.class); - for(String beanName : beanNames) { - String publishAddr = applicationConnect.getType(beanName).getAnnotation(AutoPublish.class).publishAddress(); - EndpointImpl endpoint = new EndpointImpl(bus, applicationConnect.getBean(beanName)); - endpoint.publish(publishAddr); -// log.info(String.format("发布接口地址:[%s]", "http://localhost:5000"+publishAddr)); - } - -// log.info("weBservice接口自动发布结束"); -// EndpointImpl endpoint = new EndpointImpl(bus,pigService); -// endpoint.publish("/api"); -// System.out.println("服务发布成功!地址为:http://localhost:8081/wsv/api?wsdl"); - } - - @Autowired - private PigService pigService; - -// -// @Bean -// public Endpoint endpointPurchase(SpringBus springBus) { -// -// -// -// return endpoint; -// -// } -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/framework/websocket/WebSocketConfig.java b/vben-core/src/main/java/vben/core/framework/websocket/WebSocketConfig.java deleted file mode 100644 index f48116a..0000000 --- a/vben-core/src/main/java/vben/core/framework/websocket/WebSocketConfig.java +++ /dev/null @@ -1,17 +0,0 @@ -package vben.core.framework.websocket; - -//@Configuration -//public class WebSocketConfig { -// /** -// * ServerEndpointExporter 作用 -// * -// * 这个Bean会自动注册使用@ServerEndpoint注解声明的websocket endpoint -// * -// * @return -// */ -// //影响单元测试所以先注释了 -//// @Bean -//// public ServerEndpointExporter serverEndpointExporter() { -//// return new ServerEndpointExporter(); -//// } -//} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/framework/websocket/WebSocketServer.java b/vben-core/src/main/java/vben/core/framework/websocket/WebSocketServer.java deleted file mode 100644 index 8c6de81..0000000 --- a/vben-core/src/main/java/vben/core/framework/websocket/WebSocketServer.java +++ /dev/null @@ -1,84 +0,0 @@ -package vben.core.framework.websocket; - -////影响单元测试所以先注释了 -////@ServerEndpoint("/webSocket/{sid}") -//@Component -//public class WebSocketServer { -// //静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。 -// private static AtomicInteger onlineNum = new AtomicInteger(); - -// //concurrent包的线程安全Set,用来存放每个客户端对应的WebSocketServer对象。 -// private static ConcurrentHashMap sessionPools = new ConcurrentHashMap<>(); - -// //发送消息 -// public void sendMessage(Session session, String message) throws IOException { -// if(session != null){ -// synchronized (session) { -//// System.out.println("发送数据:" + message); -// session.getBasicRemote().sendText(message); -// } -// } -// } -// //给指定用户发送信息 -// public void sendInfo(String userName, String message){ -// Session session = sessionPools.get(userName); -// try { -// sendMessage(session, message); -// }catch (Exception e){ -// e.printStackTrace(); -// } -// } - -// //建立连接成功调用 -// @OnOpen -// public void onOpen(Session session, @PathParam(value = "sid") String userName){ -// sessionPools.put(userName, session); -// addOnlineCount(); -// System.out.println(userName + "加入webSocket!当前人数为" + onlineNum); -// try { -// sendMessage(session, "欢迎" + userName + "加入连接!"); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } - -// //关闭连接时调用 -// @OnClose -// public void onClose(@PathParam(value = "sid") String userName){ -// sessionPools.remove(userName); -// subOnlineCount(); -// System.out.println(userName + "断开webSocket连接!当前人数为" + onlineNum); -// } - -// //收到客户端信息 -// @OnMessage -// public void onMessage(String message) throws IOException{ -// message = "客户端:" + message + ",已收到"; -// System.out.println(message); -// for (Session session: sessionPools.values()) { -// try { -// sendMessage(session, message); -// } catch(Exception e){ -// e.printStackTrace(); -// continue; -// } -// } -// } - -// //错误时调用 -// @OnError -// public void onError(Session session, Throwable throwable){ -// System.out.println("发生错误"); -// throwable.printStackTrace(); -// } - -// public static void addOnlineCount(){ -// onlineNum.incrementAndGet(); -// } - -// public static void subOnlineCount() { -// onlineNum.decrementAndGet(); -// } - -//} - diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/city/AssAddrCity.java b/vben-core/src/main/java/vben/core/module/ass/addr/city/AssAddrCity.java deleted file mode 100644 index f9c9b8a..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/city/AssAddrCity.java +++ /dev/null @@ -1,31 +0,0 @@ -package vben.core.module.ass.addr.city; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseEntity; - -import javax.persistence.Column; -import javax.persistence.Entity; - -@Entity -@Getter -@Setter -@ApiModel("城市信息") -public class AssAddrCity extends BaseEntity { - - - @Column(length = 32) - @ApiModelProperty("代码") - private String code; - - @Column(length = 64) - @ApiModelProperty("坐标") - private String cecoo; - - @Column(length = 32) - @ApiModelProperty("省份") - private String prov; -} - diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/city/AssAddrCityRepo.java b/vben-core/src/main/java/vben/core/module/ass/addr/city/AssAddrCityRepo.java deleted file mode 100644 index 318d4d0..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/city/AssAddrCityRepo.java +++ /dev/null @@ -1,7 +0,0 @@ -package vben.core.module.ass.addr.city; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface AssAddrCityRepo extends JpaRepository { - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/dict/AssAddrDict.java b/vben-core/src/main/java/vben/core/module/ass/addr/dict/AssAddrDict.java deleted file mode 100644 index 710355c..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/dict/AssAddrDict.java +++ /dev/null @@ -1,26 +0,0 @@ -package vben.core.module.ass.addr.dict; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseEntity; - -import javax.persistence.Column; -import javax.persistence.Entity; - -@Entity -@Getter -@Setter -@ApiModel("区信息") -public class AssAddrDict extends BaseEntity { - - @Column(length = 64) - @ApiModelProperty("坐标") - private String cecoo; - - @Column(length = 32) - @ApiModelProperty("城市") - private String city; -} - diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/dict/AssAddrDictRepo.java b/vben-core/src/main/java/vben/core/module/ass/addr/dict/AssAddrDictRepo.java deleted file mode 100644 index 8e2b89b..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/dict/AssAddrDictRepo.java +++ /dev/null @@ -1,7 +0,0 @@ -package vben.core.module.ass.addr.dict; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface AssAddrDictRepo extends JpaRepository { - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMain.java b/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMain.java deleted file mode 100644 index b8c3731..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMain.java +++ /dev/null @@ -1,44 +0,0 @@ -package vben.core.module.ass.addr.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseEntity; - -import javax.persistence.Column; -import javax.persistence.Entity; -import java.util.Date; - -@Entity -@Getter -@Setter -@ApiModel("地址信息") -public class AssAddrMain extends BaseEntity { - @Column(length = 32) - @ApiModelProperty("父ID") - private String pid; - - @Column(length = 32) - @ApiModelProperty("坐标") - private String cecoo; - - @Column(length = 32) - @ApiModelProperty("类型") - private String type; - - @Column(length = 32) - @ApiModelProperty("代码") - private String code; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim = new Date(); - - @ApiModelProperty("更新时间") - private Date uptim; - - @ApiModelProperty("备注") - private String notes; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainApi.java b/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainApi.java deleted file mode 100644 index dda6935..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainApi.java +++ /dev/null @@ -1,81 +0,0 @@ -package vben.core.module.ass.addr.main; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.utils.file.ExcelUtil; - -import javax.servlet.http.HttpServletResponse; -import java.util.List; - -@RestController -@RequestMapping("ass/addr/main") -@Api(tags = {"地址信息"}) -public class AssAddrMainApi { - - @GetMapping - @ApiOperation("查询地址分页") - public R get(String name) { - Sqler sqler = new Sqler("ass_addr_main"); - sqler.addLike("t.name", name); - sqler.addLeftJoin("t2.name as p2name","ass_addr_main t2","t2.id=t.pid"); - sqler.addLeftJoin("t3.name as p3name","ass_addr_main t3","t3.id=t2.pid"); - sqler.addLeftJoin("t4.name as p4name","ass_addr_main t4","t4.id=t3.pid"); - sqler.addSelect("t.type,t.crtim,t.uptim,t.cecoo"); - sqler.addOrder("t.id"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询地址详情") - public R getOne(@PathVariable String id) { - AssAddrMain main = service.findOne(id); - return R.ok(main); - } - - @PutMapping("addrupdate") - @ApiOperation("通过高德地图接口更新地址信息") - public R addrupdate() { - addrHandle.addrInit(); - return R.ok(); - } - - @GetMapping("exp") - @ApiOperation("导出地址清单") - public void getExp(HttpServletResponse response) throws Exception { - List list = service.findAll(); - ExcelUtil.exportExcel(list, "字典数据", AssAddrMain.class, response); - } - - - @PostMapping - @ApiOperation("新增地址") - public R post(@RequestBody AssAddrMain main) { - return R.ok(service.insert(main)); - } - - @PutMapping - @ApiOperation("更新地址") - public R put(@RequestBody AssAddrMain main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除地址") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private AssAddrMainService service; - - @Autowired - private AssAddrMainHand addrHandle; -} diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainHand.java b/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainHand.java deleted file mode 100644 index d4e415c..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainHand.java +++ /dev/null @@ -1,153 +0,0 @@ -package vben.core.module.ass.addr.main; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; -import org.springframework.web.client.RestTemplate; -import vben.core.module.ass.addr.city.AssAddrCity; -import vben.core.module.ass.addr.city.AssAddrCityRepo; -import vben.core.module.ass.addr.dict.AssAddrDict; -import vben.core.module.ass.addr.dict.AssAddrDictRepo; -import vben.core.module.ass.addr.pojo.*; -import vben.core.module.ass.addr.prov.AssAddrProv; -import vben.core.module.ass.addr.prov.AssAddrProvRepo; -import vben.core.module.ass.addr.stre.AssAddrStre; -import vben.core.module.ass.addr.stre.AssAddrStreRepo; - -import java.util.ArrayList; -import java.util.List; - -@Component -public class AssAddrMainHand { - - public void addrInit() { - List provs = getProv(); - for (AssAddrProv prov : provs) { -// System.out.println(prov); - addrInitByProv(prov.getName()); - } - } - - @Value("${vben.amap.key}") - private String AMAP_KEY; - - public List getProv() { - AresCoun ares = restTemplate.getForObject("https://restapi.amap.com/v3/config/district?key=" + AMAP_KEY + "&keywords=&subdistrict=1&extensions=base", AresCoun.class); -// System.out.println(ares.toString()); - List provs = new ArrayList<>(); - for (DistrictCoun cout : ares.getDistricts()) { - for (DistrictProv prov : cout.getDistricts()) { - AssAddrProv myprov = new AssAddrProv(); - myprov.setId(prov.getAdcode()); - myprov.setName(prov.getName()); - myprov.setCecoo(prov.getCenter()); - provs.add(myprov); - } - } - return provs; - } - - - public void addrInitByProv(String pname) { - AresProv ares = restTemplate.getForObject("https://restapi.amap.com/v3/config/district?key=" + AMAP_KEY + "&keywords=" + pname + "&subdistrict=3&extensions=base", AresProv.class); - List provs = new ArrayList<>(); - List citys = new ArrayList<>(); - List dicts = new ArrayList<>(); - List stres = new ArrayList<>(); - List addrs = new ArrayList<>(); - for (DistrictProv prov : ares.getDistricts()) { - //省份表 - AssAddrProv myprov = new AssAddrProv(); - myprov.setId(prov.getAdcode()); - myprov.setName(prov.getName()); - myprov.setCecoo(prov.getCenter()); - provs.add(myprov); - //集合表(包含省份、城市、地区、街道) - AssAddrMain addrProv=new AssAddrMain(); - addrProv.setId(prov.getAdcode()); - addrProv.setName(prov.getName()); - addrProv.setCecoo(prov.getCenter()); - addrProv.setType("prov"); - addrs.add(addrProv); - for (District city : prov.getDistricts()) { - //城市表 - AssAddrCity mycity = new AssAddrCity(); - mycity.setId(city.getAdcode()); - mycity.setName(city.getName()); - mycity.setCecoo(city.getCenter()); - mycity.setCode(city.getCitycode()); - mycity.setProv(prov.getAdcode()); - citys.add(mycity); - //集合表(包含省份、城市、地区、街道) - AssAddrMain addrCity = new AssAddrMain(); - addrCity.setId(city.getAdcode()); - addrCity.setName(city.getName()); - addrCity.setCecoo(city.getCenter()); - addrCity.setCode(city.getCitycode()); - addrCity.setPid(prov.getAdcode()); - addrCity.setType("city"); - addrs.add(addrCity); - for (District dict : city.getDistricts()) { - //地区表 - AssAddrDict myDict = new AssAddrDict(); - myDict.setId(dict.getAdcode()); - myDict.setName(dict.getName()); - myDict.setCecoo(dict.getCenter()); - myDict.setCity(city.getAdcode()); - dicts.add(myDict); - //集合表(包含省份、城市、地区、街道) - AssAddrMain addrDict = new AssAddrMain(); - addrDict.setId(dict.getAdcode()); - addrDict.setName(dict.getName()); - addrDict.setCecoo(dict.getCenter()); - addrDict.setPid(city.getAdcode()); - addrDict.setType("dict"); - addrs.add(addrDict); - for (District stre : dict.getDistricts()) { - //街道表 - AssAddrStre myStre = new AssAddrStre(); - myStre.setId(stre.getCenter()); - myStre.setName(stre.getName()); - myStre.setCecoo(stre.getCenter()); - myStre.setDict(dict.getAdcode()); - stres.add(myStre); - //集合表(包含省份、城市、地区、街道) - AssAddrMain addrStre = new AssAddrMain(); - addrStre.setId(stre.getCenter()); - addrStre.setName(stre.getName()); - addrStre.setCecoo(stre.getCenter()); - addrStre.setPid(dict.getAdcode()); - addrStre.setType("stre"); - addrs.add(addrStre); - } - } - } - } - - provRepo.saveAll(provs); - cityRepo.saveAll(citys); - dictRepo.saveAll(dicts); - streRepo.saveAll(stres); - mainRepo.saveAll(addrs); - - } - - @Autowired - private AssAddrMainRepo mainRepo; - - @Autowired - private AssAddrProvRepo provRepo; - - @Autowired - private AssAddrCityRepo cityRepo; - - @Autowired - private AssAddrDictRepo dictRepo; - - @Autowired - private AssAddrStreRepo streRepo; - - @Autowired - private RestTemplate restTemplate; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainRepo.java b/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainRepo.java deleted file mode 100644 index dfcb4f3..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainRepo.java +++ /dev/null @@ -1,7 +0,0 @@ -package vben.core.module.ass.addr.main; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface AssAddrMainRepo extends JpaRepository { - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainService.java b/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainService.java deleted file mode 100644 index 2860ac5..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/main/AssAddrMainService.java +++ /dev/null @@ -1,21 +0,0 @@ -package vben.core.module.ass.addr.main; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.service.BaseService; - -import javax.annotation.PostConstruct; - -@Service -public class AssAddrMainService extends BaseService { - - //----------bean注入------------ - @Autowired - private AssAddrMainRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/Apath.java b/vben-core/src/main/java/vben/core/module/ass/addr/pojo/Apath.java deleted file mode 100644 index ce8c325..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/Apath.java +++ /dev/null @@ -1,17 +0,0 @@ -package vben.core.module.ass.addr.pojo; - -import lombok.Data; - -@Data -public class Apath { - private int distance; - - private int duration; - - private String strategy; - - private int tolls; - - - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/Ares.java b/vben-core/src/main/java/vben/core/module/ass/addr/pojo/Ares.java deleted file mode 100644 index 1340f81..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/Ares.java +++ /dev/null @@ -1,18 +0,0 @@ -package vben.core.module.ass.addr.pojo; - -import lombok.Data; - -@Data -public class Ares { - private int status; - - private String info; - - private int count; - - private Aroute route; - - private int dist; - - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/AresCoun.java b/vben-core/src/main/java/vben/core/module/ass/addr/pojo/AresCoun.java deleted file mode 100644 index 3abfe78..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/AresCoun.java +++ /dev/null @@ -1,20 +0,0 @@ -package vben.core.module.ass.addr.pojo; - -import lombok.Data; - -import java.util.List; - -@Data -public class AresCoun { - - private int status; - - private String info; - - private int count; - - private Aroute route; - - private List districts; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/AresProv.java b/vben-core/src/main/java/vben/core/module/ass/addr/pojo/AresProv.java deleted file mode 100644 index 4d70dec..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/AresProv.java +++ /dev/null @@ -1,20 +0,0 @@ -package vben.core.module.ass.addr.pojo; - -import lombok.Data; - -import java.util.List; - -@Data -public class AresProv { - - private int status; - - private String info; - - private int count; - - private Aroute route; - - private List districts; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/Aroute.java b/vben-core/src/main/java/vben/core/module/ass/addr/pojo/Aroute.java deleted file mode 100644 index 33e58d8..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/Aroute.java +++ /dev/null @@ -1,18 +0,0 @@ -package vben.core.module.ass.addr.pojo; - -import lombok.Data; - -import java.util.List; - -@Data -public class Aroute { - - private String origin; - - private String destination; - - private List paths; - - - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/District.java b/vben-core/src/main/java/vben/core/module/ass/addr/pojo/District.java deleted file mode 100644 index 175e423..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/District.java +++ /dev/null @@ -1,22 +0,0 @@ -package vben.core.module.ass.addr.pojo; - -import lombok.Data; - -import java.util.List; - -@Data -public class District { - - private String adcode; - - private String name; - - private String center; - - private String level; - - private String citycode; - - private List districts; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/DistrictCoun.java b/vben-core/src/main/java/vben/core/module/ass/addr/pojo/DistrictCoun.java deleted file mode 100644 index f7ae701..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/DistrictCoun.java +++ /dev/null @@ -1,20 +0,0 @@ -package vben.core.module.ass.addr.pojo; - -import lombok.Data; - -import java.util.List; - -@Data -public class DistrictCoun { - - private String adcode; - - private String name; - - private String center; - - private String level; - - private List districts; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/DistrictProv.java b/vben-core/src/main/java/vben/core/module/ass/addr/pojo/DistrictProv.java deleted file mode 100644 index d96614a..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/pojo/DistrictProv.java +++ /dev/null @@ -1,20 +0,0 @@ -package vben.core.module.ass.addr.pojo; - -import lombok.Data; - -import java.util.List; - -@Data -public class DistrictProv { - - private String adcode; - - private String name; - - private String center; - - private String level; - - private List districts; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/prov/AssAddrProv.java b/vben-core/src/main/java/vben/core/module/ass/addr/prov/AssAddrProv.java deleted file mode 100644 index a6ceb16..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/prov/AssAddrProv.java +++ /dev/null @@ -1,21 +0,0 @@ -package vben.core.module.ass.addr.prov; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseEntity; - -import javax.persistence.Column; -import javax.persistence.Entity; - -@Entity -@Getter -@Setter -@ApiModel("省份信息") -public class AssAddrProv extends BaseEntity { - - @Column(length = 32) - @ApiModelProperty("坐标") - private String cecoo; -} diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/prov/AssAddrProvRepo.java b/vben-core/src/main/java/vben/core/module/ass/addr/prov/AssAddrProvRepo.java deleted file mode 100644 index 0645f76..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/prov/AssAddrProvRepo.java +++ /dev/null @@ -1,7 +0,0 @@ -package vben.core.module.ass.addr.prov; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface AssAddrProvRepo extends JpaRepository { - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/stre/AssAddrStre.java b/vben-core/src/main/java/vben/core/module/ass/addr/stre/AssAddrStre.java deleted file mode 100644 index e82b340..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/stre/AssAddrStre.java +++ /dev/null @@ -1,25 +0,0 @@ -package vben.core.module.ass.addr.stre; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseEntity; - -import javax.persistence.Column; -import javax.persistence.Entity; - -@Entity -@Getter -@Setter -@ApiModel("街道信息") -public class AssAddrStre extends BaseEntity { - - @Column(length = 64) - @ApiModelProperty("坐标") - private String cecoo; - - @Column(length = 32) - @ApiModelProperty("区") - private String dict; -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/ass/addr/stre/AssAddrStreRepo.java b/vben-core/src/main/java/vben/core/module/ass/addr/stre/AssAddrStreRepo.java deleted file mode 100644 index 339227f..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/addr/stre/AssAddrStreRepo.java +++ /dev/null @@ -1,7 +0,0 @@ -package vben.core.module.ass.addr.stre; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface AssAddrStreRepo extends JpaRepository { - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeForm.java b/vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeForm.java deleted file mode 100644 index 764e58c..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeForm.java +++ /dev/null @@ -1,20 +0,0 @@ -package vben.core.module.ass.coge.form; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; - -import javax.persistence.*; - -@Entity -@Getter -@Setter -@ApiModel("代码生成-表单") -public class AssCogeForm extends BaseMainEntity { - - @Lob - @ApiModelProperty("表单大字段") - private String vform; -} diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeFormApi.java b/vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeFormApi.java deleted file mode 100644 index 2d95a4b..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeFormApi.java +++ /dev/null @@ -1,51 +0,0 @@ -package vben.core.module.ass.coge.form; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("ass/coge/form") -@Api(tags = {"在线表单"}) -public class AssCogeFormApi { - - @GetMapping - @ApiOperation("查询在线表单分页") - public R get(String name) { - Sqler sqler = new Sqler("ass_coge_form"); - sqler.addLike("t.name", name); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询在线表单详情") - public R getOne(@PathVariable String id) { - AssCogeForm main = service.findOne(id); - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增在线表单") - public R post(@RequestBody AssCogeForm main) { - return R.ok(service.insert(main)); - } - - @PutMapping - @ApiOperation("更新在线表单") - public R put(@RequestBody AssCogeForm main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除在线表单") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private AssCogeFormService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeFormRepo.java b/vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeFormRepo.java deleted file mode 100644 index 5791c15..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeFormRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.ass.coge.form; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface AssCogeFormRepo extends JpaRepository { - - -} - diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeFormService.java b/vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeFormService.java deleted file mode 100644 index 0f7da77..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/form/AssCogeFormService.java +++ /dev/null @@ -1,21 +0,0 @@ -package vben.core.module.ass.coge.form; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.service.BaseMainService; - -import javax.annotation.PostConstruct; - -@Service -public class AssCogeFormService extends BaseMainService { - - @Autowired - private AssCogeFormRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} - diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeField.java b/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeField.java deleted file mode 100644 index 597cd3f..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeField.java +++ /dev/null @@ -1,48 +0,0 @@ -package vben.core.module.ass.coge.table; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -@Getter -@Setter -@ApiModel("代码生成-字段") -public class AssCogeField { - - @Id - @Column(length = 32) -// @GeneratedValue(generator = "jpa-uuid") -// @GenericGenerator(name = "jpa-uuid", strategy = "uuid") - @ApiModelProperty("主键ID") - private String id; - - @ApiModelProperty("排序号") - private Integer ornum; - - @Column(length = 32) - @ApiModelProperty("字段名称") - private String name; - - @Column(length = 32) - @ApiModelProperty("字段描述") - private String remark; - - @Column(length = 128) - @ApiModelProperty("备注") - private String notes; - - @Column(length = 32) - @ApiModelProperty("字段类型") - private String type; - - @Column(length = 32) - @ApiModelProperty("字段长度") - private String length; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTable.java b/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTable.java deleted file mode 100644 index 873a3a2..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTable.java +++ /dev/null @@ -1,75 +0,0 @@ -package vben.core.module.ass.coge.table; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; - -import javax.persistence.*; -import java.util.ArrayList; -import java.util.List; - -@Entity -@Getter -@Setter -@ApiModel("代码生成-表格") -public class AssCogeTable extends BaseMainEntity { - - @Column(length = 64) - @ApiModelProperty("实体类") - private String bunam;//业务名 - - @ApiModelProperty("排序号") - private Integer ornum; - - @Column(length = 64) - @ApiModelProperty("表描述") - private String remark; - - @Column(length = 64) - @ApiModelProperty("继承基类") - private String baent; - - @Column(length = 32) - @ApiModelProperty("编辑页类型") - private String edtyp; - - @Column(length = 32) - @ApiModelProperty("所属门户ID") - private String porid; - - @Column(length = 32) - @ApiModelProperty("上级菜单ID") - private String pmeid; - - @ApiModelProperty("每行列数") - private Integer pecol; - - @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) - @JoinColumn(name = "tabid") - @OrderBy("ornum ASC") - @ApiModelProperty("字段信息") - private List fields = new ArrayList<>(); - - @ApiModelProperty("新增按钮") - private Boolean addbt; - - @ApiModelProperty("删除按钮") - private Boolean delbt; - - @ApiModelProperty("导入按钮") - private Boolean impbt; - - @ApiModelProperty("导出按钮") - private Boolean expbt; - - @Column(length = 32) - @ApiModelProperty("路由类型") - private String rotyp; - - @Column(length = 32) - @ApiModelProperty("排序字段") - private String orfie; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTableApi.java b/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTableApi.java deleted file mode 100644 index 43e28e8..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTableApi.java +++ /dev/null @@ -1,98 +0,0 @@ -package vben.core.module.ass.coge.table; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.apache.commons.io.IOUtils; -import org.dom4j.DocumentException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import vben.core.module.ass.coge.velocity.GenCode; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; - -@RestController -@RequestMapping("ass/coge/table") -@Api(tags = {"代码生成"}) -public class AssCogeTableApi { - - private String table = "ass_coge_table"; - - @GetMapping - @ApiOperation("查询代码生成主表分页") - public R get(String name) { - Sqler sqler = new Sqler(table); - sqler.addLike("t.name" , name); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("/zip") - @ApiOperation("下载代码生成结果ZIP") - public void getZip(HttpServletResponse response, String id) throws IOException { - byte[] data = service.downloadCode(id); - genCode(response, data); - } - - @GetMapping("/show") - @ApiOperation("预览代码生成结果") - public R getShow(String id) throws IOException { - List genCodes = service.previewCode(id); - return R.ok(genCodes); - } - - - @GetMapping("one/{id}") - @ApiOperation("查询代码生成主表详情") - public R getOne(@PathVariable String id) { - AssCogeTable main = service.findOne(id); - return R.ok(main); - } - - @GetMapping("list") - @ApiOperation("查询代码生成主表列表") - public R getList() { - return R.ok(service.findAll()); - } - - @PostMapping - @ApiOperation("新增代码生成主表") - public R post(@RequestBody AssCogeTable main) throws DocumentException { - return R.ok(service.insert(main)); - } - - @PutMapping - @ApiOperation("修改代码生成主表") - public R put(@RequestBody AssCogeTable main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除代码生成主表") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private AssCogeTableService service; - - //生成zip文件 - private void genCode(HttpServletResponse response, byte[] data) throws IOException { - response.reset(); - SimpleDateFormat sdf = new SimpleDateFormat("MMddHHmmss"); - String time= sdf.format(new Date()); - String fileName="vben-"+time+".zip"; - response.addHeader("Access-Control-Allow-Origin" , "*"); - response.addHeader("Access-Control-Expose-Headers" , "Content-Disposition,download-filename"); - response.setHeader("Content-Disposition" , "attachment; filename="+fileName); - response.setHeader("download-filename" , fileName); - response.addHeader("Content-Length" , String.valueOf(data.length)); - response.setContentType("application/octet-stream; charset=UTF-8"); - IOUtils.write(data, response.getOutputStream()); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTableRepo.java b/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTableRepo.java deleted file mode 100644 index e160604..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTableRepo.java +++ /dev/null @@ -1,11 +0,0 @@ -package vben.core.module.ass.coge.table; - -import org.springframework.data.jpa.repository.JpaRepository; - - -public interface AssCogeTableRepo extends JpaRepository { - - AssCogeTable findByName(String name); - -} - diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTableService.java b/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTableService.java deleted file mode 100644 index b0e7e68..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/table/AssCogeTableService.java +++ /dev/null @@ -1,117 +0,0 @@ -package vben.core.module.ass.coge.table; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.IOUtils; -import org.apache.velocity.Template; -import org.apache.velocity.VelocityContext; -import org.apache.velocity.app.Velocity; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.service.BaseMainService; -import vben.core.module.ass.coge.velocity.GenCode; -import vben.core.module.ass.coge.velocity.VelocityInitializer; -import vben.core.module.ass.coge.velocity.VelocityUtils; - -import javax.annotation.PostConstruct; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.List; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; - - -@Service -@Slf4j -public class AssCogeTableService extends BaseMainService { - - public List previewCode(String id) - { - AssCogeTable table = repo.findById(id).get(); - List genCodes=new ArrayList<>(); -// Map dataMap = new LinkedHashMap<>(); - // 查询表信息 - // 设置主子表信息 -// setSubTable(table); -// // 设置主键列信息 -// setPkColumn(table); - VelocityInitializer.initVelocity(); - - VelocityContext context = VelocityUtils.prepareContext(table); - - // 获取模板列表 - List templates = VelocityUtils.getTemplateList(table); - for (String template : templates) - { - // 渲染模板 - StringWriter sw = new StringWriter(); - Template tpl = Velocity.getTemplate(template, "UTF-8"); - tpl.merge(context, sw); - GenCode genCode=new GenCode(); - String[] arr=template.split("/"); - genCode.setTitle(arr[arr.length-1].replace(".vm","")); - genCode.setContent( sw.toString()); - genCodes.add(genCode); - } - return genCodes; - } - - public byte[] downloadCode(String id) - { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - ZipOutputStream zip = new ZipOutputStream(outputStream); - generatorCode(id, zip); - IOUtils.closeQuietly(zip); - return outputStream.toByteArray(); - } - - /** - * 查询表信息并生成代码 - */ - private void generatorCode(String id, ZipOutputStream zip) - { - // 查询表信息 - AssCogeTable table = repo.findById(id).get(); - // 设置主子表信息 -// setPkColumn(table); - - VelocityInitializer.initVelocity(); - - VelocityContext context = VelocityUtils.prepareContext(table); - - // 获取模板列表 -// List templates = VelocityUtils.getTemplateList(table.getTplCategory()); - List templates = VelocityUtils.getTemplateList(table); - for (String template : templates) - { - // 渲染模板 - StringWriter sw = new StringWriter(); - Template tpl = Velocity.getTemplate(template, "UTF-8"); - tpl.merge(context, sw); - try - { - // 添加到zip - zip.putNextEntry(new ZipEntry(VelocityUtils.getFileName(template, table))); - IOUtils.write(sw.toString(), zip, "UTF-8"); - IOUtils.closeQuietly(sw); - zip.flush(); - zip.closeEntry(); - } - catch (IOException e) - { - log.error("渲染模板失败,表名:" + table.getName(), e); - } - } - } - - //----------bean注入------------ - @Autowired - private AssCogeTableRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } -} - diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenCode.java b/vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenCode.java deleted file mode 100644 index b1608fc..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenCode.java +++ /dev/null @@ -1,15 +0,0 @@ -package vben.core.module.ass.coge.velocity; - -import lombok.Data; - -@Data -public class GenCode { - - private String type; - - private String title; - - private String path; - - private String content; -} diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenConfig.java b/vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenConfig.java deleted file mode 100644 index 4ad7dd3..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenConfig.java +++ /dev/null @@ -1,73 +0,0 @@ -package vben.core.module.ass.coge.velocity; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.PropertySource; -import org.springframework.stereotype.Component; - -/** - * 读取代码生成相关配置 - * - * @author ruoyi - */ -@Component -@ConfigurationProperties(prefix = "gen") -@PropertySource(value = { "classpath:generator.yml" }) -public class GenConfig -{ - /** 作者 */ - public static String author; - - /** 生成包路径 */ - public static String packageName; - - /** 自动去除表前缀,默认是false */ - public static boolean autoRemovePre; - - /** 表前缀(类名不会包含表前缀) */ - public static String tablePrefix; - - public static String getAuthor() - { - return author; - } - - @Value("${author}") - public void setAuthor(String author) - { - GenConfig.author = author; - } - - public static String getPackageName() - { - return packageName; - } - - @Value("${packageName}") - public void setPackageName(String packageName) - { - GenConfig.packageName = packageName; - } - - public static boolean getAutoRemovePre() - { - return autoRemovePre; - } - - @Value("${autoRemovePre}") - public void setAutoRemovePre(boolean autoRemovePre) - { - GenConfig.autoRemovePre = autoRemovePre; - } - - public static String getTablePrefix() - { - return tablePrefix; - } - - @Value("${tablePrefix}") - public void setTablePrefix(String tablePrefix) - { - GenConfig.tablePrefix = tablePrefix; - } -} diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenConstants.java b/vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenConstants.java deleted file mode 100644 index 2878efa..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenConstants.java +++ /dev/null @@ -1,117 +0,0 @@ -package vben.core.module.ass.coge.velocity; - -/** - * 代码生成通用常量 - * - * @author ruoyi - */ -public class GenConstants -{ - /** 单表(增删改查) */ - public static final String TPL_CRUD = "crud"; - - /** 树表(增删改查) */ - public static final String TPL_TREE = "tree"; - - /** 主子表(增删改查) */ - public static final String TPL_SUB = "sub"; - - /** 树编码字段 */ - public static final String TREE_CODE = "treeCode"; - - /** 树父编码字段 */ - public static final String TREE_PARENT_CODE = "treeParentCode"; - - /** 树名称字段 */ - public static final String TREE_NAME = "treeName"; - - /** 上级菜单ID字段 */ - public static final String PARENT_MENU_ID = "parentMenuId"; - - /** 上级菜单名称字段 */ - public static final String PARENT_MENU_NAME = "parentMenuName"; - - /** 数据库字符串类型 */ - public static final String[] COLUMNTYPE_STR = { "char", "varchar", "nvarchar", "varchar2" }; - - /** 数据库文本类型 */ - public static final String[] COLUMNTYPE_TEXT = { "tinytext", "text", "mediumtext", "longtext" }; - - /** 数据库时间类型 */ - public static final String[] COLUMNTYPE_TIME = { "datetime", "time", "date", "timestamp" }; - - /** 数据库数字类型 */ - public static final String[] COLUMNTYPE_NUMBER = { "tinyint", "smallint", "mediumint", "int", "number", "integer", - "bit", "bigint", "float", "double", "decimal" }; - - /** 页面不需要编辑字段 */ - public static final String[] COLUMNNAME_NOT_EDIT = { "id", "create_by", "create_time", "del_flag" }; - - /** 页面不需要显示的列表字段 */ - public static final String[] COLUMNNAME_NOT_LIST = { "id", "create_by", "create_time", "del_flag", "update_by", - "update_time" }; - - /** 页面不需要查询字段 */ - public static final String[] COLUMNNAME_NOT_QUERY = { "id", "create_by", "create_time", "del_flag", "update_by", - "update_time", "remark" }; - - /** Entity基类字段 */ - public static final String[] BASE_ENTITY = { "createBy", "createTime", "updateBy", "updateTime", "remark" }; - - /** Tree基类字段 */ - public static final String[] TREE_ENTITY = { "parentName", "parentId", "orderNum", "ancestors", "children" }; - - /** 文本框 */ - public static final String HTML_INPUT = "input"; - - /** 文本域 */ - public static final String HTML_TEXTAREA = "textarea"; - - /** 下拉框 */ - public static final String HTML_SELECT = "select"; - - /** 单选框 */ - public static final String HTML_RADIO = "radio"; - - /** 复选框 */ - public static final String HTML_CHECKBOX = "checkbox"; - - /** 日期控件 */ - public static final String HTML_DATETIME = "datetime"; - - /** 图片上传控件 */ - public static final String HTML_IMAGE_UPLOAD = "imageUpload"; - - /** 文件上传控件 */ - public static final String HTML_FILE_UPLOAD = "fileUpload"; - - /** 富文本控件 */ - public static final String HTML_EDITOR = "editor"; - - /** 字符串类型 */ - public static final String TYPE_STRING = "String"; - - /** 整型 */ - public static final String TYPE_INTEGER = "Integer"; - - /** 长整型 */ - public static final String TYPE_LONG = "Long"; - - /** 浮点型 */ - public static final String TYPE_DOUBLE = "Double"; - - /** 高精度计算类型 */ - public static final String TYPE_BIGDECIMAL = "BigDecimal"; - - /** 时间类型 */ - public static final String TYPE_DATE = "Date"; - - /** 模糊查询 */ - public static final String QUERY_LIKE = "LIKE"; - - /** 相等查询 */ - public static final String QUERY_EQ = "EQ"; - - /** 需要 */ - public static final String REQUIRE = "1"; -} diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenUtils.java b/vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenUtils.java deleted file mode 100644 index abefa4f..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/velocity/GenUtils.java +++ /dev/null @@ -1,254 +0,0 @@ -package vben.core.module.ass.coge.velocity; - -import org.apache.commons.lang3.RegExUtils; -import vben.core.common.utils.ruoyi.StringUtils; - -import java.util.Arrays; - -/** - * 代码生成器 工具类 - * - * @author ruoyi - */ -public class GenUtils -{ - /** - * 初始化表信息 - */ -// public static void initTable(AssCogeTable genTable, String operName) -// { -// genTable.setClassName(convertClassName(genTable.getTableName())); -// genTable.setPackageName(GenConfig.getPackageName()); -// genTable.setModuleName(getModuleName(GenConfig.getPackageName())); -// genTable.setBusinessName(getBusinessName(genTable.getTableName())); -// genTable.setFunctionName(replaceText(genTable.getTableComment())); -// genTable.setFunctionAuthor(GenConfig.getAuthor()); -//// genTable.setCreateBy(operName); -// } - - /** - * 初始化列属性字段 - */ -// public static void initColumnField(AssCogeField column, AssCogeTable table) -// { -// String dataType = getDbType(column.getColumnType()); -// String columnName = column.getColumnName(); -// column.setTableId(table.getTableId()); -//// column.setCreateBy(table.getCreateBy()); -// // 设置java字段名 -// 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)) -// { -// // 字符串长度超过500设置为文本域 -// Integer columnLength = getColumnLength(column.getColumnType()); -// String htmlType = columnLength >= 500 || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType) ? GenConstants.HTML_TEXTAREA : GenConstants.HTML_INPUT; -// column.setHtmlType(htmlType); -// } -// else if (arraysContains(GenConstants.COLUMNTYPE_TIME, dataType)) -// { -// column.setJavaType(GenConstants.TYPE_DATE); -// column.setHtmlType(GenConstants.HTML_DATETIME); -// } -// else if (arraysContains(GenConstants.COLUMNTYPE_NUMBER, dataType)) -// { -// column.setHtmlType(GenConstants.HTML_INPUT); -// -// // 如果是浮点型 统一用BigDecimal -// String[] str = StringUtils.split(StringUtils.substringBetween(column.getColumnType(), "(", ")"), ","); -// if (str != null && str.length == 2 && Integer.parseInt(str[1]) > 0) -// { -// column.setJavaType(GenConstants.TYPE_BIGDECIMAL); -// } -// // 如果是整形 -// else if (str != null && str.length == 1 && Integer.parseInt(str[0]) <= 10) -// { -// column.setJavaType(GenConstants.TYPE_INTEGER); -// } -// // 长整形 -// else -// { -// column.setJavaType(GenConstants.TYPE_LONG); -// } -// } -// -// // 插入字段(默认所有字段都需要插入) -// column.setIsInsert(GenConstants.REQUIRE); -// -// // 编辑字段 -// if (!arraysContains(GenConstants.COLUMNNAME_NOT_EDIT, columnName) && !column.isPk()) -// { -// column.setIsEdit(GenConstants.REQUIRE); -// } -// // 列表字段 -// if (!arraysContains(GenConstants.COLUMNNAME_NOT_LIST, columnName) && !column.isPk()) -// { -// column.setIsList(GenConstants.REQUIRE); -// } -// // 查询字段 -// if (!arraysContains(GenConstants.COLUMNNAME_NOT_QUERY, columnName) && !column.isPk()) -// { -// column.setIsQuery(GenConstants.REQUIRE); -// } -// -// // 查询字段类型 -// if (StringUtils.endsWithIgnoreCase(columnName, "name")) -// { -// column.setQueryType(GenConstants.QUERY_LIKE); -// } -// // 状态字段设置单选框 -// if (StringUtils.endsWithIgnoreCase(columnName, "status")) -// { -// column.setHtmlType(GenConstants.HTML_RADIO); -// } -// // 类型&性别字段设置下拉框 -// else if (StringUtils.endsWithIgnoreCase(columnName, "type") -// || StringUtils.endsWithIgnoreCase(columnName, "sex")) -// { -// column.setHtmlType(GenConstants.HTML_SELECT); -// } -// // 图片字段设置图片上传控件 -// else if (StringUtils.endsWithIgnoreCase(columnName, "image")) -// { -// column.setHtmlType(GenConstants.HTML_IMAGE_UPLOAD); -// } -// // 文件字段设置文件上传控件 -// else if (StringUtils.endsWithIgnoreCase(columnName, "file")) -// { -// column.setHtmlType(GenConstants.HTML_FILE_UPLOAD); -// } -// // 内容字段设置富文本控件 -// else if (StringUtils.endsWithIgnoreCase(columnName, "content")) -// { -// column.setHtmlType(GenConstants.HTML_EDITOR); -// } -// } - - /** - * 校验数组是否包含指定值 - * - * @param arr 数组 - * @param targetValue 值 - * @return 是否包含 - */ - public static boolean arraysContains(String[] arr, String targetValue) - { - return Arrays.asList(arr).contains(targetValue); - } - - /** - * 获取模块名 - * - * @param packageName 包名 - * @return 模块名 - */ - public static String getModuleName(String packageName) - { - int lastIndex = packageName.lastIndexOf("."); - int nameLength = packageName.length(); - return StringUtils.substring(packageName, lastIndex + 1, nameLength); - } - - /** - * 获取业务名 - * - * @param tableName 表名 - * @return 业务名 - */ - public static String getBusinessName(String tableName) - { - int lastIndex = tableName.lastIndexOf("_"); - int nameLength = tableName.length(); - return StringUtils.substring(tableName, lastIndex + 1, nameLength); - } - - /** - * 表名转换成Java类名 - * - * @param tableName 表名称 - * @return 类名 - */ - public static String convertClassName(String tableName) - { - boolean autoRemovePre = GenConfig.getAutoRemovePre(); - String tablePrefix = GenConfig.getTablePrefix(); - if (autoRemovePre && StringUtils.isNotEmpty(tablePrefix)) - { - String[] searchList = StringUtils.split(tablePrefix, ","); - tableName = replaceFirst(tableName, searchList); - } - return StringUtils.convertToCamelCase(tableName); - } - - /** - * 批量替换前缀 - * - * @param replacementm 替换值 - * @param searchList 替换列表 - * @return - */ - public static String replaceFirst(String replacementm, String[] searchList) - { - String text = replacementm; - for (String searchString : searchList) - { - if (replacementm.startsWith(searchString)) - { - text = replacementm.replaceFirst(searchString, ""); - break; - } - } - return text; - } - - /** - * 关键字替换 - * - * @param text 需要被替换的名字 - * @return 替换后的名字 - */ - public static String replaceText(String text) - { - return RegExUtils.replaceAll(text, "(?:表|若依)", ""); - } - - /** - * 获取数据库类型字段 - * - * @param columnType 列类型 - * @return 截取后的列类型 - */ - public static String getDbType(String columnType) - { - if (StringUtils.indexOf(columnType, "(") > 0) - { - return StringUtils.substringBefore(columnType, "("); - } - else - { - return columnType; - } - } - - /** - * 获取字段长度 - * - * @param columnType 列类型 - * @return 截取后的列类型 - */ - public static Integer getColumnLength(String columnType) - { - if (StringUtils.indexOf(columnType, "(") > 0) - { - String length = StringUtils.substringBetween(columnType, "(", ")"); - return Integer.valueOf(length); - } - else - { - return 0; - } - } -} diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/velocity/VelocityInitializer.java b/vben-core/src/main/java/vben/core/module/ass/coge/velocity/VelocityInitializer.java deleted file mode 100644 index c0a67f6..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/velocity/VelocityInitializer.java +++ /dev/null @@ -1,34 +0,0 @@ -package vben.core.module.ass.coge.velocity; - -import org.apache.velocity.app.Velocity; - -import java.util.Properties; - -/** - * VelocityEngine工厂 - * - * @author ruoyi - */ -public class VelocityInitializer -{ - /** - * 初始化vm方法 - */ - public static void initVelocity() - { - Properties p = new Properties(); - try - { - // 加载classpath目录下的vm文件 - p.setProperty("resource.loader.file.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); - // 定义字符集 - p.setProperty(Velocity.INPUT_ENCODING, "UTF-8"); - // 初始化Velocity引擎,指定配置Properties - Velocity.init(p); - } - catch (Exception e) - { - throw new RuntimeException(e); - } - } -} diff --git a/vben-core/src/main/java/vben/core/module/ass/coge/velocity/VelocityUtils.java b/vben-core/src/main/java/vben/core/module/ass/coge/velocity/VelocityUtils.java deleted file mode 100644 index daaddc6..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/coge/velocity/VelocityUtils.java +++ /dev/null @@ -1,471 +0,0 @@ -package vben.core.module.ass.coge.velocity; - -import com.alibaba.fastjson2.JSONObject; -//import com.ruoyi.common.constant.GenConstants; -//import com.ruoyi.common.utils.DateUtils; -//import com.ruoyi.common.utils.StringUtils; -//import com.ruoyi.generator.domain.GenTable; -//import com.ruoyi.generator.domain.GenTableColumn; -import org.apache.velocity.VelocityContext; -import vben.core.module.ass.coge.table.AssCogeField; -import vben.core.module.ass.coge.table.AssCogeTable; -import vben.core.common.utils.ruoyi.DateUtils; -import vben.core.common.utils.ruoyi.StringUtils; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; - -/** - * 模板处理工具类 - * - * @author ruoyi - */ -public class VelocityUtils -{ - /** 项目空间路径 */ - private static final String PROJECT_PATH = "main/java"; - - /** mybatis空间路径 */ - private static final String MYBATIS_PATH = "main/resources/mapper"; - - /** 默认上级菜单,系统工具 */ - private static final String DEFAULT_PARENT_MENU_ID = "3"; - - /** - * 设置模板变量信息 - * - * @return 模板列表 - */ - public static VelocityContext prepareContext(AssCogeTable genTable) - { - String basePackageName="vben.admin."; - String[] arr= genTable.getName().split("_"); - String modulePackageName=""; - for (String str : arr) { - modulePackageName+= str+"."; - } - modulePackageName = modulePackageName.substring(0, modulePackageName.length() - 1); - String packageName = basePackageName+modulePackageName; - -// String moduleName = genTable.getModuleName(); -// String businessName = genTable.getBusinessName(); -// -// String tplCategory = genTable.getTplCategory(); -// String functionName = genTable.getFunctionName(); - - VelocityContext velocityContext = new VelocityContext(); -// velocityContext.put("tplCategory", genTable.getTplCategory()); -// velocityContext.put("tableName", genTable.getTableName()); -// velocityContext.put("functionName", StringUtils.isNotEmpty(functionName) ? functionName : "【请填写功能名称】"); -// velocityContext.put("ClassName", genTable.getClassName()); -// velocityContext.put("className", StringUtils.uncapitalize(genTable.getClassName())); -// velocityContext.put("moduleName", genTable.getModuleName()); -// velocityContext.put("BusinessName", StringUtils.capitalize(genTable.getBusinessName())); -// velocityContext.put("businessName", genTable.getBusinessName()); -// velocityContext.put("basePackage", getPackagePrefix(packageName)); - velocityContext.put("packageName", packageName); - velocityContext.put("fields", genTable.getFields()); - -// velocityContext.put("author", genTable.getFunctionAuthor()); - velocityContext.put("datetime", DateUtils.getDate()); -// velocityContext.put("pkColumn", genTable.getPkColumn()); - velocityContext.put("importList", getImportList(genTable)); -// 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)) -// { -// setTreeVelocityContext(velocityContext, genTable); -// } -// if (GenConstants.TPL_SUB.equals(tplCategory)) -// { -// setSubVelocityContext(velocityContext, genTable); -// } - return velocityContext; - } - -// public static void setMenuVelocityContext(VelocityContext context, GenTable genTable) -// { -// String options = genTable.getOptions(); -// JSONObject paramsObj = JSON.parseObject(options); -// String parentMenuId = getParentMenuId(paramsObj); -// context.put("parentMenuId", parentMenuId); -// } - -// public static void setTreeVelocityContext(VelocityContext context, GenTable genTable) -// { -// String options = genTable.getOptions(); -// JSONObject paramsObj = JSON.parseObject(options); -// String treeCode = getTreecode(paramsObj); -// String treeParentCode = getTreeParentCode(paramsObj); -// String treeName = getTreeName(paramsObj); -// -// context.put("treeCode", treeCode); -// context.put("treeParentCode", treeParentCode); -// context.put("treeName", treeName); -// context.put("expandColumn", getExpandColumn(genTable)); -// if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) -// { -// context.put("tree_parent_code", paramsObj.getString(GenConstants.TREE_PARENT_CODE)); -// } -// if (paramsObj.containsKey(GenConstants.TREE_NAME)) -// { -// context.put("tree_name", paramsObj.getString(GenConstants.TREE_NAME)); -// } -// } - - public static void setSubVelocityContext(VelocityContext context, AssCogeTable genTable) - { -// AssCogeTable subTable = genTable.getSubTable(); -// String subTableName = genTable.getSubTableName(); -// String subTableFkName = genTable.getSubTableFkName(); -// String subClassName = genTable.getSubTable().getClassName(); -// String subTableFkClassName = StringUtils.convertToCamelCase(subTableFkName); -// -// context.put("subTable", subTable); -// context.put("subTableName", subTableName); -// context.put("subTableFkName", subTableFkName); -// context.put("subTableFkClassName", subTableFkClassName); -// context.put("subTableFkclassName", StringUtils.uncapitalize(subTableFkClassName)); -// context.put("subClassName", subClassName); -// context.put("subclassName", StringUtils.uncapitalize(subClassName)); -// context.put("subImportList", getImportList(genTable.getSubTable())); - } - - /** - * 获取模板信息 - * - * @return 模板列表 - */ - public static List getTemplateList(AssCogeTable table) - { - List templates = new ArrayList(); - templates.add("vms/java/entity.java.vm"); - templates.add("vms/java/repo.java.vm"); - templates.add("vms/java/service.java.vm"); - templates.add("vms/java/api.java.vm"); - - if("popup".equals(table.getEdtyp())){ - templates.add("vms/vue/popup/index.vue.vm"); - templates.add("vms/vue/popup/edit.vue.vm"); - }else if("drawer".equals(table.getEdtyp())){ - templates.add("vms/vue/drawer/index.vue.vm"); - templates.add("vms/vue/drawer/edit.vue.vm"); - }else{ - templates.add("vms/vue/tab/index.vue.vm"); - templates.add("vms/vue/tab/edit.vue.vm"); - } - if("front".equals(table.getRotyp())){ - templates.add("vms/route/route.json.vm"); - }else if("back".equals(table.getRotyp())){ - templates.add("vms/route/route.sql.vm"); - } - - -// templates.add("vms/java/domain.java.vm"); -// templates.add("vms/java/mapper.java.vm"); -// templates.add("vms/java/service.java.vm"); -// templates.add("vms/java/serviceImpl.java.vm"); -// templates.add("vms/java/controller.java.vm"); -// templates.add("vms/xml/mapper.xml.vm"); -// templates.add("vms/sql/sql.vm"); -// templates.add("vms/js/api.js.vm"); -// if (GenConstants.TPL_CRUD.equals(tplCategory)) -// { -// templates.add("vms/vue/index.vue.vm"); -// } -// else if (GenConstants.TPL_TREE.equals(tplCategory)) -// { -// templates.add("vms/vue/index-tree.vue.vm"); -// } -// else if (GenConstants.TPL_SUB.equals(tplCategory)) -// { -// templates.add("vms/vue/index.vue.vm"); -// templates.add("vms/java/sub-domain.java.vm"); -// } - return templates; - } - - /** - * 获取文件名 - */ - public static String getFileName(String template, AssCogeTable genTable) - { - // 文件名称 - String fileName = ""; - // 包路径 -// String packageName = genTable.getPackageName(); - String packageName = "fdsafdsa"; - // 模块名 -// String moduleName = genTable.getModuleName(); - // 大写类名 -// String className = genTable.getClassName(); - String className = genTable.getBunam(); - // 业务名称 -// String businessName = genTable.getBusinessName(); - String businessName = genTable.getBunam(); - - String javaPath = PROJECT_PATH + "/" + StringUtils.replace(packageName, ".", "/"); -// String mybatisPath = MYBATIS_PATH + "/" + moduleName; - String vuePath = "vue"; - if (template.contains("entity.java.vm")) - { - fileName = StringUtils.format("java/{}/{}.java", - genTable.getName().replace("_","/"), className); - } - else if (template.contains("repo.java.vm")) - { - fileName = StringUtils.format("java/{}/{}Repo.java", - genTable.getName().replace("_","/"), className); - } - else if (template.contains("service.java.vm")) - { - fileName = StringUtils.format("java/{}/{}Service.java", - genTable.getName().replace("_","/"), className); - }else if (template.contains("api.java.vm")) - { - fileName = StringUtils.format("java/{}/{}Api.java", - genTable.getName().replace("_","/"), className); - }else if (template.contains("index.vue.vm")) - { - fileName = StringUtils.format("vue/{}/index.vue", - genTable.getName().replace("_","/")); - }else if (template.contains("edit.vue.vm")) - { - fileName = StringUtils.format("vue/{}/edit.vue", - genTable.getName().replace("_","/")); - }else if (template.contains("route.json.vm")) - { - fileName = StringUtils.format("route/{}/route.json", - genTable.getName().replace("_","/")); - }else if (template.contains("route.sql.vm")) - { - fileName = StringUtils.format("route/{}/route.sql", - genTable.getName().replace("_","/")); - } -// else if (template.contains("domain.java.vm")) -// { -// fileName = StringUtils.format("{}/domain/{}.java", javaPath, className); -// } -// else if (template.contains("mapper.java.vm")) -// { -// fileName = StringUtils.format("{}/mapper/{}Mapper.java", javaPath, className); -// } -//// else if (template.contains("service.java.vm")) -//// { -//// fileName = StringUtils.format("{}/service/I{}Service.java", javaPath, className); -//// } -// else if (template.contains("serviceImpl.java.vm")) -// { -// fileName = StringUtils.format("{}/service/impl/{}ServiceImpl.java", javaPath, className); -// } -// else if (template.contains("controller.java.vm")) -// { -// fileName = StringUtils.format("{}/controller/{}Controller.java", javaPath, className); -// } -// else if (template.contains("mapper.xml.vm")) -// { -// fileName = StringUtils.format("{}/{}Mapper.xml", mybatisPath, className); -// } -// else if (template.contains("sql.vm")) -// { -// fileName = businessName + "Menu.sql"; -// } -// else if (template.contains("api.js.vm")) -// { -// fileName = StringUtils.format("{}/api/{}/{}.js", vuePath, moduleName, businessName); -// } -// else if (template.contains("index.vue.vm")) -// { -// fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); -// } -// else if (template.contains("index-tree.vue.vm")) -// { -// fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); -// } - return fileName; - } - - /** - * 获取包前缀 - * - * @param packageName 包名称 - * @return 包前缀名称 - */ - public static String getPackagePrefix(String packageName) - { - int lastIndex = packageName.lastIndexOf("."); - return StringUtils.substring(packageName, 0, lastIndex); - } - - /** - * 根据列类型获取导入包 - * - * @param genTable 业务表对象 - * @return 返回需要导入的包列表 - */ - public static HashSet getImportList(AssCogeTable genTable) - { - List columns = genTable.getFields(); -// AssCogeTable subGenTable = genTable.getSubTable(); - HashSet importList = new HashSet(); -// if (StringUtils.isNotNull(subGenTable)) -// { -// importList.add("java.util.List"); -// } -// for (GenTableColumn column : columns) -// { -// if (!column.isSuperColumn() && GenConstants.TYPE_DATE.equals(column.getJavaType())) -// { -// importList.add("java.util.Date"); -// importList.add("com.fasterxml.jackson.annotation.JsonFormat"); -// } -// else if (!column.isSuperColumn() && GenConstants.TYPE_BIGDECIMAL.equals(column.getJavaType())) -// { -// importList.add("java.math.BigDecimal"); -// } -// } - 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 (AssCogeField 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() + "'"); -// } -// } -// } - - /** - * 获取权限前缀 - * - * @param moduleName 模块名称 - * @param businessName 业务名称 - * @return 返回权限前缀 - */ - public static String getPermissionPrefix(String moduleName, String businessName) - { - return StringUtils.format("{}:{}", moduleName, businessName); - } - - /** - * 获取上级菜单ID字段 - * - * @param paramsObj 生成其他选项 - * @return 上级菜单ID字段 - */ -// public static String getParentMenuId(JSONObject paramsObj) -// { -// if (StringUtils.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID) -// && StringUtils.isNotEmpty(paramsObj.getString(GenConstants.PARENT_MENU_ID))) -// { -// return paramsObj.getString(GenConstants.PARENT_MENU_ID); -// } -// return DEFAULT_PARENT_MENU_ID; -// } - - /** - * 获取树编码 - * - * @param paramsObj 生成其他选项 - * @return 树编码 - */ - public static String getTreecode(JSONObject paramsObj) - { - if (paramsObj.containsKey(GenConstants.TREE_CODE)) - { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_CODE)); - } - return StringUtils.EMPTY; - } - - /** - * 获取树父编码 - * - * @param paramsObj 生成其他选项 - * @return 树父编码 - */ - public static String getTreeParentCode(JSONObject paramsObj) - { - if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) - { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_PARENT_CODE)); - } - return StringUtils.EMPTY; - } - - /** - * 获取树名称 - * - * @param paramsObj 生成其他选项 - * @return 树名称 - */ - public static String getTreeName(JSONObject paramsObj) - { - if (paramsObj.containsKey(GenConstants.TREE_NAME)) - { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_NAME)); - } - return StringUtils.EMPTY; - } - - /** - * 获取需要在哪一列上面显示展开按钮 - * - * @param genTable 业务表对象 - * @return 展开按钮列序号 - */ -// public static int getExpandColumn(AssCogeTable genTable) -// { -// String options = genTable.getOptions(); -// JSONObject paramsObj = JSON.parseObject(options); -// String treeName = paramsObj.getString(GenConstants.TREE_NAME); -// int num = 0; -// for (AssCogeField column : genTable.getFields()) -// { -//// if (column.isList()) -//// { -//// num++; -//// String columnName = column.getColumnName(); -//// if (columnName.equals(treeName)) -//// { -//// break; -//// } -//// } -// } -// return num; -// } -} diff --git a/vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCate.java b/vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCate.java deleted file mode 100644 index e66fb0c..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCate.java +++ /dev/null @@ -1,19 +0,0 @@ -package vben.core.module.ass.dict.cate; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseCateEntity; - -import javax.persistence.Entity; - -@Entity -@Getter -@Setter -@ApiModel("字典分类") -public class AssDictCate extends BaseCateEntity { - - @ApiModelProperty("备注") - private String notes; -} diff --git a/vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCateApi.java b/vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCateApi.java deleted file mode 100644 index 0be97d7..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCateApi.java +++ /dev/null @@ -1,54 +0,0 @@ -package vben.core.module.ass.dict.cate; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("ass/dict/cate") -@Api(tags = {"字典分类"}) -public class AssDictCateApi { - - private String table = "ass_dict_cate"; - - @GetMapping - @ApiOperation("查询字典分类分页") - public R get(String name) { - Sqler sqler = new Sqler(table); - sqler.addLike("t.name", name); - sqler.addSelect("t.notes,t.ornum"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询字典分类详情") - public R getOne(@PathVariable String id) { - AssDictCate cate = service.findOne(id); - return R.ok(cate); - } - - @PostMapping - @ApiOperation("新增字典分类详情") - public R post(@RequestBody AssDictCate cate) { - return R.ok(service.insert(cate)); - } - - @PutMapping - @ApiOperation("修改字典分类详情") - public R put(@RequestBody AssDictCate cate) { - return R.ok(service.update(cate)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除字典分类详情") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private AssDictCateService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCateRepo.java b/vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCateRepo.java deleted file mode 100644 index 431af92..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCateRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.core.module.ass.dict.cate; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface AssDictCateRepo extends JpaRepository { - - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCateService.java b/vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCateService.java deleted file mode 100644 index 27cd242..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/dict/cate/AssDictCateService.java +++ /dev/null @@ -1,27 +0,0 @@ -package vben.core.module.ass.dict.cate; - -import vben.core.common.mvc.service.BaseCateService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; - -@Service -public class AssDictCateService extends BaseCateService { - - - - - - - //----------bean注入------------ - @Autowired - private AssDictCateRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictData.java b/vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictData.java deleted file mode 100644 index c890d13..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictData.java +++ /dev/null @@ -1,28 +0,0 @@ -package vben.core.module.ass.dict.data; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; - -import javax.persistence.Column; -import javax.persistence.Entity; - -@Entity -@Getter -@Setter -@ApiModel("字典数据") -public class AssDictData extends BaseMainEntity { - - @Column(length = 32) - @ApiModelProperty("数据编码") - private String code; - - @ApiModelProperty("排序号") - private Integer ornum; - - @Column(length = 32) - @ApiModelProperty("字典ID") - private String maiid; -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictDataApi.java b/vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictDataApi.java deleted file mode 100644 index 78d0eb3..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictDataApi.java +++ /dev/null @@ -1,73 +0,0 @@ -package vben.core.module.ass.dict.data; - -import cn.hutool.core.util.StrUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - - -@RestController -@RequestMapping("ass/dict/data") -@Api(tags = {"字典数据"}) -public class AssDictDataApi { - - private String table = "ass_dict_data"; - - @GetMapping - @ApiOperation("查询字典数据分页") - public R get(String name, String maiid) { - Sqler sqler = new Sqler(table); - if(StrUtil.isNotBlank(name)){ - sqler.addWhere("(t.name like ? or t.id like ?)","%"+name+"%","%"+name+"%"); - } - sqler.addEqual("t.maiid", maiid); - sqler.addSelect("t.notes,t.ornum,t.code"); - sqler.addOrder("t.ornum"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("list") - @ApiOperation("查询字典数据列表") - public R getList(String maiid) { - Sqler sqler = new Sqler(table); - sqler.addEqual("t.maiid",maiid); - sqler.addOrder("t.ornum"); - return R.ok( jdbcDao.findIdNameList(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询字典数据详情") - public R getOne(@PathVariable String id) { - AssDictData main = service.findOne(id); - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增字典数据") - public R post(@RequestBody AssDictData main) { - return R.ok(service.insert(main)); - } - - @PutMapping - @ApiOperation("修改字典数据") - public R put(@RequestBody AssDictData main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除字典数据") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private AssDictDataService service; - - @Autowired - private JdbcDao jdbcDao; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictDataRepo.java b/vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictDataRepo.java deleted file mode 100644 index c8c13bd..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictDataRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.ass.dict.data; - -import org.springframework.data.jpa.repository.JpaRepository; - - -public interface AssDictDataRepo extends JpaRepository { - -} - diff --git a/vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictDataService.java b/vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictDataService.java deleted file mode 100644 index b1794fc..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/dict/data/AssDictDataService.java +++ /dev/null @@ -1,31 +0,0 @@ -package vben.core.module.ass.dict.data; - -import vben.core.common.mvc.service.BaseMainService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; - - -@Service -public class AssDictDataService extends BaseMainService { - - - - - - - - - //----------bean注入------------ - @Autowired - private AssDictDataRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - - -} - diff --git a/vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMain.java b/vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMain.java deleted file mode 100644 index 82a8a3b..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMain.java +++ /dev/null @@ -1,20 +0,0 @@ -package vben.core.module.ass.dict.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; - -import javax.persistence.Entity; - -@Entity -@Getter -@Setter -@ApiModel("字典信息") -public class AssDictMain extends BaseMainEntity { - - @ApiModelProperty("排序号") - private Integer ornum; - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMainApi.java b/vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMainApi.java deleted file mode 100644 index 6319f07..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMainApi.java +++ /dev/null @@ -1,65 +0,0 @@ -package vben.core.module.ass.dict.main; - -import cn.hutool.core.util.StrUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import org.dom4j.DocumentException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("ass/dict/main") -@Api(tags = {"字典信息"}) -public class AssDictMainApi { - - private String table = "ass_dict_main"; - - @GetMapping - @ApiOperation("查询字典主信息分页") - public R get(String name) { - Sqler sqler = new Sqler(table); - if(StrUtil.isNotBlank(name)){ - sqler.addWhere("(t.name like ? or t.id like ?)","%"+name+"%","%"+name+"%"); - } - sqler.addSelect("t.notes,t.ornum"); - sqler.addOrder("t.ornum"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询字典主信息详情") - public R getOne(@PathVariable String id) { - AssDictMain main = service.findOne(id); - return R.ok(main); - } - - @GetMapping("list") - @ApiOperation("查询字典主信息列表") - public R getList() { - return R.ok(service.findAll()); - } - - @PostMapping - @ApiOperation("新增字典") - public R post(@RequestBody AssDictMain main) throws DocumentException { - return R.ok(service.insert(main)); - } - - @PutMapping - @ApiOperation("修改字典") - public R put(@RequestBody AssDictMain main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除字典") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private AssDictMainService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMainRepo.java b/vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMainRepo.java deleted file mode 100644 index 8c09370..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMainRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.ass.dict.main; - -import org.springframework.data.jpa.repository.JpaRepository; - - -public interface AssDictMainRepo extends JpaRepository { - -} - diff --git a/vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMainService.java b/vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMainService.java deleted file mode 100644 index f37c2f6..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/dict/main/AssDictMainService.java +++ /dev/null @@ -1,31 +0,0 @@ -package vben.core.module.ass.dict.main; - -import vben.core.common.mvc.service.BaseMainService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; - - -@Service -public class AssDictMainService extends BaseMainService { - - - - - - - - - //----------bean注入------------ - @Autowired - private AssDictMainRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - - -} - diff --git a/vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMain.java b/vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMain.java deleted file mode 100644 index 281e116..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMain.java +++ /dev/null @@ -1,57 +0,0 @@ -package vben.core.module.ass.num.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import java.util.Date; - -@Entity -@Data -@ApiModel("编号信息") -public class AssNumMain { - @Id - @Column(length = 8) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 100) - @ApiModelProperty("标签") - private String label; - - @Column(length = 32) - @ApiModelProperty("名称") - private String name; - - @Column(length = 32) - @ApiModelProperty("生成模式") - private String numod; - - @Column(length = 32) - @ApiModelProperty("编号前缀") - private String nupre; - - @ApiModelProperty("是否被修改过或新添加的") - private Boolean nflag; - - @Column(length = 8) - @ApiModelProperty("下一个编号") - private String nunex; - - @ApiModelProperty("编号长度") - private Integer nulen; - - @Column(length = 8) - @ApiModelProperty("当前日期") - private String cudat; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim = new Date(); - - @ApiModelProperty("更新时间") - private Date uptim; -} diff --git a/vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMainApi.java b/vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMainApi.java deleted file mode 100644 index 07cead2..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMainApi.java +++ /dev/null @@ -1,70 +0,0 @@ -package vben.core.module.ass.num.main; - -import cn.hutool.core.util.StrUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.Date; - -@RestController -@RequestMapping("ass/num/main") -@Api(tags = {"编号策略"}) -public class AssNumMainApi { - - @GetMapping - @ApiOperation("查询编号策略分页") - public R get(String name) { - Sqler sqler = new Sqler("t.id,t.label,t.name,t.nflag,t.cudat,t.crtim,t.uptim","ass_num_main"); - sqler.addLike("t.name",name); - sqler.addSelect("t.nupre,t.nunex,t.numod"); - return R.ok(service.findPageData(sqler)) ; - } - - @GetMapping("one/{id}") - @ApiOperation("查询编号策略详情") - public R getOne(@PathVariable String id) { - AssNumMain main=repo.findById(id).get(); - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增编号策略") - public synchronized R post(@RequestBody AssNumMain main) { - if(repo.existsById(main.getId())){ - return R.build(201,"编号已存在,请修改编号"); - } - main.setNflag(true); - repo.save(main); - return R.ok(); - } - - @PutMapping - @ApiOperation("修改编号策略") - public R pust(@RequestBody AssNumMain main) { - if(StrUtil.isBlank(main.getNunex())){ - main.setNflag(true); - } - main.setUptim(new Date()); - repo.save(main); - return R.ok(); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除编号策略") - public R delete(@PathVariable String[] ids) { - for (String id : ids) { - repo.deleteById(id); - } - return R.ok(); - } - - @Autowired - private AssNumMainRepo repo; - - @Autowired - private AssNumMainService service; -} diff --git a/vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMainRepo.java b/vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMainRepo.java deleted file mode 100644 index f0c6041..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMainRepo.java +++ /dev/null @@ -1,7 +0,0 @@ -package vben.core.module.ass.num.main; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface AssNumMainRepo extends JpaRepository { - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMainService.java b/vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMainService.java deleted file mode 100644 index 116647f..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/num/main/AssNumMainService.java +++ /dev/null @@ -1,173 +0,0 @@ -package vben.core.module.ass.num.main; - -import vben.core.common.mvc.api.PageData; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import org.apache.commons.lang3.time.DateFormatUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.Date; - -@Service -public class AssNumMainService { - - public String getDateNum(AssNumMain num, String dateType) { - //获取 是否被修改过或新添加的 字段的值 - //如果 是否被修改过或新添加的=='Y' - if (num.getNflag()) { - //生成第一个流水号 0001 - String firstSerialNum = getFirstSerialNum(num.getNulen()); - //计算下一个流水号 0002 - String nextSerialNum = getNextSerialNum(firstSerialNum); - //获取系统的当前时间 格式yyyyMMdd 20220906 - String curDate = DateFormatUtils.format(new Date(), dateType); - - //生成客户编码 - //编码前缀+"-"+利用日期位格式生成当前的日期[yyyyMMdd ]+"-"+0001 c-20220914-0001 - String back = (num.getNupre() == null ? "" : num.getNupre()) + curDate + firstSerialNum; - //修改代码规则表 - //下一个流水号="0002" - num.setNunex(nextSerialNum); - //当前日期 20140907 - num.setCudat(curDate); - //是否被修改过='N' - num.setNflag(false); - repo.save(num); - return back; - } else { - //是否被修改过或新添加的=='N' - //获取代码规则表中的当前日期字段的值 - String curDate = num.getCudat(); - //获取系统的当前日期 - String sysCurDate = DateFormatUtils.format(new Date(), dateType); - //如果代码规则表中的当前日期字段的值==系统的当前日期 - if (curDate.equals(sysCurDate)) { - //获取下一个流水号 ="0002" - String nextseq = num.getNunex(); - //计算新的流水号 0003 - String nextSerialNum = getNextSerialNum(nextseq); - //生成客户编码 - //编码前缀+"-"+利用日期位格式生成当前的日期[yyyyMMdd ]+"-"+0001 - String back = (num.getNupre() == null ? "" : num.getNupre()) + sysCurDate + nextseq; - //修改代码规则表 - //下一个流水号="0003" - num.setNunex(nextSerialNum); - //当前日期 20140908 - //是否被修改过='N' - repo.save(num); - return back; - } else { //如果代码规则表中的当前日期字段的值!=系统的当前日期、 - - //生成第一个流水号 0001 - String firstSerialNum = getFirstSerialNum(num.getNulen()); - //计算下一个流水号 0002 - String nextSerialNum = getNextSerialNum(firstSerialNum); - //生成客户编码 - //编码前缀+"-"+利用日期位格式生成当前的日期[yyyyMMdd ]+"-"+0001 - String back = (num.getNupre() == null ? "" : num.getNupre()) + sysCurDate + firstSerialNum; - //修改代码规则表 - //下一个流水号="0002" - num.setNunex(nextSerialNum); - //当前日期 20110915 - num.setCudat(sysCurDate); - //是否被修改过='N' - num.setNflag(false); - repo.save(num); - return back; - } - } - } - - - public String getPureNum(AssNumMain num) { - if (num.getNflag()) { - String firstSerialNum = getFirstSerialNum(num.getNulen()); - String nextSerialNum = getNextSerialNum(firstSerialNum); - num.setNunex(nextSerialNum); - num.setNflag(false); - repo.save(num); - return (num.getNupre() == null ? "" : num.getNupre()) + firstSerialNum; - } else { - String nextseq = num.getNunex(); - String nextSerialNum = getNextSerialNum(nextseq); - num.setNunex(nextSerialNum); - repo.save(num); - return (num.getNupre() == null ? "" : num.getNupre()) + nextseq; - } - } - -// - - public String getNum(String id){ - AssNumMain num = repo.findById(id).get(); - String number = ""; - switch(num.getNumod()){ - case "nodate": - number = getPureNum(num); - break; - case "yyyymmdd": - number = getDateNum(num,"yyyyMMdd"); - break; - case "yymmdd": - number = getDateNum(num,"yyMMdd"); - break; - case "yyyymm": - number = getDateNum(num,"yyyyMM"); - break; - case "yymm": - number = getDateNum(num,"yyMM"); - break; - case "yy": - number = getDateNum(num,"yy"); - break; - } - return number; - } - - @Transactional(readOnly = true) - public PageData findPageData(Sqler sqler) { - return jdbcDao.findPageData(sqler); - } - - - // 利用给定的流水位生成第一个流水号 - private String getFirstSerialNum(int zlength) { - String serialNum = ""; - //流水号为4里下面取3 - for (int i = 0; i < zlength - 1; i++) { - serialNum = serialNum + "0"; - } - serialNum = serialNum + "1"; - return serialNum; - } - - //根据当前的流水号,生成下一个流水号 - private String getNextSerialNum(String curSerialNum) { - curSerialNum = "1" + curSerialNum; - Integer icurSerialNum = Integer.parseInt(curSerialNum); - icurSerialNum++; - curSerialNum = icurSerialNum + ""; - curSerialNum = curSerialNum.substring(1); - return curSerialNum; - } - - - @Autowired - protected JdbcDao jdbcDao; - - - @Autowired - private AssNumMainRepo repo; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfig.java b/vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfig.java deleted file mode 100644 index 9fc15e3..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfig.java +++ /dev/null @@ -1,92 +0,0 @@ -package vben.core.module.ass.oss.config; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -/** - * 对象存储配置对象 sys_oss_config - * - * @author Lion Li - */ -@Entity -@Data -@ApiModel("附件配置") -public class AssOssConfig { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - -// /** -// * 主建 -// */ -// @TableId(value = "oss_config_id") -// private Long ossConfigId; - - /** - * 配置key - */ - private String configKey; - - /** - * accessKey - */ - private String accessKey; - - /** - * 秘钥 - */ - private String secretKey; - - /** - * 桶名称 - */ - private String bucketName; - - /** - * 前缀 - */ - private String prefix; - - /** - * 访问站点 - */ - private String endpoint; - - /** - * 自定义域名 - */ - private String domain; - - /** - * 是否https(0否 1是) - */ - private String isHttps; - - /** - * 域 - */ - private String region; - - /** - * 状态(0正常 1停用) - */ - private String status; - - /** - * 扩展字段 - */ - private String ext1; - - /** - * 备注 - */ - private String remark; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfigApi.java b/vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfigApi.java deleted file mode 100644 index 4c54d54..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfigApi.java +++ /dev/null @@ -1,31 +0,0 @@ -package vben.core.module.ass.oss.config; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; - -@RestController -@RequestMapping("ass/oss/config") -@Api(tags = {"存储配置"}) -public class AssOssConfigApi { - - @GetMapping - @ApiOperation("查询存储配置分页") - public R get(String name) { - Sqler sqler = new Sqler("t.id,t.config_key,t.access_key,t.secretKey", "ass_oss_config"); - sqler.addLike("t.config_key", name); - sqler.addSelect("t.endpoint,t.bucket_name,t.prefix,t.status"); - return R.ok(jdbcDao.findPageData(sqler)); - } - - @Autowired - private JdbcDao jdbcDao; - - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfigRepo.java b/vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfigRepo.java deleted file mode 100644 index 773d012..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfigRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.core.module.ass.oss.config; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface AssOssConfigRepo extends JpaRepository { - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfigService.java b/vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfigService.java deleted file mode 100644 index 4d711ae..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/config/AssOssConfigService.java +++ /dev/null @@ -1,211 +0,0 @@ -package vben.core.module.ass.oss.config; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; -import vben.core.common.utils.ruoyi.JsonUtils; -import vben.core.common.utils.ruoyi.RedisUtils; -import vben.core.module.ass.oss.root.OssConstant; -import vben.core.module.ass.oss.root.OssFactory; - -import java.util.List; - -/** - * 对象存储配置Service业务层处理 - * - * @author Lion Li - * @author 孤舟烟雨 - * @date 2021-08-13 - */ -@Slf4j -@RequiredArgsConstructor -@Service -public class AssOssConfigService { - - @Value("${oss.configkey}") - private String ConfigKey; - - @Value("${oss.accesskey}") - private String AccessKey; - - @Value("${oss.secretkey}") - private String SecretKey; - - @Value("${oss.bucket}") - private String BucketName; - - @Value("${oss.endpoint}") - private String Endpoint; - - @Value("${oss.ishttps}") - private String IsHttps; - - @Value("${oss.region}") - private String Region; - - - // private final SysOssConfigMapper baseMapper; - @Autowired - private AssOssConfigRepo repo; - - /** - * 项目启动时,初始化参数到缓存,加载配置类 - */ - public void init() { - List list = repo.findAll(); - AssOssConfig assOssConfig=new AssOssConfig(); - assOssConfig.setConfigKey(ConfigKey); - assOssConfig.setAccessKey(AccessKey); - assOssConfig.setSecretKey(SecretKey); - assOssConfig.setBucketName(BucketName); - assOssConfig.setEndpoint(Endpoint); - assOssConfig.setIsHttps(IsHttps); - assOssConfig.setRegion(Region); - assOssConfig.setStatus("0"); - assOssConfig.setId("111"); - list.add(assOssConfig); - // 加载OSS初始化配置 - for (AssOssConfig config : list) { - String configKey = config.getConfigKey(); - if ("0".equals(config.getStatus())) { - RedisUtils.setCacheObject(OssConstant.CACHE_CONFIG_KEY, configKey); - } - setConfigCache(true, config); - } - // 初始化OSS工厂 - OssFactory.init(); - } - - // @Override -// public SysOssConfigVo queryById(Long ossConfigId) { -// return baseMapper.selectVoById(ossConfigId); -// } -// -// @Override -// public TableDataInfo queryPageList(SysOssConfigBo bo, PageQuery pageQuery) { -// LambdaQueryWrapper lqw = buildQueryWrapper(bo); -// Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); -// return TableDataInfo.build(result); -// } -// -// -// private LambdaQueryWrapper buildQueryWrapper(SysOssConfigBo bo) { -// LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); -// lqw.eq(StringUtils.isNotBlank(bo.getConfigKey()), SysOssConfig::getConfigKey, bo.getConfigKey()); -// lqw.like(StringUtils.isNotBlank(bo.getBucketName()), SysOssConfig::getBucketName, bo.getBucketName()); -// lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysOssConfig::getStatus, bo.getStatus()); -// return lqw; -// } -// -// @Override -// public Boolean insertByBo(SysOssConfigBo bo) { -// SysOssConfig config = BeanUtil.toBean(bo, SysOssConfig.class); -// validEntityBeforeSave(config); -// return setConfigCache(baseMapper.insert(config) > 0, config); -// } -// -// @Override -// public Boolean updateByBo(SysOssConfigBo bo) { -// SysOssConfig config = BeanUtil.toBean(bo, SysOssConfig.class); -// validEntityBeforeSave(config); -// LambdaUpdateWrapper luw = new LambdaUpdateWrapper<>(); -// luw.set(ObjectUtil.isNull(config.getPrefix()), SysOssConfig::getPrefix, ""); -// luw.set(ObjectUtil.isNull(config.getRegion()), SysOssConfig::getRegion, ""); -// luw.set(ObjectUtil.isNull(config.getExt1()), SysOssConfig::getExt1, ""); -// luw.set(ObjectUtil.isNull(config.getRemark()), SysOssConfig::getRemark, ""); -// luw.eq(SysOssConfig::getOssConfigId, config.getOssConfigId()); -// return setConfigCache(baseMapper.update(config, luw) > 0, config); -// } -// -// /** -// * 保存前的数据校验 -// */ -// private void validEntityBeforeSave(SysOssConfig entity) { -// if (StringUtils.isNotEmpty(entity.getConfigKey()) -// && UserConstants.NOT_UNIQUE.equals(checkConfigKeyUnique(entity))) { -// throw new ServiceException("操作配置'" + entity.getConfigKey() + "'失败, 配置key已存在!"); -// } -// } -// -// @Override -// public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { -// if (isValid) { -// if (CollUtil.containsAny(ids, OssConstant.SYSTEM_DATA_IDS)) { -// throw new ServiceException("系统内置, 不可删除!"); -// } -// } -// List list = Lists.newArrayList(); -// for (Long configId : ids) { -// SysOssConfig config = baseMapper.selectById(configId); -// list.add(config); -// } -// boolean flag = baseMapper.deleteBatchIds(ids) > 0; -// if (flag) { -// list.stream().forEach(sysOssConfig -> { -// RedisUtils.deleteObject(getCacheKey(sysOssConfig.getConfigKey())); -// }); -// } -// return flag; -// } -// -// /** -// * 判断configKey是否唯一 -// */ -// private String checkConfigKeyUnique(SysOssConfig sysOssConfig) { -// long ossConfigId = ObjectUtil.isNull(sysOssConfig.getOssConfigId()) ? -1L : sysOssConfig.getOssConfigId(); -// SysOssConfig info = baseMapper.selectOne(new LambdaQueryWrapper() -// .select(SysOssConfig::getOssConfigId, SysOssConfig::getConfigKey) -// .eq(SysOssConfig::getConfigKey, sysOssConfig.getConfigKey())); -// if (ObjectUtil.isNotNull(info) && info.getOssConfigId() != ossConfigId) { -// return UserConstants.NOT_UNIQUE; -// } -// return UserConstants.UNIQUE; -// } -// -// /** -// * 启用禁用状态 -// */ -// @Override -// @Transactional(rollbackFor = Exception.class) -// public int updateOssConfigStatus(SysOssConfigBo bo) { -// SysOssConfig sysOssConfig = BeanUtil.toBean(bo, SysOssConfig.class); -// int row = baseMapper.update(null, new LambdaUpdateWrapper() -// .set(SysOssConfig::getStatus, "1")); -// row += baseMapper.updateById(sysOssConfig); -// if (row > 0) { -// RedisUtils.setCacheObject(OssConstant.CACHE_CONFIG_KEY, sysOssConfig.getConfigKey()); -// } -// return row; -// } -// -// /** -// * 设置cache key -// * -// * @param configKey 参数键 -// * @return 缓存键key -// */ - private String getCacheKey(String configKey) { - return OssConstant.SYS_OSS_KEY + configKey; - } - // -// /** -// * 如果操作成功 则更新缓存 -// * -// * @param flag 操作状态 -// * @param config 配置 -// * @return 返回操作状态 -// */ - private boolean setConfigCache(boolean flag, AssOssConfig config) { - if (flag) { - RedisUtils.setCacheObject( - getCacheKey(config.getConfigKey()), - JsonUtils.toJsonString(config)); - RedisUtils.publish(OssConstant.CACHE_CONFIG_KEY, config.getConfigKey(), msg -> { - log.info("发布刷新OSS配置 => " + msg); - }); - } - return flag; - } -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/file/AssOssFile.java b/vben-core/src/main/java/vben/core/module/ass/oss/file/AssOssFile.java deleted file mode 100644 index 09e1c1e..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/file/AssOssFile.java +++ /dev/null @@ -1,39 +0,0 @@ -package vben.core.module.ass.oss.file; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.*; -import java.util.Date; - -@Entity -@Data -@ApiModel("OSS存储文件") -@Table(indexes = {@Index(columnList = "md5")}) -public class AssOssFile { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @ApiModelProperty("文件md5") - @Column(length = 32) - private String md5; - - @ApiModelProperty("文件大小") - private Long zsize; - - @ApiModelProperty("存储地址") - private String path; - - @ApiModelProperty("存储服务") - @Column(length = 32) - private String service; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim = new Date(); - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/file/AssOssFileRepo.java b/vben-core/src/main/java/vben/core/module/ass/oss/file/AssOssFileRepo.java deleted file mode 100644 index 95babeb..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/file/AssOssFileRepo.java +++ /dev/null @@ -1,10 +0,0 @@ -package vben.core.module.ass.oss.file; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface AssOssFileRepo extends JpaRepository { - - - AssOssFile findByMd5(String md5); - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMain.java b/vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMain.java deleted file mode 100644 index 68f1116..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMain.java +++ /dev/null @@ -1,49 +0,0 @@ -package vben.core.module.ass.oss.main; - -import com.alibaba.excel.annotation.ExcelIgnore; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import vben.core.module.sys.org.root.SysOrg; - -import javax.persistence.*; -import java.util.Date; - -@Entity -@Data -@ApiModel("OSS存储引用") -public class AssOssMain { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @ApiModelProperty("文件名称") - private String name; - - @ApiModelProperty("类型(后缀)") - @Column(length = 32) - private String type; - - @ApiModelProperty("文件ID") - @Column(length = 32) - private String filid; - - @ApiModelProperty("业务ID") - @Column(length = 32) - private String busid; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim = new Date(); - - @ManyToOne - @JoinColumn(name = "crmid", updatable = false) - @ExcelIgnore - @ApiModelProperty("创建人") - protected SysOrg crman; - - - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMainApi.java b/vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMainApi.java deleted file mode 100644 index 4d56e24..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMainApi.java +++ /dev/null @@ -1,80 +0,0 @@ -package vben.core.module.ass.oss.main; - -import cn.hutool.core.util.StrUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.framework.cache.RedisHandler; -import vben.core.framework.security.authz.JwtHandler; -import vben.core.framework.security.pojo.Zuser; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -@RestController -@RequestMapping("ass/oss/main") -@Api(tags = {"文件存储"}) -public class AssOssMainApi { - - @GetMapping - @ApiOperation("查询存储分页") - public R get(String name) { - Sqler sqler = new Sqler("t.name,t.id,t.type,t.crtim", "ass_oss_main"); - sqler.addInnerJoin("f.zsize,f.service,f.path", "ass_oss_file f", "f.id=t.filid"); - sqler.addLeftJoin("u.name crman", "sys_org_user u", "u.id=t.crmid"); - sqler.addLike("t.name", name); - sqler.addOrder("t.crtim desc"); - return R.ok(jdbcDao.findPageData(sqler)); - } - - @GetMapping("download") - @ApiOperation("附件下载") - public void download(String table, String id, HttpServletRequest request, HttpServletResponse response) throws Exception { - service.downloadFile(request,response,table,id); - } - - @GetMapping("show") - @ApiOperation("附件图片预览") - public void show(String token, String id, HttpServletRequest request, HttpServletResponse response) throws Exception { - if(StrUtil.isBlank(token)){ - return; - } - String uuid = jwtHandler.getClaims(token.substring(7)).getId(); - Zuser zuser = (Zuser) redisHandler.get("online-key:"+uuid); - if(zuser!=null){ - service.downloadFile(request,response,null,id); - } - } - - @PostMapping(value="upload",produces = "text/html;charset=UTF-8") - @ApiOperation("附件上传") - public String upload(@RequestParam(value = "file", required = false) MultipartFile file) throws Exception { - Zfile zfile = service.uploadFile(file); - return "{\"id\":\"" + zfile.getId() + "\",\"path\":\"" + zfile.getPath() + "\",\"filid\":\"" + zfile.getFilid() + "\",\"name\":\"" + zfile.getName() + "\",\"size\":\"" + zfile.getSize() + "\"}"; - } - - @DeleteMapping("{ids}") - @ApiOperation("删除文件") - public R delete(@PathVariable String[] ids) { - service.delete(ids); - return R.ok(); - } - - @Autowired - private JwtHandler jwtHandler; - - @Autowired - private RedisHandler redisHandler; - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private AssOssMainService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMainRepo.java b/vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMainRepo.java deleted file mode 100644 index 62a72f2..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMainRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.ass.oss.main; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface AssOssMainRepo extends JpaRepository { - - - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMainService.java b/vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMainService.java deleted file mode 100644 index fe315c5..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/main/AssOssMainService.java +++ /dev/null @@ -1,148 +0,0 @@ -package vben.core.module.ass.oss.main; - -import cn.hutool.core.util.StrUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.utils.file.XfileUtil; -import vben.core.common.utils.web.XuserUtil; -import vben.core.module.ass.oss.file.AssOssFile; -import vben.core.module.ass.oss.file.AssOssFileRepo; -import vben.core.module.ass.oss.root.AssOssLocalHand; -import vben.core.module.ass.oss.root.AssOssRemoteHand; -import vben.core.common.utils.lang.IdUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.*; -import java.math.BigInteger; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -@Transactional(rollbackFor = Exception.class) -public class AssOssMainService { - - public Zfile uploadFile(MultipartFile file) throws IOException, NoSuchAlgorithmException { - String md5 = getMd5(file); - AssOssFile dbFile = fileRepo.findByMd5(md5); - Zfile zfile = new Zfile(); - if (dbFile != null) {//相同文件已上传过 - AssOssMain main = new AssOssMain(); - main.setId(IdUtils.getUID()); - main.setFilid(dbFile.getId()); - main.setName(file.getOriginalFilename()); - if (main.getName().contains(".")) { - main.setType(main.getName().substring(main.getName().lastIndexOf(".") + 1)); - } - repo.save(main); - zfile.setId(main.getId()); - zfile.setName(main.getName()); - zfile.setSize(XfileUtil.getFileSize(dbFile.getZsize())); - zfile.setPath(dbFile.getPath()); - zfile.setFilid(dbFile.getId()); - } else { - AssOssFile newFile = localHand.upload(file,md5); -// AssOssFile newFile = remoteHand.upload(file,md5); - fileRepo.save(newFile); - AssOssMain main = new AssOssMain(); - main.setId(newFile.getId()); - main.setFilid(newFile.getId()); - main.setName(file.getOriginalFilename()); - if (main.getName().contains(".")) { - main.setType(main.getName().substring(main.getName().lastIndexOf(".") + 1)); - } - main.setCrman(XuserUtil.getUser()); - repo.save(main); - zfile.setId(main.getId()); - zfile.setName(main.getName()); - zfile.setSize(XfileUtil.getFileSize(newFile.getZsize())); - zfile.setPath(newFile.getPath()); - zfile.setFilid(newFile.getId()); - } - return zfile; - } - - - public void downloadFile(HttpServletRequest request, HttpServletResponse response, - String table, String id) throws Exception { - String sql = "select t.path,t.name,f.service from " + table + " t " + - "inner join ass_oss_file f on f.id=t.filid " + - "where t.id=?"; - Map map = null; - if (StrUtil.isNotBlank(table)) { - map = jdbcDao.findMap(sql, id); - } - if (map == null) { - sql = "select f.path,t.name,f.service from ass_oss_main t " + - "inner join ass_oss_file f on f.id=t.filid " + - "where t.id=?"; - map = jdbcDao.findMap(sql, id); - } - if(map!=null){ - if("local".equals(map.get("service"))){ - localHand.download(request,response,(String) map.get("name"),(String) map.get("path")); - }else{ - remoteHand.download(request, response, (String) map.get("name"), (String) map.get("path")); - } - } - } - - public int delete(String[] ids) { - for (String id : ids) { - repo.deleteById(id); - } - return ids.length; - } - - public AssOssMain getInfo(String id){ - return repo.getOne(id); - } - - public List getInfos(String ids){ - String[] arr= ids.split(","); - List list=Arrays.asList(arr); - return repo.findAllById(list); - } - - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private AssOssLocalHand localHand; - - @Autowired - private AssOssRemoteHand remoteHand; - - @Autowired - private AssOssMainRepo repo; - - @Autowired - private AssOssFileRepo fileRepo; - - private String getMd5(MultipartFile file) { - try { - //获取文件的byte信息 - byte[] uploadBytes = file.getBytes(); - // 拿到一个MD5转换器 - MessageDigest md5 = MessageDigest.getInstance("MD5"); - byte[] digest = md5.digest(uploadBytes); - //转换为16进制 - return new BigInteger(1, digest).toString(16); -// MessageDigest messageDigest = MessageDigest.getInstance("md5"); -// return Base64.getEncoder().encodeToString(messageDigest.digest(file.getBytes())); - } catch (IOException | NoSuchAlgorithmException e) { - log.error("get file md5 error!!!", e); - } - return null; - } - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/main/Zfile.java b/vben-core/src/main/java/vben/core/module/ass/oss/main/Zfile.java deleted file mode 100644 index bf08b26..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/main/Zfile.java +++ /dev/null @@ -1,18 +0,0 @@ -package vben.core.module.ass.oss.main; - -import lombok.Data; - -@Data -public class Zfile { - - private String id; - - private String name; - - private String size; - - private String path; - - private String filid; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/root/AssOssLocalHand.java b/vben-core/src/main/java/vben/core/module/ass/oss/root/AssOssLocalHand.java deleted file mode 100644 index e85f3ce..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/root/AssOssLocalHand.java +++ /dev/null @@ -1,84 +0,0 @@ -package vben.core.module.ass.oss.root; - -import cn.hutool.core.date.DateUtil; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; -import org.springframework.web.multipart.MultipartFile; -import vben.core.module.ass.oss.file.AssOssFile; -import vben.core.common.utils.lang.IdUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.*; -import java.net.URLEncoder; -import java.security.NoSuchAlgorithmException; -import java.util.Date; -import java.util.Locale; - -@Component -public class AssOssLocalHand { - - @Value("${app.att.path}") - private String ATT_PATH; - - public AssOssFile upload(MultipartFile file,String md5) throws IOException, NoSuchAlgorithmException { - AssOssFile ossFile = new AssOssFile(); - String fileName = file.getOriginalFilename(); - if (!"".equals(fileName)) { - String sid = IdUtils.getUID(); - String newName = sid; - if(fileName.contains(".")){ - newName+="."+fileName.substring(fileName.lastIndexOf(".")+1); - } - String dirX = Integer.toHexString(newName.hashCode() & 0xf); - String savePath = DateUtil.format(new Date(), "yyyy/MM/dd") + "/" + dirX; - File targetFolder = new File(ATT_PATH + "/" + savePath); - File targetFile = new File(ATT_PATH + "/" + savePath, newName); - if (!targetFolder.exists()) { - targetFolder.mkdirs(); - } - file.transferTo(targetFile); - ossFile.setId(sid); - ossFile.setZsize(file.getSize()); - ossFile.setMd5(md5); - ossFile.setPath(savePath + "/" + newName); - ossFile.setService("local"); - } - return ossFile; - } - - public void download(HttpServletRequest request,HttpServletResponse response, - String fileName,String path) throws Exception - { - - response.setContentType("text/html;charset=UTF-8"); - request.setCharacterEncoding("UTF-8"); - String downLoadPath = ATT_PATH + "/" + path; - - long fileLength = new File(downLoadPath).length(); - - response.setContentType("application/octet-stream"); - fileName = URLEncoder.encode(fileName, "UTF-8"); - Locale localLanguage = request.getLocale(); - if (fileName.length() > 150) - { - fileName = new String(fileName.getBytes("gb2312"), "ISO8859-1"); - } - response.addHeader("Access-Control-Expose-Headers", "Content-disposition,download-filename"); - response.setHeader("Content-disposition", "attachment; filename=" + fileName); - response.setHeader("Content-Length", String.valueOf(fileLength)); - response.setHeader("download-filename", fileName); - - BufferedInputStream bis = new BufferedInputStream(new FileInputStream(downLoadPath)); - BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream()); - byte[] buff = new byte[2048]; - int bytesRead; - while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) - { - bos.write(buff, 0, bytesRead); - } - bis.close(); - bos.close(); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/root/AssOssRemoteHand.java b/vben-core/src/main/java/vben/core/module/ass/oss/root/AssOssRemoteHand.java deleted file mode 100644 index a21a333..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/root/AssOssRemoteHand.java +++ /dev/null @@ -1,61 +0,0 @@ -package vben.core.module.ass.oss.root; - -import cn.hutool.core.convert.Convert; -import cn.hutool.http.HttpException; -import cn.hutool.http.HttpUtil; -import org.hibernate.service.spi.ServiceException; -import org.springframework.http.MediaType; -import org.springframework.stereotype.Component; -import org.springframework.web.multipart.MultipartFile; -import vben.core.common.exception.base.BaseException; -import vben.core.common.utils.file.FileUtils; -import vben.core.common.utils.ruoyi.StringUtils; -import vben.core.module.ass.oss.file.AssOssFile; -import vben.core.common.utils.lang.IdUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -@Component -public class AssOssRemoteHand { - - public AssOssFile upload(MultipartFile file,String md5) { - String originalfileName = file.getOriginalFilename(); - String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length()); - OssClient storage = OssFactory.instance(); - UploadResult uploadResult; - try { - uploadResult = storage.uploadSuffix(file.getBytes(), suffix, file.getContentType()); - } catch (IOException e) { - throw new BaseException(e.getMessage()); - } - // 保存文件信息 - AssOssFile ossFile = new AssOssFile(); - ossFile.setId(IdUtils.getUID()); - ossFile.setZsize(file.getSize()); - ossFile.setMd5(md5); - ossFile.setPath(uploadResult.getUrl()); - ossFile.setService(storage.getConfigKey()); - return ossFile; - } - - public void download(HttpServletRequest request, HttpServletResponse response, - String fileName, String path) throws IOException { -// response.reset(); - FileUtils.setAttachmentResponseHeader(response, fileName); - response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8"); - long data; - try { - data = HttpUtil.download(path, response.getOutputStream(), false); - } catch (HttpException e) { - if (e.getMessage().contains("403")) { - throw new ServiceException("无读取权限, 请在对应的OSS开启'公有读'权限!"); - } else { - throw new ServiceException(e.getMessage()); - } - } - response.setContentLength(Convert.toInt(data)); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/root/OssClient.java b/vben-core/src/main/java/vben/core/module/ass/oss/root/OssClient.java deleted file mode 100644 index 16148b7..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/root/OssClient.java +++ /dev/null @@ -1,183 +0,0 @@ -package vben.core.module.ass.oss.root; - -import cn.hutool.core.util.IdUtil; -import com.amazonaws.ClientConfiguration; -import com.amazonaws.Protocol; -import com.amazonaws.auth.AWSCredentials; -import com.amazonaws.auth.AWSCredentialsProvider; -import com.amazonaws.auth.AWSStaticCredentialsProvider; -import com.amazonaws.auth.BasicAWSCredentials; -import com.amazonaws.client.builder.AwsClientBuilder; -import com.amazonaws.services.s3.AmazonS3; -import com.amazonaws.services.s3.AmazonS3Client; -import com.amazonaws.services.s3.model.CannedAccessControlList; -import com.amazonaws.services.s3.model.CreateBucketRequest; -import com.amazonaws.services.s3.model.ObjectMetadata; -import com.amazonaws.services.s3.model.PutObjectRequest; -import vben.core.common.utils.ruoyi.DateUtils; -import vben.core.common.utils.ruoyi.StringUtils; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; - -/** - * S3 存储协议 所有兼容S3协议的云厂商均支持 - * 阿里云 腾讯云 七牛云 minio - * - * @author Lion Li - */ -public class OssClient { - - private final String configKey; - - private final OssProperties properties; - - private final AmazonS3 client; - - public OssClient(String configKey, OssProperties ossProperties) { - this.configKey = configKey; - this.properties = ossProperties; - try { - AwsClientBuilder.EndpointConfiguration endpointConfig = - new AwsClientBuilder.EndpointConfiguration(properties.getEndpoint(), properties.getRegion()); - - AWSCredentials credentials = new BasicAWSCredentials(properties.getAccessKey(), properties.getSecretKey()); - AWSCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials); - ClientConfiguration clientConfig = new ClientConfiguration(); - if (OssConstant.IS_HTTPS.equals(properties.getIsHttps())) { - clientConfig.setProtocol(Protocol.HTTPS); - } else { - clientConfig.setProtocol(Protocol.HTTP); - } - this.client = AmazonS3Client.builder() - .withEndpointConfiguration(endpointConfig) - .withClientConfiguration(clientConfig) - .withCredentials(credentialsProvider) - .disableChunkedEncoding() - .build(); - - createBucket(); - } catch (Exception e) { - if (e instanceof OssException) { - throw e; - } - throw new OssException("配置错误! 请检查系统配置:[" + e.getMessage() + "]"); - } - } - - public void createBucket() { - try { - String bucketName = properties.getBucketName(); - if (client.doesBucketExistV2(bucketName)) { - return; - } - CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName); - createBucketRequest.setCannedAcl(CannedAccessControlList.PublicRead); - client.createBucket(createBucketRequest); - client.setBucketPolicy(bucketName, getPolicy(bucketName, PolicyType.READ)); - } catch (Exception e) { - throw new OssException("创建Bucket失败, 请核对配置信息:[" + e.getMessage() + "]"); - } - } - - public UploadResult upload(byte[] data, String path, String contentType) { - return upload(new ByteArrayInputStream(data), path, contentType); - } - - public UploadResult upload(InputStream inputStream, String path, String contentType) { - try { - ObjectMetadata metadata = new ObjectMetadata(); - metadata.setContentType(contentType); - metadata.setContentLength(inputStream.available()); - client.putObject(new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata)); - } catch (Exception e) { - throw new OssException("上传文件失败,请检查配置信息:[" + e.getMessage() + "]"); - } - return UploadResult.builder().url(getUrl() + "/" + path).filename(path).build(); - } - - public void delete(String path) { - path = path.replace(getUrl() + "/", ""); - try { - client.deleteObject(properties.getBucketName(), path); - } catch (Exception e) { - throw new OssException("上传文件失败,请检查配置信息:[" + e.getMessage() + "]"); - } - } - - public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) { - return upload(data, getPath(properties.getPrefix(), suffix), contentType); - } - - public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) { - return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType); - } - - public String getUrl() { - String domain = properties.getDomain(); - if (StringUtils.isNotBlank(domain)) { - return domain; - } - String endpoint = properties.getEndpoint(); - String header = OssConstant.IS_HTTPS.equals(properties.getIsHttps()) ? "https://" : "http://"; - // 云服务商直接返回 - if (StringUtils.containsAny(endpoint, OssConstant.CLOUD_SERVICE)){ - return header + properties.getBucketName() + "." + endpoint; - } - // minio 单独处理 - return header + endpoint + "/" + properties.getBucketName(); - } - - public String getPath(String prefix, String suffix) { - // 生成uuid - String uuid = IdUtil.fastSimpleUUID(); - // 文件路径 - String path = DateUtils.datePath() + "/" + uuid; - if (StringUtils.isNotBlank(prefix)) { - path = prefix + "/" + path; - } - return path + suffix; - } - - - public String getConfigKey() { - return configKey; - } - - private static String getPolicy(String bucketName, PolicyType policyType) { - StringBuilder builder = new StringBuilder(); - builder.append("{\n\"Statement\": [\n{\n\"Action\": [\n"); - if (policyType == PolicyType.WRITE) { - builder.append("\"s3:GetBucketLocation\",\n\"s3:ListBucketMultipartUploads\"\n"); - } else if (policyType == PolicyType.READ_WRITE) { - builder.append("\"s3:GetBucketLocation\",\n\"s3:ListBucket\",\n\"s3:ListBucketMultipartUploads\"\n"); - } else { - builder.append("\"s3:GetBucketLocation\"\n"); - } - builder.append("],\n\"Effect\": \"Allow\",\n\"Principal\": \"*\",\n\"Resource\": \"arn:aws:s3:::"); - builder.append(bucketName); - builder.append("\"\n},\n"); - if (policyType == PolicyType.READ) { - builder.append("{\n\"Action\": [\n\"s3:ListBucket\"\n],\n\"Effect\": \"Deny\",\n\"Principal\": \"*\",\n\"Resource\": \"arn:aws:s3:::"); - builder.append(bucketName); - builder.append("\"\n},\n"); - } - builder.append("{\n\"Action\": "); - switch (policyType) { - case WRITE: - builder.append("[\n\"s3:AbortMultipartUpload\",\n\"s3:DeleteObject\",\n\"s3:ListMultipartUploadParts\",\n\"s3:PutObject\"\n],\n"); - break; - case READ_WRITE: - builder.append("[\n\"s3:AbortMultipartUpload\",\n\"s3:DeleteObject\",\n\"s3:GetObject\",\n\"s3:ListMultipartUploadParts\",\n\"s3:PutObject\"\n],\n"); - break; - default: - builder.append("\"s3:GetObject\",\n"); - break; - } - builder.append("\"Effect\": \"Allow\",\n\"Principal\": \"*\",\n\"Resource\": \"arn:aws:s3:::"); - builder.append(bucketName); - builder.append("/*\"\n}\n],\n\"Version\": \"2012-10-17\"\n}\n"); - return builder.toString(); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/root/OssConstant.java b/vben-core/src/main/java/vben/core/module/ass/oss/root/OssConstant.java deleted file mode 100644 index a7face6..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/root/OssConstant.java +++ /dev/null @@ -1,48 +0,0 @@ -package vben.core.module.ass.oss.root; - -import java.util.Arrays; -import java.util.List; - -/** - * 对象存储常量 - * - * @author Lion Li - */ -public interface OssConstant { - - /** - * OSS模块KEY - */ - String SYS_OSS_KEY = "sys_oss:"; - - /** - * 对象存储配置KEY - */ - String OSS_CONFIG_KEY = "OssConfig"; - - /** - * 缓存配置KEY - */ - String CACHE_CONFIG_KEY = SYS_OSS_KEY + OSS_CONFIG_KEY; - - /** - * 预览列表资源开关Key - */ - String PEREVIEW_LIST_RESOURCE_KEY = "sys.oss.previewListResource"; - - /** - * 系统数据ids - */ - List SYSTEM_DATA_IDS = Arrays.asList(1, 2, 3, 4); - - /** - * 云服务商 - */ - String[] CLOUD_SERVICE = new String[] {"aliyun", "qcloud", "qiniu"}; - - /** - * https 状态 - */ - String IS_HTTPS = "Y"; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/root/OssException.java b/vben-core/src/main/java/vben/core/module/ass/oss/root/OssException.java deleted file mode 100644 index 926d5d7..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/root/OssException.java +++ /dev/null @@ -1,16 +0,0 @@ -package vben.core.module.ass.oss.root; - -/** - * OSS异常类 - * - * @author Lion Li - */ -public class OssException extends RuntimeException { - - private static final long serialVersionUID = 1L; - - public OssException(String msg) { - super(msg); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/root/OssFactory.java b/vben-core/src/main/java/vben/core/module/ass/oss/root/OssFactory.java deleted file mode 100644 index 9374201..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/root/OssFactory.java +++ /dev/null @@ -1,73 +0,0 @@ -package vben.core.module.ass.oss.root; - -import lombok.extern.slf4j.Slf4j; -import vben.core.common.utils.ruoyi.JsonUtils; -import vben.core.common.utils.ruoyi.RedisUtils; -import vben.core.common.utils.ruoyi.StringUtils; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * 文件上传Factory - * - * @author Lion Li - */ -@Slf4j -public class OssFactory { - - private static final Map CLIENT_CACHE = new ConcurrentHashMap<>(); - - /** - * 初始化工厂 - */ - public static void init() { - log.info("初始化OSS工厂"); - RedisUtils.subscribe(OssConstant.CACHE_CONFIG_KEY, String.class, configKey -> { - OssClient client = getClient(configKey); - // 未初始化不处理 - if (client != null) { - refresh(configKey); - log.info("订阅刷新OSS配置 => " + configKey); - } - }); - } - - /** - * 获取默认实例 - */ - public static OssClient instance() { - // 获取redis 默认类型 - String configKey = RedisUtils.getCacheObject(OssConstant.CACHE_CONFIG_KEY); - if (StringUtils.isEmpty(configKey)) { - throw new OssException("文件存储服务类型无法找到!"); - } - return instance(configKey); - } - - /** - * 根据类型获取实例 - */ - public static OssClient instance(String configKey) { - OssClient client = getClient(configKey); - if (client == null) { - refresh(configKey); - return getClient(configKey); - } - return client; - } - - private static void refresh(String configKey) { - Object json = RedisUtils.getCacheObject(OssConstant.SYS_OSS_KEY + configKey); - OssProperties properties = JsonUtils.parseObject(json.toString(), OssProperties.class); - if (properties == null) { - throw new OssException("系统异常, '" + configKey + "'配置信息不存在!"); - } - CLIENT_CACHE.put(configKey, new OssClient(configKey, properties)); - } - - private static OssClient getClient(String configKey) { - return CLIENT_CACHE.get(configKey); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/root/OssProperties.java b/vben-core/src/main/java/vben/core/module/ass/oss/root/OssProperties.java deleted file mode 100644 index 8281138..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/root/OssProperties.java +++ /dev/null @@ -1,53 +0,0 @@ -package vben.core.module.ass.oss.root; - -import lombok.Data; - -/** - * OSS对象存储 配置属性 - * - * @author Lion Li - */ -@Data -public class OssProperties { - - /** - * 访问站点 - */ - private String endpoint; - - /** - * 自定义域名 - */ - private String domain; - - /** - * 前缀 - */ - private String prefix; - - /** - * ACCESS_KEY - */ - private String accessKey; - - /** - * SECRET_KEY - */ - private String secretKey; - - /** - * 存储空间名 - */ - private String bucketName; - - /** - * 存储区域 - */ - private String region; - - /** - * 是否https(Y=是,N=否) - */ - private String isHttps; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/root/PolicyType.java b/vben-core/src/main/java/vben/core/module/ass/oss/root/PolicyType.java deleted file mode 100644 index d93f98b..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/root/PolicyType.java +++ /dev/null @@ -1,35 +0,0 @@ -package vben.core.module.ass.oss.root; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * minio策略配置 - * - * @author Lion Li - */ -@Getter -@AllArgsConstructor -public enum PolicyType { - - /** - * 只读 - */ - READ("read-only"), - - /** - * 只写 - */ - WRITE("write-only"), - - /** - * 读写 - */ - READ_WRITE("read-write"); - - /** - * 类型 - */ - private final String type; - -} diff --git a/vben-core/src/main/java/vben/core/module/ass/oss/root/UploadResult.java b/vben-core/src/main/java/vben/core/module/ass/oss/root/UploadResult.java deleted file mode 100644 index 200dd90..0000000 --- a/vben-core/src/main/java/vben/core/module/ass/oss/root/UploadResult.java +++ /dev/null @@ -1,24 +0,0 @@ -package vben.core.module.ass.oss.root; - -import lombok.Builder; -import lombok.Data; - -/** - * 上传返回体 - * - * @author Lion Li - */ -@Data -@Builder -public class UploadResult { - - /** - * 文件路径 - */ - private String url; - - /** - * 文件名 - */ - private String filename; -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditAtt.java b/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditAtt.java deleted file mode 100644 index 2ad0c77..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditAtt.java +++ /dev/null @@ -1,41 +0,0 @@ -package vben.core.module.bpm.audit.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -@Data -@ApiModel("流程评审附件") -public class BpmAuditAtt -{ - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @ApiModelProperty("附件名称") - private String name; - - @ApiModelProperty("附件大小") - private String zsize; - - @ApiModelProperty("存储地址") - private String path; - - @ApiModelProperty("文件ID") - @Column(length = 32) - private String filid; - - @ApiModelProperty("评审ID") - @Column(length = 32) - private String audid; - - @ApiModelProperty("排序号") - private Integer ornum; - -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMain.java b/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMain.java deleted file mode 100644 index 78d547b..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMain.java +++ /dev/null @@ -1,79 +0,0 @@ -package vben.core.module.bpm.audit.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.*; -import java.util.Date; - -@Entity -@Getter -@Setter -@ApiModel("流程评审信息") -public class BpmAuditMain { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("当前节点ID:N1,N2") - private String facno; - - @Column(length = 126) - @ApiModelProperty("当前节点名称") - private String facna; - - @Column(updatable = false) - @ApiModelProperty("开始时间") - protected Date crtim = new Date(); - - @Column(length = 32) - @ApiModelProperty("流程id") - private String proid; - - @Column(length = 32) - @ApiModelProperty("节点id") - private String nodid; - - @Column(length = 32) - @ApiModelProperty("任务id") - private String tasid; - - @Column(length = 32) - @ApiModelProperty("实处理人") - private String haman; - -// @Column(length = 32) -// private String auman;//授权处理人 -// -// @Column(length = 32) -// private String exman;//应处理人 - - @Column(length = 32) - @ApiModelProperty("操作的key:pass,refuse") - private String opkey; - - @Column(length = 64) - @ApiModelProperty("操作的名称: 通过,驳回,转办等") - private String opinf; - - @Column(length = 1000) - @ApiModelProperty("审核留言:具体写了什么审核内容") - private String opnot; - - @Column(length = 512) - @ApiModelProperty("审核附件IDS") - private String atids; - -// @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) -// @JoinColumn(name = "audid") -// @OrderBy("ornum ASC") -// @ApiModelProperty("附件清单") -// private List atts = new ArrayList<>(); - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMainApi.java b/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMainApi.java deleted file mode 100644 index 3f938e8..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMainApi.java +++ /dev/null @@ -1,26 +0,0 @@ -package vben.core.module.bpm.audit.main; - -import vben.core.common.mvc.dao.JdbcDao; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("bpm/audit/main") -public class BpmAuditMainApi { - -// @GetMapping("list") -// public R list(String proid) { -// String sql = "select t.id,t.crtim,t.facna,t.facno,t.opnot,t.opinf,o.name as haman from bpm_audit_main t " + -// "inner join sys_org o on o.id=t.haman " + -// "where t.proid=? order by t.crtim"; -// return R.ok(jdbcDao.findMapList(sql,proid)); -// } -// - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private BpmAuditMainService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMainRepo.java b/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMainRepo.java deleted file mode 100644 index 35d6102..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMainRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.bpm.audit.main; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface BpmAuditMainRepo extends JpaRepository { - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMainService.java b/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMainService.java deleted file mode 100644 index e8bfd81..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/audit/main/BpmAuditMainService.java +++ /dev/null @@ -1,62 +0,0 @@ -package vben.core.module.bpm.audit.main; - - -import vben.core.module.bpm.proc.main.Zbpm; -import vben.core.module.bpm.proc.main.Znode; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; - -@Transactional(rollbackFor = Exception.class) -@Service -public class BpmAuditMainService { - - public BpmAuditMain saveDraftAudit(Zbpm zbpm, Znode znode) { - BpmAuditMain audit = new BpmAuditMain(); - audit.setId(IdUtils.getUID()); - audit.setFacno(znode.getFacno()); - audit.setFacna(znode.getFacna()); - audit.setNodid(znode.getNodid()); - audit.setHaman(zbpm.getHaman()); - audit.setProid(zbpm.getProid()); - audit.setOpnot(zbpm.getOpnot()); - audit.setAtids(zbpm.getAtids()); - audit.setOpkey("dsubmit"); - audit.setOpinf("起草人提交"); - return repo.save(audit); - } - - public BpmAuditMain saveAudit(Zbpm zbpm) { - BpmAuditMain audit = new BpmAuditMain(); - audit.setId(IdUtils.getUID()); - audit.setFacno(zbpm.getFacno()); - audit.setFacna(zbpm.getFacna()); - audit.setNodid(zbpm.getNodid()); - audit.setHaman(zbpm.getHaman()); - audit.setProid(zbpm.getProid()); - audit.setOpnot(zbpm.getOpnot()); - audit.setOpkey(zbpm.getOpkey()); - audit.setOpinf(zbpm.getOpinf()); - audit.setTasid(zbpm.getTasid()); - audit.setAtids(zbpm.getAtids()); - return repo.save(audit); - } - - public BpmAuditMain saveEndAudit(Zbpm zbpm, String nodid) { - BpmAuditMain audit = new BpmAuditMain(); - audit.setId(IdUtils.getUID()); - audit.setFacno("NE"); - audit.setFacna("结束节点"); - audit.setNodid(nodid); - audit.setProid(zbpm.getProid()); - audit.setOpkey("end"); - return repo.save(audit); - } - - - - - @Autowired - private BpmAuditMainRepo repo; -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/node/hist/BpmNodeHist.java b/vben-core/src/main/java/vben/core/module/bpm/node/hist/BpmNodeHist.java deleted file mode 100644 index b583f1a..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/node/hist/BpmNodeHist.java +++ /dev/null @@ -1,63 +0,0 @@ -package vben.core.module.bpm.node.hist; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import java.util.Date; - -@Entity -@Getter -@Setter -@ApiModel("流程历史节点信息") -public class BpmNodeHist { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("当前节点ID:N1,N2") - private String facno; - - @Column(length = 126) - @ApiModelProperty("当前节点名称") - private String facna; - - @Column(length = 32) - @ApiModelProperty("当前节点类型") - private String facty; - - @Column(length = 32) - @ApiModelProperty("流转方式") - private String flway; - - @Column(length = 32) - @ApiModelProperty("目标节点ID") - private String tarno; - - @Column(length = 126) - @ApiModelProperty("目标节点名称") - private String tarna; - - @Column(length = 32) - @ApiModelProperty("流程实例id") - private String proid; - - @Column(length = 8) - @ApiModelProperty("状态") - private String state; - - @Column(updatable = false) - @ApiModelProperty("开始时间") - private Date sttim = new Date(); - - @ApiModelProperty("结束时间") - private Date entim; - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/node/hist/BpmNodeHistRepo.java b/vben-core/src/main/java/vben/core/module/bpm/node/hist/BpmNodeHistRepo.java deleted file mode 100644 index 72365c1..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/node/hist/BpmNodeHistRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.bpm.node.hist; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface BpmNodeHistRepo extends JpaRepository { - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/node/hist/BpmNodeHistService.java b/vben-core/src/main/java/vben/core/module/bpm/node/hist/BpmNodeHistService.java deleted file mode 100644 index 0a1aeda..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/node/hist/BpmNodeHistService.java +++ /dev/null @@ -1,99 +0,0 @@ -package vben.core.module.bpm.node.hist; - -import vben.core.module.bpm.node.main.BpmNodeMain; -import vben.core.module.bpm.proc.main.Zbpm; -import vben.core.module.bpm.proc.main.Znode; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; - -import java.util.Date; -import java.util.List; - -@Transactional(rollbackFor = Exception.class) -@Service -public class BpmNodeHistService { - - public void saveStartNode(Zbpm zbpm) { - BpmNodeHist startNode = new BpmNodeHist(); - startNode.setFacno("NS"); - startNode.setFacna("开始节点"); - startNode.setFacty("start"); - startNode.setProid(zbpm.getProid()); - startNode.setState("30"); - startNode.setEntim(new Date()); - startNode.setTarno("N1"); - startNode.setTarna("起草节点"); - startNode.setId(IdUtils.getUID()); - repo.save(startNode); - } - - public void saveDraftNode(Zbpm zbpm, Znode znode) { - BpmNodeHist draftNode = new BpmNodeHist(); - draftNode.setFacno("N1"); - draftNode.setFacna("起草节点"); - draftNode.setFacty("draft"); - draftNode.setProid(zbpm.getProid()); - draftNode.setState("30"); - draftNode.setId(znode.getNodid()); - draftNode.setEntim(new Date()); - draftNode.setTarno(znode.getTarno()); - draftNode.setTarna(znode.getTarna()); - repo.save(draftNode); - } - - public String saveEndNode(Zbpm zbpm) { - BpmNodeHist endNode = new BpmNodeHist(); - endNode.setFacno("NE"); - endNode.setFacna("结束节点"); - endNode.setFacty("end"); - endNode.setProid(zbpm.getProid()); - endNode.setState("30"); - String uid = IdUtils.getUID(); - endNode.setId(uid); - endNode.setEntim(new Date()); - repo.save(endNode); - return uid; - } - - public void saveNodeList(Zbpm zbpm, List list) { - for (Znode znode : list) { - BpmNodeHist node = new BpmNodeHist(); - node.setFacno(znode.getFacno()); - node.setFacna(znode.getFacna()); - node.setFacty(znode.getFacty()); - node.setProid(zbpm.getProid()); - node.setTarno(znode.getTarno()); - node.setTarna(znode.getTarna()); - node.setState("30"); - node.setId(IdUtils.getUID()); - node.setEntim(new Date()); - repo.save(node); - } - } - - public BpmNodeHist saveNode(BpmNodeMain main) { - BpmNodeHist node = new BpmNodeHist(); - node.setId(main.getId()); - node.setFacno(main.getFacno()); - node.setFacna(main.getFacna()); - node.setFacty(main.getFacty()); - node.setFlway(main.getFlway()); - node.setProid(main.getProid()); - node.setState("20"); - return repo.save(node); - } - - @Transactional(readOnly = true) - public BpmNodeHist findOne(String id) { - return repo.findById(id).get(); - } - - public void delete(String id) { - repo.deleteById(id); - } - - @Autowired - private BpmNodeHistRepo repo; -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/node/main/BpmNodeMain.java b/vben-core/src/main/java/vben/core/module/bpm/node/main/BpmNodeMain.java deleted file mode 100644 index 1d508e8..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/node/main/BpmNodeMain.java +++ /dev/null @@ -1,52 +0,0 @@ -package vben.core.module.bpm.node.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import java.util.Date; - -@Entity -@Getter -@Setter -@ApiModel("流程节点信息") -public class BpmNodeMain { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("当前节点编号:N1,N2") - private String facno; - - @Column(length = 126) - @ApiModelProperty("当前节点名称") - private String facna; - - @Column(length = 32) - @ApiModelProperty("当前节点类型") - private String facty; - - @Column(length = 32) - @ApiModelProperty("流转方式") - private String flway; - - @Column(length = 32) - @ApiModelProperty("流程实例id") - private String proid; - - @Column(length = 8) - @ApiModelProperty("状态") - private String state; - - @Column(updatable = false) - @ApiModelProperty("开始时间") - protected Date sttim = new Date(); - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/node/main/BpmNodeMainRepo.java b/vben-core/src/main/java/vben/core/module/bpm/node/main/BpmNodeMainRepo.java deleted file mode 100644 index 3d30ca6..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/node/main/BpmNodeMainRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.bpm.node.main; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface BpmNodeMainRepo extends JpaRepository { - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/node/main/BpmNodeMainService.java b/vben-core/src/main/java/vben/core/module/bpm/node/main/BpmNodeMainService.java deleted file mode 100644 index 0325a6d..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/node/main/BpmNodeMainService.java +++ /dev/null @@ -1,38 +0,0 @@ -package vben.core.module.bpm.node.main; - - -import cn.hutool.core.util.IdUtil; -import vben.core.module.bpm.proc.main.Zbpm; -import vben.core.module.bpm.proc.main.Znode; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Transactional(rollbackFor = Exception.class) -@Service -public class BpmNodeMainService { - - public BpmNodeMain saveNode(Zbpm zbpm, Znode znode) { - BpmNodeMain node = new BpmNodeMain(); - node.setFacno(znode.getFacno()); - node.setFacna(znode.getFacna()); - node.setFacty(znode.getFacty()); - node.setFlway(znode.getFlway()); - node.setProid(zbpm.getProid()); - node.setState("20"); - node.setId(IdUtil.getSnowflake().nextIdStr()); - return repo.save(node); - } - - @Transactional(readOnly = true) - public BpmNodeMain findOne(String id) { - return repo.findById(id).get(); - } - - public void delete(String id) { - repo.deleteById(id); - } - - @Autowired - private BpmNodeMainRepo repo; -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/cond/BpmProcCond.java b/vben-core/src/main/java/vben/core/module/bpm/proc/cond/BpmProcCond.java deleted file mode 100644 index f5d6cd3..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/cond/BpmProcCond.java +++ /dev/null @@ -1,27 +0,0 @@ -package vben.core.module.bpm.proc.cond; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -@Getter -@Setter -@ApiModel("流程条件参数") -public class BpmProcCond { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 2000) - @ApiModelProperty("参数值") - private String cond; - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/cond/BpmProcCondRepo.java b/vben-core/src/main/java/vben/core/module/bpm/proc/cond/BpmProcCondRepo.java deleted file mode 100644 index 063e90d..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/cond/BpmProcCondRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.bpm.proc.cond; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface BpmProcCondRepo extends JpaRepository { - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMain.java b/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMain.java deleted file mode 100644 index bc82c8d..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMain.java +++ /dev/null @@ -1,47 +0,0 @@ -package vben.core.module.bpm.proc.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import vben.core.common.mvc.entity.BaseMainEntity; -import vben.core.module.sys.org.root.SysOrg; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Entity; - -@Entity -@Getter -@Setter -@ApiModel("流程实例信息") -public class BpmProcMain extends BaseMainEntity { - - - @Column(length = 32) - @ApiModelProperty("待用字段") - private String modid; - - @ApiModelProperty("待用字段") - private String modty; - - - @Column(length = 32) - @ApiModelProperty("模板ID") - private String temid; - - @Column(length = 8) - @ApiModelProperty("状态") - private String state; - - public BpmProcMain() { - - } - - public BpmProcMain(Zbpm zbpm) { - this.id=zbpm.getProid(); - this.name=zbpm.getProna(); - this.temid=zbpm.getTemid(); - this.crman=new SysOrg(zbpm.getHaman()); - } - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainApi.java b/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainApi.java deleted file mode 100644 index 874b9d3..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainApi.java +++ /dev/null @@ -1,366 +0,0 @@ -package vben.core.module.bpm.proc.main; - -import cn.hutool.core.util.StrUtil; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.ZidNamePid; -import vben.core.common.utils.db.DbType; -import vben.core.common.utils.web.XuserUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.module.ass.oss.main.AssOssMainService; -import vben.core.module.bpm.task.main.BpmTaskMain; -import vben.core.module.bpm.task.main.BpmTaskMainService; -import vben.core.module.sys.org.role.SysOrgRoleTreeService; -import vben.core.module.sys.org.root.SysOrg; - -import java.util.*; - -@RestController -@RequestMapping("bpm/proc/main") -public class BpmProcMainApi { - - @GetMapping - public R get(String name, String catid) { - Sqler sqler = new Sqler("bpm_proc_main"); - sqler.addLike("t.name", name); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - public R getOne(@PathVariable String id) { - BpmProcMain main = service.findOne(id); - return R.ok(main); - } - - @GetMapping("zbpm") - public R zbpm(String proid) { - Map map = new HashMap<>(); - //审批记录 - Sqler sqler = new Sqler("t.id,t.crtim,t.facna,t.facno,t.opnot,t.opinf,o.name haman,t.atids", "bpm_audit_main"); - sqler.addInnerJoin("", "sys_org o", "o.id=t.haman"); - sqler.addEqual("t.proid", proid); - sqler.addOrder("t.crtim"); - List> audits = jdbcDao.findMapList(sqler); - - for (Map audit : audits) { - if(audit.get("atids")!=null){ - -// String[] atarr= (audit.get("atids")+"").split(","); -// List atts=new ArrayList<>(); -// for (String s : atarr) { -// atts.add(ossService.getInfo(s)); -// } - audit.put("atts",ossService.getInfos(audit.get("atids")+"")); - } - } - map.put("audits", audits); - - //历史处理人 - String hiHamen = ""; - for (Map audit : audits) { - if (!hiHamen.contains((String)audit.get("haman"))) { - hiHamen += audit.get("haman") + ";"; - } - } - if (hiHamen.contains(";")) { - hiHamen = hiHamen.substring(0, hiHamen.length() - 1); - } - map.put("hiHamen", hiHamen); - - //当前处理人与当前用户是否在当前处理人中 - String sql2 = "select n.id as tasid,t.id as nodid,o.name exnam,n.exman,t.proid,t.facno,t.facna from bpm_node_main t" + - " inner join bpm_task_main n on n.nodid=t.id " + - "inner join sys_org o on o.id=n.exman " + - "where t.proid=? and n.actag=1 order by n.ornum"; - Sqler sqler2 = new Sqler("n.id as tasid,t.id as nodid,o.name exnam,n.exman,t.proid,t.facno,t.facna,n.type tasty", "bpm_node_main"); - sqler2.addInnerJoin("", "bpm_task_main n", "n.nodid=t.id"); - sqler2.addInnerJoin("", "sys_org o", "o.id=n.exman"); - sqler2.addWhere("t.proid=? and n.actag=1", proid); - sqler2.addOrder("n.ornum"); - List> tasks = jdbcDao.findMapList(sqler2); - String cuExmen = ""; - boolean cutag = false; - String userId = XuserUtil.getUserId(); - - String postSql = "select pid as id from sys_org_post_org where oid=?"; - List postIdList = jdbcDao.findStringList(postSql, userId); - Zbpm zbpm = new Zbpm(); - for (Map task : tasks) { - if (StrUtil.isBlank(zbpm.getProid())) { - zbpm.setProid((String)task.get("proid")); - zbpm.setNodid((String)task.get("nodid")); - zbpm.setFacno((String)task.get("facno")); - zbpm.setFacna((String)task.get("facna")); - } - cuExmen += task.get("exnam") + ";"; - if (userId.equals(task.get("exman"))) { - zbpm.setTasid((String)task.get("tasid")); - zbpm.setTasty((String)task.get("tasty")); - zbpm.setExman((String)task.get("exman")); - cutag = true; - } - if (!cutag) { - for (String postId : postIdList) { - if (postId.equals(task.get("exman"))) { - zbpm.setTasid((String)task.get("tasid")); - zbpm.setTasty((String)task.get("tasty")); - zbpm.setExman((String)task.get("exman")); - cutag = true; - } - } - } - } - if (cuExmen.contains(";")) { - cuExmen = cuExmen.substring(0, cuExmen.length() - 1); - } - map.put("cuExmen", cuExmen); - map.put("cutag", cutag); - map.put("zbpm", zbpm); - return R.ok(map); - } - - @GetMapping("target") - public R target(String proid, String facno,String modty) { - Map map = new HashMap<>(); - Znode nextNode; - //如果是之前被驳回的节点则,通过后要判断是否直接返回驳回的节点 - String refuseSql = "select t.id \"id\",t.paval \"paval\" from bpm_proc_param t where t.proid=? and t.pakey=?"; - Map bacMap = jdbcDao.findMap(refuseSql, proid, facno + "#refuse"); - - String xmlSql = "select t.chxml from bpm_proc_temp t " + - "inner join bpm_proc_main m on m.temid=t.id where m.id=?"; - String chxml = jdbcDao.findOneString(xmlSql, proid); - if (bacMap != null && StrUtil.isNotBlank((String) bacMap.get("paval"))) { - nextNode = hand.getNodeInfo(chxml, (String) bacMap.get("paval")); - } else { - List bpmTaskMainList = taskMainService.findAllByProidNotActive(proid); - if (bpmTaskMainList.size() > 0) { - nextNode = hand.getNodeInfo(chxml, facno); - } else { - Zcond zcond=new Zcond(); - zcond.setProid(proid); - zcond.setModty(modty); - nextNode = hand.calcTarget(zcond,chxml, facno); - } - } - String tamen = "暂时无法计算"; - if (nextNode == null) - { - nextNode = new Znode(); - nextNode.setFacno("NX"); - nextNode.setFacna("未知节点"); - }else{ - tamen = calcTamen(proid,nextNode.getExmen()); - } - map.put("tarno", nextNode.getFacno()); - map.put("tarna", nextNode.getFacna()); - map.put("tamen", tamen); - if (bacMap != null) { - map.put("bacid", bacMap.get("id")); - } - return R.ok(map); - } - - - //返回当前节点之前的已走过的节点 - @GetMapping("refnodes") - public R refNodes(String proid, String facno) { - String sql = "select distinct t.facno \"id\",t.facna \"name\",t.haman \"exman\",t.crtim \"crtim\" from bpm_audit_main t " + - "where proid=? and opkey in('dsubmit','pass') order by t.crtim"; - List> mapList = jdbcDao.findMapList(sql, proid); - List> list = new ArrayList<>(); - for (Map map : mapList) { - if (facno.equals(map.get("id"))) { - break; - } - boolean flag=false; - for (Map map2 : list) { - if (map.get("id").equals(map2.get("id"))) { - flag=true; - break; - } - } - if(!flag){ - list.add(map); - } - } - return R.ok(list); - } - - //返回当前节点沟通人员 - @GetMapping("ccmen") - public R ccmen(String proid, String facno) { - String sql = "select o.id \"id\",o.name \"name\",t.id \"tasid\" from bpm_task_main t " + - "inner join sys_org o on o.id=t.exman " + - "where t.proid=? and t.type='communicate' order by t.sttim"; - List> mapList = jdbcDao.findMapList(sql, proid); - return R.ok(mapList); - } - - @GetMapping("xml") - public R xml(String proid) { - Map map = new HashMap<>(); - String xmlSql = "select t.orxml id from bpm_proc_temp t " + - "inner join bpm_proc_main m on m.temid=t.id where m.id=?"; - String orxml = jdbcDao.findOneString(xmlSql, proid); - -// String sql = "select distinct t.facno id from bpm_node_hist t where proid=? order by sttim"; - String sql = "select distinct t.facno id from bpm_node_hist t where proid=?"; - List nodeList = jdbcDao.findStringList(sql, proid); - - List allLineList = hand.GetAllLineList(orxml); - HashSet lineSet = new HashSet<>(); - for (ZidNamePid zinp : allLineList) { - for (String node : nodeList) { - if (node.equals(zinp.getName())) { - for (String node2 : nodeList) { - if (node2.equals(zinp.getPid())) { - lineSet.add(zinp.getId()); - break; - } - } - break; - } - } - } - - map.put("xml", orxml); - map.put("nodeList", nodeList); - map.put("lineList", lineSet); - return R.ok(map); - } - - @GetMapping("texml") - public R texml(String temid) { - Map map = new HashMap<>(); - String sql = "select t.orxml from bpm_proc_temp t where t.id=?"; - String orxml = jdbcDao.findOneString(sql, temid); - Znode nextNode = hand.getFirstNode(temid,orxml, "N1"); - - String tamen = "暂时无法计算"; - if (nextNode == null) - { - nextNode = new Znode(); - nextNode.setFacno("NX"); - nextNode.setFacna("未知节点"); - }else{ - tamen = calcTamen(null,nextNode.getExmen()); - } - map.put("tarno", nextNode.getFacno()); - map.put("tarna", nextNode.getFacna()); - map.put("tamen", tamen); - map.put("xml", orxml); - return R.ok(map); - } - - private String calcTamen(String proid,String exman) { - String tamen = ""; - if(StrUtil.isNotBlank(exman)&&exman.contains("$")){ - if("$creator".equals(exman)){ - String sql="select crmid from bpm_proc_main where id=?"; - exman= jdbcDao.findOneString(sql,proid); - } - } - if (StrUtil.isNotBlank(exman) && !exman.contains(";")) { - String tamenSql = "select t.id, t.name,t.type from sys_org t where t.id=?"; - SysOrg sysOrg = jdbcDao.getTp().queryForObject(tamenSql, - new Object[]{exman}, new BeanPropertyRowMapper<>(SysOrg.class)); - if (sysOrg.getType()==32) { - String crmid=XuserUtil.getUserId(); - if(proid!=null){ - String sql="select crmid from bpm_proc_main where id=?"; - crmid= jdbcDao.findOneString(sql,proid); - } - SysOrg org = sysOrgRoleTreeService.calc(crmid, sysOrg.getId()); - tamen = org.getName(); - } else { - tamen = sysOrg.getName(); - } - } else if (StrUtil.isNotBlank(exman) && exman.contains(";")) { - Sqler sqler = new Sqler("sys_org"); - String ids = exman; - ids = "'" + ids.replaceAll(";", "','") + "'"; - sqler.addWhere("id in " + "(" + ids + ")"); - if (DbType.MYSQL.equals(jdbcDao.getDbType())) { - sqler.addOrder("field(id," + ids + ")"); - }else if(DbType.ORACLE.equals(jdbcDao.getDbType())){ - sqler.addOrder("INSTR('"+ids.replaceAll("'","")+"',id)"); - }else if(DbType.SQL_SERVER.equals(jdbcDao.getDbType())){ - sqler.addOrder("CHARINDEX(id,'"+ids.replaceAll("'","")+"')"); - } - - sqler.addSelect("t.type"); - System.out.println(sqler.getSql()); - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), - new BeanPropertyRowMapper<>(SysOrg.class)); -// List idNameList = jdbcDao.findIdNameList(sqler); - for (SysOrg sysOrg : list) { - if (sysOrg.getType() == 32) { - String crmid=XuserUtil.getUserId(); - if(proid!=null){ - String sql="select crmid from bpm_proc_main where id=?"; - crmid= jdbcDao.findOneString(sql,proid); - } - SysOrg org = sysOrgRoleTreeService.calc(crmid, sysOrg.getId()); - tamen += org.getName() + ";"; - } else { - tamen += sysOrg.getName() + ";"; - } - } - tamen = tamen.substring(0, tamen.length() - 1); - } - return tamen; - } - -// @PostMapping("hpass") -// public R hpass(@RequestBody Zbpm zbpm) { -// -// -// service.handlerPass(zbpm); -// return R.ok(); -// } - -// @PostMapping("hrefuse") -// public R hrefuse(@RequestBody Zbpm zbpm) { -// -// service.handlerRefuse(zbpm); -// return R.ok(); -// } - - @PostMapping - public R post(@RequestBody BpmProcMain main) { - return R.ok(service.insert(main)); - } - - @PutMapping - public R put(@RequestBody BpmProcMain main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private BpmProcMainHand hand; - - @Autowired - private AssOssMainService ossService; - - @Autowired - private BpmProcMainService service; - - @Autowired - private BpmTaskMainService taskMainService; - - @Autowired - private SysOrgRoleTreeService sysOrgRoleTreeService; - -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainHand.java b/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainHand.java deleted file mode 100644 index 40bf16b..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainHand.java +++ /dev/null @@ -1,382 +0,0 @@ -package vben.core.module.bpm.proc.main; - -import cn.hutool.core.util.StrUtil; -import cn.hutool.script.ScriptRuntimeException; -import cn.hutool.script.ScriptUtil; -import org.dom4j.Document; -import org.dom4j.DocumentException; -import org.dom4j.Element; -import org.dom4j.io.SAXReader; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.pojo.ZidNamePid; -import vben.core.common.utils.web.XuserUtil; - -import javax.script.CompiledScript; -import javax.script.ScriptException; -import java.io.Reader; -import java.io.StringReader; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -@Component -public class BpmProcMainHand { - - public Znode procFlow(Zbpm zbpm, List list, Znode znode) { - //根据temid寻找xml的filename - SAXReader reader = new SAXReader(); - Reader stringReader = new StringReader(zbpm.getChxml()); - Document document = null; - try { - document = reader.read(stringReader); - } catch (DocumentException e) { - System.out.println("xml解析异常"); - e.printStackTrace(); - } - Element rootNode = document.getRootElement(); - Iterator it = rootNode.elementIterator(); - //查找当前节点的目标节点,如果已有(比如是驳回返回的)则不需要额外查找 - if (znode.getTarno() == null) { - while (it.hasNext()) { - Element node = it.next(); - if ("sequenceFlow".equals(node.getName())) { - if (znode.getFacno().equals(node.attribute("sourceRef").getValue())) { -// nextNode.setId(node.attribute("targetRef").getValue()); - znode.setTarno(node.attribute("targetRef").getValue()); - break; - } - } - } - } - Zcond zcond=new Zcond(); - zcond.setProid(zbpm.getProid()); - zcond.setModty(zbpm.getModty()); - zcond.setTemid(zbpm.getTemid()); - //判断nextNode是否为审批节点 - return nodeFlow(zcond,rootNode, list, znode); - } - - - //节点流转 - //判断节点是否为审批节点,如果为审批节点则取处理人 - // 如果是条件分支,则根据分支条件流转到下一个节点,直到找到审批节点 - private Znode nodeFlow(Zcond zcond,Element rootNode, List list, Znode znode) { - if ("NE".equals(znode.getTarno())) { - znode.setTarna("结束节点"); - Znode endNode = new Znode(); - endNode.setFacno("NE"); - endNode.setFacna("结束节点"); - endNode.setFacty("end"); - return endNode; - } - Iterator it = rootNode.elementIterator(); - String userIds = ""; - while (it.hasNext()) { - Element node = it.next(); - if ("task".equals(node.getName()) || "userTask".equals(node.getName())) {//节点为审批节点 - if (znode.getTarno().equals(node.attribute("id").getValue())) { - String hatyp = node.attribute("hatyp").getValue(); - if ("1".equals(hatyp)) - { - userIds = node.attribute("hamen").getValue();; - } - else - { - if (zcond.getProid()!=null&&"$creator".equals(node.attribute("hamen").getValue())) - { - userIds=jdbcDao.findOneString("select crmid from bpm_proc_main where id=?",zcond.getProid()); - } - if(StrUtil.isBlank(userIds)&&zcond.getTemid()!=null&&"$creator".equals(node.attribute("hamen").getValue())){ - userIds= XuserUtil.getUserId(); - } - } - - znode.setTarna(node.attribute("name").getValue()); - System.out.println(znode); - //list.add(znode); - Znode nextNode = new Znode(); - nextNode.setFacno(znode.getTarno()); - nextNode.setFacna(znode.getTarna()); - nextNode.setFacty("review"); - nextNode.setExmen(userIds); - nextNode.setFlway(node.attribute("flway").getValue()); - return nextNode; - -// System.out.println("进入了:task"); -// Iterator sonit = node.elementIterator(); -// while (sonit.hasNext()) { -// Element son = sonit.next(); -// if ("extensionElements".equals(son.getName())) { -// System.out.println("进入了:extensionElements"); -// Iterator sunit = son.elementIterator(); -// while (sunit.hasNext()) { -// Element sun = sunit.next(); -// if ("formProperty".equals(sun.getName())) { -// System.out.println("进入了:formProperty"); -// if ("userid".equals(sun.attribute("id").getValue())) { -// userid = sun.attribute("name").getValue(); -// znode.setTarna(node.attribute("name").getValue()); -// System.out.println(znode); -// //list.add(znode); -// Znode nextNode = new Znode(); -// nextNode.setFacno(znode.getTarno()); -// nextNode.setFacna(znode.getTarna()); -// nextNode.setFacty("review"); -// nextNode.setExman(userid); -// return nextNode; -// } -// } -// } -// break; -// } -// } - } - } else if ("exclusiveGateway".equals(node.getName())) {//节点为条件分支 - String nextNodeId = ""; - if (znode.getTarno().equals(node.attribute("id").getValue())) { - znode.setTarna(node.attribute("name").getValue()); - //list.add(znode); - it = rootNode.elementIterator(); - while (it.hasNext()) { - Element xnode = it.next(); - if ("sequenceFlow".equals(xnode.getName())) { - if (znode.getTarno().equals(xnode.attribute("sourceRef").getValue())) { - - if(checkConds(zcond,xnode.attribute("conds").getValue())){ - nextNodeId = xnode.attribute("targetRef").getValue(); - System.out.println("条件分支转到:" + nextNodeId); - Znode nextNode = new Znode(); - nextNode.setFacno(znode.getTarno()); - nextNode.setFacna(znode.getTarna()); - nextNode.setFacty("condtion"); - nextNode.setTarno(nextNodeId); - list.add(nextNode); - return nodeFlow(zcond,rootNode, list, nextNode); - } -// Iterator sunit = xnode.elementIterator(); -// if (checkConds(sunit)) {//满足条件时 -// nextNodeId = xnode.attribute("targetRef").getValue(); -// System.out.println("条件分支转到:" + nextNodeId); -// Znode nextNode = new Znode(); -// nextNode.setFacno(znode.getTarno()); -// nextNode.setFacna(znode.getTarna()); -// nextNode.setFacty("condtion"); -// nextNode.setTarno(nextNodeId); -// list.add(nextNode); -// return nodeFlow(rootNode, list, nextNode); -// } - } - } - } - break; - } - } - if (!"".equals(userIds)) { - break; - } - } - return null; - } -// - private boolean checkConds(Zcond zcond,String expression) { - System.out.println("条件为:" + expression); - if(StrUtil.isBlank(expression)){ - return false; - } - - String zformJson=""; - if(zcond!=null){ - System.out.println("modty:"+zcond.getModty()); - if("oaFlow".equals(zcond.getModty())){ - String sql="select zform id from oa_flow_main where id=?"; - zformJson = jdbcDao.findOneString(sql, zcond.getProid()); - }else if(zcond.getModty().startsWith("app_")){ - String sql="select cond from bpm_proc_cond where id=?"; - zformJson = jdbcDao.findOneString(sql, zcond.getProid()); - } - - } - if (StrUtil.isBlank(zformJson)) - { - zformJson = "{}"; - } - String form = "var $=" + zformJson; - System.out.println(form); - CompiledScript script ; - if(expression.contains(";")){ - script= ScriptUtil.compile(form+";var z=false;"+expression+";z"); - }else{ - script= ScriptUtil.compile(form+";var z="+expression+";z"); -// script= ScriptUtil.compile(expression); - } - boolean flag; - try { - flag= (boolean) script.eval(); - } catch (ScriptException e) { - throw new ScriptRuntimeException(e); - } - System.out.println("返回结果="+flag); - return flag; - } - -// private boolean checkConds(Iterator it) { -// while (it.hasNext()) { -// Element son = it.next(); -// if ("extensionElements".equals(son.getName())) { -// System.out.println("进入了:extensionElements"); -// Iterator sunit = son.elementIterator(); -// while (sunit.hasNext()) { -// Element sun = sunit.next(); -// if ("executionListener".equals(sun.getName())) { -// System.out.println("进入了:executionListener"); -// if (!checkCond(sun.attribute("expression").getValue())) { -// return false; -// } -// break; -// } -// } -// break; -// } -// } -// return true; -// } -// -// private boolean checkCond(String expression) { -// System.out.println("条件为:" + expression); -// return true; -// } - - public Znode getNodeInfo(String chxml, String facno) { - SAXReader reader = new SAXReader(); - Reader stringReader = new StringReader(chxml); - Document document = null; - try { - document = reader.read(stringReader); - } catch (DocumentException e) { - System.out.println("xml解析异常"); - e.printStackTrace(); - } - Element rootNode = document.getRootElement(); - Iterator it = rootNode.elementIterator(); - while (it.hasNext()) { - Element node = it.next(); - if ("userTask".equals(node.getName()) || "task".equals(node.getName())) { - if (facno.equals(node.attribute("id").getValue())) { - Znode znode = new Znode(); - znode.setFacno(facno); - znode.setFacna(node.attribute("name").getValue()); - - znode.setExmen(node.attribute("hamen")!=null?node.attribute("hamen").getValue():null); - - znode.setFlway(node.attribute("flway")!=null?node.attribute("flway").getValue():null); - znode.setFacty("review"); - return znode; - } - } - } - return null; - } - - public Znode calcTarget(Zcond zcond,String chxml, String facno) { - SAXReader reader = new SAXReader(); - Reader stringReader = new StringReader(chxml); - Document document = null; - try { - document = reader.read(stringReader); - } catch (DocumentException e) { - System.out.println("xml解析异常"); - e.printStackTrace(); - } - Element rootNode = document.getRootElement(); - Iterator it = rootNode.elementIterator(); - Znode currNode = new Znode(); - currNode.setFacno(facno); - while (it.hasNext()) { - Element node = it.next(); - if ("sequenceFlow".equals(node.getName())) { - if (facno.equals(node.attribute("sourceRef").getValue())) { - currNode.setTarno(node.attribute("targetRef").getValue()); - break; - } - } - } - List list = new ArrayList<>(); - Znode nextNode = nodeFlow(zcond,rootNode, list, currNode); - return nextNode; - } - - public Znode getFirstNode(String temid,String xml, String facno) { - //根据temid寻找xml的filename - xml = "" - + "\n"; - - SAXReader reader = new SAXReader(); - Reader stringReader = new StringReader(xml); - Document document = null; - try { - document = reader.read(stringReader); - } catch (DocumentException e) { - System.out.println("xml解析异常"); - e.printStackTrace(); - } - Element rootNode = document.getRootElement(); - - Znode currNode = new Znode(); - currNode.setFacno(facno); - - Iterator it = rootNode.elementIterator(); - while (it.hasNext()) { - Element node = it.next(); - if ("sequenceFlow".equals(node.getName())) { - if (facno.equals(node.attribute("sourceRef").getValue())) { - currNode.setTarno(node.attribute("targetRef").getValue()); - break; - } - } - } - List list = new ArrayList<>(); - Zcond zcond=new Zcond(); - zcond.setTemid(temid); - Znode nextNode = nodeFlow(zcond,rootNode, list, currNode); - return nextNode; - } - - public List GetAllLineList(String xml) { - //根据temid寻找xml的filename - xml = "" - + "\n"; - - SAXReader reader = new SAXReader(); - Reader stringReader = new StringReader(xml); - Document document = null; - try { - document = reader.read(stringReader); - } catch (DocumentException e) { - System.out.println("xml解析异常"); - e.printStackTrace(); - } - Element rootNode = document.getRootElement(); - - List list = new ArrayList<>(); - Iterator it = rootNode.elementIterator(); - while (it.hasNext()) { - Element node = it.next(); - if ("sequenceFlow".equals(node.getName())) { - ZidNamePid zinp = new ZidNamePid(); - zinp.setId(node.attribute("id").getValue() + ""); - zinp.setName(node.attribute("sourceRef").getValue() + ""); - zinp.setPid(node.attribute("targetRef").getValue() + ""); - list.add(zinp); - } - } - return list; - } - - @Autowired - private JdbcDao jdbcDao; - -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainRepo.java b/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainRepo.java deleted file mode 100644 index d7eba21..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.bpm.proc.main; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface BpmProcMainRepo extends JpaRepository { - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainService.java b/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainService.java deleted file mode 100644 index ef8e5b8..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/main/BpmProcMainService.java +++ /dev/null @@ -1,600 +0,0 @@ -package vben.core.module.bpm.proc.main; - -import cn.hutool.core.util.StrUtil; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.service.BaseMainService; -import vben.core.common.utils.db.DbType; -import vben.core.common.utils.web.XuserUtil; -import vben.core.module.bpm.audit.main.BpmAuditMainService; -import vben.core.module.bpm.node.hist.BpmNodeHist; -import vben.core.module.bpm.node.hist.BpmNodeHistService; -import vben.core.module.bpm.node.main.BpmNodeMain; -import vben.core.module.bpm.node.main.BpmNodeMainService; -import vben.core.module.bpm.proc.param.BpmProcParam; -import vben.core.module.bpm.proc.param.BpmProcParamService; -import vben.core.module.bpm.task.hist.BpmTaskHist; -import vben.core.module.bpm.task.hist.BpmTaskHistService; -import vben.core.module.bpm.task.main.BpmTaskMain; -import vben.core.module.bpm.task.main.BpmTaskMainService; -import vben.core.module.sys.org.role.SysOrgRoleTreeService; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.module.sys.todo.main.SysTodoMainService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Service; -import vben.core.common.utils.lang.IdUtils; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; - -@Service -public class BpmProcMainService extends BaseMainService { - - //启动流程 - public Znode start(Zbpm zbpm) throws Exception { - //1 保存流程实例 - BpmProcMain bpmProcMain = new BpmProcMain(zbpm); - super.insert(bpmProcMain); - - //2 历史节点表保存开始节点 - nodeHistService.saveStartNode(zbpm); - - //3 流程流转(收集流转过的节点,计算出下一个待审批节点) - Znode draftNode = new Znode("N1"); - draftNode.setFacna("起草节点"); - draftNode.setFacty("draft"); - List list = new ArrayList<>(); - - String xmlSql = "select t.chxml from bpm_proc_temp t where t.id=?"; - String chxml = jdbcDao.findOneString(xmlSql,zbpm.getTemid()); - zbpm.setChxml(chxml); - Znode nextNode = hand.procFlow(zbpm, list, draftNode);//流转核心逻辑 - if(nextNode==null){ - throw new Exception("未找到下一个可流的流程节点"); - } - exmenTran(null,nextNode);//审批人转换 - - //4.1 历史节点表保存起草节点 - draftNode.setNodid(IdUtils.getUID()); - nodeHistService.saveDraftNode(zbpm, draftNode); - //4.2 评审表保存起草节点的评审信息 - auditMainService.saveDraftAudit(zbpm, draftNode); - //4.3 历史节点表保存其他已流节点(条件分支等非审批节点) - nodeHistService.saveNodeList(zbpm, list); - //4.4 当前节点表保存下一个待审批节点 - BpmNodeMain nodeMain = nodeMainService.saveNode(zbpm, nextNode); - nextNode.setNodid(nodeMain.getId()); - //4.5 历史节点表保存下一个待审批节点 - nodeHistService.saveNode(nodeMain); - - //5.1 当前任务表创建待审节点的任务 - List mainTaskList = taskMainService.createTaskList(zbpm, nextNode); - //5.2 历史任务表创建待审节点的任务 - taskHistService.createTaskList(mainTaskList); - - //6 发起待办 - todoService.sendTodos(zbpm, mainTaskList); - return nextNode; - } - - //通过流程 - public Znode handlerPass(Zbpm zbpm) throws Exception { - zbpm.setHaman(XuserUtil.getUserId()); - - String sql = "select m.id as \"proid\",m.name \"prona\" from bpm_proc_main m where m.id=?"; - Map map = jdbcDao.findMap(sql, zbpm.getProid()); - zbpm.setProna((String)map.get("prona")); - - zbpm.setOpkey("pass"); - zbpm.setOpinf("通过"); - - //1 评审表保存当前节点的评审信息 - auditMainService.saveAudit(zbpm); - if(StrUtil.isNotBlank(zbpm.getBacid())){ - paramService.delete(zbpm.getBacid()); - } - - //2.1 将历史任务变成已办 - BpmTaskHist histTask = taskHistService.findOne(zbpm.getTasid()); - histTask.setHaman(zbpm.getHaman()); - histTask.setEntim(new Date()); - histTask.setState("30"); - //2.2 删除当前任务表记录 - taskMainService.delete(zbpm.getTasid()); - - - //3 流程流转 - Znode currNode = new Znode(zbpm.getFacno()); - currNode.setNodid(zbpm.getNodid()); - currNode.setFacno(zbpm.getFacno()); - currNode.setFacty("review"); - if(StrUtil.isNotBlank(zbpm.getBacid())){ - currNode.setTarno(zbpm.getTarno()); - currNode.setTarna(zbpm.getTarna()); - } - BpmNodeMain dbNode = nodeMainService.findOne(currNode.getNodid()); - if("1".equals(dbNode.getFlway())){ - List bpmTaskMainList = taskMainService.findAllByProidNotActive(zbpm.getProid()); - if(bpmTaskMainList.size()>0){ - bpmTaskMainList.get(0).setActag(true); - taskHistService.createTask(bpmTaskMainList.get(0)); - //7.1 删除之前的待办 - todoService.doneTodos(zbpm); - //7.2 发起新待办 - todoService.sendTodos(zbpm, bpmTaskMainList); - return currNode; - } - }else if("2".equals(dbNode.getFlway())){ - List bpmTaskMainList = taskMainService.findAllByProid(zbpm.getProid()); - for (BpmTaskMain bpmTaskMain : bpmTaskMainList) { - taskMainService.delete(bpmTaskMain.getId()); - taskHistService.delete(bpmTaskMain.getId()); - } - }else if("3".equals(dbNode.getFlway())){ - List bpmTaskMainList = taskMainService.findAllByProid(zbpm.getProid()); - if(bpmTaskMainList.size()>0){ - todoService.doneTodo(zbpm); - return currNode; - } - } - - - List list = new ArrayList<>(); - String xmlSql = "select t.chxml from bpm_proc_temp t " + - "inner join bpm_proc_main m on m.temid=t.id where m.id=?"; - String chxml = jdbcDao.findOneString(xmlSql, zbpm.getProid());; - zbpm.setChxml(chxml); - - Znode nextNode = hand.procFlow(zbpm, list, currNode);//流转核心逻辑 - if(nextNode==null){ - throw new Exception("未找到下一个可流的流程节点"); - } - exmenTran(zbpm.getProid(),nextNode);//审批人转换 - - //4.1 将历史节点变成已办 - BpmNodeHist histNode = nodeHistService.findOne(zbpm.getNodid()); - histNode.setEntim(new Date()); - histNode.setState("30"); - histNode.setTarno(currNode.getTarno()); - histNode.setTarna(currNode.getTarna()); - currNode.setFacna(histNode.getFacna()); - //4.2 历史节点表保存已流节点 - nodeHistService.saveNodeList(zbpm, list); - //4.3 删除当前节点表记录 - nodeMainService.delete(zbpm.getNodid()); - - if (!"end".equals(nextNode.getFacty())) { - //5.1 当前节点表保存下一个待审批节点 - BpmNodeMain nodeMain = nodeMainService.saveNode(zbpm, nextNode); - nextNode.setNodid(nodeMain.getId()); - //5.2 历史节点表保存下一个待审批节点 - nodeHistService.saveNode(nodeMain); - - //6.1 当前任务表创建待审节点的任务 - List mainTaskList = taskMainService.createTaskList(zbpm, nextNode); - //6.2 历史任务表创建待审节点的任务 - taskHistService.createTaskList(mainTaskList); - - //7.1 删除之前的待办 - todoService.doneTodos(zbpm); - //7.2 发起新待办 - todoService.sendTodos(zbpm, mainTaskList); - } else { - //5 历史节点表保存结束节点 - String endNodeId=nodeHistService.saveEndNode(zbpm); - - //6 评审表保存结束节点的评审信息 - auditMainService.saveEndAudit(zbpm,endNodeId); - - //7 删除之前的待办 - todoService.doneTodos(zbpm); - - //8 将流程更新成完结 - String procUpdateSql = "update bpm_proc_main set state='30' where id=?"; - jdbcDao.update(procUpdateSql,zbpm.getProid()); - } - - return nextNode; - } - - //驳回流程 - public Znode handlerRefuse(Zbpm zbpm) { - zbpm.setHaman(XuserUtil.getUserId()); - - String sql = "select m.id \"proid\",m.name \"prona\" from bpm_proc_main m where m.id=?"; - Map map = jdbcDao.findMap(sql, zbpm.getProid()); - zbpm.setProna((String) map.get("prona")); - - //驳回: "起草节点"(返回本人) - if(zbpm.getRetag()){ - zbpm.setOpinf("驳回: "+zbpm.getTarno()+"."+zbpm.getTarna()+"(返回本人)"); - }else{ - zbpm.setOpinf("驳回: "+zbpm.getTarno()+"."+zbpm.getTarna()); - } - - //1 评审表保存当前节点的评审信息 - auditMainService.saveAudit(zbpm); - - //2.1 将历史任务变成已办 - BpmTaskHist histTask = taskHistService.findOne(zbpm.getTasid()); - histTask.setHaman(zbpm.getHaman()); - histTask.setEntim(new Date()); - histTask.setState("30"); - //2.2 删除当前任务表记录 - taskMainService.deleteAllByProid(zbpm.getProid()); - //2.3 删除历史任务未结束记录 - taskHistService.deleteAllByProidNotEnd(zbpm.getProid()); - - //3 创建驳回节点 -// Znode refuseNode = hand.getNodeInfo(zbpm,zbpm.getTarno()); -// Znode refuseNode = new Znode(); -// refuseNode.setFacno(zbpm.getTarno()); -// refuseNode.setFacna(zbpm.getTarna()); -// refuseNode.setExmen(zbpm.getExman()); -// refuseNode.setFacty("review"); - String xmlSql = "select m.crmid \"crmid\",t.chxml \"chxml\" from bpm_proc_temp t inner join bpm_proc_main m on m.temid=t.id where m.id=?"; - Map xmlMap = jdbcDao.findMap(xmlSql,zbpm.getProid()); - Znode refuseNode=hand.getNodeInfo(xmlMap.get("chxml")+"",zbpm.getTarno()); - if("N1".equals(refuseNode.getFacno())){ - refuseNode.setExmen(xmlMap.get("crmid")+""); - } - exmenTran(zbpm.getProid(),refuseNode); - //4.1 将历史节点变成已办 - BpmNodeHist histNode = nodeHistService.findOne(zbpm.getNodid()); - histNode.setTarno(zbpm.getTarno()); - histNode.setTarna(zbpm.getTarna()); - histNode.setEntim(new Date()); - histNode.setState("30"); - //4.2 删除当前节点表记录 - nodeMainService.delete(zbpm.getNodid()); - - //5.1 当前节点表保存下一个待审批节点 - BpmNodeMain nodeMain = nodeMainService.saveNode(zbpm, refuseNode); - refuseNode.setNodid(nodeMain.getId()); - //5.2 历史节点表保存下一个待审批节点 - nodeHistService.saveNode(nodeMain); - //5.3 如果驳回时勾选了 驳回的节点通过后直接返回本节点 - if(zbpm.getRetag()==true){ - BpmProcParam param = new BpmProcParam(); - param.setId(IdUtils.getUID()); - param.setProid(zbpm.getProid()); - param.setOffty("proc"); - param.setOffid(zbpm.getProid()); - param.setPakey(zbpm.getTarno()+"#refuse"); - param.setPaval(zbpm.getFacno()); - paramService.save(param); - } - - //6.1 当前任务表创建待审节点的任务 - List mainTaskList = taskMainService.createTaskList(zbpm, refuseNode); - //6.2 历史任务表创建待审节点的任务 - taskHistService.createTaskList(mainTaskList); - - //7.1 删除之前的待办 - todoService.doneTodos(zbpm); - //7.2 发起新待办 - todoService.sendTodos(zbpm, mainTaskList); - return refuseNode; - } - - //转办流程 - public void handlerTurn(Zbpm zbpm) { - zbpm.setHaman(XuserUtil.getUserId()); - - String sql = "select m.id \"proid\",m.name \"prona\" from bpm_proc_main m where m.id=?"; - Map map = jdbcDao.findMap(sql, zbpm.getProid()); - zbpm.setProna((String)map.get("prona")); - - String turnManSql = "select id,name,type from sys_org where id=?"; - SysOrg sysOrg = jdbcDao.getTp().queryForObject(turnManSql, - new Object[]{zbpm.getTumid()}, new BeanPropertyRowMapper<>(SysOrg.class)); - if(zbpm.getTutag()){ - zbpm.setOpinf("转办: "+sysOrg.getName()+"(完整转办)"); - }else{ - zbpm.setOpinf("转办: "+sysOrg.getName()); - } - //1 评审表保存当前节点的评审信息 - auditMainService.saveAudit(zbpm); - - BpmTaskMain task = taskMainService.findOne(zbpm.getTasid()); - task.setExman(zbpm.getTumid()); - - todoService.doneTodo(zbpm); - todoService.sendTodo(zbpm,zbpm.getTumid()); - - } - - //沟通流程 - public void handlerCommunicate(Zbpm zbpm) { - zbpm.setHaman(XuserUtil.getUserId()); - - String sql = "select m.id \"proid\",m.name \"prona\" from bpm_proc_main m where m.id=?"; - Map map = jdbcDao.findMap(sql, zbpm.getProid()); - zbpm.setProna((String)map.get("prona")); - - String names=getOrgNames("'" + zbpm.getCoids().replaceAll(";", "','") + "'"); -// Sqler sqler = new Sqler("sys_org"); -// sqler.addWhere("id in " + "(" + ids + ")"); -// if (DbType.MYSQL.equals(jdbcDao.getDbType())) { -// sqler.addOrder("field(id," + ids + ")"); -// }else if(DbType.ORACLE.equals(jdbcDao.getDbType())){ -// sqler.addOrder("INSTR('"+ids.replaceAll("'","")+"',id)"); -// }else if(DbType.SQL_SERVER.equals(jdbcDao.getDbType())){ -// sqler.addOrder("CHARINDEX(id,'"+ids.replaceAll("'","")+"')"); -// } -// -// sqler.addSelect("t.type"); -// List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), -// new BeanPropertyRowMapper<>(SysOrg.class)); -// String names=""; -// for (SysOrg sysOrg : list) { -// names += sysOrg.getName() + ";"; -// } -// names = names.substring(0, names.length() - 1); - if(zbpm.getCotag()){ - zbpm.setOpinf("沟通:"+names+"(隐藏意见)"); - }else{ - zbpm.setOpinf("沟通:"+names); - } - //1 评审表保存当前节点的评审信息 - auditMainService.saveAudit(zbpm); - - Znode currNode = new Znode(zbpm.getFacno()); - currNode.setNodid(zbpm.getNodid()); - currNode.setFacno(zbpm.getFacno()); - currNode.setFacty("communicate"); - currNode.setExmen(zbpm.getCoids()); - currNode.setFlway("3"); - - //6.1 将当前任务置为沟通状态 - jdbcDao.update("update bpm_task_main set type='to_communicate' where id=?",zbpm.getTasid()); - //6.2 当前任务表创建待审节点的任务 - List mainTaskList = taskMainService.createTaskList(zbpm, currNode); - //6.3 历史任务表创建待审节点的任务 - taskHistService.createTaskList(mainTaskList); - - //7.2 发起新待办 - todoService.sendTodos(zbpm, mainTaskList); - - } - - //沟通回复 - public void handlerBacommunicate(Zbpm zbpm) { - zbpm.setHaman(XuserUtil.getUserId()); - - zbpm.setOpinf("沟通回复"); - //1 评审表保存当前节点的评审信息 - auditMainService.saveAudit(zbpm); - - //2.1 将历史任务变成已办 - BpmTaskHist histTask = taskHistService.findOne(zbpm.getTasid()); - histTask.setHaman(zbpm.getHaman()); - histTask.setEntim(new Date()); - histTask.setState("30"); - //2.2 删除当前任务表记录 - taskMainService.delete(zbpm.getTasid()); - - todoService.doneTodo(zbpm); - -// Znode currNode = new Znode(zbpm.getFacno()); -// currNode.setNodid(zbpm.getNodid()); -// currNode.setFacno(zbpm.getFacno()); -// currNode.setFacty("communicate"); -// currNode.setExmen(zbpm.getCoids()); -// currNode.setFlway("3"); -// -// //6.1 当前任务表创建待审节点的任务 -// List mainTaskList = taskMainService.createTaskList(zbpm, currNode); -// //6.2 历史任务表创建待审节点的任务 -// taskHistService.createTaskList(mainTaskList); -// //7.2 发起新待办 -// todoService.sendTodos(zbpm, mainTaskList); - - } - - //取消沟通 - public void handlerCacommunicate(Zbpm zbpm) { - - //2.1 将历史任务变成已办 - String[] taskIds= zbpm.getCcids().split(","); - String userIds=""; - for (String taskId : taskIds) { - BpmTaskHist histTask = taskHistService.findOne(taskId); - histTask.setHaman(zbpm.getHaman()); - histTask.setEntim(new Date()); - histTask.setState("30"); - userIds+=histTask.getExman()+","; - //2.2 删除当前任务表记录 - taskMainService.delete(taskId); - } - userIds=userIds.substring(0,userIds.length()-1); - zbpm.setHaman(XuserUtil.getUserId()); - String names=getOrgNames("'" + userIds.replaceAll(",", "','") + "'"); - zbpm.setOpinf("取消沟通:"+names); - //1 评审表保存当前节点的评审信息 - auditMainService.saveAudit(zbpm); - - todoService.doneTodosByTaskIds(taskIds); - repo.flush(); - String sql = "select count(1) from bpm_task_main t where t.proid=? and t.type='communicate'"; - Integer count = jdbcDao.getTp().queryForObject(sql, new Object[]{zbpm.getProid()}, Integer.class); - //如果取消了所有沟通人员,则更新状态 - if(count!=null&&count==0){ - jdbcDao.update("update bpm_task_main set type='review' where id=?",zbpm.getTasid()); - } -// Znode currNode = new Znode(zbpm.getFacno()); -// currNode.setNodid(zbpm.getNodid()); -// currNode.setFacno(zbpm.getFacno()); -// currNode.setFacty("communicate"); -// currNode.setExmen(zbpm.getCoids()); -// currNode.setFlway("3"); -// -// //6.1 当前任务表创建待审节点的任务 -// List mainTaskList = taskMainService.createTaskList(zbpm, currNode); -// //6.2 历史任务表创建待审节点的任务 -// taskHistService.createTaskList(mainTaskList); -// //7.2 发起新待办 -// todoService.sendTodos(zbpm, mainTaskList); - - } - - //废弃流程 - public void handlerAbandon(Zbpm zbpm) { - zbpm.setHaman(XuserUtil.getUserId()); -// String sql = "select m.id \"proid\",m.name \"prona\" from bpm_proc_main m where m.id=?"; -// Map map = jdbcDao.findMap(sql, zbpm.getProid()); -// zbpm.setProna((String) map.get("prona")); - - zbpm.setOpinf("废弃"); - //1 评审表保存当前节点的评审信息 - auditMainService.saveAudit(zbpm); - //2.1 将历史任务变成已办 - BpmTaskHist histTask = taskHistService.findOne(zbpm.getTasid()); - histTask.setHaman(zbpm.getHaman()); - histTask.setEntim(new Date()); - histTask.setState("30"); - //2.2 删除当前任务表记录 - taskMainService.deleteAllByProid(zbpm.getProid()); - //2.3 删除历史任务未结束记录 - taskHistService.deleteAllByProidNotEnd(zbpm.getProid()); - - //4.1 将历史节点变成已办 - BpmNodeHist histNode = nodeHistService.findOne(zbpm.getNodid()); - histNode.setTarno(zbpm.getTarno()); - histNode.setTarna(zbpm.getTarna()); - histNode.setEntim(new Date()); - histNode.setState("30"); - //4.2 删除当前节点表记录 - nodeMainService.delete(zbpm.getNodid()); - - //7.1 删除之前的待办 - todoService.doneTodos(zbpm); - } - private void exmenTran(String proid,Znode znode) { - String tamen = ""; - if (StrUtil.isNotBlank(znode.getExmen()) && !znode.getExmen().contains(";")) { - String tamenSql = "select t.id, t.name,t.type from sys_org t where t.id=?"; - SysOrg sysOrg = jdbcDao.getTp().queryForObject(tamenSql, - new Object[]{znode.getExmen()}, new BeanPropertyRowMapper<>(SysOrg.class)); - if (sysOrg.getType()==32) { - String crmid=XuserUtil.getUserId(); - if(proid!=null){ - String sql="select crmid from bpm_proc_main where id=?"; - crmid= jdbcDao.findOneString(sql,proid); - } - SysOrg org = sysOrgRoleTreeService.calc(crmid, sysOrg.getId()); - tamen = org.getId(); - } else { - tamen = sysOrg.getId(); - } - } else if (StrUtil.isNotBlank(znode.getExmen()) && znode.getExmen().contains(";")) { - Sqler sqler = new Sqler("sys_org"); - String ids = znode.getExmen(); - ids = "'" + ids.replaceAll(";", "','") + "'"; - sqler.addWhere("id in " + "(" + ids + ")"); - if (DbType.MYSQL.equals(jdbcDao.getDbType())) { - sqler.addOrder("field(id," + ids + ")"); - }else if(DbType.ORACLE.equals(jdbcDao.getDbType())){ - sqler.addOrder("INSTR('"+ids.replaceAll("'","")+"',id)"); - }else if(DbType.SQL_SERVER.equals(jdbcDao.getDbType())){ - sqler.addOrder("CHARINDEX(id,'"+ids.replaceAll("'","")+"')"); - } - sqler.addSelect("t.type"); - System.out.println(sqler.getSql()); - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), - new BeanPropertyRowMapper<>(SysOrg.class)); -// List idNameList = jdbcDao.findIdNameList(sqler); - for (SysOrg sysOrg : list) { - if (sysOrg.getType() == 32) { - String crmid=XuserUtil.getUserId(); - if(proid!=null){ - String sql="select crmid from bpm_proc_main where id=?"; - crmid= jdbcDao.findOneString(sql,proid); - } - SysOrg org = sysOrgRoleTreeService.calc(crmid, sysOrg.getId()); - tamen += org.getId() + ";"; - } else { - tamen += sysOrg.getId() + ";"; - } - } - tamen = tamen.substring(0, tamen.length() - 1); - } - znode.setExmen(tamen); - } - - public Zbpm getZbpm(String proid) { - String sql = "select t.id as tasid,t.nodid,t.exman,t.proid,n.facno,n.facna from bpm_task_main t" + - " inner join bpm_node_main n on n.id=t.nodid where t.proid=? and t.actag=1"; - List list = jdbcDao.getTp().query(sql, new Object[]{proid}, - new BeanPropertyRowMapper<>(Zbpm.class)); - String userid = XuserUtil.getUserId(); - for (Zbpm zbpm : list) { - if (userid.equals(zbpm.getExman())) { - return zbpm; - } - } - return null; - } - - private String getOrgNames(String ids){ - Sqler sqler = new Sqler("sys_org"); - sqler.addWhere("id in " + "(" + ids + ")"); - if (DbType.MYSQL.equals(jdbcDao.getDbType())) { - sqler.addOrder("field(id," + ids + ")"); - }else if(DbType.ORACLE.equals(jdbcDao.getDbType())){ - sqler.addOrder("INSTR('"+ids.replaceAll("'","")+"',id)"); - }else if(DbType.SQL_SERVER.equals(jdbcDao.getDbType())){ - sqler.addOrder("CHARINDEX(id,'"+ids.replaceAll("'","")+"')"); - } - - sqler.addSelect("t.type"); - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), - new BeanPropertyRowMapper<>(SysOrg.class)); - String names=""; - for (SysOrg sysOrg : list) { - names += sysOrg.getName() + ";"; - } - names = names.substring(0, names.length() - 1); - return names; - } - - //----------bean注入------------ - @Autowired - private SysOrgRoleTreeService sysOrgRoleTreeService; - - @Autowired - private SysTodoMainService todoService; - - @Autowired - private BpmTaskHistService taskHistService; - - @Autowired - private BpmTaskMainService taskMainService; - - @Autowired - private BpmNodeHistService nodeHistService; - - @Autowired - private BpmNodeMainService nodeMainService; - - @Autowired - private BpmAuditMainService auditMainService; - - @Autowired - private BpmProcParamService paramService; - - @Autowired - private BpmProcMainHand hand; - - @Autowired - private BpmProcMainRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/main/Zbpm.java b/vben-core/src/main/java/vben/core/module/bpm/proc/main/Zbpm.java deleted file mode 100644 index 2130c03..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/main/Zbpm.java +++ /dev/null @@ -1,72 +0,0 @@ -package vben.core.module.bpm.proc.main; - -import lombok.Data; - -@Data -public class Zbpm { - private String todid;//待办ID - - private String modty;//业务模型类型 - - private String temid;//流程模板ID - - private String proid;//流程实例ID - - private String prona;//流程实例名称 - - private String nodid;//当前节点ID - - private String facno;//当前节点编号 - - private String facna;//当前节点名称 - - private String tarno;//目标节点编号 - - private String tarna;//目标节点名称 - - private Boolean retag=true;//驳回标记,驳回的节点通过后直接返回本节点 - - private String bacid;//驳回后的流程重新提交时的bpm_proc_param的id - - private Boolean tutag=false;//转办标记,流程重新流经本节点时,直接由转办人员处理 - - private String tumid;//转办人员ID - - private Boolean cotag=false;//沟通标记,是否显示意见 - - private String coids;//沟通人员IDS - - private String ccids;//取消沟通的task_id - - private String tasid;//任务ID - - private String tasty;//任务类型 - - private String opnot;//操作:处理意见 - - private String opurg;//操作:紧急程度 - - private String opkey;//操作key:pass, reject - - private String opinf;//操作名称:通过,驳回到谁,沟通谁 - - private String chxml;//优化过的vben可解析的的xml - - private String haman;//当前处理人ID - - private String exman;//应处理人ID - - private String atids;//附件IDS - - public Zbpm() { - } - - public Zbpm(String proid) { - this.proid = proid; - } - - public Zbpm(String proid,String prona) { - this.proid = proid; - this.prona = prona; - } -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/main/Zcond.java b/vben-core/src/main/java/vben/core/module/bpm/proc/main/Zcond.java deleted file mode 100644 index 87d6345..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/main/Zcond.java +++ /dev/null @@ -1,15 +0,0 @@ -package vben.core.module.bpm.proc.main; - -import lombok.Data; - -@Data -public class Zcond { - - private String proid;//流程实例ID - - private String temid;//流程模板ID - - private String modty;//类别 - -// private boolean sttag=false;//开始标记 -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/main/Znode.java b/vben-core/src/main/java/vben/core/module/bpm/proc/main/Znode.java deleted file mode 100644 index d082b82..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/main/Znode.java +++ /dev/null @@ -1,31 +0,0 @@ -package vben.core.module.bpm.proc.main; - -import lombok.Data; - -@Data -public class Znode { - - private String nodid;//节点ID - - private String facno;//当前节点编号:N1,N2 - - private String facna;//当前节点名称 - - private String facty;//当前节点类型 - - private String tarno;//目标节点编号 - - private String tarna;//目标节点名称 - - private String exmen;//应处理人 - - private String flway;//流转方式 - - public Znode(String facno) { - this.facno = facno; - } - - public Znode() { - - } -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/param/BpmProcParam.java b/vben-core/src/main/java/vben/core/module/bpm/proc/param/BpmProcParam.java deleted file mode 100644 index 7a85511..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/param/BpmProcParam.java +++ /dev/null @@ -1,44 +0,0 @@ -package vben.core.module.bpm.proc.param; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -@Getter -@Setter -@ApiModel("流程参数信息") -public class BpmProcParam { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 64) - @ApiModelProperty("参数Key") - private String pakey; - - @Column(length = 512) - @ApiModelProperty("参数值") - private String paval; - - @Column(length = 32) - @ApiModelProperty("OFF类型") - private String offty;//这个是什么? - - @Column(length = 32) - @ApiModelProperty("OFFID") - private String offid;//这个是什么? - - @Column(length = 32) - @ApiModelProperty("流程ID") - private String proid; - - -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/param/BpmProcParamRepo.java b/vben-core/src/main/java/vben/core/module/bpm/proc/param/BpmProcParamRepo.java deleted file mode 100644 index 7f47ce0..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/param/BpmProcParamRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.bpm.proc.param; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface BpmProcParamRepo extends JpaRepository { - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/param/BpmProcParamService.java b/vben-core/src/main/java/vben/core/module/bpm/proc/param/BpmProcParamService.java deleted file mode 100644 index 71c2cdc..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/param/BpmProcParamService.java +++ /dev/null @@ -1,22 +0,0 @@ -package vben.core.module.bpm.proc.param; - - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Transactional(rollbackFor = Exception.class) -@Service -public class BpmProcParamService { - - public void save(BpmProcParam param){ - repo.save(param); - } - - public void delete(String id){ - repo.deleteById(id); - } - - @Autowired - private BpmProcParamRepo repo; -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/temp/BpmProcTemp.java b/vben-core/src/main/java/vben/core/module/bpm/proc/temp/BpmProcTemp.java deleted file mode 100644 index 4123ee5..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/temp/BpmProcTemp.java +++ /dev/null @@ -1,36 +0,0 @@ -package vben.core.module.bpm.proc.temp; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import vben.core.common.mvc.entity.BaseMainEntity; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Entity; -import javax.persistence.Lob; - -@Entity -@Getter -@Setter -@ApiModel("流程模板信息") -public class BpmProcTemp extends BaseMainEntity { - - public BpmProcTemp() { - - } - - public BpmProcTemp(BaseMainEntity main) { - this.name=main.getName(); - this.crman=main.getCrman(); - this.crtim=main.getCrtim(); - } - - @Lob - @ApiModelProperty("原始XML") - private String orxml; - - @Lob - @ApiModelProperty("变动后的XML") - private String chxml; - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/temp/BpmProcTempRepo.java b/vben-core/src/main/java/vben/core/module/bpm/proc/temp/BpmProcTempRepo.java deleted file mode 100644 index d90b7dd..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/temp/BpmProcTempRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.bpm.proc.temp; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface BpmProcTempRepo extends JpaRepository { - - -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/proc/temp/BpmProcTempService.java b/vben-core/src/main/java/vben/core/module/bpm/proc/temp/BpmProcTempService.java deleted file mode 100644 index 8c1c923..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/proc/temp/BpmProcTempService.java +++ /dev/null @@ -1,21 +0,0 @@ -package vben.core.module.bpm.proc.temp; - -import vben.core.common.mvc.service.BaseMainService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; - -@Service -public class BpmProcTempService extends BaseMainService { - - //----------bean注入------------ - @Autowired - private BpmProcTempRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/task/hist/BpmTaskHist.java b/vben-core/src/main/java/vben/core/module/bpm/task/hist/BpmTaskHist.java deleted file mode 100644 index ab22220..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/task/hist/BpmTaskHist.java +++ /dev/null @@ -1,63 +0,0 @@ -package vben.core.module.bpm.task.hist; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import java.util.Date; - -@Entity -@Getter -@Setter -@ApiModel("流程任务历史信息") -public class BpmTaskHist { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("任务类型") - private String type; - - @Column(length = 32) - @ApiModelProperty("流程实例id") - private String proid; - - @Column(length = 32) - @ApiModelProperty("节点id") - private String nodid; - - @Column(updatable = false) - @ApiModelProperty("开始时间") - private Date sttim = new Date(); - - @ApiModelProperty("结束时间") - private Date entim; - - @Column(length = 8) - @ApiModelProperty("消息类型") - private String notty; - - @Column(length = 8) - @ApiModelProperty("状态") - private String state; - - @Column(length = 32) - @ApiModelProperty("实处理人") - private String haman; - - @Column(length = 32) - @ApiModelProperty("授权处理人") - private String auman; - - @Column(length = 32) - @ApiModelProperty("应处理人") - private String exman; - -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/task/hist/BpmTaskHistRepo.java b/vben-core/src/main/java/vben/core/module/bpm/task/hist/BpmTaskHistRepo.java deleted file mode 100644 index 9873e6e..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/task/hist/BpmTaskHistRepo.java +++ /dev/null @@ -1,10 +0,0 @@ -package vben.core.module.bpm.task.hist; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface BpmTaskHistRepo extends JpaRepository { - - void deleteAllByProidAndState(String proid,String state); - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/task/hist/BpmTaskHistService.java b/vben-core/src/main/java/vben/core/module/bpm/task/hist/BpmTaskHistService.java deleted file mode 100644 index b2ae38f..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/task/hist/BpmTaskHistService.java +++ /dev/null @@ -1,67 +0,0 @@ -package vben.core.module.bpm.task.hist; - - -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.module.bpm.task.main.BpmTaskMain; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.ArrayList; -import java.util.List; - -@Transactional(rollbackFor = Exception.class) -@Service -public class BpmTaskHistService { - - public BpmTaskHist createTask(BpmTaskMain mainTask) { - BpmTaskHist histTask = new BpmTaskHist(); - histTask.setId(mainTask.getId()); - histTask.setProid(mainTask.getProid()); - histTask.setState("20"); - histTask.setExman(mainTask.getExman()); - histTask.setNodid(mainTask.getNodid()); - histTask.setType(mainTask.getType()); - return repo.save(histTask); - } - - public List createTaskList(List mainTaskList) { - List list=new ArrayList<>(); - for (BpmTaskMain mainTask : mainTaskList) { - if(mainTask.getActag()){ - BpmTaskHist histTask = new BpmTaskHist(); - histTask.setId(mainTask.getId()); - histTask.setProid(mainTask.getProid()); - histTask.setState("20"); - histTask.setExman(mainTask.getExman()); - histTask.setNodid(mainTask.getNodid()); - histTask.setType(mainTask.getType()); - list.add(repo.save(histTask)); - } - } - return list; - } - - - @Transactional(readOnly = true) - public BpmTaskHist findOne(String id) { - return repo.findById(id).get(); - } - - public void delete(String id) { - repo.deleteById(id); - } - - public void deleteAllByProidNotEnd(String proid) { - repo.deleteAllByProidAndState(proid,"20"); - } - - - - @Autowired - protected JdbcDao jdbcDao; - - - @Autowired - private BpmTaskHistRepo repo; -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/task/main/BpmTaskMain.java b/vben-core/src/main/java/vben/core/module/bpm/task/main/BpmTaskMain.java deleted file mode 100644 index 82ef6a6..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/task/main/BpmTaskMain.java +++ /dev/null @@ -1,68 +0,0 @@ -package vben.core.module.bpm.task.main; - - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import java.util.Date; - -@Entity -@Getter -@Setter -@ApiModel("流程任务信息") -public class BpmTaskMain { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("任务类型") - private String type; - - @Column(length = 32) - @ApiModelProperty("流程实例id") - private String proid; - - @Column(length = 32) - @ApiModelProperty("节点id") - private String nodid; - - @Column(updatable = false) - @ApiModelProperty("开始时间") - private Date sttim = new Date(); - - @Column(length = 8) - @ApiModelProperty("消息类型") - private String notty; - - @Column(length = 8) - @ApiModelProperty("状态") - private String state; - - @ApiModelProperty("排序号") - private Integer ornum; - - @ApiModelProperty("是否激活") - private Boolean actag; - - @Column(length = 32) - @ApiModelProperty("实处理人") - private String haman; - - @Column(length = 32) - @ApiModelProperty("授权处理人") - private String auman; - - @Column(length = 32) - @ApiModelProperty("应处理人") - private String exman; - - -} diff --git a/vben-core/src/main/java/vben/core/module/bpm/task/main/BpmTaskMainRepo.java b/vben-core/src/main/java/vben/core/module/bpm/task/main/BpmTaskMainRepo.java deleted file mode 100644 index 92bd993..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/task/main/BpmTaskMainRepo.java +++ /dev/null @@ -1,15 +0,0 @@ -package vben.core.module.bpm.task.main; - -import org.springframework.data.jpa.repository.JpaRepository; - -import java.util.List; - -public interface BpmTaskMainRepo extends JpaRepository { - - List findAllByProidAndActagOrderByOrnum(String proid,Boolean actag); - - List findAllByProidOrderByOrnum(String proid); - - - void deleteAllByProid(String proid); -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/bpm/task/main/BpmTaskMainService.java b/vben-core/src/main/java/vben/core/module/bpm/task/main/BpmTaskMainService.java deleted file mode 100644 index fd98518..0000000 --- a/vben-core/src/main/java/vben/core/module/bpm/task/main/BpmTaskMainService.java +++ /dev/null @@ -1,155 +0,0 @@ -package vben.core.module.bpm.task.main; - -import cn.hutool.core.util.StrUtil; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.module.bpm.proc.main.Zbpm; -import vben.core.module.bpm.proc.main.Znode; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; -import vben.core.common.mvc.pojo.Ztree; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -@Transactional(rollbackFor = Exception.class) -@Service -public class BpmTaskMainService { - - public List findAllByProidNotActive(String proid){ - return repo.findAllByProidAndActagOrderByOrnum(proid,false); - } - - public List findAllByProid(String proid){ - return repo.findAllByProidOrderByOrnum(proid); - } - - public BpmTaskMain createTask(Zbpm zbpm, Znode znode) { - BpmTaskMain task = new BpmTaskMain(); - task.setId(IdUtils.getUID()); - task.setProid(zbpm.getProid()); - task.setState("20"); - task.setExman(znode.getExmen()); - task.setOrnum(0); - task.setActag(true); - task.setNodid(znode.getNodid()); - task.setType(znode.getFacty()); - return repo.save(task); - } - - public List createTaskList(Zbpm zbpm, Znode znode) { - List list = new ArrayList<>(); - if (StrUtil.isNotBlank(znode.getExmen()) && !znode.getExmen().contains(";")) { - BpmTaskMain task = new BpmTaskMain(); - task.setId(IdUtils.getUID()); - task.setProid(zbpm.getProid()); - task.setState("20"); - task.setExman(znode.getExmen()); - task.setOrnum(0); - task.setActag(true); - task.setNodid(znode.getNodid()); - task.setType(znode.getFacty()); - list.add(repo.save(task)); - } else if ("1".equals(znode.getFlway())) { - String[] ids = znode.getExmen().split(";"); - for (int i = 0; i < ids.length; i++) { - BpmTaskMain task = new BpmTaskMain(); - task.setId(IdUtils.getUID()); - task.setProid(zbpm.getProid()); - task.setState("20"); - task.setExman(ids[i]); - task.setOrnum(i); - if (i == 0) { - task.setActag(true); - } else { - task.setActag(false); - } - task.setNodid(znode.getNodid()); - task.setType(znode.getFacty()); - list.add(repo.save(task)); - } - } else if ("2".equals(znode.getFlway())||"3".equals(znode.getFlway())) { - String[] ids = znode.getExmen().split(";"); - for (int i = 0; i < ids.length; i++) { - BpmTaskMain task = new BpmTaskMain(); - task.setId(IdUtils.getUID()); - task.setProid(zbpm.getProid()); - task.setState("20"); - task.setExman(ids[i]); - task.setOrnum(i); - task.setActag(true); - task.setNodid(znode.getNodid()); - task.setType(znode.getFacty()); - list.add(repo.save(task)); - } - } - return list; - } - - @Transactional(readOnly = true) - public BpmTaskMain findOne(String id) { - return repo.findById(id).get(); - } - - public void delete(String id) { - repo.deleteById(id); - } - - public void deleteAllByProid(String proid) { - repo.deleteAllByProid(proid); - } - - - public void findCurrentExmen(List> itemList) { - String ids = "("; - for (Map map : itemList) { - if (!"30".equals(map.get("state"))) { - ids += "'" + map.get("id") + "',"; - } - } - if (!"(".equals(ids)) { - ids = ids.substring(0, ids.length() - 1) + ")"; - Sqler sqler = new Sqler("n.id as tasid,t.id as nodid,o.name exnam,n.exman,t.proid,t.facno,t.facna", "bpm_node_main"); - sqler.addInnerJoin("", "bpm_task_main n", "n.nodid=t.id"); - sqler.addInnerJoin("", "sys_org o", "o.id=n.exman"); - sqler.addWhere("t.proid in " + ids + " and n.actag=1"); - sqler.addOrder("t.proid"); - sqler.addOrder("n.ornum"); - - List> tasks = jdbcDao.findMapList(sqler); - - List list = new ArrayList<>(); - String proid = ""; - for (Map task : tasks) { - if (!proid.equals(task.get("proid"))) { - Ztree ztree = new Ztree(); - ztree.setId(task.get("proid") + ""); - ztree.setName(task.get("facno") + "." + task.get("facna")); - ztree.setPid((String) task.get("exnam")); - list.add(ztree); - } else { - list.get(list.size() - 1).setPid(list.get(list.size() - 1).getPid() + ";" + task.get("exnam")); - } - proid = (String) task.get("proid"); - } - - for (Map map : itemList) { - for (Ztree ztree : list) { - if (ztree.getId().equals(map.get("id"))) { - map.put("facno", ztree.getName()); - map.put("exmen", ztree.getPid()); - break; - } - } - } - } - } - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private BpmTaskMainRepo repo; -} diff --git a/vben-core/src/main/java/vben/core/module/gen/coop/GenCoopApi.java b/vben-core/src/main/java/vben/core/module/gen/coop/GenCoopApi.java deleted file mode 100644 index 3441cf5..0000000 --- a/vben-core/src/main/java/vben/core/module/gen/coop/GenCoopApi.java +++ /dev/null @@ -1,55 +0,0 @@ -package vben.core.module.gen.coop; - -import cn.hutool.core.util.StrUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.pojo.ZidName; -import vben.core.common.mvc.pojo.Ztree; - -import java.util.ArrayList; -import java.util.List; - -@RestController -@RequestMapping("gen/coop") -public class GenCoopApi { - - @GetMapping("tree") - public R getTree(String name) { - String sql = "select id,pid,name from sys_coop_cate " + - "union all select id,catid as pid,name from sys_coop_corp"; - List list = jdbcDao.findTreeList(sql); - return R.ok(list); - } - - @GetMapping("list") - public R getList(String pid, Integer type) { - if (StrUtil.isBlank(pid) && (type & 1) != 0) { - String sql = "select id,name from sys_coop_cate where pid is null order by ornum"; - return R.ok(jdbcDao.findIdNameList(sql)); - } - List list=new ArrayList<>(); - if ((type & 1) != 0) { - String sql = "select id,name from sys_coop_cate where pid=? order by ornum"; - list.addAll(jdbcDao.findIdNameList(sql, pid)); - } - if ((type & 2) != 0) { - String sql = "select id,name from sys_coop_corp where catid=?"; - list.addAll(jdbcDao.findIdNameList(sql, pid)); - } - if ((type & 4) != 0) { - String sql = "select id,name from sys_coop_user where corid=? order by ornum"; - list.addAll(jdbcDao.findIdNameList(sql, pid)); - } - return R.ok(list); - } - - - @Autowired - private JdbcDao jdbcDao; - - -} diff --git a/vben-core/src/main/java/vben/core/module/gen/img/GenImgApi.java b/vben-core/src/main/java/vben/core/module/gen/img/GenImgApi.java deleted file mode 100644 index 75f1965..0000000 --- a/vben-core/src/main/java/vben/core/module/gen/img/GenImgApi.java +++ /dev/null @@ -1,34 +0,0 @@ -package vben.core.module.gen.img; - -import com.google.zxing.WriterException; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; -import vben.core.common.utils.file.XqcodeUtil; - -import java.io.IOException; -import java.io.InputStream; - -@RestController -@RequestMapping("gen/img") -@Api(tags = {"图片服务"}) -public class GenImgApi { - - @RequestMapping(value="qr",produces = MediaType.IMAGE_JPEG_VALUE) - @ResponseBody - @ApiOperation("生产图片二维码") - public byte[] getImage(String label,Integer size) throws IOException, WriterException { - if(size==null||size==0) - { - size=900; - } - InputStream inputStream= XqcodeUtil.createQrCode(label, size, "JPEG"); - byte[] bytes = new byte[inputStream.available()]; - inputStream.read(bytes, 0, inputStream.available()); - return bytes; - } - -} diff --git a/vben-core/src/main/java/vben/core/module/gen/num/GenNumApi.java b/vben-core/src/main/java/vben/core/module/gen/num/GenNumApi.java deleted file mode 100644 index f3220a1..0000000 --- a/vben-core/src/main/java/vben/core/module/gen/num/GenNumApi.java +++ /dev/null @@ -1,22 +0,0 @@ -package vben.core.module.gen.num; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import vben.core.common.utils.lang.IdUtils; - -@RestController -@RequestMapping("gen/num") -@Api(tags = {"编号服务"}) -public class GenNumApi { - - @GetMapping("uuid") - @ApiOperation("获取唯一的ID") - public R uuid() { - return R.ok(IdUtils.getUID()); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/gen/org/GenOrgDeptApi.java b/vben-core/src/main/java/vben/core/module/gen/org/GenOrgDeptApi.java deleted file mode 100644 index fab48c1..0000000 --- a/vben-core/src/main/java/vben/core/module/gen/org/GenOrgDeptApi.java +++ /dev/null @@ -1,49 +0,0 @@ -package vben.core.module.gen.org; - -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.Ztree; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -@RestController -@RequestMapping("gen/org/dept") -public class GenOrgDeptApi { - - //查询部门树 - @GetMapping("tree") - public R getTree(String name) { - Sqler sqler = new Sqler("sys_org_dept"); - sqler.addSelect("t.pid"); - sqler.addLike("t.name", name); - sqler.addOrder("t.ornum"); - sqler.addWhere("t.avtag=1"); - List list = jdbcDao.findTreeList(sqler); - return R.ok(list); - } - - //查询部门树 - @GetMapping("list") - public R getList(String name) { - Sqler sqler = new Sqler("sys_org_dept"); - sqler.addLike("t.name", name); - sqler.addOrder("t.ornum"); - sqler.addWhere("t.avtag=1"); - sqler.addSelect("t.pid"); - return R.ok(jdbcDao.findMapList(sqler)); - } - - - @Autowired - private JdbcDao jdbcDao; - - -// @Autowired -// private SysOrgDeptService deptService; - -} diff --git a/vben-core/src/main/java/vben/core/module/gen/org/GenOrgGroupApi.java b/vben-core/src/main/java/vben/core/module/gen/org/GenOrgGroupApi.java deleted file mode 100644 index 094e8f4..0000000 --- a/vben-core/src/main/java/vben/core/module/gen/org/GenOrgGroupApi.java +++ /dev/null @@ -1,45 +0,0 @@ -package vben.core.module.gen.org; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.pojo.ZidName; -import vben.core.common.mvc.pojo.Ztree; - -import java.util.ArrayList; -import java.util.List; - -@RestController -@RequestMapping("gen/org/group") -public class GenOrgGroupApi { - - @GetMapping("tree") - public R getTree(String name) { - String sql="select id,pid,name,'cate' type from sys_org_group_cate " + - "union all select id,catid as pid,name,'group' type from sys_org_group"; - List list = jdbcDao.findTreeList(sql); - return R.ok(list); - } - - @GetMapping("list") - public R getList(String pid,String type,String name) { - if("cate".equals(type)){ - String sql="select id,name from sys_org_group where catid=? order by ornum"; - return R.ok(jdbcDao.findIdNameList(sql, pid)); - }else if("group".equals(type)){ - String sql="select t.id,t.name from sys_org t inner join sys_org_group_org o on o.oid=t.id where o.gid=?"; - return R.ok(jdbcDao.findIdNameList(sql, pid)); - }else{ - return R.ok(new ArrayList()); - } - } - - - @Autowired - private JdbcDao jdbcDao; - - -} diff --git a/vben-core/src/main/java/vben/core/module/gen/org/GenOrgMainApi.java b/vben-core/src/main/java/vben/core/module/gen/org/GenOrgMainApi.java deleted file mode 100644 index 06b5e9a..0000000 --- a/vben-core/src/main/java/vben/core/module/gen/org/GenOrgMainApi.java +++ /dev/null @@ -1,84 +0,0 @@ -package vben.core.module.gen.org; - -import cn.hutool.core.util.StrUtil; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.ZidName; -import vben.core.common.utils.db.DbType; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.ArrayList; -import java.util.List; - -@RestController -@RequestMapping("gen/org/main") -public class GenOrgMainApi { - - //根据部门ID,查询下级所有的部门,岗位,用户 - @GetMapping() - public R get(String depid, Integer type, String name) { - List mapList = new ArrayList<>(); - if (StrUtil.isBlank(name) && StrUtil.isBlank(depid)) { - return R.ok(mapList); - } - if ((type & 2) != 0) {//部门 - Sqler deptSqler = new Sqler("sys_org_dept"); - if (StrUtil.isNotBlank(name)) { - deptSqler.addLike("t.name", name); - } else { - deptSqler.addEqual("t.pid", depid); - } - mapList.addAll(jdbcDao.findIdNameList(deptSqler)); - } - if ((type & 4) != 0) {//岗位 - Sqler postSqler = new Sqler("sys_org_post"); - if (StrUtil.isNotBlank(name)) { - postSqler.addLike("t.name", name); - } else { - postSqler.addEqual("t.depid", depid); - } - mapList.addAll(jdbcDao.findIdNameList(postSqler)); - } - if ((type & 8) != 0) {//用户 - Sqler userSqler = new Sqler("sys_org_user"); - if (StrUtil.isNotBlank(name)) { - userSqler.addLike("t.name", name); - } else { - userSqler.addEqual("t.depid", depid); - } - mapList.addAll(jdbcDao.findIdNameList(userSqler)); - } - return R.ok(mapList); - } - - //根据组织架构ids获取SysOrg对象数组 - @GetMapping("list") - public R getOrgList(String ids) { - Sqler sqler = new Sqler("sys_org"); - if (ids.contains(";")) { -// ids = "('" + ids.replaceAll(";", "','") + "')"; -// sqler.addWhere("id in " + ids); - ids = "'" + ids.replaceAll(";", "','") + "'"; - sqler.addWhere("id in " +"("+ ids+")"); - if (DbType.MYSQL.equals(jdbcDao.getDbType())) { - sqler.addOrder("field(id," + ids + ")"); - }else if(DbType.ORACLE.equals(jdbcDao.getDbType())){ - sqler.addOrder("INSTR('"+ids.replaceAll("'","")+"',id)"); - }else if(DbType.SQL_SERVER.equals(jdbcDao.getDbType())){ - sqler.addOrder("CHARINDEX(id,'"+ids.replaceAll("'","")+"')"); - } - }else{ - sqler.addEqual("id",ids); - } - return R.ok(jdbcDao.findIdNameList(sqler)); - } - - @Autowired - private JdbcDao jdbcDao; - - -} diff --git a/vben-core/src/main/java/vben/core/module/gen/org/GenOrgReceApi.java b/vben-core/src/main/java/vben/core/module/gen/org/GenOrgReceApi.java deleted file mode 100644 index 0cc5d73..0000000 --- a/vben-core/src/main/java/vben/core/module/gen/org/GenOrgReceApi.java +++ /dev/null @@ -1,65 +0,0 @@ -package vben.core.module.gen.org; - -import io.swagger.annotations.Api; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.utils.web.XuserUtil; -import vben.core.module.sys.org.rece.SysOrgRece; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -@RestController -@RequestMapping("gen/org/rece") -@Api(tags = {"组织架构服务"}) -public class GenOrgReceApi { - - @GetMapping - public R get(Integer type) { - List> mapList = new ArrayList<>(); - String userId = XuserUtil.getUserId(); - if ((type & 8) != 0) {//用户 - Sqler userSqler = new Sqler("t.orgid as id", "sys_org_rece"); - userSqler.addInnerJoin("u.name", "sys_org_user u", "u.id=t.orgid"); - userSqler.addInnerJoin("d.name as dept", "sys_org_dept d", "d.id=u.depid"); - userSqler.addEqual("t.useid", userId); - mapList.addAll(jdbcDao.findMapList(userSqler)); - } - if ((type & 2) != 0||(type & 1) != 0) {//部门 - Sqler deptSqler = new Sqler("t.orgid as id", "sys_org_rece"); - deptSqler.addInnerJoin("o.name", "sys_org_dept o", "o.id=t.orgid"); - deptSqler.addEqual("t.useid", userId); - mapList.addAll(jdbcDao.findMapList(deptSqler)); - } - if ((type & 4) != 0) {//岗位 - Sqler postSqler = new Sqler("t.orgid as id", "sys_org_rece"); - postSqler.addInnerJoin("p.name", "sys_org_post p", "p.id=t.orgid"); - postSqler.addInnerJoin("d.name as dept", "sys_org_dept d", "d.id=p.depid"); - postSqler.addEqual("t.useid", userId); - mapList.addAll(jdbcDao.findMapList(postSqler)); - } -// sqler.addDescOrder("t.uptim"); - return R.ok(mapList); - } - - @PostMapping - public R post(@RequestBody List reces) { - if(reces!=null&&reces.size()>0){ - service.update(reces); - } - return R.ok(); - } - - - @Autowired - private GenOrgReceService service; - - @Autowired - private JdbcDao jdbcDao; - - -} diff --git a/vben-core/src/main/java/vben/core/module/gen/org/GenOrgReceService.java b/vben-core/src/main/java/vben/core/module/gen/org/GenOrgReceService.java deleted file mode 100644 index 948836d..0000000 --- a/vben-core/src/main/java/vben/core/module/gen/org/GenOrgReceService.java +++ /dev/null @@ -1,75 +0,0 @@ -package vben.core.module.gen.org; - -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.utils.db.DbType; -import vben.core.common.utils.web.XuserUtil; -import vben.core.module.sys.org.rece.SysOrgRece; -import vben.core.module.sys.org.rece.SysOrgReceRepo; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; - -import java.util.List; - -@Service -@Transactional(rollbackFor = Exception.class) -public class GenOrgReceService { - - - //todo 有时间再优化 - public int update(List reces) { - String userId = XuserUtil.getUserId(); - for (SysOrgRece rece : reces) { - rece.setOrgid(rece.getId()); - rece.setId(IdUtils.getUID()); - rece.setUseid(userId); - } - - //1.如果当前数量小于10,则去数据库查询最新的差额记录数 - if (reces.size() < 10) { - Sqler sqler = new Sqler("t.id,t.useid,t.orgid,t.uptim", "sys_org_rece", 1, 10 - reces.size()); - sqler.addDescOrder("t.uptim"); - sqler.addEqual("t.useid", userId); - List list; - if (DbType.MYSQL.equals(jdbcDao.getDbType())) { - list = jdbcDao.getTp().query(sqler.getMysqlPagingSql(), sqler.getParams(), new BeanPropertyRowMapper<>(SysOrgRece.class)); - } else if(DbType.ORACLE.equals(jdbcDao.getDbType())) { - list = jdbcDao.getTp().query(sqler.getOraclePagingLowerCaseSql(), sqler.getParams(), new BeanPropertyRowMapper<>(SysOrgRece.class)); - }else{ - list = jdbcDao.getTp().query(sqler.getSqlserverPagingSql(), sqler.getParams(), new BeanPropertyRowMapper<>(SysOrgRece.class)); - } - //去重 - for (SysOrgRece dbRece : list) { - boolean flag = false; - for (SysOrgRece rece : reces) { - if (dbRece.getOrgid().equals(rece.getOrgid())) { - flag = true; - } - } - if (!flag) { - reces.add(dbRece); - } - } - } - - //2.清空当前用户的最近使用记录 - jdbcDao.update("delete from sys_org_rece where useid=?", userId); - - //3.更新记录 - repo.saveAll(reces); - return reces.size(); - } - - - @Autowired - private JdbcDao jdbcDao; - - - @Autowired - private SysOrgReceRepo repo; - - -} diff --git a/vben-core/src/main/java/vben/core/module/gen/org/GenOrgRoleApi.java b/vben-core/src/main/java/vben/core/module/gen/org/GenOrgRoleApi.java deleted file mode 100644 index f58c546..0000000 --- a/vben-core/src/main/java/vben/core/module/gen/org/GenOrgRoleApi.java +++ /dev/null @@ -1,48 +0,0 @@ -package vben.core.module.gen.org; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.Ztree; - -import java.util.List; - -@RestController -@RequestMapping("gen/org/role") -public class GenOrgRoleApi { - - //查询角色树 - @GetMapping("tree") - public R getTree(String name) { - Sqler sqler = new Sqler("sys_org_role_tree"); - sqler.addLike("t.name", name); - sqler.addOrder("t.ornum"); - sqler.addWhere("t.avtag=1"); - sqler.addSelect("null pid"); - List list = jdbcDao.findTreeList(sqler); - return R.ok(list); - } - - //查询角色 - @GetMapping("list") - public R getList(String treid,String name) { - Sqler sqler = new Sqler("sys_org_role"); - sqler.addLike("t.name", name); - sqler.addOrder("t.ornum"); - sqler.addEqual("t.treid",treid); - return R.ok(jdbcDao.findMapList(sqler)); - } - - - @Autowired - private JdbcDao jdbcDao; - - -// @Autowired -// private SysOrgDeptService deptService; - -} diff --git a/vben-core/src/main/java/vben/core/module/gen/oss/GenOssApi.java b/vben-core/src/main/java/vben/core/module/gen/oss/GenOssApi.java deleted file mode 100644 index 82defba..0000000 --- a/vben-core/src/main/java/vben/core/module/gen/oss/GenOssApi.java +++ /dev/null @@ -1,47 +0,0 @@ -package vben.core.module.gen.oss; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.module.ass.oss.main.Zfile; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import vben.core.module.ass.oss.main.AssOssMainService; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -@RestController -@RequestMapping("gen/oss") -@Api(tags = {"存储服务"}) -public class GenOssApi { - - @PostMapping(value = "upload", produces = "text/html;charset=UTF-8") - @ApiOperation("文件上传") - public String upload(@RequestParam(value = "file", required = false) MultipartFile file) throws Exception { - Zfile zfile = assOssMainService.uploadFile(file); - return "{\"id\":\"" + zfile.getId() + "\",\"path\":\"" + zfile.getPath() + "\",\"filid\":\"" + zfile.getFilid() + "\",\"name\":\"" + zfile.getName() + "\",\"size\":\"" + zfile.getSize() + "\"}"; - } - - @GetMapping("download") - @ApiOperation("文件下载") - public void download(String table, String id, HttpServletRequest request, HttpServletResponse response) throws Exception { - assOssMainService.downloadFile(request, response, table, id); - } - - - @GetMapping("info") - public R info(String id) { - return R.ok(assOssMainService.getInfo(id)); - } - - @GetMapping("infos") - public R infos(String ids) { - return R.ok(assOssMainService.getInfos(ids)); - } - - @Autowired - private AssOssMainService assOssMainService; - -} diff --git a/vben-core/src/main/java/vben/core/module/gen/user/GenUserApi.java b/vben-core/src/main/java/vben/core/module/gen/user/GenUserApi.java deleted file mode 100644 index 2f27ff2..0000000 --- a/vben-core/src/main/java/vben/core/module/gen/user/GenUserApi.java +++ /dev/null @@ -1,71 +0,0 @@ -package vben.core.module.gen.user; - -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.Authentication; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.utils.web.XuserUtil; -import vben.core.framework.security.pojo.Zuser; -import vben.core.module.ass.oss.main.AssOssMainService; -import vben.core.module.ass.oss.main.Zfile; - -import java.io.IOException; -import java.security.NoSuchAlgorithmException; -import java.util.Map; - -@RestController -@RequestMapping("gen/user") -public class GenUserApi { - - //查询角色树 - @GetMapping("info") - public R getInfo(Authentication auth) { - Zuser zuser = (Zuser) auth.getPrincipal(); - if("org".equals(zuser.getLabel())){ - Sqler sqler = new Sqler("t.*","sys_org_user"); - sqler.addEqual("t.id",zuser.getId()); - Map map = jdbcDao.findMap(sqler); - return R.ok(map); - }else{ - return R.ok(); - } - } - - @PostMapping("upload") - @ApiOperation("头像上传") - public R upload(@RequestParam(value = "file", required = false) MultipartFile file) throws IOException, NoSuchAlgorithmException { - Zfile zfile = service.uploadFile(file); - String sql="update sys_org_user set avsrc=?,avimg=? where id=?"; - jdbcDao.update(sql,zfile.getId(),zfile.getId(),XuserUtil.getUserId()); - return R.ok(zfile); - } - - @PostMapping("clip") - @ApiOperation("头像上传") - public R clip(@RequestParam(value = "file", required = false) MultipartFile file) throws IOException, NoSuchAlgorithmException { - Zfile zfile = service.uploadFile(file); - String sql="update sys_org_user set avimg=? where id=?"; - jdbcDao.update(sql,zfile.getId(),XuserUtil.getUserId()); - return R.ok(zfile); - } - -// @PostMapping("clip") -// @ApiOperation("头像裁剪") -// public R clip(String img) { -// String sql="update sys_org_user set avimg=? where id=?"; -// jdbcDao.update(sql,img,XuserUtil.getUserId()); -// return R.ok(); -// } - - @Autowired - private AssOssMainService service; - - - @Autowired - private JdbcDao jdbcDao; - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/mon/cache/main/MonCacheMainApi.java b/vben-core/src/main/java/vben/core/module/mon/cache/main/MonCacheMainApi.java deleted file mode 100644 index 6f5d90e..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/cache/main/MonCacheMainApi.java +++ /dev/null @@ -1,49 +0,0 @@ -package vben.core.module.mon.cache.main; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import org.springframework.data.redis.connection.RedisServerCommands; -import org.springframework.data.redis.core.RedisCallback; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import vben.core.common.mvc.api.R; -import vben.core.common.utils.ruoyi.StringUtils; - -import java.util.*; - -@Api(tags = {"缓存监控"}) -@RequiredArgsConstructor -@RestController -@RequestMapping("mon/cache/main") -public class MonCacheMainApi { - - private final RedisTemplate redisTemplate; - - @ApiOperation("获取缓存监控详细信息") - @GetMapping() - public R getInfo() throws Exception { - Properties info = (Properties) redisTemplate.execute((RedisCallback) RedisServerCommands::info); - Properties commandStats = (Properties) redisTemplate.execute((RedisCallback) connection -> connection.info("commandstats")); - Object dbSize = redisTemplate.execute((RedisCallback) RedisServerCommands::dbSize); - - Map result = new HashMap<>(3); - result.put("info", info); - result.put("dbSize", dbSize); - - List> pieList = new ArrayList<>(); - if (commandStats != null) { - commandStats.stringPropertyNames().forEach(key -> { - Map data = new HashMap<>(2); - String property = commandStats.getProperty(key); - data.put("name", StringUtils.removeStart(key, "cmdstat_")); - data.put("value", StringUtils.substringBetween(property, "calls=", ",usec")); - pieList.add(data); - }); - } - result.put("commandStats", pieList); - return R.ok(result); - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLog.java b/vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLog.java deleted file mode 100644 index dd794b3..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLog.java +++ /dev/null @@ -1,40 +0,0 @@ -package vben.core.module.mon.job.log; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -@Data -@ApiModel("定时任务日志") -public class MonJobLog { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("名称") - private String name; - - @Column(length = 32) - @ApiModelProperty("开始时间") - private String sttim; - - @Column(length = 32) - @ApiModelProperty("结束时间") - private String entim; - - @Column(length = 32) - @ApiModelProperty("运行结果") - private String ret; - - @Column(length = 5000) - @ApiModelProperty("日志信息") - private String msg; -} diff --git a/vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLogApi.java b/vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLogApi.java deleted file mode 100644 index 37702e7..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLogApi.java +++ /dev/null @@ -1,49 +0,0 @@ -package vben.core.module.mon.job.log; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("mon/job/log") -@Api(tags = {"定时任务日志"}) -public class MonJobLogApi { - - private String table = "mon_job_log"; - - @GetMapping - @ApiOperation("查询定时任务日志分页") - public R get(String name) { - Sqler sqler = new Sqler("t.id,t.name,t.sttim,t.entim,t.ret", table); -// XreqUtil.setPageParam(sqler); - sqler.addLike("t.name", name); - sqler.addOrder("t.entim desc"); - System.out.println(sqler.getSql()); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询定时任务日志详情") - public R getOne(@PathVariable String id) { - return R.ok(service.findOne(id)); - } - - @DeleteMapping("all") - @ApiOperation("清空定时任务日志") - public R deleteAll() { - service.deleteAll(); - return R.ok(); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除定时任务日志") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private MonJobLogService service; -} diff --git a/vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLogRepo.java b/vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLogRepo.java deleted file mode 100644 index 7ac9844..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLogRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.core.module.mon.job.log; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface MonJobLogRepo extends JpaRepository { - -} - diff --git a/vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLogService.java b/vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLogService.java deleted file mode 100644 index a7df0b0..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/log/MonJobLogService.java +++ /dev/null @@ -1,44 +0,0 @@ -package vben.core.module.mon.job.log; - -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import lombok.extern.slf4j.Slf4j; -import vben.core.common.mvc.api.PageData; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service -@Transactional(rollbackFor = Exception.class) -@Slf4j -public class MonJobLogService { - - @Transactional(readOnly = true) - public PageData findPageData(Sqler sqler) { - return jdbcDao.findPageData(sqler); - } - - public void deleteAll(){ - repo.deleteAll(); - }; - - - public int delete(String[] ids) { - for (String id : ids) { - repo.deleteById(id); - } - return ids.length; - } - - @Transactional(readOnly = true) - public MonJobLog findOne(String id) { - return repo.findById(id).get(); - } - - @Autowired - private MonJobLogRepo repo; - - - @Autowired - private JdbcDao jdbcDao; -} diff --git a/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobDemo.java b/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobDemo.java deleted file mode 100644 index bee9892..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobDemo.java +++ /dev/null @@ -1,36 +0,0 @@ -package vben.core.module.mon.job.main; - -import cn.hutool.core.date.DateUtil; -import vben.core.module.mon.job.root.IJob; -import vben.core.module.mon.job.root.IJobGroup; -import org.springframework.stereotype.Component; - -@IJobGroup -@Component -public class MonJobDemo -{ - private static boolean usingFlag = false; - - @IJob(code="demo1",cron = "0/10 * 0-23 * * ?", name = "10秒执行一次的DEMO1") - public void demo1() - { - System.out.println("定时任务-demo1:" + DateUtil.now()); - } - - @IJob(code="demo2",cron = "0/20 * 0-23 * * ?", name = "20秒执行一次的DEMO2") - public void demo2() - { - if (!usingFlag) - { - usingFlag = true; - try - { - System.out.println("定时任务-demo2:" + DateUtil.now()); - } finally - { - usingFlag = false; - } - } - - } -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMain.java b/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMain.java deleted file mode 100644 index 47164f3..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMain.java +++ /dev/null @@ -1,63 +0,0 @@ -package vben.core.module.mon.job.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Transient; -import java.util.Date; - -@Data -@Entity -@ApiModel("定时任务信息") -public class MonJobMain -{ - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 128, updatable = false) - @ApiModelProperty("名称") - private String name; - - @Column(length = 128, updatable = false) - @ApiModelProperty("代码") - private String code; - -// @Column(length = 32, updatable = false) - @Transient - private String jid; -// -// @Column(length = 32, updatable = false) - @Transient - private String jgroup; - - @ApiModelProperty("请求类型") - private Integer retyp; - - @Column(length = 32, updatable = false) - @ApiModelProperty("请求URL") - private String reurl; - - @ApiModelProperty("是否可用") - private Boolean avtag; - - @ApiModelProperty("排序号") - private Integer ornum; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim = new Date(); - - @Column(length = 32) - @ApiModelProperty("执行表达式") - private String cron; - - @ApiModelProperty("备注") - private String notes; - -} diff --git a/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMainApi.java b/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMainApi.java deleted file mode 100644 index 7327227..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMainApi.java +++ /dev/null @@ -1,107 +0,0 @@ -package vben.core.module.mon.job.main; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.module.mon.job.root.MonJobHandler; -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("mon/job/main") -@Api(tags = {"定时任务"}) -public class MonJobMainApi { - - private String table = "mon_job_main"; - - @GetMapping - @ApiOperation("查询定时任务分页") - public R get(String id, String name) { - Sqler sqler = new Sqler("t.id,t.name,t.reurl,t.cron,t.avtag,t.code,t.crtim,t.notes", table); - sqler.addLike("t.name", name); - return R.ok(jdbcDao.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询定时任务详情") - public R getOne(@PathVariable String id) { - MonJobMain main=repo.findById(id).get(); - return R.ok(main); - } - - @PutMapping - @ApiOperation("修改定时任务") - public R put(@RequestBody MonJobMain main) throws SchedulerException { - MonJobMain dbJob = repo.findById(main.getId()).get(); - if(dbJob.getAvtag()){ - String[] arr= dbJob.getReurl().split("/"); - dbJob.setJgroup(arr[0]); - dbJob.setJid(arr[1]); - handler.stopJob(dbJob); - } - repo.save(main); - if(main.getAvtag()){ - String[] arr2= main.getReurl().split("/"); - main.setJgroup(arr2[0]); - main.setJid(arr2[1]); - handler.startJob(main); - } - return R.ok(); - } - - - @PostMapping("start") - @ApiOperation("启动定时任务") - public R startJob(String ids) throws SchedulerException { - String[] idArr = ids.split(","); - for (int i = 0; i < idArr.length; i++) { - MonJobMain job = repo.findById(idArr[i]).get(); - String[] arr= job.getReurl().split("/"); - job.setJgroup(arr[0]); - job.setJid(arr[1]); - handler.startJob(job); - } - return R.ok(); - } - - @PostMapping("stop") - @ApiOperation("停止定时任务") - public R stopJob(String ids) throws SchedulerException { - String[] idArr = ids.split(","); - for (int i = 0; i < idArr.length; i++) { - MonJobMain job = repo.findById(idArr[i]).get(); - String[] arr= job.getReurl().split("/"); - job.setJgroup(arr[0]); - job.setJid(arr[1]); - handler.stopJob(job); - } - return R.ok(); - } - - - @PostMapping("once") - @ApiOperation("立即执行一次定时任务") - public R startOnce(String id) throws InterruptedException, SchedulerException { - MonJobMain main=repo.findById(id).get(); - String[] arr= main.getReurl().split("/"); - main.setJgroup(arr[0]); - main.setJid(arr[1]); - handler.onceJob(main); - return R.ok(); - } - - - @Autowired - private MonJobHandler handler; - - @Autowired - private MonJobMainRepo repo; - - @Autowired - private JdbcDao jdbcDao; - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMainRepo.java b/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMainRepo.java deleted file mode 100644 index ec814b6..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMainRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.core.module.mon.job.main; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface MonJobMainRepo extends JpaRepository { - -} - diff --git a/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMainService.java b/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMainService.java deleted file mode 100644 index 79d95f9..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/main/MonJobMainService.java +++ /dev/null @@ -1,105 +0,0 @@ -package vben.core.module.mon.job.main; - -import cn.hutool.core.lang.ClassScanner; -import cn.hutool.core.util.StrUtil; -import vben.core.module.mon.job.root.IJobGroup; -import lombok.extern.slf4j.Slf4j; -import vben.core.module.mon.job.root.IJob; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -@Service -@Transactional(rollbackFor = Exception.class) -@Slf4j -public class MonJobMainService { - - public List getJobList(){ - List scanJobList = getScanJobList(); - List dbJobList = repo.findAll(); - for (int j = 0; j < dbJobList.size(); j++) { - boolean flag = false; - for (int i = 0; i < scanJobList.size(); i++) { - if(dbJobList.get(j).getReurl().equals(scanJobList.get(i).getReurl())){ - flag=true; - } - } -// if(!flag) { -// repo.deleteById(dbJobList.get(j).getCode());//删除已移除的JOB -// } - } - - for (int i = 0; i < scanJobList.size(); i++) { - boolean flag = false; - for (int j = 0; j < dbJobList.size(); j++) { - if(dbJobList.get(j).getReurl().equals(scanJobList.get(i).getReurl())){ - scanJobList.get(i).setCron(dbJobList.get(j).getCron()); - scanJobList.get(i).setAvtag(dbJobList.get(j).getAvtag()); - scanJobList.get(i).setCode(dbJobList.get(j).getCode()); - flag=true; - } - } - if(!flag){ - repo.save(scanJobList.get(i));//增加新配置的JOB - } - } - return scanJobList; - } - - private List getScanJobList() - { - List list = new ArrayList(); - Set> classes = ClassScanner.scanPackage("vben"); - for (Class clazz : classes) - { - IJobGroup group = clazz.getAnnotation(IJobGroup.class); - if (group != null) - { - Method[] methods = clazz.getDeclaredMethods(); - for (Method method : methods) - { - IJob xjob = method.getAnnotation(IJob.class); - if (xjob != null) - { - MonJobMain job = new MonJobMain(); - job.setId(IdUtils.getUID()); - job.setCron(xjob.cron()); - job.setJgroup(StrUtil.lowerFirst(clazz.getSimpleName())); - job.setName(xjob.name()); - job.setJid(method.getName()); - job.setReurl(job.getJgroup()+"/"+job.getJid()); - job.setAvtag(false); - job.setRetyp(0); - if(StrUtil.isBlank(xjob.code())){ - job.setCode(job.getReurl()); - }else{ - job.setCode(xjob.code()); - } - boolean flag=false; - for (int i = 0; i < list.size(); i++) { - if(list.get(i).getCode().equals(job.getCode())){ - flag=true; - log.warn("存在相同key的job,已屏蔽"); - break; - } - } - if(!flag){ - list.add(job); - } - - } - } - } - } - return list; - } - - @Autowired - private MonJobMainRepo repo; -} diff --git a/vben-core/src/main/java/vben/core/module/mon/job/root/IJob.java b/vben-core/src/main/java/vben/core/module/mon/job/root/IJob.java deleted file mode 100644 index c900e57..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/root/IJob.java +++ /dev/null @@ -1,18 +0,0 @@ -package vben.core.module.mon.job.root; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target(value = {ElementType.METHOD}) -public @interface IJob -{ - String value() default ""; - - String cron() default ""; - - String name() default ""; - - String code() default ""; -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/mon/job/root/IJobGroup.java b/vben-core/src/main/java/vben/core/module/mon/job/root/IJobGroup.java deleted file mode 100644 index 2e01f4f..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/root/IJobGroup.java +++ /dev/null @@ -1,10 +0,0 @@ -package vben.core.module.mon.job.root; - -@java.lang.annotation.Documented -@java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE}) -@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) -public @interface IJobGroup -{ - String value() default ""; -} - diff --git a/vben-core/src/main/java/vben/core/module/mon/job/root/JobConfig.java b/vben-core/src/main/java/vben/core/module/mon/job/root/JobConfig.java deleted file mode 100644 index c7cdca6..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/root/JobConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package vben.core.module.mon.job.root; - -import org.quartz.Scheduler; -import org.quartz.SchedulerException; -import org.quartz.SchedulerFactory; -import org.quartz.impl.StdSchedulerFactory; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - - -@Configuration -public class JobConfig { - - //初始注入scheduler - @Bean - public Scheduler scheduler() throws SchedulerException { - SchedulerFactory schedulerFactoryBean = new StdSchedulerFactory(); - return schedulerFactoryBean.getScheduler(); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/mon/job/root/MonJobFactory.java b/vben-core/src/main/java/vben/core/module/mon/job/root/MonJobFactory.java deleted file mode 100644 index 8e8e74f..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/root/MonJobFactory.java +++ /dev/null @@ -1,54 +0,0 @@ -package vben.core.module.mon.job.root; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.extra.spring.SpringUtil; -import vben.core.module.mon.job.log.MonJobLog; -import vben.core.module.mon.job.log.MonJobLogRepo; -import vben.core.module.mon.job.main.MonJobMain; -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.springframework.util.ReflectionUtils; -import vben.core.common.utils.lang.IdUtils; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.reflect.Method; - -public class MonJobFactory implements Job { - @Override - public void execute(JobExecutionContext context) { - MonJobMain job = (MonJobMain) context.getMergedJobDataMap().get("job"); - Method method = ReflectionUtils.findMethod(SpringUtil.getBean(job.getJgroup()).getClass(), job.getJid()); - MonJobLog log = new MonJobLog(); - log.setId(IdUtils.getUID()); - MonJobLogRepo syJobMlogDao= SpringUtil.getBean("monJobLogRepo"); - log.setName(job.getName()); - long start = System.currentTimeMillis(); - try { - log.setSttim(DateUtil.now()); - method.invoke(SpringUtil.getBean(job.getJgroup())); - log.setRet("成功"); - log.setMsg("用时:" + (System.currentTimeMillis() - start) / 1000 + "秒"); - log.setEntim(DateUtil.now()); - syJobMlogDao.save(log); - } catch (Exception e) { - System.err.println("定时任务运行失败"); - e.printStackTrace(); - StringWriter sw = new StringWriter(); - e.printStackTrace(new PrintWriter(sw, true)); - log.setRet("失败"); - String message = sw.toString(); - if (message.length() >= 5000) - { - log.setMsg(message.substring(0, 5000)); - } else - { - log.setMsg(message); - } - log.setEntim(DateUtil.now()); - syJobMlogDao.save(log); - } - } - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/mon/job/root/MonJobHandler.java b/vben-core/src/main/java/vben/core/module/mon/job/root/MonJobHandler.java deleted file mode 100644 index 6948949..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/root/MonJobHandler.java +++ /dev/null @@ -1,162 +0,0 @@ -package vben.core.module.mon.job.root; - - -import vben.core.module.mon.job.main.MonJobMain; -import vben.core.module.mon.job.main.MonJobMainRepo; -import org.quartz.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.List; - -//任务调度处理 -@Component -public class MonJobHandler { - // 任务调度 - @Autowired - private Scheduler scheduler; - - //开始执行所有任务 - public void startAllJobs(List jobList) throws SchedulerException { - for (int i = 0; i < jobList.size(); i++) { - if (jobList.get(i).getAvtag()) { - String[] arr= jobList.get(i).getReurl().split("/"); - jobList.get(i).setJgroup(arr[0]); - jobList.get(i).setJid(arr[1]); - initJob(scheduler, jobList.get(i)); - } - } - scheduler.start(); - } - - private void initJob(Scheduler scheduler, MonJobMain job) throws SchedulerException { - // 通过JobBuilder构建JobDetail实例,JobDetail规定只能是实现Job接口的实例 - // JobDetail 是具体Job实例 - JobDetail jobDetail = JobBuilder.newJob(MonJobFactory.class).withIdentity(job.getJid(), job.getJgroup()).build(); - // 基于表达式构建触发器 - jobDetail.getJobDataMap().put("job", job); - CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(job.getCron()); - // CronTrigger表达式触发器 继承于Trigger - // TriggerBuilder 用于构建触发器实例 - CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(job.getJid(), job.getJgroup()) - .withSchedule(cronScheduleBuilder).build(); - scheduler.scheduleJob(jobDetail, cronTrigger); - } - - //禁用任务 - public void stopJob(MonJobMain job) throws SchedulerException { - JobKey jobKey = JobKey.jobKey(job.getJid(), job.getJgroup()); - scheduler.deleteJob(jobKey); - job.setAvtag(false); - repo.save(job); - } - - //启用任务 - public void startJob(MonJobMain job) throws SchedulerException { - TriggerKey triggerKey = TriggerKey.triggerKey(job.getJid(), job.getJgroup()); - CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey); - if (null == trigger) { - JobDetail jobDetail = JobBuilder.newJob(MonJobFactory.class) - .withIdentity(job.getJid(), job.getJgroup()).build(); - jobDetail.getJobDataMap().put("job", job); - CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(job.getCron()); - trigger = TriggerBuilder.newTrigger().withIdentity(job.getJid(), job.getJgroup()) - .withSchedule(scheduleBuilder).build(); - scheduler.scheduleJob(jobDetail, trigger); - } else { - CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(job.getCron()); - trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); - scheduler.rescheduleJob(triggerKey, trigger); - } - job.setAvtag(true); - repo.save(job); - } - - //立即执行一次 - public void onceJob(MonJobMain job) throws SchedulerException, InterruptedException { - if (job.getAvtag()) { - JobKey jobKey = JobKey.jobKey(job.getJid(), job.getJgroup()); - scheduler.triggerJob(jobKey); - } else { - JobDetail jobDetail = JobBuilder.newJob(MonJobFactory.class) - .withIdentity(job.getJid(), job.getJgroup()).build(); - jobDetail.getJobDataMap().put("job", job); - CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(job.getCron()); - CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(job.getJid(), job.getJgroup()) - .withSchedule(scheduleBuilder).build(); - scheduler.scheduleJob(jobDetail, trigger); - JobKey jobKey = JobKey.jobKey(job.getJid(), job.getJgroup()); - scheduler.pauseJob(jobKey); - scheduler.triggerJob(jobKey); - Thread.sleep(100); - scheduler.deleteJob(jobKey); - } - - } - - //获取Job信息 - public String getJobInfo(String name, String group) throws SchedulerException { - TriggerKey triggerKey = new TriggerKey(name, group); - CronTrigger cronTrigger = (CronTrigger) scheduler.getTrigger(triggerKey); - return String.format("time:%s,state:%s", cronTrigger.getCronExpression(), - scheduler.getTriggerState(triggerKey).name()); - } - - //修改某个任务的执行时间 - public boolean modifyJob(String name, String group, String cron) throws SchedulerException { - Date date = null; - TriggerKey triggerKey = new TriggerKey(name, group); - CronTrigger cronTrigger = (CronTrigger) scheduler.getTrigger(triggerKey); - String oldTime = cronTrigger.getCronExpression(); - if (!oldTime.equalsIgnoreCase(cron)) { - CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cron); - CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(name, group) - .withSchedule(cronScheduleBuilder).build(); - date = scheduler.rescheduleJob(triggerKey, trigger); - } - return date != null; - } - - // 暂停所有任务 - public void pauseAllJob() throws SchedulerException { - scheduler.pauseAll(); - } - - //暂停某个任务 - public void pauseJob(String name, String group) throws SchedulerException { - JobKey jobKey = new JobKey(name, group); - JobDetail jobDetail = scheduler.getJobDetail(jobKey); - if (jobDetail == null) - return; - scheduler.pauseJob(jobKey); - } - - //恢复所有任务 - public void resumeAllJob() throws SchedulerException { - scheduler.resumeAll(); - } - - //恢复某个任务 - public void resumeJob(String name, String group) throws SchedulerException { - JobKey jobKey = new JobKey(name, group); - JobDetail jobDetail = scheduler.getJobDetail(jobKey); - if (jobDetail == null) - return; - scheduler.resumeJob(jobKey); - } - - // 删除某个任务 - public void deleteJob(String name, String group) throws SchedulerException { - JobKey jobKey = new JobKey(name, group); - JobDetail jobDetail = scheduler.getJobDetail(jobKey); - if (jobDetail == null) - return; - scheduler.deleteJob(jobKey); - } - - @Autowired - private MonJobMainRepo repo; - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/mon/job/root/MonJobListener.java b/vben-core/src/main/java/vben/core/module/mon/job/root/MonJobListener.java deleted file mode 100644 index ea295a5..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/job/root/MonJobListener.java +++ /dev/null @@ -1,37 +0,0 @@ -package vben.core.module.mon.job.root; - -import vben.core.module.mon.job.main.MonJobMain; -import vben.core.module.mon.job.main.MonJobMainService; -import lombok.extern.slf4j.Slf4j; -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationListener; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.event.ContextRefreshedEvent; - -import java.util.List; - -@Configuration -@Slf4j -public class MonJobListener implements ApplicationListener { - @Autowired - private MonJobHandler handler; - - @Autowired - private MonJobMainService monJobMainService; - - - //初始启动quartz - @Override - public void onApplicationEvent(ContextRefreshedEvent event) { - List dbJobList = monJobMainService.getJobList(); - try { - handler.startAllJobs(dbJobList); -// log.info("----SYS定时调度任务开启----"); - } catch (SchedulerException e) { - e.printStackTrace(); - } - } - - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/mon/log/error/MonLogError.java b/vben-core/src/main/java/vben/core/module/mon/log/error/MonLogError.java deleted file mode 100644 index 31b571d..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/error/MonLogError.java +++ /dev/null @@ -1,70 +0,0 @@ -package vben.core.module.mon.log.error; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.hibernate.annotations.CreationTimestamp; - -import javax.persistence.*; -import java.io.Serializable; -import java.sql.Timestamp; - -@Entity -@Getter -@Setter -@NoArgsConstructor -@ApiModel("异常日志") -public class MonLogError implements Serializable { - - @Id - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("操作名称") - private String name; - - @Column(length = 32) - @ApiModelProperty("用户ID") - private String useid; - - @ApiModelProperty("方法名") - private String method; - - @Lob - @ApiModelProperty("参数") - private String param; - - @ApiModelProperty("日志类型") - private String type; - - @ApiModelProperty("请求ip") - private String ip; - - @ApiModelProperty("地址") - private String addre; - - @ApiModelProperty("浏览器") - private String agbro; - - @ApiModelProperty("操作系统") - private String ageos; - - @ApiModelProperty("请求耗时") - private Long time; - - @Lob - @ApiModelProperty("异常详细") - private String error; - - @CreationTimestamp - @ApiModelProperty("创建时间") - private Timestamp crtim; - - public MonLogError(String type, Long time) { - this.type = type; - this.time = time; - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/error/MonLogErrorApi.java b/vben-core/src/main/java/vben/core/module/mon/log/error/MonLogErrorApi.java deleted file mode 100644 index c0e1fb2..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/error/MonLogErrorApi.java +++ /dev/null @@ -1,118 +0,0 @@ -package vben.core.module.mon.log.error; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; - -@RestController -@RequiredArgsConstructor -@RequestMapping("mon/log/error") -@Api(tags = {"错误日志"}) -public class MonLogErrorApi { - - @GetMapping - @ApiOperation("查询错误日志分页") - public R get() { - Sqler sqler = new Sqler("t.*", "mon_log_error"); - sqler.addOrder("t.crtim desc"); - sqler.addLeftJoin("u.name as usena,u.usnam","sys_org_user u","u.id=t.useid"); - return R.ok(jdbcDao.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询错误日志详情") - public R getOne(@PathVariable String id) { - MonLogError main = service.findOne(id); - return R.ok(main); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除错误日志") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @DeleteMapping(value = "all") - @ApiOperation("清空错误日志") - public R delAllInfoLog() { - service.delAll(); - return R.ok(); - } - - @Autowired - private JdbcDao jdbcDao; - - private final MonLogErrorService service; - - -// @OpLog("导出数据") -// @ApiOperation("导出数据") -// @GetMapping(value = "/download") -// @PreAuthorize("@el.check()") -// public void exportLog(HttpServletResponse response, LogQueryCriteria criteria) throws IOException { -// criteria.setLogType("INFO"); -// logService.download(logService.queryAll(criteria), response); -// } -// -// @Log("导出错误数据") -// @ApiOperation("导出错误数据") -// @GetMapping(value = "/error/download") -// @PreAuthorize("@el.check()") -// public void exportErrorLog(HttpServletResponse response, LogQueryCriteria criteria) throws IOException { -// criteria.setLogType("ERROR"); -// logService.download(logService.queryAll(criteria), response); -// } -// @GetMapping -// @ApiOperation("日志查询") -// @PreAuthorize("@el.check()") -// public ResponseEntity queryLog(LogQueryCriteria criteria, Pageable pageable){ -// criteria.setLogType("INFO"); -// return new ResponseEntity<>(logService.queryAll(criteria,pageable), HttpStatus.OK); -// } - -// @GetMapping(value = "/user") -// @ApiOperation("用户日志查询") -// public ResponseEntity queryUserLog(LogQueryCriteria criteria, Pageable pageable){ -// criteria.setLogType("INFO"); -// criteria.setUsername(SecurityUtils.getCurrentUsername()); -// return new ResponseEntity<>(logService.queryAllByUser(criteria,pageable), HttpStatus.OK); -// } - - // @GetMapping(value = "/error") -// @ApiOperation("错误日志查询") -// @PreAuthorize("@el.check()") -// public ResponseEntity queryErrorLog(LogQueryCriteria criteria, Pageable pageable){ -// criteria.setLogType("ERROR"); -// return new ResponseEntity<>(logService.queryAll(criteria,pageable), HttpStatus.OK); -// } -// -// @GetMapping(value = "/error/{id}") -// @ApiOperation("日志异常详情查询") -// @PreAuthorize("@el.check()") -// public ResponseEntity queryErrorLogDetail(@PathVariable Long id){ -// return new ResponseEntity<>(logService.findByErrDetail(id), HttpStatus.OK); -// } -// @DeleteMapping(value = "/del/error") -// @Log("删除所有ERROR日志") -// @ApiOperation("删除所有ERROR日志") -// @PreAuthorize("@el.check()") -// public ResponseEntity delAllErrorLog(){ -// logService.delAllByError(); -// return new ResponseEntity<>(HttpStatus.OK); -// } -// -// @DeleteMapping(value = "/del/info") -// @Log("删除所有INFO日志") -// @ApiOperation("删除所有INFO日志") -// @PreAuthorize("@el.check()") -// public ResponseEntity delAllInfoLog(){ -// logService.delAllByInfo(); -// return new ResponseEntity<>(HttpStatus.OK); -// } - -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/error/MonLogErrorRepo.java b/vben-core/src/main/java/vben/core/module/mon/log/error/MonLogErrorRepo.java deleted file mode 100644 index b1165fc..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/error/MonLogErrorRepo.java +++ /dev/null @@ -1,10 +0,0 @@ -package vben.core.module.mon.log.error; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.stereotype.Repository; - -@Repository -public interface MonLogErrorRepo extends JpaRepository, JpaSpecificationExecutor { - -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/error/MonLogErrorService.java b/vben-core/src/main/java/vben/core/module/mon/log/error/MonLogErrorService.java deleted file mode 100644 index bd833aa..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/error/MonLogErrorService.java +++ /dev/null @@ -1,145 +0,0 @@ -package vben.core.module.mon.log.error; - -import cn.hutool.core.lang.Dict; -import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; -import lombok.RequiredArgsConstructor; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import vben.core.module.mon.log.oper.Oplog; -import vben.core.common.utils.lang.IdUtils; - -import java.lang.reflect.Method; -import java.lang.reflect.Parameter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Service -@RequiredArgsConstructor -public class MonLogErrorService { - private final MonLogErrorRepo repo; -// -// @Override -// public Object queryAll(LogQueryCriteria criteria, Pageable pageable) { -// Page page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable); -// String status = "ERROR"; -// if (status.equals(criteria.getLogType())) { -// return PageUtil.toPage(page.map(logErrorMapper::toDto)); -// } -// return page; -// } -// -// @Override -// public List queryAll(LogQueryCriteria criteria) { -// return logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb))); -// } -// -// @Override -// public Object queryAllByUser(LogQueryCriteria criteria, Pageable pageable) { -// Page page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable); -// return PageUtil.toPage(page.map(logSmallMapper::toDto)); -// } - - @Transactional(rollbackFor = Exception.class) - public void save(String username, String ageos,String browser, String ip, ProceedingJoinPoint joinPoint, MonLogError log) { - if (log == null) { - throw new IllegalArgumentException("Log 不能为 null!"); - } - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Method method = signature.getMethod(); - Oplog aopLog = method.getAnnotation(Oplog.class); - - // 方法路径 - String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; - log.setId(IdUtils.getUID()); - // 描述 - log.setName(aopLog.value()); - log.setAgeos(ageos); - - log.setIp(ip); -// log.setAddress(StringUtils.getCityInfo(log.getRequestIp())); - log.setMethod(methodName); - log.setUseid(username); - log.setParam(getParameter(method, joinPoint.getArgs())); - // 记录登录用户,隐藏密码信息 - if(log.getName().equals("用户登录")){ - JSONObject obj = JSONUtil.parseObj(log.getParam()); - log.setUseid(obj.get("username").toString()); - log.setParam(JSONUtil.toJsonStr(Dict.create().set("username", log.getUseid()))); - } - log.setAgbro(browser); - repo.save(log); - } - - /** - * 根据方法和传入的参数获取请求参数 - */ - private String getParameter(Method method, Object[] args) { - List argList = new ArrayList<>(); - Parameter[] parameters = method.getParameters(); - for (int i = 0; i < parameters.length; i++) { - //将RequestBody注解修饰的参数作为请求参数 - RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class); - if (requestBody != null) { - argList.add(args[i]); - } - //将RequestParam注解修饰的参数作为请求参数 - RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class); - if (requestParam != null) { - Map map = new HashMap<>(4); - String key = parameters[i].getName(); - if (StrUtil.isNotBlank(requestParam.value())) { - key = requestParam.value(); - } - map.put(key, args[i]); - argList.add(map); - } - } - if (argList.isEmpty()) { - return ""; - } - return argList.size() == 1 ? JSONUtil.toJsonStr(argList.get(0)) : JSONUtil.toJsonStr(argList); - } - -// @Override -// public void download(List logs, HttpServletResponse response) throws IOException { -// List> list = new ArrayList<>(); -// for (Log log : logs) { -// Map map = new LinkedHashMap<>(); -// map.put("用户名", log.getUsername()); -// map.put("IP", log.getRequestIp()); -// map.put("IP来源", log.getAddress()); -// map.put("描述", log.getDescription()); -// map.put("浏览器", log.getBrowser()); -// map.put("请求耗时/毫秒", log.getTime()); -// map.put("异常详情", new String(ObjectUtil.isNotNull(log.getExceptionDetail()) ? log.getExceptionDetail() : "".getBytes())); -// map.put("创建日期", log.getCreateTime()); -// list.add(map); -// } -// FileUtil.downloadExcel(list, response); -// } - - - @Transactional(readOnly = true) - public MonLogError findOne(String id) { - return repo.findById(id).get(); - } - - public void delAll() { - repo.deleteAll(); - } - - public int delete(String[] ids) { - for (String id : ids) { - repo.deleteById(id); - } - return ids.length; - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLogin.java b/vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLogin.java deleted file mode 100644 index e0fe4e4..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLogin.java +++ /dev/null @@ -1,61 +0,0 @@ -package vben.core.module.mon.log.login; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import java.util.Date; - -@Entity -@Data -@ApiModel("登录日志") -public class MonLogLogin { - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("用户名称") - private String name; - - @Column(length = 32) - @ApiModelProperty("登录账号") - private String usnam; - - @Column(length = 32) - @ApiModelProperty("登录ip") - private String ip; - - @Column(updatable = false) - @ApiModelProperty("登录时间") - private Date crtim=new Date(); - - @Column(length = 32) - @ApiModelProperty("登录地点") - private String addre; - - @Column(length = 64) - @ApiModelProperty("session") - private String usession;//取消了session!!! - - @Column(length = 64) - @ApiModelProperty("在线KEY") - private String onkey; - - @Column(length = 32) - @ApiModelProperty("操作系统") - private String ageos; - - @Column(length = 32) - @ApiModelProperty("浏览器") - private String agbro; - - @Column(length = 512) - @ApiModelProperty("客户端详情") - private String agdet; - -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLoginApi.java b/vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLoginApi.java deleted file mode 100644 index a7eb770..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLoginApi.java +++ /dev/null @@ -1,53 +0,0 @@ -package vben.core.module.mon.log.login; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.api.R; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("mon/log/login") -@Api(tags = {"登录日志"}) -public class MonLogLoginApi { - - @GetMapping - @ApiOperation("查询登录日志分页") - public R get(String name) { - Sqler sqler = new Sqler("t.id,t.name,t.usnam,t.ip,t.crtim,t.addre,t.usession,t.onkey", "mon_log_login"); - sqler.addSelect("t.ageos,t.agbro,t.agdet"); - sqler.addLike("t.name", name); - sqler.addOrder("t.crtim desc"); - return R.ok(jdbcDao.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询登录日志详情") - public R getOne(@PathVariable String id) { - return R.ok(repo.findById(id).get()); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除登录日志") - public R delete(@PathVariable String[] ids) { - for (String id : ids) { - repo.deleteById(id); - } - return R.ok(); - } - - @DeleteMapping("all") - @ApiOperation("清空登录日志") - public R deleteAll() { - repo.deleteAll(); - return R.ok(); - } - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private MonLogLoginRepo repo; -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLoginRepo.java b/vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLoginRepo.java deleted file mode 100644 index 7139c3c..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLoginRepo.java +++ /dev/null @@ -1,7 +0,0 @@ -package vben.core.module.mon.log.login; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface MonLogLoginRepo extends JpaRepository { - -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLoginService.java b/vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLoginService.java deleted file mode 100644 index 61d5749..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/login/MonLogLoginService.java +++ /dev/null @@ -1,120 +0,0 @@ -package vben.core.module.mon.log.login; - -import cn.hutool.extra.servlet.ServletUtil; -import vben.core.common.utils.web.XaddressUtil; -import vben.core.framework.security.pojo.Zuser; -import eu.bitwalker.useragentutils.Browser; -import eu.bitwalker.useragentutils.OperatingSystem; -import eu.bitwalker.useragentutils.UserAgent; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Service; -import vben.core.common.utils.lang.IdUtils; - -import javax.servlet.http.HttpServletRequest; - -@Service -@Slf4j -public class MonLogLoginService { - - @Autowired - private MonLogLoginRepo repo; - - @Async - public void save(String onkey,Zuser zuser, HttpServletRequest request){ - - MonLogLogin logLogin = new MonLogLogin(); - logLogin.setId(IdUtils.getUID()); - try { - String agent = request.getHeader("User-Agent"); - UserAgent userAgent = UserAgent.parseUserAgentString(agent); - Browser browser = userAgent.getBrowser(); - - OperatingSystem os = userAgent.getOperatingSystem(); - logLogin.setUsnam(zuser.getId()); - logLogin.setName(zuser.getName()); -// logLogin.setUip(XreqUtil.getIpAddress(request)); - String ip=ServletUtil.getClientIP(request); - logLogin.setIp(ip); - logLogin.setAddre(XaddressUtil.getRealAddressByIP(ip)); -// logLogin.setUsession(request.getSession().getId()); - logLogin.setOnkey(onkey); - - logLogin.setAgdet(agent); - logLogin.setAgbro(browser.toString()); - if("IE7".equals(browser.toString())){ - if (agent.contains("Trident/5")) { - logLogin.setAgbro("IE9C"); - }else if(agent.contains("Trident/6")){ - logLogin.setAgbro("IE10C"); - }else if(agent.contains("Trident/7")){ - logLogin.setAgbro("IE11C"); - } - } - logLogin.setAgeos(os.toString()); - repo.save(logLogin); - }catch (Exception e){ - e.printStackTrace(); - log.error("登录日志记录异常:"+logLogin); - } - } - -} -// -// IE7 -// IE7 on Windows XP SP2 -// Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) -// -// IE7 on Windows 2003 Server -// Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2) -// -// IE7 on Windows Vista -// Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0) -// -// 参考资料 -// IE8 -// IE8 on Windows Vista -// Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0) -// -// IE8 on Windows 7 -// Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0) -// -// 64-bit IE on 64-bit Windows: -// Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0) -// -// 32-bit IE on 64-bit Windows: -// Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0) -// -// WOW64 表示 “Windows on Windows 64-bit.” -// -// 参考资料 -// IE9 -// IE9 默认UA string -// Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0) -// -// IE9 兼容性视图UA string -// Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0) -// -// 和IE8相似,IE9兼容性视图匹配IE7标准模式 -// 参考资料 -// IE10 -// IE10 默认UA string -// Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0) -// -// IE10 兼容性视图UA string -// Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0) -// -// 和IE8和IE9相似,IE10兼容性视图匹配IE7标准模式 -// 参考资料 -// IE11 -// IE11 on Windows 8.1(默认) -// Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko -// -// IE11 兼容性视图UA string -// Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C) -// -// 作者:aqhi -// 链接:https://www.jianshu.com/p/ea72819b9eae -// 来源:简书 -// 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 diff --git a/vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOper.java b/vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOper.java deleted file mode 100644 index f2e49db..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOper.java +++ /dev/null @@ -1,68 +0,0 @@ -package vben.core.module.mon.log.oper; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.hibernate.annotations.CreationTimestamp; -import javax.persistence.*; -import java.io.Serializable; -import java.sql.Timestamp; - -@Entity -@Getter -@Setter -@NoArgsConstructor -@ApiModel("操作日志") -public class MonLogOper implements Serializable { - - @Id - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("操作名称") - private String name; - - @Column(length = 32) - @ApiModelProperty("用户ID") - private String useid; - - @ApiModelProperty("方法名") - private String method; - - @Lob - @ApiModelProperty("参数") - private String param; - - @ApiModelProperty("日志类型") - private String type; - - @ApiModelProperty("请求ip") - private String ip; - - @ApiModelProperty("地址") - private String addre; - - @ApiModelProperty("浏览器") - private String agbro; - - @ApiModelProperty("操作系统") - private String ageos; - - @ApiModelProperty("请求耗时") - private Long time; - - @ApiModelProperty("异常详细") - private byte[] error; - - @CreationTimestamp - @ApiModelProperty("产生时间") - private Timestamp crtim; - - public MonLogOper(String type, Long time) { - this.type = type; - this.time = time; - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOperApi.java b/vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOperApi.java deleted file mode 100644 index 4885858..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOperApi.java +++ /dev/null @@ -1,53 +0,0 @@ -package vben.core.module.mon.log.oper; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; - -@RestController -@RequiredArgsConstructor -@RequestMapping("mon/log/oper") -@Api(tags = {"操作日志"}) -public class MonLogOperApi { - - @GetMapping - @ApiOperation("查询操作日志分页") - public R get() { - Sqler sqler = new Sqler("t.id,t.name,t.useid,t.method,t.param,t.type,t.ip,t.addre", "mon_log_oper"); - sqler.addSelect("t.agbro,t.ageos,t.time,t.crtim"); - sqler.addOrder("t.crtim desc"); - sqler.addLeftJoin("u.name as usena,u.usnam","sys_org_user u","u.id=t.useid"); - return R.ok(jdbcDao.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询操作日志详情") - public R getOne(@PathVariable String id) { - MonLogOper main = service.findOne(id); - return R.ok(main); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除错误日志") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @DeleteMapping(value = "all") - @ApiOperation("清空错误日志") - public R delAllInfoLog() { - service.delAll(); - return R.ok(); - } - - @Autowired - private JdbcDao jdbcDao; - - private final MonLogOperService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOperRepo.java b/vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOperRepo.java deleted file mode 100644 index f160be9..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOperRepo.java +++ /dev/null @@ -1,10 +0,0 @@ -package vben.core.module.mon.log.oper; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.stereotype.Repository; - -@Repository -public interface MonLogOperRepo extends JpaRepository, JpaSpecificationExecutor { - -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOperService.java b/vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOperService.java deleted file mode 100644 index 315d718..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/oper/MonLogOperService.java +++ /dev/null @@ -1,155 +0,0 @@ -package vben.core.module.mon.log.oper; - -import cn.hutool.core.lang.Dict; -import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; -import lombok.RequiredArgsConstructor; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import vben.core.common.utils.lang.IdUtils; - -import java.lang.reflect.Method; -import java.lang.reflect.Parameter; -import java.util.*; - -@Service -@RequiredArgsConstructor -public class MonLogOperService{ - private final MonLogOperRepo repo; -// -// @Override -// public Object queryAll(LogQueryCriteria criteria, Pageable pageable) { -// Page page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable); -// String status = "ERROR"; -// if (status.equals(criteria.getLogType())) { -// return PageUtil.toPage(page.map(logErrorMapper::toDto)); -// } -// return page; -// } -// -// @Override -// public List queryAll(LogQueryCriteria criteria) { -// return logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb))); -// } -// -// @Override -// public Object queryAllByUser(LogQueryCriteria criteria, Pageable pageable) { -// Page page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable); -// return PageUtil.toPage(page.map(logSmallMapper::toDto)); -// } - - @Transactional(rollbackFor = Exception.class) - public void save(String username, String ageos,String browser, String ip, ProceedingJoinPoint joinPoint, MonLogOper log) { - if (log == null) { - throw new IllegalArgumentException("Log 不能为 null!"); - } - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Method method = signature.getMethod(); - Oplog aopLog = method.getAnnotation(Oplog.class); - - // 方法路径 - String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; - log.setId(IdUtils.getUID()); - // 描述 - log.setName(aopLog.value()); - - log.setIp(ip); - log.setAgeos(ageos); -// log.setAddress(StringUtils.getCityInfo(log.getRequestIp())); - log.setMethod(methodName); - log.setUseid(username); - log.setParam(getParameter(method, joinPoint.getArgs())); - // 记录登录用户,隐藏密码信息 - if(log.getName().equals("用户登录")){ - JSONObject obj = JSONUtil.parseObj(log.getParam()); - log.setUseid(obj.get("username").toString()); - log.setParam(JSONUtil.toJsonStr(Dict.create().set("username", log.getUseid()))); - } - log.setAgbro(browser); - repo.save(log); - } - - /** - * 根据方法和传入的参数获取请求参数 - */ - private String getParameter(Method method, Object[] args) { - List argList = new ArrayList<>(); - Parameter[] parameters = method.getParameters(); - for (int i = 0; i < parameters.length; i++) { - //将RequestBody注解修饰的参数作为请求参数 - RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class); - if (requestBody != null) { - argList.add(args[i]); - } - //将RequestParam注解修饰的参数作为请求参数 - RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class); - if (requestParam != null) { - Map map = new HashMap<>(4); - String key = parameters[i].getName(); - if (!StrUtil.isBlank(requestParam.value())) { - key = requestParam.value(); - } - map.put(key, args[i]); - argList.add(map); - } - } - if (argList.isEmpty()) { - return ""; - } - return argList.size() == 1 ? JSONUtil.toJsonStr(argList.get(0)) : JSONUtil.toJsonStr(argList); - } - - @Transactional(readOnly = true) - public MonLogOper findOne(String id) { - return repo.findById(id).get(); - } - -// @Override -// public Object findByErrDetail(Long id) { -// Log log = logRepository.findById(id).orElseGet(Log::new); -// ValidationUtil.isNull(log.getId(), "Log", "id", id); -// byte[] details = log.getExceptionDetail(); -// return Dict.create().set("exception", new String(ObjectUtil.isNotNull(details) ? details : "".getBytes())); -// } - -// @Override -// public void download(List logs, HttpServletResponse response) throws IOException { -// List> list = new ArrayList<>(); -// for (Log log : logs) { -// Map map = new LinkedHashMap<>(); -// map.put("用户名", log.getUsername()); -// map.put("IP", log.getRequestIp()); -// map.put("IP来源", log.getAddress()); -// map.put("描述", log.getDescription()); -// map.put("浏览器", log.getBrowser()); -// map.put("请求耗时/毫秒", log.getTime()); -// map.put("异常详情", new String(ObjectUtil.isNotNull(log.getExceptionDetail()) ? log.getExceptionDetail() : "".getBytes())); -// map.put("创建日期", log.getCreateTime()); -// list.add(map); -// } -// FileUtil.downloadExcel(list, response); -// } - - public void delAll() { - repo.deleteAll(); - } - - public int delete(String[] ids) { - for (String id : ids) { - repo.deleteById(id); - } - return ids.length; - } - -// -// @Override -// @Transactional(rollbackFor = Exception.class) -// public void delAllByInfo() { -// logRepository.deleteByLogType("INFO"); -// } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/oper/Oplog.java b/vben-core/src/main/java/vben/core/module/mon/log/oper/Oplog.java deleted file mode 100644 index c36d36a..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/oper/Oplog.java +++ /dev/null @@ -1,12 +0,0 @@ -package vben.core.module.mon.log.oper; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -public @interface Oplog { - String value() default ""; -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/oper/OplogAspect.java b/vben-core/src/main/java/vben/core/module/mon/log/oper/OplogAspect.java deleted file mode 100644 index a7bce8f..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/oper/OplogAspect.java +++ /dev/null @@ -1,96 +0,0 @@ -package vben.core.module.mon.log.oper; - -import cn.hutool.extra.servlet.ServletUtil; -import eu.bitwalker.useragentutils.Browser; -import eu.bitwalker.useragentutils.OperatingSystem; -import eu.bitwalker.useragentutils.UserAgent; -import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.AfterThrowing; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; -import org.springframework.stereotype.Component; -import vben.core.module.mon.log.error.MonLogError; -import vben.core.module.mon.log.error.MonLogErrorService; -import vben.core.common.utils.web.XuserUtil; - -import javax.servlet.http.HttpServletRequest; - -@Component -@Aspect -@Slf4j -public class OplogAspect { - - private final MonLogOperService operLogService; - private final MonLogErrorService errorLogService; - - ThreadLocal currentTime = new ThreadLocal<>(); - - public OplogAspect(MonLogOperService operLogService, - MonLogErrorService errorLogService) { - this.operLogService = operLogService; - this.errorLogService = errorLogService; - } - - /** - * 配置切入点 - */ - @Pointcut("@annotation(vben.core.module.mon.log.oper.Oplog)") - public void logPointcut() { - // 该方法无方法体,主要为了让同类中其他方法使用此切入点 - } - - /** - * 配置环绕通知,使用在方法logPointcut()上注册的切入点 - * - * @param joinPoint join point for advice - */ - @Around("logPointcut()") - public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { - Object result; - currentTime.set(System.currentTimeMillis()); - result = joinPoint.proceed(); - MonLogOper log = new MonLogOper("INFO",System.currentTimeMillis() - currentTime.get()); - currentTime.remove(); - HttpServletRequest request = RequestHolder.getHttpServletRequest(); - String ip= ServletUtil.getClientIP(request); - String agent = request.getHeader("User-Agent"); - UserAgent userAgent = UserAgent.parseUserAgentString(agent); - Browser browser = userAgent.getBrowser(); - OperatingSystem os = userAgent.getOperatingSystem(); -// logService.save(getUsername(), XstrUtil.getBrowser(request), XstrUtil.getIp(request),joinPoint, log); - operLogService.save(getUsername(),os.toString(), browser.getName(), ip,joinPoint, log); - return result; - } - - /** - * 配置异常通知 - * - * @param joinPoint join point for advice - * @param e exception - */ - @AfterThrowing(pointcut = "logPointcut()", throwing = "e") - public void logAfterThrowing(JoinPoint joinPoint, Throwable e) { - MonLogError log = new MonLogError("ERROR",System.currentTimeMillis() - currentTime.get()); - currentTime.remove(); - log.setError(ThrowableUtil.getStackTrace(e)); - HttpServletRequest request = RequestHolder.getHttpServletRequest(); - String ip= ServletUtil.getClientIP(request); - String agent = request.getHeader("User-Agent"); - UserAgent userAgent = UserAgent.parseUserAgentString(agent); - Browser browser = userAgent.getBrowser(); - OperatingSystem os = userAgent.getOperatingSystem(); -// logService.save(getUsername(), XstrUtil.getBrowser(request), XstrUtil.getIp(request), (ProceedingJoinPoint)joinPoint, log); - errorLogService.save(getUsername(),os.toString(), browser.toString(), ip, (ProceedingJoinPoint)joinPoint, log); - } - - public String getUsername() { - try { - return XuserUtil.getUserId(); - }catch (Exception e){ - return ""; - } - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/oper/RequestHolder.java b/vben-core/src/main/java/vben/core/module/mon/log/oper/RequestHolder.java deleted file mode 100644 index 553c126..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/oper/RequestHolder.java +++ /dev/null @@ -1,14 +0,0 @@ -package vben.core.module.mon.log.oper; - -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import java.util.Objects; - -public class RequestHolder { - - public static HttpServletRequest getHttpServletRequest() { - return ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/log/oper/ThrowableUtil.java b/vben-core/src/main/java/vben/core/module/mon/log/oper/ThrowableUtil.java deleted file mode 100644 index 086d052..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/log/oper/ThrowableUtil.java +++ /dev/null @@ -1,18 +0,0 @@ -package vben.core.module.mon.log.oper; - -import java.io.PrintWriter; -import java.io.StringWriter; - -public class ThrowableUtil { - - /** - * 获取堆栈信息 - */ - public static String getStackTrace(Throwable throwable){ - StringWriter sw = new StringWriter(); - try (PrintWriter pw = new PrintWriter(sw)) { - throwable.printStackTrace(pw); - return sw.toString(); - } - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/online/user/MonOnlineUserApi.java b/vben-core/src/main/java/vben/core/module/mon/online/user/MonOnlineUserApi.java deleted file mode 100644 index 7feac78..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/online/user/MonOnlineUserApi.java +++ /dev/null @@ -1,49 +0,0 @@ -package vben.core.module.mon.online.user; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.framework.cache.RedisHandler; - -import java.util.Collections; -import java.util.List; - -@RestController -@RequestMapping("mon/online/user") -@Api(tags = {"在线用户"}) -public class MonOnlineUserApi { - - @Autowired - private RedisHandler redisHandler; - - @GetMapping("list") - @ApiOperation("查询在线用户列表") - public R getList() { - List keyList = redisHandler.scan("online-key*"); - Collections.reverse(keyList); - String keys="("; - for (String key : keyList) { - keys+="'"+key+"',"; - } - keys = keys.substring(0, keys.length() - 1) + ")"; - String sql="select * from mon_log_login where onkey in "+keys+" order by crtim desc"; - List list = jdbcDao.getTp().query(sql, - new BeanPropertyRowMapper<>(OnlineUserDto.class)); - return R.ok(list); - } - - @PostMapping("close") - @ApiOperation("强退在线用户") - public R postClose(String onkey) { - redisHandler.del(onkey); - return R.ok(); - } - - @Autowired - private JdbcDao jdbcDao; - -} diff --git a/vben-core/src/main/java/vben/core/module/mon/online/user/OnlineUserDto.java b/vben-core/src/main/java/vben/core/module/mon/online/user/OnlineUserDto.java deleted file mode 100644 index 0ed0187..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/online/user/OnlineUserDto.java +++ /dev/null @@ -1,36 +0,0 @@ -package vben.core.module.mon.online.user; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.persistence.Column; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class OnlineUserDto { - - private String id; - - //姓名 - private String name; - - private String usnam; - - private String ip; - - private String crtim; - - private String addre; - - private String ageos; - - private String agbro; - - private String agdet; - - @Column(length = 64) - private String onkey;//online key - -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/main/CloseUtil.java b/vben-core/src/main/java/vben/core/module/mon/server/main/CloseUtil.java deleted file mode 100644 index b4252a5..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/main/CloseUtil.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package vben.core.module.mon.server.main; - -import java.io.Closeable; - -/** - * @author Zheng Jie - * @website https://el-admin.vip - * @description 用于关闭各种连接,缺啥补啥 - * @date 2021-03-05 - **/ -public class CloseUtil { - - public static void close(Closeable closeable) { - if (null != closeable) { - try { - closeable.close(); - } catch (Exception e) { - // 静默关闭 - } - } - } - - public static void close(AutoCloseable closeable) { - if (null != closeable) { - try { - closeable.close(); - } catch (Exception e) { - // 静默关闭 - } - } - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/main/ElAdminConstant.java b/vben-core/src/main/java/vben/core/module/mon/server/main/ElAdminConstant.java deleted file mode 100644 index d7bc02d..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/main/ElAdminConstant.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package vben.core.module.mon.server.main; - -/** - * 常用静态常量 - * - * @author Zheng Jie - * @date 2018-12-26 - */ -public class ElAdminConstant { - - /** - * 用于IP定位转换 - */ - public static final String REGION = "内网IP|内网IP"; - /** - * win 系统 - */ - public static final String WIN = "win"; - - /** - * mac 系统 - */ - public static final String MAC = "mac"; - - /** - * 常用接口 - */ - public static class Url { - // IP归属地查询 - public static final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp?ip=%s&json=true"; - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/main/FileUtil.java b/vben-core/src/main/java/vben/core/module/mon/server/main/FileUtil.java deleted file mode 100644 index e025e5d..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/main/FileUtil.java +++ /dev/null @@ -1,358 +0,0 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package vben.core.module.mon.server.main; - -import cn.hutool.core.io.IoUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.poi.excel.BigExcelWriter; -import cn.hutool.poi.excel.ExcelUtil; -import org.apache.poi.util.IOUtils; -import org.apache.poi.xssf.streaming.SXSSFSheet; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.web.multipart.MultipartFile; -import vben.core.common.exception.BadRequestException; - -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.*; -import java.security.MessageDigest; -import java.text.DecimalFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/** - * File工具类,扩展 hutool 工具包 - * - * @author Zheng Jie - * @date 2018-12-27 - */ -public class FileUtil extends cn.hutool.core.io.FileUtil { - - private static final Logger log = LoggerFactory.getLogger(FileUtil.class); - - /** - * 系统临时目录 - *
- * windows 包含路径分割符,但Linux 不包含, - * 在windows \\==\ 前提下, - * 为安全起见 同意拼装 路径分割符, - *
-     *       java.io.tmpdir
-     *       windows : C:\Users/xxx\AppData\Local\Temp\
-     *       linux: /temp
-     * 
- */ - public static final String SYS_TEM_DIR = System.getProperty("java.io.tmpdir") + File.separator; - /** - * 定义GB的计算常量 - */ - private static final int GB = 1024 * 1024 * 1024; - /** - * 定义MB的计算常量 - */ - private static final int MB = 1024 * 1024; - /** - * 定义KB的计算常量 - */ - private static final int KB = 1024; - - /** - * 格式化小数 - */ - private static final DecimalFormat DF = new DecimalFormat("0.00"); - - public static final String IMAGE = "图片"; - public static final String TXT = "文档"; - public static final String MUSIC = "音乐"; - public static final String VIDEO = "视频"; - public static final String OTHER = "其他"; - - - /** - * MultipartFile转File - */ - public static File toFile(MultipartFile multipartFile) { - // 获取文件名 - String fileName = multipartFile.getOriginalFilename(); - // 获取文件后缀 - String prefix = "." + getExtensionName(fileName); - File file = null; - try { - // 用uuid作为文件名,防止生成的临时文件重复 - file = new File(SYS_TEM_DIR + IdUtil.simpleUUID() + prefix); - // MultipartFile to File - multipartFile.transferTo(file); - } catch (IOException e) { - log.error(e.getMessage(), e); - } - return file; - } - - /** - * 获取文件扩展名,不带 . - */ - public static String getExtensionName(String filename) { - if ((filename != null) && (filename.length() > 0)) { - int dot = filename.lastIndexOf('.'); - if ((dot > -1) && (dot < (filename.length() - 1))) { - return filename.substring(dot + 1); - } - } - return filename; - } - - /** - * Java文件操作 获取不带扩展名的文件名 - */ - public static String getFileNameNoEx(String filename) { - if ((filename != null) && (filename.length() > 0)) { - int dot = filename.lastIndexOf('.'); - if ((dot > -1) && (dot < (filename.length()))) { - return filename.substring(0, dot); - } - } - return filename; - } - - /** - * 文件大小转换 - */ - public static String getSize(long size) { - String resultSize; - if (size / GB >= 1) { - //如果当前Byte的值大于等于1GB - resultSize = DF.format(size / (float) GB) + "GB "; - } else if (size / MB >= 1) { - //如果当前Byte的值大于等于1MB - resultSize = DF.format(size / (float) MB) + "MB "; - } else if (size / KB >= 1) { - //如果当前Byte的值大于等于1KB - resultSize = DF.format(size / (float) KB) + "KB "; - } else { - resultSize = size + "B "; - } - return resultSize; - } - - /** - * inputStream 转 File - */ - static File inputStreamToFile(InputStream ins, String name){ - File file = new File(SYS_TEM_DIR + name); - if (file.exists()) { - return file; - } - OutputStream os = null; - try { - os = new FileOutputStream(file); - int bytesRead; - int len = 8192; - byte[] buffer = new byte[len]; - while ((bytesRead = ins.read(buffer, 0, len)) != -1) { - os.write(buffer, 0, bytesRead); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - CloseUtil.close(os); - CloseUtil.close(ins); - } - return file; - } - - /** - * 将文件名解析成文件的上传路径 - */ - public static File upload(MultipartFile file, String filePath) { - Date date = new Date(); - SimpleDateFormat format = new SimpleDateFormat("yyyyMMddhhmmssS"); - String name = getFileNameNoEx(file.getOriginalFilename()); - String suffix = getExtensionName(file.getOriginalFilename()); - String nowStr = "-" + format.format(date); - try { - String fileName = name + nowStr + "." + suffix; - String path = filePath + fileName; - // getCanonicalFile 可解析正确各种路径 - File dest = new File(path).getCanonicalFile(); - // 检测是否存在目录 - if (!dest.getParentFile().exists()) { - if (!dest.getParentFile().mkdirs()) { - System.out.println("was not successful."); - } - } - // 文件写入 - file.transferTo(dest); - return dest; - } catch (Exception e) { - log.error(e.getMessage(), e); - } - return null; - } - - /** - * 导出excel - */ - public static void downloadExcel(List> list, HttpServletResponse response) throws IOException { - String tempPath = SYS_TEM_DIR + IdUtil.fastSimpleUUID() + ".xlsx"; - File file = new File(tempPath); - BigExcelWriter writer = ExcelUtil.getBigWriter(file); - // 一次性写出内容,使用默认样式,强制输出标题 - writer.write(list, true); - SXSSFSheet sheet = (SXSSFSheet)writer.getSheet(); - //上面需要强转SXSSFSheet 不然没有trackAllColumnsForAutoSizing方法 - sheet.trackAllColumnsForAutoSizing(); - //列宽自适应 - writer.autoSizeColumnAll(); - //response为HttpServletResponse对象 - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); - //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码 - response.setHeader("Content-Disposition", "attachment;filename=file.xlsx"); - response.setHeader("Dfile", "file.xlsx"); - ServletOutputStream out = response.getOutputStream(); - // 终止后删除临时文件 - file.deleteOnExit(); - writer.flush(out, true); - //此处记得关闭输出Servlet流 - IoUtil.close(out); - } - - public static String getFileType(String type) { - String documents = "txt doc pdf ppt pps xlsx xls docx"; - String music = "mp3 wav wma mpa ram ra aac aif m4a"; - String video = "avi mpg mpe mpeg asf wmv mov qt rm mp4 flv m4v webm ogv ogg"; - String image = "bmp dib pcp dif wmf gif jpg tif eps psd cdr iff tga pcd mpt png jpeg"; - if (image.contains(type)) { - return IMAGE; - } else if (documents.contains(type)) { - return TXT; - } else if (music.contains(type)) { - return MUSIC; - } else if (video.contains(type)) { - return VIDEO; - } else { - return OTHER; - } - } - - public static void checkSize(long maxSize, long size) { - // 1M - int len = 1024 * 1024; - if (size > (maxSize * len)) { - throw new BadRequestException("文件超出规定大小:" + maxSize + "MB"); - } - } - - /** - * 判断两个文件是否相同 - */ - public static boolean check(File file1, File file2) { - String img1Md5 = getMd5(file1); - String img2Md5 = getMd5(file2); - if(img1Md5 != null){ - return img1Md5.equals(img2Md5); - } - return false; - } - - /** - * 判断两个文件是否相同 - */ - public static boolean check(String file1Md5, String file2Md5) { - return file1Md5.equals(file2Md5); - } - - private static byte[] getByte(File file) { - // 得到文件长度 - byte[] b = new byte[(int) file.length()]; - InputStream in = null; - try { - in = new FileInputStream(file); - try { - System.out.println(in.read(b)); - } catch (IOException e) { - log.error(e.getMessage(), e); - } - } catch (Exception e) { - log.error(e.getMessage(), e); - return null; - } finally { - CloseUtil.close(in); - } - return b; - } - - private static String getMd5(byte[] bytes) { - // 16进制字符 - char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; - try { - MessageDigest mdTemp = MessageDigest.getInstance("MD5"); - mdTemp.update(bytes); - byte[] md = mdTemp.digest(); - int j = md.length; - char[] str = new char[j * 2]; - int k = 0; - // 移位 输出字符串 - for (byte byte0 : md) { - str[k++] = hexDigits[byte0 >>> 4 & 0xf]; - str[k++] = hexDigits[byte0 & 0xf]; - } - return new String(str); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - return null; - } - - /** - * 下载文件 - * - * @param request / - * @param response / - * @param file / - */ - public static void downloadFile(HttpServletRequest request, HttpServletResponse response, File file, boolean deleteOnExit) { - response.setCharacterEncoding(request.getCharacterEncoding()); - response.setContentType("application/octet-stream"); - FileInputStream fis = null; - try { - fis = new FileInputStream(file); - response.setHeader("Content-Disposition", "attachment; filename=" + file.getName()); - IOUtils.copy(fis, response.getOutputStream()); - response.flushBuffer(); - } catch (Exception e) { - log.error(e.getMessage(), e); - } finally { - if (fis != null) { - try { - fis.close(); - if (deleteOnExit) { - file.deleteOnExit(); - } - } catch (IOException e) { - log.error(e.getMessage(), e); - } - } - } - } - - public static String getMd5(File file) { - return getMd5(getByte(file)); - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/main/MonServerMain.java b/vben-core/src/main/java/vben/core/module/mon/server/main/MonServerMain.java deleted file mode 100644 index 0efa073..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/main/MonServerMain.java +++ /dev/null @@ -1,233 +0,0 @@ -package vben.core.module.mon.server.main; - - -import oshi.SystemInfo; -import oshi.hardware.CentralProcessor; -import oshi.hardware.CentralProcessor.TickType; -import oshi.hardware.GlobalMemory; -import oshi.hardware.HardwareAbstractionLayer; -import oshi.software.os.FileSystem; -import oshi.software.os.OSFileStore; -import oshi.software.os.OperatingSystem; -import oshi.util.Util; -import vben.core.module.mon.server.pojo.*; -import vben.core.common.utils.ruoyi.Arith; -import vben.core.common.utils.ruoyi.IpUtils; - -import java.util.LinkedList; -import java.util.List; -import java.util.Properties; - -//服务器相关信息 -public class MonServerMain -{ - private static final int OSHI_WAIT_SECOND = 1000; - - /** - * CPU相关信息 - */ - private Cpu cpu = new Cpu(); - - /** - * 內存相关信息 - */ - private Mem mem = new Mem(); - - /** - * JVM相关信息 - */ - private Jvm jvm = new Jvm(); - - /** - * 服务器相关信息 - */ - private Sys sys = new Sys(); - - /** - * 磁盘相关信息 - */ - private List sysFiles = new LinkedList(); - - public Cpu getCpu() - { - return cpu; - } - - public void setCpu(Cpu cpu) - { - this.cpu = cpu; - } - - public Mem getMem() - { - return mem; - } - - public void setMem(Mem mem) - { - this.mem = mem; - } - - public Jvm getJvm() - { - return jvm; - } - - public void setJvm(Jvm jvm) - { - this.jvm = jvm; - } - - public Sys getSys() - { - return sys; - } - - public void setSys(Sys sys) - { - this.sys = sys; - } - - public List getSysFiles() - { - return sysFiles; - } - - public void setSysFiles(List sysFiles) - { - this.sysFiles = sysFiles; - } - - public void copyTo() throws Exception - { - SystemInfo si = new SystemInfo(); - HardwareAbstractionLayer hal = si.getHardware(); - - setCpuInfo(hal.getProcessor()); - - setMemInfo(hal.getMemory()); - - setSysInfo(); - - setJvmInfo(); - - setSysFiles(si.getOperatingSystem()); - } - - /** - * 设置CPU信息 - */ - private void setCpuInfo(CentralProcessor processor) - { - // CPU信息 - long[] prevTicks = processor.getSystemCpuLoadTicks(); - Util.sleep(OSHI_WAIT_SECOND); - long[] ticks = processor.getSystemCpuLoadTicks(); - long nice = ticks[TickType.NICE.getIndex()] - prevTicks[CentralProcessor.TickType.NICE.getIndex()]; - long irq = ticks[TickType.IRQ.getIndex()] - prevTicks[TickType.IRQ.getIndex()]; - long softirq = ticks[TickType.SOFTIRQ.getIndex()] - prevTicks[TickType.SOFTIRQ.getIndex()]; - long steal = ticks[TickType.STEAL.getIndex()] - prevTicks[TickType.STEAL.getIndex()]; - long cSys = ticks[TickType.SYSTEM.getIndex()] - prevTicks[TickType.SYSTEM.getIndex()]; - long user = ticks[TickType.USER.getIndex()] - prevTicks[TickType.USER.getIndex()]; - long iowait = ticks[TickType.IOWAIT.getIndex()] - prevTicks[TickType.IOWAIT.getIndex()]; - long idle = ticks[TickType.IDLE.getIndex()] - prevTicks[TickType.IDLE.getIndex()]; - long totalCpu = user + nice + cSys + idle + iowait + irq + softirq + steal; - cpu.setCpuNum(processor.getLogicalProcessorCount()); - cpu.setTotal(totalCpu); - cpu.setSys(cSys); - cpu.setUsed(user); - cpu.setWait(iowait); - cpu.setFree(idle); - } - - /** - * 设置内存信息 - */ - private void setMemInfo(GlobalMemory memory) - { - mem.setTotal(memory.getTotal()); - mem.setUsed(memory.getTotal() - memory.getAvailable()); - mem.setFree(memory.getAvailable()); - } - - /** - * 设置服务器信息 - */ - private void setSysInfo() - { - Properties props = System.getProperties(); - sys.setComputerName(IpUtils.getHostName()); - sys.setComputerIp(IpUtils.getHostIp()); - sys.setOsName(props.getProperty("os.name")); - sys.setOsArch(props.getProperty("os.arch")); - sys.setUserDir(props.getProperty("user.dir")); - } - - /** - * 设置Java虚拟机 - */ - private void setJvmInfo() - { - Properties props = System.getProperties(); - jvm.setTotal(Runtime.getRuntime().totalMemory()); - jvm.setMax(Runtime.getRuntime().maxMemory()); - jvm.setFree(Runtime.getRuntime().freeMemory()); - jvm.setVersion(props.getProperty("java.version")); - jvm.setHome(props.getProperty("java.home")); - } - - /** - * 设置磁盘信息 - */ - private void setSysFiles(OperatingSystem os) - { - FileSystem fileSystem = os.getFileSystem(); - List fsArray = fileSystem.getFileStores(); - for (OSFileStore fs : fsArray) - { - long free = fs.getUsableSpace(); - long total = fs.getTotalSpace(); - long used = total - free; - SysFile sysFile = new SysFile(); - sysFile.setDirName(fs.getMount()); - sysFile.setSysTypeName(fs.getType()); - sysFile.setTypeName(fs.getName()); - sysFile.setTotal(convertFileSize(total)); - sysFile.setFree(convertFileSize(free)); - sysFile.setUsed(convertFileSize(used)); - sysFile.setUsage(Arith.mul(Arith.div(used, total, 4), 100)); - sysFiles.add(sysFile); - } - } - - /** - * 字节转换 - * - * @param size 字节大小 - * @return 转换后值 - */ - public String convertFileSize(long size) - { - long kb = 1024; - long mb = kb * 1024; - long gb = mb * 1024; - if (size >= gb) - { - return String.format("%.1f GB", (float) size / gb); - } - else if (size >= mb) - { - float f = (float) size / mb; - return String.format(f > 100 ? "%.0f MB" : "%.1f MB", f); - } - else if (size >= kb) - { - float f = (float) size / kb; - return String.format(f > 100 ? "%.0f KB" : "%.1f KB", f); - } - else - { - return String.format("%d B", size); - } - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/main/MonServerMainApi.java b/vben-core/src/main/java/vben/core/module/mon/server/main/MonServerMainApi.java deleted file mode 100644 index caca2c0..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/main/MonServerMainApi.java +++ /dev/null @@ -1,29 +0,0 @@ -package vben.core.module.mon.server.main; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import vben.core.common.mvc.api.R; - - -@RestController -@RequestMapping("mon/server/main") -@Api(tags = {"服务器监控"}) -public class MonServerMainApi { - - @Autowired - private MonitorServiceImpl monitorService; - - @GetMapping - @ApiOperation("查询服务器监控信息") - public R get() throws Exception { - MonServerMain server = new MonServerMain(); - server.copyTo(); -// return R.ok(monitorService.getServers()); - return R.ok(server); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/main/MonitorServiceImpl.java b/vben-core/src/main/java/vben/core/module/mon/server/main/MonitorServiceImpl.java deleted file mode 100644 index a56adae..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/main/MonitorServiceImpl.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package vben.core.module.mon.server.main; - -import cn.hutool.core.date.BetweenFormatter.Level; -import cn.hutool.core.date.DateUtil; -import org.springframework.stereotype.Service; -import oshi.SystemInfo; -import oshi.hardware.CentralProcessor; -import oshi.hardware.GlobalMemory; -import oshi.hardware.HardwareAbstractionLayer; -import oshi.hardware.VirtualMemory; -import oshi.software.os.FileSystem; -import oshi.software.os.OSFileStore; -import oshi.software.os.OperatingSystem; -import oshi.util.FormatUtil; -import oshi.util.Util; - -import java.lang.management.ManagementFactory; -import java.text.DecimalFormat; -import java.util.Date; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -@Service -public class MonitorServiceImpl { - - private final DecimalFormat df = new DecimalFormat("0.00"); - - public Map getServers(){ - Map resultMap = new LinkedHashMap<>(8); - try { - SystemInfo si = new SystemInfo(); - OperatingSystem os = si.getOperatingSystem(); - HardwareAbstractionLayer hal = si.getHardware(); - // 系统信息 - resultMap.put("sys", getSystemInfo(os)); - // cpu 信息 - resultMap.put("cpu", getCpuInfo(hal.getProcessor())); - // 内存信息 - resultMap.put("memory", getMemoryInfo(hal.getMemory())); - // 交换区信息 - resultMap.put("swap", getSwapInfo(hal.getMemory())); - // 磁盘 - resultMap.put("disk", getDiskInfo(os)); - resultMap.put("time", DateUtil.format(new Date(), "HH:mm:ss")); - } catch (Exception e) { - e.printStackTrace(); - } - return resultMap; - } - - /** - * 获取磁盘信息 - * @return / - */ - private Map getDiskInfo(OperatingSystem os) { - Map diskInfo = new LinkedHashMap<>(); - FileSystem fileSystem = os.getFileSystem(); - List fsArray = fileSystem.getFileStores(); - String osName = System.getProperty("os.name"); - long available = 0, total = 0; - for (OSFileStore fs : fsArray){ - // windows 需要将所有磁盘分区累加,linux 和 mac 直接累加会出现磁盘重复的问题,待修复 - if(osName.toLowerCase().startsWith(ElAdminConstant.WIN)) { - available += fs.getUsableSpace(); - total += fs.getTotalSpace(); - } else { - available = fs.getUsableSpace(); - total = fs.getTotalSpace(); - break; - } - } - long used = total - available; - diskInfo.put("total", total > 0 ? FileUtil.getSize(total) : "?"); - diskInfo.put("available", FileUtil.getSize(available)); - diskInfo.put("used", FileUtil.getSize(used)); - if(total != 0){ - diskInfo.put("usageRate", df.format(used/(double)total * 100)); - } else { - diskInfo.put("usageRate", 0); - } - return diskInfo; - } - - /** - * 获取交换区信息 - * @param memory / - * @return / - */ - private Map getSwapInfo(GlobalMemory memory) { - Map swapInfo = new LinkedHashMap<>(); - VirtualMemory virtualMemory = memory.getVirtualMemory(); - long total = virtualMemory.getSwapTotal(); - long used = virtualMemory.getSwapUsed(); - swapInfo.put("total", FormatUtil.formatBytes(total)); - swapInfo.put("used", FormatUtil.formatBytes(used)); - swapInfo.put("available", FormatUtil.formatBytes(total - used)); - if(used == 0){ - swapInfo.put("usageRate", 0); - } else { - swapInfo.put("usageRate", df.format(used/(double)total * 100)); - } - return swapInfo; - } - - /** - * 获取内存信息 - * @param memory / - * @return / - */ - private Map getMemoryInfo(GlobalMemory memory) { - Map memoryInfo = new LinkedHashMap<>(); - memoryInfo.put("total", FormatUtil.formatBytes(memory.getTotal())); - memoryInfo.put("available", FormatUtil.formatBytes(memory.getAvailable())); - memoryInfo.put("used", FormatUtil.formatBytes(memory.getTotal() - memory.getAvailable())); - memoryInfo.put("usageRate", df.format((memory.getTotal() - memory.getAvailable())/(double)memory.getTotal() * 100)); - return memoryInfo; - } - - /** - * 获取Cpu相关信息 - * @param processor / - * @return / - */ - private Map getCpuInfo(CentralProcessor processor) { - Map cpuInfo = new LinkedHashMap<>(); - cpuInfo.put("name", processor.getProcessorIdentifier().getName()); - cpuInfo.put("package", processor.getPhysicalPackageCount() + "个物理CPU"); - cpuInfo.put("core", processor.getPhysicalProcessorCount() + "个物理核心"); - cpuInfo.put("coreNumber", processor.getPhysicalProcessorCount()); - cpuInfo.put("logic", processor.getLogicalProcessorCount() + "个逻辑CPU"); - // CPU信息 - long[] prevTicks = processor.getSystemCpuLoadTicks(); - // 等待1秒... - Util.sleep(1000); - long[] ticks = processor.getSystemCpuLoadTicks(); - long user = ticks[CentralProcessor.TickType.USER.getIndex()] - prevTicks[CentralProcessor.TickType.USER.getIndex()]; - long nice = ticks[CentralProcessor.TickType.NICE.getIndex()] - prevTicks[CentralProcessor.TickType.NICE.getIndex()]; - long sys = ticks[CentralProcessor.TickType.SYSTEM.getIndex()] - prevTicks[CentralProcessor.TickType.SYSTEM.getIndex()]; - long idle = ticks[CentralProcessor.TickType.IDLE.getIndex()] - prevTicks[CentralProcessor.TickType.IDLE.getIndex()]; - long iowait = ticks[CentralProcessor.TickType.IOWAIT.getIndex()] - prevTicks[CentralProcessor.TickType.IOWAIT.getIndex()]; - long irq = ticks[CentralProcessor.TickType.IRQ.getIndex()] - prevTicks[CentralProcessor.TickType.IRQ.getIndex()]; - long softirq = ticks[CentralProcessor.TickType.SOFTIRQ.getIndex()] - prevTicks[CentralProcessor.TickType.SOFTIRQ.getIndex()]; - long steal = ticks[CentralProcessor.TickType.STEAL.getIndex()] - prevTicks[CentralProcessor.TickType.STEAL.getIndex()]; - long totalCpu = user + nice + sys + idle + iowait + irq + softirq + steal; - cpuInfo.put("used", df.format(100d * user / totalCpu + 100d * sys / totalCpu)); - cpuInfo.put("idle", df.format(100d * idle / totalCpu)); - return cpuInfo; - } - - /** - * 获取系统相关信息,系统、运行天数、系统IP - * @param os / - * @return / - */ - private Map getSystemInfo(OperatingSystem os){ - Map systemInfo = new LinkedHashMap<>(); - // jvm 运行时间 - long time = ManagementFactory.getRuntimeMXBean().getStartTime(); - Date date = new Date(time); - // 计算项目运行时间 - String formatBetween = DateUtil.formatBetween(date, new Date(), Level.HOUR); - // 系统信息 - systemInfo.put("os", os.toString()); - systemInfo.put("day", formatBetween); -// systemInfo.put("ip", StringUtils.getLocalIp()); - systemInfo.put("ip", "10.0.0.111"); - return systemInfo; - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/pojo/Cpu.java b/vben-core/src/main/java/vben/core/module/mon/server/pojo/Cpu.java deleted file mode 100644 index 5e3fa7b..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/pojo/Cpu.java +++ /dev/null @@ -1,102 +0,0 @@ -package vben.core.module.mon.server.pojo; - - -import vben.core.common.utils.ruoyi.Arith; - -/** - * CPU相关信息 - * - * @author ruoyi - */ -public class Cpu -{ - /** - * 核心数 - */ - private int cpuNum; - - /** - * CPU总的使用率 - */ - private double total; - - /** - * CPU系统使用率 - */ - private double sys; - - /** - * CPU用户使用率 - */ - private double used; - - /** - * CPU当前等待率 - */ - private double wait; - - /** - * CPU当前空闲率 - */ - private double free; - - public int getCpuNum() - { - return cpuNum; - } - - public void setCpuNum(int cpuNum) - { - this.cpuNum = cpuNum; - } - - public double getTotal() - { - return Arith.round(Arith.mul(total, 100), 2); - } - - public void setTotal(double total) - { - this.total = total; - } - - public double getSys() - { - return Arith.round(Arith.mul(sys / total, 100), 2); - } - - public void setSys(double sys) - { - this.sys = sys; - } - - public double getUsed() - { - return Arith.round(Arith.mul(used / total, 100), 2); - } - - public void setUsed(double used) - { - this.used = used; - } - - public double getWait() - { - return Arith.round(Arith.mul(wait / total, 100), 2); - } - - public void setWait(double wait) - { - this.wait = wait; - } - - public double getFree() - { - return Arith.round(Arith.mul(free / total, 100), 2); - } - - public void setFree(double free) - { - this.free = free; - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/pojo/Jvm.java b/vben-core/src/main/java/vben/core/module/mon/server/pojo/Jvm.java deleted file mode 100644 index da037d5..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/pojo/Jvm.java +++ /dev/null @@ -1,132 +0,0 @@ -package vben.core.module.mon.server.pojo; - - -import vben.core.common.utils.ruoyi.Arith; -import vben.core.common.utils.ruoyi.DateUtils; - -import java.lang.management.ManagementFactory; - -/** - * JVM相关信息 - * - * @author ruoyi - */ -public class Jvm -{ - /** - * 当前JVM占用的内存总数(M) - */ - private double total; - - /** - * JVM最大可用内存总数(M) - */ - private double max; - - /** - * JVM空闲内存(M) - */ - private double free; - - /** - * JDK版本 - */ - private String version; - - /** - * JDK路径 - */ - private String home; - - public double getTotal() - { - return Arith.div(total, (1024 * 1024), 2); - } - - public void setTotal(double total) - { - this.total = total; - } - - public double getMax() - { - return Arith.div(max, (1024 * 1024), 2); - } - - public void setMax(double max) - { - this.max = max; - } - - public double getFree() - { - return Arith.div(free, (1024 * 1024), 2); - } - - public void setFree(double free) - { - this.free = free; - } - - public double getUsed() - { - return Arith.div(total - free, (1024 * 1024), 2); - } - - public double getUsage() - { - return Arith.mul(Arith.div(total - free, total, 4), 100); - } - - /** - * 获取JDK名称 - */ - public String getName() - { - return ManagementFactory.getRuntimeMXBean().getVmName(); - } - - public String getVersion() - { - return version; - } - - public void setVersion(String version) - { - this.version = version; - } - - public String getHome() - { - return home; - } - - public void setHome(String home) - { - this.home = home; - } - - /** - * JDK启动时间 - */ - public String getStartTime() - { - return DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.getServerStartDate()); - } - - /** - * JDK运行时间 - */ - public String getRunTime() - { - return DateUtils.getDatePoor(DateUtils.getNowDate(), DateUtils.getServerStartDate()); - } - - /** - * 运行参数 - */ - public String getInputArgs() - { - return ManagementFactory.getRuntimeMXBean().getInputArguments().toString(); - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/pojo/Mem.java b/vben-core/src/main/java/vben/core/module/mon/server/pojo/Mem.java deleted file mode 100644 index cc02038..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/pojo/Mem.java +++ /dev/null @@ -1,62 +0,0 @@ -package vben.core.module.mon.server.pojo; - - -import vben.core.common.utils.ruoyi.Arith; - -/** - * 內存相关信息 - * - * @author ruoyi - */ -public class Mem -{ - /** - * 内存总量 - */ - private double total; - - /** - * 已用内存 - */ - private double used; - - /** - * 剩余内存 - */ - private double free; - - public double getTotal() - { - return Arith.div(total, (1024 * 1024 * 1024), 2); - } - - public void setTotal(long total) - { - this.total = total; - } - - public double getUsed() - { - return Arith.div(used, (1024 * 1024 * 1024), 2); - } - - public void setUsed(long used) - { - this.used = used; - } - - public double getFree() - { - return Arith.div(free, (1024 * 1024 * 1024), 2); - } - - public void setFree(long free) - { - this.free = free; - } - - public double getUsage() - { - return Arith.mul(Arith.div(used, total, 4), 100); - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/pojo/Sys.java b/vben-core/src/main/java/vben/core/module/mon/server/pojo/Sys.java deleted file mode 100644 index de955d4..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/pojo/Sys.java +++ /dev/null @@ -1,84 +0,0 @@ -package vben.core.module.mon.server.pojo; - -/** - * 系统相关信息 - * - * @author ruoyi - */ -public class Sys -{ - /** - * 服务器名称 - */ - private String computerName; - - /** - * 服务器Ip - */ - private String computerIp; - - /** - * 项目路径 - */ - private String userDir; - - /** - * 操作系统 - */ - private String osName; - - /** - * 系统架构 - */ - private String osArch; - - public String getComputerName() - { - return computerName; - } - - public void setComputerName(String computerName) - { - this.computerName = computerName; - } - - public String getComputerIp() - { - return computerIp; - } - - public void setComputerIp(String computerIp) - { - this.computerIp = computerIp; - } - - public String getUserDir() - { - return userDir; - } - - public void setUserDir(String userDir) - { - this.userDir = userDir; - } - - public String getOsName() - { - return osName; - } - - public void setOsName(String osName) - { - this.osName = osName; - } - - public String getOsArch() - { - return osArch; - } - - public void setOsArch(String osArch) - { - this.osArch = osArch; - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/pojo/SysFile.java b/vben-core/src/main/java/vben/core/module/mon/server/pojo/SysFile.java deleted file mode 100644 index 0037516..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/pojo/SysFile.java +++ /dev/null @@ -1,114 +0,0 @@ -package vben.core.module.mon.server.pojo; - -/** - * 系统文件相关信息 - * - * @author ruoyi - */ -public class SysFile -{ - /** - * 盘符路径 - */ - private String dirName; - - /** - * 盘符类型 - */ - private String sysTypeName; - - /** - * 文件类型 - */ - private String typeName; - - /** - * 总大小 - */ - private String total; - - /** - * 剩余大小 - */ - private String free; - - /** - * 已经使用量 - */ - private String used; - - /** - * 资源的使用率 - */ - private double usage; - - public String getDirName() - { - return dirName; - } - - public void setDirName(String dirName) - { - this.dirName = dirName; - } - - public String getSysTypeName() - { - return sysTypeName; - } - - public void setSysTypeName(String sysTypeName) - { - this.sysTypeName = sysTypeName; - } - - public String getTypeName() - { - return typeName; - } - - public void setTypeName(String typeName) - { - this.typeName = typeName; - } - - public String getTotal() - { - return total; - } - - public void setTotal(String total) - { - this.total = total; - } - - public String getFree() - { - return free; - } - - public void setFree(String free) - { - this.free = free; - } - - public String getUsed() - { - return used; - } - - public void setUsed(String used) - { - this.used = used; - } - - public double getUsage() - { - return usage; - } - - public void setUsage(double usage) - { - this.usage = usage; - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/snmp/MemoryData.java b/vben-core/src/main/java/vben/core/module/mon/server/snmp/MemoryData.java deleted file mode 100644 index a4ccbe5..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/snmp/MemoryData.java +++ /dev/null @@ -1,11 +0,0 @@ -package vben.core.module.mon.server.snmp; - -import lombok.Data; - -@Data -public class MemoryData { - private String address; - private String totalSize; - private String userdSize; - private String unit; -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/snmp/SnmpConfig.java b/vben-core/src/main/java/vben/core/module/mon/server/snmp/SnmpConfig.java deleted file mode 100644 index 15e60e6..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/snmp/SnmpConfig.java +++ /dev/null @@ -1,129 +0,0 @@ -package vben.core.module.mon.server.snmp; - -import java.math.BigDecimal; - -/** - * snmp协议工具类配置文件 - */ -public class SnmpConfig -{ - private SnmpConfig(){} - - /** - * get cpu描述信息 - */ - public static final String SNMPGET_CPUDESC=".1.3.6.1.2.1.1.1.0.255.1"; - - /** - * walk 网络接口描述 - */ - public static final String SNMPWALK_IFDESCR=".1.3.6.1.2.1.2.2.1.2"; - - /** - * walk 接口物理地址 - */ - public static final String SNMPWALK_IFPHYSADDRESS=".1.3.6.1.2.1.2.2.1.6"; - - /** - * get IO负载 - */ - public static final String SNMPGET_IOLOAD=".1.3.6.1.2.1.1.1.0.255.0"; - - /** - * 硬盘大小 - */ - public static final String SNMPGET_DSKTOTAL=".1.3.6.1.4.1.2021.9.1.6"; - - /** - * walk cpu 负载 - */ - public static final String SNMPWALK_HRPROCESSLOAD=".1.3.6.1.2.1.25.3.3.1.2"; - - /** - * walk cpu 空闲率 - */ - public static final String SNMPWALK_SSCPUIDLE=".1.3.6.1.4.1.2021.11.11.0"; - - /** - * walk 存储设备描述 - */ - public static final String SNMPWALK_HRSTORAGEDESCR=".1.3.6.1.2.1.25.2.3.1.3"; - /** - * walk 存储设备描述 - */ - public static final String SNMPWALK_AHU=".1.3.6.1.2.1.25.2.3.1.4"; - /** - * walk 存储设备描述 - */ - public static final String SNMPWALK_AUR=".1.3.6.1.2.1.25.2.3.1.5"; - - /** - *walk 存储设备使用大小 - * 内存使用多少,跟总容量相除就是占用率 - */ - public static final String SNMPWALK_HRSTORAGEUSED=".1.3.6.1.2.1.25.2.3.1.6"; - /** - *walk 内存占用 - * 各个进程占用的内存 - */ - public static final String SNMPWALK_MEMORY_WIN=".1.3.6.1.2.1.25.5.1.1.2"; - - /** - *walk 存储设备使用率 - * - */ - public static final String SNMPWALK_DSKPERCENT=".1.3.6.1.4.1.2021.9.1.9"; - - /** - * get 获取内存大小 - */ - public static final String SNMPGET_HRMEMORYSIZE=".1.3.6.1.2.1.25.2.2.0"; - - /** - * 获取机器名 - */ - public static final String SNMPWALK_SYSNAME=".1.3.6.1.2.1.1.5"; - - /** - * 性能参数ID-cpu使用率 - */ - public static final Integer PERFORMANCE_PARAM_CPUUSAGE=1; - - /** - * 性能参数ID-内存使用率 - */ - public static final Integer PERFORMANCE_PARAM_MEMORYUSAGE=2; - - /** - * 性能参数ID-io带宽占用率 - */ - public static final Integer PERFORMANCE_PARAM_IOUSAGE=3; - - /** - * decimal 类型1024,用于除法计算 - */ - public static final BigDecimal DEVIDE_NUM=new BigDecimal("1024"); - - /** - * get方式获取内存大小 - */ - public static final String GET_MEMORY="1.3.6.1.2.1.25.2.2.0"; - - /** - * 获取系统描述 - */ - public static final String SYS_DSC="1.3.6.1.2.1.1.1.0"; - - /** - * 获取网络接口数量 - */ - public static final String IF_NUM="1.3.6.1.2.1.2.1.0"; - - /** - * 获取cpu核数 - */ - public static final String CPU_NUM="1.3.6.1.2.1.25.3.3.1.2"; - -} - - diff --git a/vben-core/src/main/java/vben/core/module/mon/server/snmp/SnmpDisk.java b/vben-core/src/main/java/vben/core/module/mon/server/snmp/SnmpDisk.java deleted file mode 100644 index e6d4361..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/snmp/SnmpDisk.java +++ /dev/null @@ -1,283 +0,0 @@ -package vben.core.module.mon.server.snmp; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.extern.slf4j.Slf4j; -import org.snmp4j.*; -import org.snmp4j.mp.MessageProcessingModel; -import org.snmp4j.mp.SnmpConstants; -import org.snmp4j.smi.GenericAddress; -import org.snmp4j.smi.OID; -import org.snmp4j.smi.OctetString; -import org.snmp4j.smi.VariableBinding; -import org.snmp4j.transport.DefaultUdpTransportMapping; -import org.snmp4j.util.PDUFactory; -import org.snmp4j.util.TableEvent; -import org.snmp4j.util.TableUtils; -import vben.core.common.utils.ruoyi.StringUtils; - -import java.io.IOException; -import java.math.BigDecimal; -import java.text.DecimalFormat; -import java.util.List; - -@Slf4j -public class SnmpDisk { - - public static void main(String[] args) { - try { - String ip = "localhost"; - String community = "public"; - String system = "windows"; - JSONArray array = new JSONArray(); - JSONObject obj = new JSONObject(); - obj.put("name", "D:"); - array.add(obj); - MemoryData memoryData = collectDisk(ip, community, array, system); - System.out.println(memoryData); - } catch (Exception e) { - e.printStackTrace(); - } - } - - //获取磁盘相关信息 - public static MemoryData collectDisk(String ip, String community, JSONArray array, String system) throws Exception { - //system: windows, linux - String name; //磁盘名称 - BigDecimal totalSize = new BigDecimal("0"); - BigDecimal usedSize = new BigDecimal("0"); - BigDecimal unit1024 = new BigDecimal("1024"); - String binaryVal; - TransportMapping transport = null; - Snmp snmp = null; - CommunityTarget target; - String DISK_OID = "1.3.6.1.2.1.25.2.1.4"; - String[] oids = { - "1.3.6.1.2.1.25.2.3.1.2", // type 存储单元类型 - "1.3.6.1.2.1.25.2.3.1.3", // descr - "1.3.6.1.2.1.25.2.3.1.4", // unit 存储单元大小 - "1.3.6.1.2.1.25.2.3.1.5", // size 总存储单元数 - "1.3.6.1.2.1.25.2.3.1.6" // used 使用存储单元数; - }; - try { - target = new CommunityTarget(); - target.setCommunity(new OctetString(community)); //设置snmp共同体(社区名称) - target.setRetries(2); //设置超时重试次数 - target.setAddress(GenericAddress.parse("udp:"+ ip +"/161")); //设定主机的地址 - target.setTimeout(1000*5); //设置超时的时间 - target.setVersion(SnmpConstants.version2c); //设置使用的snmp版本 - - transport = new DefaultUdpTransportMapping(); //设定采取的协议 - snmp = new Snmp(transport); //创建SNMP对象 - snmp.listen();// 监听消息 - - TableUtils tableUtils = new TableUtils(snmp, new PDUFactory() { - @Override - public PDU createPDU(Target arg0) { - PDU request = new PDU(); - request.setType(PDU.GET); - return request; - } - - @Override - public PDU createPDU(MessageProcessingModel messageProcessingModel) { - // TODO Auto-generated method stub - return null; - } - }); - - OID[] columns = new OID[oids.length]; - for (int i = 0; i < oids.length; i++) { - columns[i] = new OID(oids[i]); - } - - @SuppressWarnings("unchecked") - List list = tableUtils.getTable(target, columns, null, null); - if (list.size() == 1 && list.get(0).getColumns() == null) { - log.info(ip + ":未取到数据"); - System.out.println(JSONArray.toJSON(list).toString()); - } else { - for (TableEvent event : list) { - VariableBinding[] values = event.getColumns(); - if (values == null || !DISK_OID.equals(values[0].getVariable().toString())) { - continue; - } - // unit 存储单元大小 - String unit = StringUtils.changeValBinary(values[2].getVariable().toString()); - // size 总存储单元数 - String totalSizeCell = StringUtils.changeValBinary(values[3].getVariable().toString()); - // used 使用存储单元数 - String usedSizeCell = StringUtils.changeValBinary(values[4].getVariable().toString()); - - //磁盘名称 - name = getChinese(values[1].getVariable().toString()); - if(name==null || "".equals(name)) { - name = values[1].getVariable().toString(); - } - //System.out.println(name); - boolean check = checkDiskName(array, name, system); //是否统计 - if(check) { - BigDecimal unitBig = new BigDecimal(unit +""); - totalSize = totalSize.add( - new BigDecimal(totalSizeCell +"").multiply(unitBig) - .divide(unit1024, 2, BigDecimal.ROUND_HALF_UP) - .divide(unit1024, 2, BigDecimal.ROUND_HALF_UP) - .divide(unit1024, 2, BigDecimal.ROUND_HALF_UP)); - usedSize = usedSize.add( - new BigDecimal(usedSizeCell +"").multiply(unitBig) - .divide(unit1024, 2, BigDecimal.ROUND_HALF_UP) - .divide(unit1024, 2, BigDecimal.ROUND_HALF_UP) - .divide(unit1024, 2, BigDecimal.ROUND_HALF_UP)); - } - - - //System.out.println("totalSize:" + (long)totalSizeCell*unit/(1024*1024*1024)+"G"); - //System.out.println("usedSize" + (long)usedSizeCell*unit/(1024*1024*1024)+"G"); - //System.out.println("%%:" + (long)usedSizeCell*100/totalSizeCell+"%"); - // System.out.println(getChinese(values[1].getVariable().toString())+" - // 磁盘大小:"+(long)totalSize*unit/(1024*1024*1024)+"G - // 磁盘使用率为:"+(long)usedSize*100/totalSize+"%"); - } - } - } catch (Exception e) { - e.printStackTrace(); - log.error(e.getMessage()); - log.error("未能连接到snmp服务:" + ip); - } finally { - try { - if (transport != null) - transport.close(); - if (snmp != null) - snmp.close(); - } catch (IOException e) { - e.printStackTrace(); - log.error(e.getMessage()); - } - } - - DecimalFormat setDouble_1 = new DecimalFormat("0.0"); //保留1位小数 - MemoryData memoryData = new MemoryData(); - memoryData.setTotalSize(setDouble_1.format(totalSize)); - memoryData.setUserdSize(setDouble_1.format(usedSize)); - memoryData.setAddress(ip); - memoryData.setUnit("G"); - - //System.out.println("totalSize:" + setDouble_1.format(totalSize) + "G"); - //System.out.println("usedSize:" + setDouble_1.format(usedSize) + "G"); - //System.out.println("usedSize" + (long)usedSize*100/totalSize+"%"); - - return memoryData; - } - - /** - * 判断是否需要统计 - * @param array - * @param name - * @param system - * @return - */ - public static boolean checkDiskName(JSONArray array, String name, String system) { - boolean check = false; //是否统计 - //不维护则取全部 - if(array.size() == 0) { - return true; - } - JSONObject obj = new JSONObject(); - String setName; - for(int i=0; i= 0; index--) { - format_str[index] = (char) (48 + (temp - temp / 10 * 10)); - temp /= 10; - } - format_str[4] = '-'; - index = 6; - temp = month; - for (; index >= 5; index--) { - format_str[index] = (char) (48 + (temp - temp / 10 * 10)); - temp /= 10; - } - format_str[7] = '-'; - index = 9; - temp = day; - for (; index >= 8; index--) { - format_str[index] = (char) (48 + (temp - temp / 10 * 10)); - temp /= 10; - } - format_str[10] = ' '; - index = 12; - temp = hour; - for (; index >= 11; index--) { - format_str[index] = (char) (48 + (temp - temp / 10 * 10)); - temp /= 10; - } - format_str[13] = ':'; - index = 15; - temp = minute; - for (; index >= 14; index--) { - format_str[index] = (char) (48 + (temp - temp / 10 * 10)); - temp /= 10; - } - dateTime = new String(format_str, 0, format_str.length).substring(0, 16); - } catch (Exception e) { - // LogFactory.getLog(getClass()).error(e); - } - return dateTime; - } -} diff --git a/vben-core/src/main/java/vben/core/module/mon/server/snmp/SnmpUtil.java b/vben-core/src/main/java/vben/core/module/mon/server/snmp/SnmpUtil.java deleted file mode 100644 index e2db373..0000000 --- a/vben-core/src/main/java/vben/core/module/mon/server/snmp/SnmpUtil.java +++ /dev/null @@ -1,510 +0,0 @@ -package vben.core.module.mon.server.snmp; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.snmp4j.CommunityTarget; -import org.snmp4j.PDU; -import org.snmp4j.Snmp; -import org.snmp4j.event.ResponseEvent; -import org.snmp4j.mp.SnmpConstants; -import org.snmp4j.smi.OID; -import org.snmp4j.smi.OctetString; -import org.snmp4j.smi.UdpAddress; -import org.snmp4j.smi.VariableBinding; -import org.snmp4j.transport.DefaultUdpTransportMapping; -import org.snmp4j.util.DefaultPDUFactory; -import org.snmp4j.util.TableEvent; -import org.snmp4j.util.TableUtils; - -import java.io.IOException; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.text.DecimalFormat; -import java.util.List; - -/** - * snmp协议工具类 - * 获取服务器cpu,内存,及硬盘占用 - */ -public class SnmpUtil -{ - private static Logger logger = LogManager.getLogger(SnmpUtil.class); - private static Snmp snmp = null; - private CommunityTarget target; - - @SuppressWarnings("squid:S3010") - public SnmpUtil(String intranetDeviceIp, Integer snmpPort) throws IOException - { - if (snmp == null) - { - snmp = new Snmp(new DefaultUdpTransportMapping()); - snmp.listen(); - } - //初始化CommunityTarget - target = new CommunityTarget(); - target.setCommunity(new OctetString("public")); - target.setVersion(SnmpConstants.version2c); - target.setAddress(new UdpAddress(intranetDeviceIp + "/" + snmpPort)); - target.setTimeout(1000); - target.setRetries(1); - } - - private ResponseEvent snmpGet(String oid) - { - PDU pdu = new PDU(); - pdu.addOID(new VariableBinding(new OID(oid))); - ResponseEvent re=null; - try - { - re = snmp.get(pdu, target); - }catch (Exception e){ - logger.info("snmpGet 异常"+e.getMessage()); - } - return re; - } - - private List snmpWalk(String oid) - { - TableUtils utils = new TableUtils(snmp, new DefaultPDUFactory(PDU.GETBULK)); - OID[] columnOid = new OID[]{new OID(oid)}; - return utils.getTable(target, columnOid, null, null); - } - - /** - * 获取cpu负载 - * @return - */ - public BigDecimal getCpuUsage() - { - List list = snmpWalk(SnmpConfig.SNMPWALK_HRPROCESSLOAD); - BigDecimal usage = new BigDecimal("0"); - for (TableEvent tableEvent : list) - { - try - { - String s=tableEvent.toString().split("=")[3].split("]")[0].trim(); - if (!"-4,exception".equals(s)){ - usage=usage.add(new BigDecimal(tableEvent.toString().split("=")[3].split("]")[0].trim())); - }else { - return new BigDecimal("-1"); - } - } - catch (Exception e) - { - logger.info("获取cpu负载失败"+e.getMessage()); - return new BigDecimal("-1"); - } - } - usage = usage.divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP); - return usage; - } - - /** - * 获取cpu使用率 - * @return - */ - public BigDecimal getCpu() - { - BigDecimal totalSize; - ResponseEvent responseEvent = snmpGet(SnmpConfig.SNMPWALK_SSCPUIDLE); - if(responseEvent!=null&&responseEvent.getResponse()!=null){ - totalSize=new BigDecimal(responseEvent.getResponse().toString().split("=")[4].split("]")[0].trim()); - }else { - return new BigDecimal("-1"); - } - return new BigDecimal("100").subtract(totalSize); - } - - /** - * 获取磁盘占用率 - * @return - */ - public BigDecimal getDiskUsageForWindows() - { - BigDecimal multiply=new BigDecimal("-1"); - try - { - BigDecimal diskSize = getDiskSize(); - BigDecimal diskUsed = getDiskUsed(); - if (BigDecimal.ZERO.compareTo(diskSize)<0&&BigDecimal.ZERO.compareTo(diskUsed)<0){ - multiply = getDiskUsed().divide(getDiskSize(), 3, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)); - } - }catch (Exception e){ - logger.info("获取windows磁盘占用异常"+e.getMessage()); - } - - return multiply; - } - /** - * 获取磁盘占用率 - * @return - */ - public BigDecimal getDiskUsage() - { - BigDecimal totalSize=null; - //org.snmp4j.util.TableEvent[index=null,vbs=null,status=-1,exception=null,report=null] - List tableEvents = snmpWalk(SnmpConfig.SNMPWALK_DSKPERCENT); - if(tableEvents.isEmpty()){ - totalSize = getDiskUsageForWindows(); - return totalSize; - } - for(int i=0;i list=snmpWalk(SnmpConfig.SNMPWALK_HRSTORAGEDESCR); - int index=0; - for(int i=0;i usedList=snmpWalk(SnmpConfig.SNMPWALK_HRSTORAGEUSED); - return new BigDecimal(usedList.get(index).toString().split("=")[3].split("]")[0].trim()); - }else if (trim.contains("Physical Memory")){ - //windows系统 - List list1=snmpWalk(SnmpConfig.SNMPWALK_MEMORY_WIN); - BigDecimal re=new BigDecimal("0"); - for (int j=0;j list=snmpWalk(SnmpConfig.SNMPWALK_HRSTORAGEDESCR); - BigDecimal diskSize=new BigDecimal(-1); - if (!list.isEmpty()){ - diskSize=new BigDecimal("0"); - List usedList1=snmpWalk(SnmpConfig.SNMPWALK_AHU); - List usedList2=snmpWalk(SnmpConfig.SNMPWALK_AUR); - for(int i=0;i list=snmpWalk(SnmpConfig.SNMPWALK_HRSTORAGEDESCR); - BigDecimal diskSize=new BigDecimal(-1); - if (!list.isEmpty()){ - diskSize=new BigDecimal("0"); - List usedList1=snmpWalk(SnmpConfig.SNMPWALK_AHU); - List usedList2=snmpWalk(SnmpConfig.SNMPWALK_HRSTORAGEUSED); - for(int i=0;i1){ - return usage; - }else{ - return usage*100; - } - } - return null; - } - - /** - * 获取性某性能参数数据 - * @param parameterId - * @return - */ - public Object getData(Integer parameterId) { - Object data=null; - try{ - if(parameterId.equals(SnmpConfig.PERFORMANCE_PARAM_CPUUSAGE)){ - data=getCpuUsage(); - }else if(parameterId.equals(SnmpConfig.PERFORMANCE_PARAM_MEMORYUSAGE)){ - data=getMemoryUsage(); - }else if(parameterId.equals(SnmpConfig.PERFORMANCE_PARAM_IOUSAGE)){ - data=getIOUsage(); - } - }catch(Exception e){ - logger.info("获取性能参数异常"+e.getMessage()); - } - return data; - } - - /** - * 获取设备物理地址 - * @return - */ - public String getMacAddress(){ - try - { - List list = snmpWalk(SnmpConfig.SNMPWALK_IFDESCR); - int index = 0; - for (int i = 0; i < list.size(); i++) - { - if (list.get(i).toString().split("=")[3].split("]")[0].trim().contains("eth")) - { - index = i; - } - } - List ifAddressList = snmpWalk(SnmpConfig.SNMPWALK_IFPHYSADDRESS); - return ifAddressList.get(index).toString().split("=")[3].split("]")[0].trim(); - }catch (Exception e){ - logger.info("获取物理地址失败"+e.getMessage()); - return "failure"; - } - } - - /** - * 获取设备内存大小 单位为GB - * @return - */ - public String getMemoryDesc() { - ResponseEvent event =snmpGet(SnmpConfig.SNMPGET_HRMEMORYSIZE); - Long bytes =Long.parseLong(event==null?"0":event.getResponse().toString().split("=")[4].split("]")[0].trim()); - float gb =bytes/1024.0f/1024.0f; - DecimalFormat decimalFormat =new DecimalFormat(".00"); - return decimalFormat.format(gb)+"GB"; - } - - /** - * @throws IOException - * 获取cpu描述信息 - * @return - */ - public String getCpuDesc() throws IOException { - ResponseEvent event=snmpGet(SnmpConfig.SNMPGET_CPUDESC); - return event==null? "":event.getResponse().toString().split("=")[4].split("]")[0].trim().split(":")[1].trim(); - } - - /** - * 获取存储设备大小 (空盘空间不足百分百) - * @param deviceCode - * @return - */ - public BigDecimal getDiskSize(String deviceCode){ - - List list = snmpWalk(SnmpConfig.SNMPGET_DSKTOTAL); - BigDecimal diskSize=new BigDecimal(-1); - if (list!=null){ - try - { - for (TableEvent tableEvent:list){ - diskSize=new BigDecimal(tableEvent.toString().split("=")[3].split("]")[0].trim()).divide(SnmpConfig.DEVIDE_NUM).divide(SnmpConfig.DEVIDE_NUM,2,RoundingMode.HALF_UP); - } - }catch (Exception e){ - logger.info("获取磁盘大小失败"+e.getMessage()); - } - } - if (BigDecimal.ZERO.compareTo(diskSize)>0){ - diskSize = getDiskSize(); - } - return diskSize; - } - - - - /** - * 获取磁盘描述 - * @param deviceCode - * @return - * @throws IOException - */ - public BigDecimal getDiskDesc(String deviceCode) { - return getDiskSize(deviceCode).divide(SnmpConfig.DEVIDE_NUM,2,RoundingMode.HALF_UP).divide(SnmpConfig.DEVIDE_NUM,2,RoundingMode.HALF_UP); - } - - /** - * snmp协议检测 - */ - public boolean snmpCheck() { - ResponseEvent re=snmpGet(".1.3.6.1.4.1.2021.255.1"); - return re == null || re.getResponse() != null; - } - - /** - * 获取机器名 - * @return - */ - public String getSysName(){ - String name=null; - try{ - List list = snmpWalk(SnmpConfig.SNMPWALK_SYSNAME); - if (list!=null){ - for (TableEvent tableEvent:list){ - name=(tableEvent.toString().split("=")[3].split("]")[0].trim()); - } - } - }catch (Exception e){ - logger.info("获取机器名失败"+e.getMessage()); - } - return name; - } - - /** - * 获取内存总大小(实际值) - * @return - */ - public BigDecimal getMemoryTotalSize(){ - try - { - ResponseEvent event = snmpGet(SnmpConfig.GET_MEMORY); - if (event!=null&&event.getResponse()!=null){ - String trim = event.getResponse().toString().split("=")[4].split("]")[0].trim(); - return new BigDecimal(trim).divide(SnmpConfig.DEVIDE_NUM,2, RoundingMode.HALF_UP).divide(SnmpConfig.DEVIDE_NUM,2, RoundingMode.HALF_UP); - }else { - throw new RuntimeException("获取内存信息失败"); - } - } - catch (Exception e) - { - logger.info("获取内存总大小失败"+e.getMessage()); - } - return new BigDecimal("-1"); - } - - /** - * 获取系统描述 - * @return - */ - public String getSysDsc(){ - try - { - ResponseEvent event = snmpGet(SnmpConfig.SYS_DSC); - if (event!=null&&event.getResponse()!=null){ - return event.getResponse().toString().split("=")[4].split("]")[0].trim(); - }else { - throw new RuntimeException("获取系统描述信息失败"); - } - } - catch (Exception e) - { - logger.info("获取系统描述信息失败"+e.getMessage()); - } - return "failure"; - } - /** - * 获取接口数 - * @return - */ - public Integer getIfNumber(){ - try - { - ResponseEvent event = snmpGet(SnmpConfig.IF_NUM); - if (event!=null&&event.getResponse()!=null){ - String trim = event.getResponse().toString().split("=")[4].split("]")[0].trim(); - return Integer.parseInt(trim); - }else { - throw new RuntimeException("获取接口信息失败"); - } - } - catch (Exception e) - { - logger.info("获取接口数量失败"+e.getMessage()); - } - return -1; - } - - /** - * 获取cpu核数(n个cpu有n条数据) - * @return - */ - public Integer getCpuNum(){ - List list = snmpWalk(SnmpConfig.CPU_NUM); - Integer num=-1; - if (list!=null){ - num=list.size(); - } - return num; - } - - - public static void main(String[] args) throws IOException - { - String snmpIp = "localhost"; - Integer snmpPort = 161; - SnmpUtil snmpUtil = new SnmpUtil(snmpIp, snmpPort); - - - System.out.println("机器名称"+snmpUtil.getSysName()); - System.out.println("磁盘大小 "+ snmpUtil.getDiskSize("devide")); - System.out.println("物理地址"+snmpUtil.getMacAddress()); - System.out.println("cpu "+snmpUtil.getCpuUsage()); - System.out.println("内存 "+snmpUtil.getMemoryUsage()); - System.out.println("磁盘 "+snmpUtil.getDiskUsage()); - System.out.println("系统基本描述信息"+snmpUtil.getSysDsc()); - System.out.println("网络接口数量 "+snmpUtil.getIfNumber()); - System.out.println("cpu核数 "+snmpUtil.getCpuNum()); - - //System.out.println("windows磁盘:" + snmpUtil.getDiskUsageForWindows()); - } -} diff --git a/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMain.java b/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMain.java deleted file mode 100644 index b53a5a6..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMain.java +++ /dev/null @@ -1,66 +0,0 @@ -package vben.core.module.sys.api.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Transient; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -@Entity -@Data -@ApiModel("接口信息") -public class SysApiMain { - - @Id - @Column(length = 64) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 64) - @ApiModelProperty("接口名称") - private String name; - - @Column(length = 64) - @ApiModelProperty("上级ID") - private String pid; - - @Column(length = 64) - @ApiModelProperty("接口url") - private String url; - - @ApiModelProperty("权限代码") - private Long code; - - @ApiModelProperty("权限位") - private Integer pos; - -// private Boolean cotag;//公共标记 - - @Column(length = 32) - @ApiModelProperty("权限类型") - private String type; - - @ApiModelProperty("可用标记") - private Boolean avtag; - - @ApiModelProperty("备注") - private String notes; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim = new Date(); - - @ApiModelProperty("更新时间") - private Date uptim ; - - @Transient - @ApiModelProperty("子接口清单") - private List children = new ArrayList<>(); - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainApi.java b/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainApi.java deleted file mode 100644 index 0e59ab1..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainApi.java +++ /dev/null @@ -1,117 +0,0 @@ -package vben.core.module.sys.api.main; - -import cn.hutool.core.util.StrUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.Date; -import java.util.List; - -@RestController -@RequestMapping("sys/api/main") -@Api(tags = {"接口管理-接口信息"}) -public class SysApiMainApi { - - @GetMapping("treer") - @ApiOperation("查询接口树数据") - public R getTreer(String id) { - Sqler sqler = new Sqler("t.id,t.id as name,t.pid","sys_api_main"); - sqler.addLike("t.id", id); - sqler.addWhere("t.avtag=1"); - sqler.addWhere("type is null"); - List list = service.findTree(sqler); - return R.ok(list); - } - - @GetMapping("tree") - @ApiOperation("查询接口树数据") - public R getTree(String id) { - Sqler sqler = new Sqler("t.id,t.id as name,t.pid","sys_api_main"); - sqler.addLike("t.id", id); - sqler.addWhere("t.avtag=1"); - List list = service.findTree(sqler); - return R.ok(list); - } - - @GetMapping - @ApiOperation("查询接口分页") - public R get(String id,String pid) { - Sqler sqler = new Sqler("t.id,t.url,t.type", "sys_api_main"); - sqler.addLike("t.id", id); - sqler.addEqual("t.pid", pid); - sqler.addWhere("t.type is not null"); - sqler.addOrder("t.crtim"); - sqler.addSelect("t.notes,t.crtim"); - return R.ok(jdbcDao.findPageData(sqler)); - } - - @GetMapping("list") - @ApiOperation("查询接口列表") - public R list(String name) { - String sql="select * from sys_api_main where avtag=1"; - return R.ok( jdbcDao.findMapList(sql)); - } - - @GetMapping("type") - @ApiOperation("根据分类查询接口树") - public R type(String type) { - if(StrUtil.isNotBlank(type)){ - List stores = jdbcDao.getTp().query("select id,pid from sys_api_main where pid like ?", - new Object[]{type+"%"}, new BeanPropertyRowMapper<>(SysApiMainVo.class)); - - return R.ok(stores); - }else{ - List stores = jdbcDao.getTp().query("select id,pid from sys_api_main" - , new BeanPropertyRowMapper<>(SysApiMainVo.class)); - return R.ok(stores); - } - } - - @GetMapping("one/{id}") - @ApiOperation("根据接口详情") - public R getOne(@PathVariable String id) { - SysApiMain main=repo.findById(id).get(); - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增接口") - public R post(@RequestBody SysApiMain main) { - main.setAvtag(true); -// main.setType(""); - repo.save(main); - return R.ok(); - } - - @PutMapping - @ApiOperation("修改接口") - public R put(@RequestBody SysApiMain main) { - main.setUptim(new Date()); - repo.save(main); - return R.ok(); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除接口") - public R delete(@PathVariable String[] ids) { - for (String id : ids) { - repo.deleteById(id); - } - return R.ok(); - } - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private SysApiMainRepo repo; - - @Autowired - private SysApiMainService service; -} diff --git a/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainRepo.java b/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainRepo.java deleted file mode 100644 index cf78090..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.core.module.sys.api.main; - -import org.springframework.data.jpa.repository.JpaRepository; - - -public interface SysApiMainRepo extends JpaRepository { -} - diff --git a/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainService.java b/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainService.java deleted file mode 100644 index ef984fd..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainService.java +++ /dev/null @@ -1,62 +0,0 @@ -package vben.core.module.sys.api.main; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; - -import java.util.ArrayList; -import java.util.List; - - -@Service -@Transactional(rollbackFor = Exception.class) -public class SysApiMainService { - - - public List findTree(Sqler sqler) { - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), new BeanPropertyRowMapper<>(SysApiMain.class)); - return buildByRecursive(list); - } - - //使用递归方法建树 - private List buildByRecursive(List nodes) { - List list = new ArrayList<>(); - for (SysApiMain node : nodes) { - if (node.getPid() == null) { - list.add(findChildrenByTier(node, nodes)); - } else { - boolean flag = false; - for (SysApiMain node2 : nodes) { - if (node.getPid().equals(node2.getId())) { - flag = true; - break; - } - } - if (!flag) { - list.add(findChildrenByTier(node, nodes)); - } - } - } - return list; - } - - //递归查找子节点 - private SysApiMain findChildrenByTier(SysApiMain node, List nodes) { - for (SysApiMain item : nodes) { - if (node.getId().equals(item.getPid())) { - if (node.getChildren() == null) { - node.setChildren(new ArrayList<>()); - } - node.getChildren().add(findChildrenByTier(item, nodes)); - } - } - return node; - } - - - @Autowired - private JdbcDao jdbcDao; -} diff --git a/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainVo.java b/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainVo.java deleted file mode 100644 index b128b61..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/api/main/SysApiMainVo.java +++ /dev/null @@ -1,10 +0,0 @@ -package vben.core.module.sys.api.main; - -import lombok.Data; - -@Data -public class SysApiMainVo { - private String id; - - private String pid; -} diff --git a/vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRole.java b/vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRole.java deleted file mode 100644 index 2098f4d..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRole.java +++ /dev/null @@ -1,47 +0,0 @@ -package vben.core.module.sys.api.role; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; -import vben.core.module.sys.api.main.SysApiMain; -import vben.core.module.sys.org.root.SysOrg; - -import javax.persistence.*; -import java.util.ArrayList; -import java.util.List; - -@Entity -@Getter -@Setter -@ApiModel("接口角色") -public class SysApiRole extends BaseMainEntity -{ - - @Column(length = 32) - @ApiModelProperty("角色类型") - private String type; - - @Column(length = 32) - @ApiModelProperty("角色标签") - private String label; - - @ApiModelProperty("备注") - private String notes; - - @ManyToMany - @JoinTable(name = "sys_api_role_api", - joinColumns = {@JoinColumn(name = "rid")}, - inverseJoinColumns = {@JoinColumn(name = "mid")}) - @ApiModelProperty("拥有的接口") - private List apis = new ArrayList<>(); - - @ManyToMany - @JoinTable(name = "sys_api_role_org", - joinColumns = {@JoinColumn(name = "rid")}, - inverseJoinColumns = {@JoinColumn(name = "oid")}) - @ApiModelProperty("授权的用户") - private List orgs = new ArrayList<>(); - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRoleApi.java b/vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRoleApi.java deleted file mode 100644 index 14be890..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRoleApi.java +++ /dev/null @@ -1,89 +0,0 @@ -package vben.core.module.sys.api.role; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.api.R; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.module.sys.org.root.UserCacheService; - -@RestController -@RequestMapping("sys/api/role") -@Api(tags = {"接口管理-接口角色"}) -public class SysApiRoleApi { - private String table = "sys_api_role"; - - @GetMapping - @ApiOperation("查询接口角色分页") - public R get(String id, String name) { - Sqler sqler = new Sqler("t.id,t.name", table); - sqler.addLeftJoin("o.name as crman", "sys_org o", "o.id=t.crmid"); - sqler.addLeftJoin("o2.name as upman", "sys_org o2", "o2.id=t.upmid"); - sqler.addSelect("t.crtim,t.uptim,t.notes"); - sqler.addLike("t.name", name); - sqler.addLike("t.id", id); - sqler.addOrder("t.crtim desc"); - return R.ok(jdbcDao.findPageData(sqler)); - } - - @GetMapping("perms") - @ApiOperation("查询接口角色权限") - public R getPerms(String id, String type) { - String allSql = "SELECT r.id as \"id\",r.pid as \"pid\",r.name as \"name\",case when rr.id is null then null else 'true' end as \"checked\" FROM sys_api_main r LEFT JOIN sys_api_role_api rr ON rr.pid=r.id AND rr.id=? where r.cotag = 0 "; - if ("all".equals(type)) { - return R.ok(jdbcDao.findMapList(allSql, id)); - } else { - allSql += " and r.pid like ?"; - return R.ok(jdbcDao.findMapList(allSql, id, type + "%")); - } - } - - @GetMapping("one/{id}") - @ApiOperation("查询接口角色详情") - public R getOne(@PathVariable String id) { - SysApiRole main = service.findOne(id); -// main.setPerms(null); - return R.ok(main); - } - - - @PostMapping - @ApiOperation("新增接口角色") - public R post(@RequestBody SysApiRole main) { - service.insert(main); - userCacheService.reset(); - return R.ok(); - } - - @PutMapping - @ApiOperation("修改接口角色") - public R put(@RequestBody SysApiRole main) { - service.update(main); - userCacheService.reset(); - return R.ok(); - } - - @PostMapping("flush") - @ApiOperation("刷新用户权限") - public R flush() { - userCacheService.reset(); - return R.ok(); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除接口角色") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private UserCacheService userCacheService; - - @Autowired - private SysApiRoleService service; -} diff --git a/vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRoleRepo.java b/vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRoleRepo.java deleted file mode 100644 index 5dc8c49..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRoleRepo.java +++ /dev/null @@ -1,7 +0,0 @@ -package vben.core.module.sys.api.role; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysApiRoleRepo extends JpaRepository { - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRoleService.java b/vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRoleService.java deleted file mode 100644 index 2411aa2..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/api/role/SysApiRoleService.java +++ /dev/null @@ -1,20 +0,0 @@ -package vben.core.module.sys.api.role; - -import vben.core.common.mvc.service.BaseMainService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; - -@Service -public class SysApiRoleService extends BaseMainService { - - //bean注入------------------------------ - @Autowired - private SysApiRoleRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } -} diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCate.java b/vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCate.java deleted file mode 100644 index 217ed52..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCate.java +++ /dev/null @@ -1,25 +0,0 @@ -package vben.core.module.sys.coop.cate; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseCateEntity; - -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; - -@Entity -@Getter -@Setter -@ApiModel("协同分类") -public class SysCoopCate extends BaseCateEntity { - - @ManyToOne(fetch= FetchType.EAGER) - @JoinColumn(name = "pid") - @ApiModelProperty("父类别") - private SysCoopCate parent; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCateApi.java b/vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCateApi.java deleted file mode 100644 index 3a8f0ae..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCateApi.java +++ /dev/null @@ -1,81 +0,0 @@ -package vben.core.module.sys.coop.cate; - -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.Ztree; - -import java.util.List; - -@RestController -@RequestMapping("sys/coop/cate") -public class SysCoopCateApi { - - private String table = "sys_coop_cate"; - - @GetMapping("treez") - @ApiOperation("查询分类除自身外的分类树") - public R getTreez(String name, String id) { - List list = service.tier2Choose(table, id, name); - return R.ok(list); - } - - @GetMapping("treea") - @ApiOperation("查询分类树") - public R getTreea(String name) { - List list = service.findTreeList(table, name); - return R.ok(list); - } - - @GetMapping("tree") - @ApiOperation("查询分类列表") - public R getTree(String name) { - Sqler sqler = new Sqler(table); - sqler.addLike("t.name", name); - sqler.addOrder("t.ornum"); - sqler.addWhere("t.avtag=1"); - sqler.addSelect("t.crtim,t.uptim,t.pid,t.notes"); - List list = service.findTree(sqler); - return R.ok(list); - } - - @GetMapping - @ApiOperation("查询分类分页") - public R get(String name) { - Sqler sqler = new Sqler(table); - sqler.addLike("t.name", name); - sqler.addSelect("t.notes,t.ornum"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询分类详情") - public R getOne(@PathVariable String id) { - SysCoopCate cate = service.findOne(id); - return R.ok(cate); - } - - @PostMapping - @ApiOperation("新增分类") - public R post(@RequestBody SysCoopCate cate) { - return R.ok(service.insertx(cate)); - } - - @PutMapping - @ApiOperation("更新分类") - public R put(@RequestBody SysCoopCate cate) { - return R.ok(service.updatex(cate)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除分类") - public R delete(@PathVariable String[] ids) { - return R.ok(service.deletex(ids)); - } - - @Autowired - private SysCoopCateService service; - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCateRepo.java b/vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCateRepo.java deleted file mode 100644 index 0607158..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCateRepo.java +++ /dev/null @@ -1,7 +0,0 @@ -package vben.core.module.sys.coop.cate; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysCoopCateRepo extends JpaRepository { - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCateService.java b/vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCateService.java deleted file mode 100644 index aac6274..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/cate/SysCoopCateService.java +++ /dev/null @@ -1,84 +0,0 @@ -package vben.core.module.sys.coop.cate; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.ZidName; -import vben.core.common.mvc.service.BaseCateService; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.module.sys.org.root.SysOrgRepo; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.List; - -@Service -public class SysCoopCateService extends BaseCateService { - - public String insertx(SysCoopCate cate){ - String id= insert(cate); - SysOrg sysOrg=new SysOrg(id,cate.getName(),64); - orgRepo.save(sysOrg); - return id; - } - - public String updatex(SysCoopCate cate){ - SysCoopCate oldCate= repo.getOne(cate.getId()); - String oldTier=oldCate.getTier(); - - update(cate,"sys_coop_cate",false); - SysOrg sysOrg=new SysOrg(cate.getId(),cate.getName(),64); - orgRepo.save(sysOrg); - - if(!oldTier.equals(cate.getTier())){ - dealUserTier(oldTier,cate.getTier()); - } - return cate.getId(); - } - - private void dealUserTier(String oldTier, String newTier) { - String sql = "select id,tier as name from sys_coop_user where tier like ?"; - List list = jdbcDao.findIdNameList(sql, oldTier + "%"); - String updateSql = "update sys_coop_user set tier=? where id=?"; - List updateList = new ArrayList<>(); - batchReady(oldTier, newTier, list, updateList); - jdbcDao.batch(updateSql, updateList); - } - - private void batchReady(String oldTier, String newTier, List list, List updateList) { - for (ZidName ztwo : list) { - Object[] arr = new Object[2]; - arr[1] = ztwo.getId(); - arr[0] = ztwo.getName().replace(oldTier, newTier); - updateList.add(arr); - } - } - - public int deletex(String[] ids) { - for (String id : ids) { - repo.deleteById(id); - orgRepo.deleteById(id); - } - return ids.length; - } - - - //获取分类treeTable数据 - public List findTree(Sqler sqler) { - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), - new BeanPropertyRowMapper<>(SysCoopCate.class)); - return buildByRecursive(list); - } - - @Autowired - private SysOrgRepo orgRepo; - - @Autowired - private SysCoopCateRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } -} diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorp.java b/vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorp.java deleted file mode 100644 index 03a1c32..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorp.java +++ /dev/null @@ -1,126 +0,0 @@ -package vben.core.module.sys.coop.corp; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Transient; - -@Entity -@Getter -@Setter -@ApiModel("外部公司") -public class SysCoopCorp extends BaseMainEntity { - - @ApiModelProperty("排序号") - private Integer ornum; - - @Column(length = 32) - @ApiModelProperty("分类ID") - private String catid; - - @Column(length = 32) - @ApiModelProperty("状态") - private String state; - - @Column(length = 32) - @ApiModelProperty("流水号") - private String senum; - - @Column(length = 32) - @ApiModelProperty("销售机构ID") - private String braid; - - @Transient - private String brana; - - //地址选择示例,可根据实际情况存想要的字段 - //region-----地址相关信息----- - @ApiModelProperty("完整地址") - private String addre; - - @Column(length = 64) - @ApiModelProperty("省市区") - private String adreg; - - @Column(length = 128) - @ApiModelProperty("省市区以外的详细信息") - private String addet; - - @Column(length = 32) - @ApiModelProperty("经纬度") - private String adcoo; - - @Column(length = 32) - @ApiModelProperty("省") - private String adpro; - - @Column(length = 32) - @ApiModelProperty("市") - private String adcit; - - @Column(length = 32) - @ApiModelProperty("区") - private String addis; - //endregion - - @Column(length = 32) - @ApiModelProperty("税务登记号") - private String renum; - - @Column(length = 32) - @ApiModelProperty("法人代表") - private String leman; - - @Column(length = 32) - @ApiModelProperty("公司电话") - public String cotel; - - @Column(length = 32) - @ApiModelProperty("公司传真") - public String cofax; - - @Column(length = 32) - @ApiModelProperty("成立日期") - public String redat; - - @Column(length = 32) - @ApiModelProperty("注册资金(万)") - public String recap; - - @Column(length = 32) - @ApiModelProperty("邮编") - public String cozip; - - @Column(length = 32) - @ApiModelProperty("公司邮箱") - public String comai; - - @ApiModelProperty("关联企业") - public String licos; - - @Column(length = 64) - @ApiModelProperty("备用字段1") - public String key1; - - @Column(length = 64) - @ApiModelProperty("备用字段1") - public String key2; - - @Column(length = 64) - @ApiModelProperty("备用字段2") - public String key3; - - @Column(length = 64) - @ApiModelProperty("备用字段3") - public String key4; - - @Column(length = 64) - @ApiModelProperty("备用字段4") - public String key5; - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorpApi.java b/vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorpApi.java deleted file mode 100644 index 8165c0e..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorpApi.java +++ /dev/null @@ -1,71 +0,0 @@ -package vben.core.module.sys.coop.corp; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.Ztree; - -import java.util.List; - -@RestController -@RequestMapping("sys/coop/corp") -@Api(tags = {"外部协同-外部公司"}) -public class SysCoopCorpApi { - - @GetMapping - @ApiOperation("查询分页") - public R get(String name,String catid) { - Sqler sqler = new Sqler("sys_coop_corp"); - sqler.addLike("t.name" , name); - sqler.addEqual("t.catid" , catid); - sqler.addLeftJoin("c.name catna","sys_coop_cate c" , "c.id=t.catid"); - sqler.addOrder("t.ornum"); - sqler.addSelect("t.notes"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("tree") - public R getTree() { - List list = service.findTreeList(); - return R.ok(list); - } - - @GetMapping("list") - @ApiOperation("查询列表") - public R getList() { - return R.ok(service.findAll()); - } - - - @GetMapping("one/{id}") - @ApiOperation("查询详情") - public R getOne(@PathVariable String id) { - SysCoopCorp main = service.findOne(id); - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增") - public R post(@RequestBody SysCoopCorp main) { - return R.ok(service.insertx(main)); - } - - @PutMapping - @ApiOperation("修改") - public R put(@RequestBody SysCoopCorp main) { - return R.ok(service.updatex(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除") - public R delete(@PathVariable String[] ids) { - return R.ok(service.deletex(ids)); - } - - @Autowired - private SysCoopCorpService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorpRepo.java b/vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorpRepo.java deleted file mode 100644 index b35b007..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorpRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.sys.coop.corp; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysCoopCorpRepo extends JpaRepository { - - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorpService.java b/vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorpService.java deleted file mode 100644 index 9eb4882..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/corp/SysCoopCorpService.java +++ /dev/null @@ -1,100 +0,0 @@ -package vben.core.module.sys.coop.corp; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.pojo.ZidName; -import vben.core.common.mvc.service.BaseMainService; -import vben.core.module.sys.coop.cate.SysCoopCate; -import vben.core.module.sys.coop.cate.SysCoopCateRepo; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.module.sys.org.root.SysOrgRepo; -import vben.core.common.mvc.pojo.Ztree; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.List; - -@Service -public class SysCoopCorpService extends BaseMainService { - - public String insertx(SysCoopCorp corp){ - String id= insert(corp); - SysOrg sysOrg=new SysOrg(id,corp.getName(),128); - orgRepo.save(sysOrg); - return id; - } - - public String updatex(SysCoopCorp corp){ - SysCoopCorp oldCorp= repo.getOne(corp.getId()); - SysCoopCate oldCate= cateRepo.getOne(oldCorp.getCatid()); - String oldTier=oldCate.getTier(); - SysCoopCate newCate= cateRepo.getOne(corp.getCatid()); - update(corp); - SysOrg sysOrg=new SysOrg(corp.getId(),corp.getName(),128); - orgRepo.save(sysOrg); - if(!newCate.getTier().equals(oldTier)){ - dealUserTier(oldTier+corp.getId()+"x",newCate.getTier()+corp.getId()+"x"); - } - return corp.getId(); - } - - private void dealUserTier(String oldTier, String newTier) { - String sql = "select id,tier as name from sys_coop_user where tier like ?"; - List list = jdbcDao.findIdNameList(sql, oldTier + "%"); - String updateSql = "update sys_coop_user set tier=? where id=?"; - List updateList = new ArrayList<>(); - batchReady(oldTier, newTier, list, updateList); - jdbcDao.batch(updateSql, updateList); - } - - private void batchReady(String oldTier, String newTier, List list, List updateList) { - for (ZidName ztwo : list) { - Object[] arr = new Object[2]; - arr[1] = ztwo.getId(); - arr[0] = ztwo.getName().replace(oldTier, newTier); - updateList.add(arr); - } - } - - - public int deletex(String[] ids) { - for (String id : ids) { - repo.deleteById(id); - orgRepo.deleteById(id); - } - return ids.length; - } - - public List findTreeList() { -// Sqler cateSqler = new Sqler("sys_coop_cate"); -// cateSqler.addSelect("pid,'' type"); -// cateSqler.addOrder("t.ornum"); -// List list = jdbcDao.getTp().query(cateSqler.getSql(),cateSqler.getParams(), new BeanPropertyRowMapper<>(Ztree.class)); -// Sqler mainSqler = new Sqler("sys_coop_corp"); -// mainSqler.addSelect("t.catid as pid"); -// mainSqler.addLike("t.name", name); -// mainSqler.addOrder("t.ornum"); -// List list2 = jdbcDao.getTp().query(mainSqler.getSql(),mainSqler.getParams(), new BeanPropertyRowMapper<>(Ztree.class)); -// list.addAll(list2); -// return TreeUtils.build(list); - String sql = "select id,pid,name,'cate' type from sys_coop_cate " + - "union all select id,catid as pid,name,'corp' type from sys_coop_corp"; - return jdbcDao.findTreeList(sql); - } - - //----------bean注入------------ - @Autowired - private SysOrgRepo orgRepo; - - @Autowired - private SysCoopCateRepo cateRepo; - - @Autowired - private SysCoopCorpRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUser.java b/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUser.java deleted file mode 100644 index 493aef2..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUser.java +++ /dev/null @@ -1,67 +0,0 @@ -package vben.core.module.sys.coop.user; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; -import vben.core.module.sys.coop.corp.SysCoopCorp; - -import javax.persistence.*; - -@Entity -@Getter -@Setter -@ApiModel("外部用户") -public class SysCoopUser extends BaseMainEntity { - - //区分主账号或其他用途 - @Column(length = 32) - @ApiModelProperty("账号类型") - private String type; - - @Transient - @ApiModelProperty("公司ID") - private String corid; - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "corid") - @ApiModelProperty("外部公司") - private SysCoopCorp corp; - - @ApiModelProperty("排序号") - private Integer ornum; - - @Column(length = 32) - @ApiModelProperty("昵称") - private String ninam; - - @Column(length = 32) - @ApiModelProperty("登录名") - private String usnam; - - @Column(length = 64,updatable = false) - @ApiModelProperty("密码") - private String pacod; - - @Column(length = 64) - @ApiModelProperty("邮箱") - private String email; - - @Column(length = 32) - @ApiModelProperty("手机号") - private String monum; - - @ApiModelProperty("通知阅读记录") - private String relog; - - @ApiModelProperty("缓存标记") - private Boolean catag = false; - - @Column(length = 1000) - @ApiModelProperty("层级") - private String tier; - - @ApiModelProperty("备注") - private String notes; -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserApi.java b/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserApi.java deleted file mode 100644 index 4b4804e..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserApi.java +++ /dev/null @@ -1,71 +0,0 @@ -package vben.core.module.sys.coop.user; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import vben.core.module.sys.org.user.PacodPo; - -@RestController -@RequestMapping("sys/coop/user") -@Api(tags = {"外部协同-外部用户"}) -public class SysCoopUserApi { - - @GetMapping - @ApiOperation("查询分页") - public R get(String name,String corid) { - Sqler sqler = new Sqler("sys_coop_user"); - sqler.addLike("t.name" , name); - sqler.addEqual("t.corid" , corid); - sqler.addLeftJoin("c.name corna","sys_coop_corp c" , "c.id=t.corid"); - sqler.addOrder("t.ornum"); - sqler.addSelect("t.notes,t.type"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("list") - @ApiOperation("查询列表") - public R getList() { - return R.ok(service.findAll()); - } - - - @GetMapping("one/{id}") - @ApiOperation("查询详情") - public R getOne(@PathVariable String id) { - SysCoopUser main = service.findOne(id); - - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增") - public R post(@RequestBody SysCoopUser main) { - return R.ok(service.insertx(main)); - } - - @PutMapping - @ApiOperation("修改") - public R put(@RequestBody SysCoopUser main) { - return R.ok(service.updatex(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除") - public R delete(@PathVariable String[] ids) { - return R.ok(service.deletex(ids)); - } - - @PostMapping("pacod") - @ApiOperation("修改密码") - public R pacod(@RequestBody PacodPo po) { - service.pacod(po); - return R.ok(); - } - - @Autowired - private SysCoopUserService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserCache.java b/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserCache.java deleted file mode 100644 index 7d96113..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserCache.java +++ /dev/null @@ -1,32 +0,0 @@ -package vben.core.module.sys.coop.user; - -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Lob; - -@Entity -@Data -public class SysCoopUserCache { - @Id - @Column(length = 32) - private String id; - - @Column(length = 2000) - private String conds;//组织架构集 - - @Column(length = 2000) - private String portals;//前台门户缓存 - - @Column(length = 2000) - private String perms;//后台所有权限集 - - @Lob - private String menus;//前台菜单缓存 - - @Lob - private String btns;//前台按钮缓存 - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserRepo.java b/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserRepo.java deleted file mode 100644 index 6a0e4d1..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.sys.coop.user; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysCoopUserRepo extends JpaRepository { - - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserService.java b/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserService.java deleted file mode 100644 index 124a7c7..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/coop/user/SysCoopUserService.java +++ /dev/null @@ -1,83 +0,0 @@ -package vben.core.module.sys.coop.user; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.service.BaseMainService; -import vben.core.common.utils.lang.SecureUtils; -import vben.core.module.sys.coop.cate.SysCoopCate; -import vben.core.module.sys.coop.cate.SysCoopCateRepo; -import vben.core.module.sys.coop.corp.SysCoopCorp; -import vben.core.module.sys.coop.corp.SysCoopCorpRepo; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.module.sys.org.root.SysOrgRepo; -import vben.core.module.sys.org.user.PacodPo; -import vben.core.common.utils.lang.IdUtils; - -import javax.annotation.PostConstruct; - -@Service -public class SysCoopUserService extends BaseMainService { - - public String insertx(SysCoopUser user){ - user.setId(IdUtils.getUID()); - if(user.getCorp()!=null){ - SysCoopCorp corp= cropRepo.getOne(user.getCorp().getId()); - SysCoopCate cate= cateRepo.getOne(corp.getCatid()); - user.setTier(cate.getTier()+corp.getId()+"x"+user.getId()+"x"); - }else{ - user.setTier("x"+user.getId()+"x"); - } - user.setPacod(SecureUtils.passwordEncrypt(user.getPacod())); - String id= insert(user); - SysOrg sysOrg=new SysOrg(id,user.getName(),256); - orgRepo.save(sysOrg); - return id; - } - - public String updatex(SysCoopUser user){ - if(user.getCorp()!=null){ - SysCoopCorp corp= cropRepo.getOne(user.getCorp().getId()); - SysCoopCate cate= cateRepo.getOne(corp.getCatid()); - user.setTier(cate.getTier()+"x"+corp.getId()+"x"+user.getId()+"x"); - }else{ - user.setTier("x"+user.getId()+"x"); - } - update(user); - SysOrg sysOrg=new SysOrg(user.getId(),user.getName(),256); - orgRepo.save(sysOrg); - return user.getId(); - } - - public int deletex(String[] ids) { - for (String id : ids) { - repo.deleteById(id); - orgRepo.deleteById(id); - } - return ids.length; - } - - public void pacod(PacodPo po) { - po.setPacod(SecureUtils.passwordEncrypt(po.getPacod())); - String sql="update sys_coop_user set pacod=? where id=?"; - jdbcDao.update(sql,po.getPacod(),po.getId()); - } - - //----------bean注入------------ - @Autowired - private SysOrgRepo orgRepo; - - @Autowired - private SysCoopCorpRepo cropRepo; - - @Autowired - private SysCoopCateRepo cateRepo; - - @Autowired - private SysCoopUserRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDept.java b/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDept.java deleted file mode 100644 index 91c6aa6..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDept.java +++ /dev/null @@ -1,82 +0,0 @@ -package vben.core.module.sys.org.dept; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import vben.core.module.sys.org.root.SysOrg; -import lombok.Data; - -import javax.persistence.*; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -@Entity -@Data -@Table(indexes = { @Index(columnList = "avtag")}) -@ApiModel("组织架构部门") -public class SysOrgDept { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 100) - @ApiModelProperty("名称") - private String name; - - @Transient - @ApiModelProperty("子部门") - private List children = new ArrayList<>(); - - @Transient - @ApiModelProperty("父ID") - private String pid; - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "pid") - @ApiModelProperty("父部门") - private SysOrg parent; - - @ApiModelProperty("部门类型:1为机构,2为部门") - private Integer type;//1为机构,2为部门,4为岗位,8为用户,16为常用群组,32为角色线 - - @Column(length = 1000) - @ApiModelProperty("层级") - private String tier; - - @Column(length = 32) - @ApiModelProperty("标签") - private String label;//主要用于区分组织架构分类,ABC为系统内置组织架构 - - @ApiModelProperty("备注") - private String notes; - - @ApiModelProperty("排序号") - private Integer ornum; - - @ApiModelProperty("可用标记") - private Boolean avtag; - - @Column(length = 1000) - @ApiModelProperty("ldap层级名称") - private String ldnam; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim = new Date(); - - @ApiModelProperty("更新时间") - private Date uptim; - -// @Column(length = 32) -// private String tecod;// 销售组代码 - -// @Transient -// private String cid;//公司ID - -// @ManyToOne(fetch=FetchType.EAGER) -// @JoinColumn(name = "cid") -// private SysOrg corp;//公司 - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptApi.java b/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptApi.java deleted file mode 100644 index 4482773..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptApi.java +++ /dev/null @@ -1,111 +0,0 @@ -package vben.core.module.sys.org.dept; - -import cn.hutool.core.util.StrUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.TreeMovePo; -import vben.core.common.utils.lang.TreeUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import javax.servlet.http.HttpServletRequest; -import java.util.List; - -@RestController -@RequestMapping("sys/org/dept") -@Api(tags = {"组织架构-部门管理"}) -public class SysOrgDeptApi { - - private String table = "sys_org_dept"; - - @GetMapping - @ApiOperation("查询部门分页") - public R get(String name, String pid, String notes) { - Sqler sqler = new Sqler(table); - if (StrUtil.isNotBlank(name)) { - sqler.addLike("t.name" , name); - } else { - if ("".equals(pid)) { - sqler.addWhere("t.pid is null"); - } else if (StrUtil.isNotBlank(pid)) { - sqler.addEqual("t.pid" , pid); - } - } - sqler.addLike("t.notes" , notes); - sqler.addWhere("t.avtag=1"); - sqler.addOrder("t.ornum"); - sqler.addSelect("t.ornum,t.notes,t.pid,t.crtim,t.uptim"); - return R.ok(jdbcDao.findPageData(sqler)); - } - - @GetMapping("tree") - public R getTree(String name) { - Sqler sqler = new Sqler("sys_org_dept"); - sqler.addSelect("t.pid,t.notes,t.crtim,t.uptim,t.ornum"); - sqler.addLike("t.name", name); - sqler.addOrder("t.ornum"); - sqler.addWhere("t.avtag=1"); - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), - new BeanPropertyRowMapper<>(SysOrgDeptVo.class)); - return R.ok(TreeUtils.buildEtree(list)); - } - - - //排除了自己 -// @GetMapping("listn") -// public R listn(String name, String id) { -// Sqler sqler = new Sqler(table); -// sqler.addLike("t.name", name); -// sqler.addWhere("t.avtag=1"); -// sqler.addOrder("t.ornum"); -// sqler.addSelect("t.pid"); -// return R.ok(service.findWithoutItself(sqler, id)); -// } - - @GetMapping("one/{id}") - @ApiOperation("查询部门详情") - public R getOne(@PathVariable String id, HttpServletRequest request) { - SysOrgDept main = service.findById(id); - return R.ok(main); - } - - - @PostMapping - @ApiOperation("新增部门") - public R post(@RequestBody SysOrgDept main) { - service.insert(main); - return R.ok(main.getId()); - } - - @PutMapping - @ApiOperation("修改部门") - public R put(@RequestBody SysOrgDept main) throws Exception { - service.update(main); - return R.ok(main.getId()); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除部门") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - - @PostMapping("move") - @ApiOperation("移动部门") - public R move(@RequestBody TreeMovePo po) throws Exception { - service.move(po); - return R.ok(); - } - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private SysOrgDeptService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptRepo.java b/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptRepo.java deleted file mode 100644 index 651d1b4..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptRepo.java +++ /dev/null @@ -1,15 +0,0 @@ -package vben.core.module.sys.org.dept; - -import org.springframework.data.jpa.repository.JpaRepository; - -import java.util.List; - -public interface SysOrgDeptRepo extends JpaRepository { - - List findByNameLikeOrderByOrnum(String name); - - List findByOrderByOrnum(); - - List findByParent(String pid); - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptService.java b/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptService.java deleted file mode 100644 index 6d7ccf3..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptService.java +++ /dev/null @@ -1,362 +0,0 @@ -package vben.core.module.sys.org.dept; - -import cn.hutool.core.util.StrUtil; -import vben.core.common.mvc.pojo.ZidOrnum; -import vben.core.common.mvc.pojo.TreeMovePo; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.ZidName; -import vben.core.common.mvc.api.PageData; -import vben.core.module.sys.org.root.SysOrgRepo; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -@Service -@Transactional(rollbackFor = Exception.class) -public class SysOrgDeptService { - - @Transactional(readOnly = true) - public SysOrgDept findById(String id) { - - return deptRepo.findById(id).get(); - } - - public void insertAll(List list) { - List orgList = new ArrayList<>(); - for (SysOrgDept main : list) { - if (main.getId() == null || "".equals(main.getId())) { - main.setId(IdUtils.getUID()); - } -// if (main.getParent() == null || StrUtil.isBlank(main.getParent().getId())) { -// main.setTier("x" + main.getId() + "x"); -// } else { -// String tier = jdbcDao.findOneString("select tier from sys_org_dept where id=?", main.getParent().getId()); -// main.setTier(tier + main.getId() + "x"); -// } - SysOrg sysOrg = new SysOrg(main.getId(), main.getName(),main.getType()); - orgList.add(sysOrg); - } - orgRepo.saveAll(orgList); - deptRepo.saveAll(list); - } - - public SysOrgDept insert(SysOrgDept main) { - if(main.getOrnum()==null){ - main.setOrnum(getCount(main.getPid())+1); - } - if (main.getId() == null || "".equals(main.getId())) { - main.setId(IdUtils.getUID()); - } - if(main.getTier()==null){ - if (main.getParent() == null || StrUtil.isBlank(main.getParent().getId())) { - main.setTier("x" + main.getId() + "x"); - } else { - String tier = jdbcDao.findOneString("select tier from sys_org_dept where id=?", main.getParent().getId()); - main.setTier(tier + main.getId() + "x"); - } - } - SysOrg sysOrg = new SysOrg(main.getId(), main.getName(),main.getType()); - orgRepo.save(sysOrg); - return deptRepo.save(main); - } - - - public SysOrgDept update(SysOrgDept main) throws Exception { - if(main.getOrnum()==null){ - main.setOrnum(0); - } - main.setUptim(new Date()); - if (main.getParent() == null || StrUtil.isBlank(main.getParent().getId())) { - main.setTier("x" + main.getId() + "x"); - } else { - String tier = jdbcDao.findOneString("select tier from sys_org_dept where id=?", main.getParent().getId()); - main.setTier(tier + main.getId() + "x"); - String[] arr = tier.split("x"); - for (String str : arr) { - if (main.getId().equals(str)) { - throw new Exception("父部门不能为自己或者自己的子部门"); - } - } - } - SysOrg sysOrg = new SysOrg(main.getId(), main.getName(),main.getType()); - SysOrgDept backDept = deptRepo.save(main); - String oldTier = jdbcDao.findOneString("select tier from sys_org_dept where id=?", main.getId()); - if(!oldTier.equals(main.getTier())){ - dealDeptTier(oldTier, main.getTier(), main.getId()); - dealUserTier(oldTier, main.getTier()); - dealPostTier(oldTier, main.getTier()); - } - orgRepo.save(sysOrg); - return backDept; - } - - public int delete(String[] ids) { - for (String str : ids) { - deptRepo.deleteById(str); - orgRepo.deleteById(str); - } - return ids.length; - } - - private void dealDeptTier(String oldTier, String newTier, String id) { - String sql = "select id,tier as name from sys_org_dept where tier like ? and id<>?"; - List list = jdbcDao.findIdNameList(sql, oldTier + "%", id); - String updateSql = "update sys_org_dept set tier=? where id=?"; - List updateList = new ArrayList(); - batchReady(oldTier, newTier, list, updateList); - jdbcDao.batch(updateSql, updateList); - } - - private void dealUserTier(String oldTier, String newTier) { - String sql = "select id,tier as name from sys_org_user where tier like ?"; - List list = jdbcDao.findIdNameList(sql, oldTier + "%"); - String updateSql = "update sys_org_user set tier=? where id=?"; - List updateList = new ArrayList<>(); - batchReady(oldTier, newTier, list, updateList); - jdbcDao.batch(updateSql, updateList); - } - - private void dealPostTier(String oldTier, String newTier) { - String sql = "select id,tier as name from sys_org_post where tier like ?"; - List list = jdbcDao.findIdNameList(sql, oldTier + "%"); - String updateSql = "update sys_org_post set tier=? where id=?"; - List updateList = new ArrayList<>(); - batchReady(oldTier, newTier, list, updateList); - jdbcDao.batch(updateSql, updateList); - } - - private void batchReady(String oldTier, String newTier, List list, List updateList) { - for (ZidName ztwo : list) { - Object[] arr = new Object[2]; - arr[1] = ztwo.getId(); - arr[0] = ztwo.getName().replace(oldTier, newTier); - updateList.add(arr); - } - } - - - public List findAll(Sqler sqler) { - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), new BeanPropertyRowMapper<>(SysOrgDept.class)); - return list; - } - - public PageData findPageData(Sqler sqler) { - return jdbcDao.findPageData(sqler); - } - - public List findTree(Sqler sqler) { - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), new BeanPropertyRowMapper<>(SysOrgDept.class)); - return buildByRecursive(list); - } - - public List findWithoutItself(Sqler sqler, String id) { - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), new BeanPropertyRowMapper<>(SysOrgDept.class)); - return buildByRecursiveWithoutItself(list, id); - } - - - //使用递归方法建树 - private List buildByRecursive(List nodes) { - List list = new ArrayList<>(); - for (SysOrgDept node : nodes) { - if (node.getPid() == null) { - list.add(findChildrenByTier(node, nodes)); - } else { - boolean flag = false; - for (SysOrgDept node2 : nodes) { - if (node.getPid().equals(node2.getId())) { - flag = true; - break; - } - } - if (!flag) { - list.add(findChildrenByTier(node, nodes)); - } - } - } - return list; - } - - //递归查找子节点 - private SysOrgDept findChildrenByTier(SysOrgDept node, List nodes) { - for (SysOrgDept item : nodes) { - if (node.getId().equals(item.getPid())) { - if (node.getChildren() == null) { - node.setChildren(new ArrayList<>()); - } - node.getChildren().add(findChildrenByTier(item, nodes)); - } - } - return node; - } - - - //使用递归方法建树不包含自己 - private List buildByRecursiveWithoutItself(List nodes, String id) { - List list = new ArrayList<>(); - for (SysOrgDept node : nodes) { - if (node.getPid() == null && !node.getId().equals(id)) { - list.add(findChildrenByTierWithoutItself(node, nodes, id)); - } else { - boolean flag = false; - for (SysOrgDept node2 : nodes) { - if (node.getPid() != null && node.getPid().equals(node2.getId())) { - flag = true; - break; - } - } - if (!flag && !node.getId().equals(id)) { - list.add(findChildrenByTierWithoutItself(node, nodes, id)); - } - } - } - return list; - } - - //递归查找子节点不包含自己 - private SysOrgDept findChildrenByTierWithoutItself(SysOrgDept node, List nodes, String id) { - for (SysOrgDept item : nodes) { - if (node.getId().equals(item.getPid()) && (!item.getId().equals(id))) { - if (node.getChildren() == null) { - node.setChildren(new ArrayList<>()); - } - node.getChildren().add(findChildrenByTierWithoutItself(item, nodes, id)); - } - } - return node; - } - - private Integer getCount(String pid){ - if(StrUtil.isNotBlank(pid)){ - String countSql="select count(1) from sys_org_dept where pid=?"; - Integer count = jdbcDao.getTp().queryForObject(countSql, new Object[]{pid}, Integer.class); - if(count==null){ - count=0; - } - return count; - }else{ - String countSql="select count(1) from sys_org_dept where pid is null"; - Integer count = jdbcDao.getTp().queryForObject(countSql, Integer.class); - if(count==null){ - count=0; - } - return count; - } - } - - public void move(TreeMovePo po) throws Exception { - SysOrgDept dragDept= deptRepo.findById(po.getDraid()).get(); - if(dragDept.getParent()!=null){ - dragDept.setPid(dragDept.getParent().getId()); - } - List list2; - if(StrUtil.isNotBlank(dragDept.getPid())){ - String sql = "select id,ornum from sys_org_dept where ornum>? and pid=?"; - list2 = jdbcDao.getTp().query(sql,new Object[]{dragDept.getOrnum(),dragDept.getPid()}, - new BeanPropertyRowMapper<>(ZidOrnum.class)); - }else{ - String sql = "select id,ornum from sys_org_dept where ornum>? and pid is null"; - list2 = jdbcDao.getTp().query(sql,new Object[]{dragDept.getOrnum()}, - new BeanPropertyRowMapper<>(ZidOrnum.class)); - } - String updateSql = "update sys_org_dept set ornum=? where id=?"; - List updateList = new ArrayList<>(); - for (ZidOrnum zidOrnum : list2) { - Object[] arr=new Object[2]; - arr[0]=zidOrnum.getOrnum()-1; - arr[1]=zidOrnum.getId(); - updateList.add(arr); - } - jdbcDao.batch(updateSql, updateList); - - if ("inner".equals(po.getType())) - { - dragDept.setPid(po.getDroid()); - dragDept.setParent(new SysOrg(dragDept.getPid())); - Integer count=getCount(po.getDroid()); - dragDept.setOrnum(count+1); - } - else if ("before".equals(po.getType())) - { - SysOrgDept dropDept= deptRepo.findById(po.getDroid()).get(); - if(dropDept.getParent()!=null){ - dropDept.setPid(dropDept.getParent().getId()); - dragDept.setPid(dropDept.getPid());; - dragDept.setParent(dropDept.getParent());; - }else{ - dragDept.setPid(null); - dragDept.setParent(null); - } - dragDept.setOrnum(dropDept.getOrnum()); - - List list3; - if(StrUtil.isNotBlank(dropDept.getPid())){ - String sql3 = "select id,ornum from sys_org_dept where ornum>? and pid=?"; - list3 = jdbcDao.getTp().query(sql3,new Object[]{dropDept.getOrnum(),dropDept.getPid()}, - new BeanPropertyRowMapper<>(ZidOrnum.class)); - }else{ - String sql3 = "select id,ornum from sys_org_dept where ornum>? and pid is null"; - list3 = jdbcDao.getTp().query(sql3,new Object[]{dropDept.getOrnum()}, - new BeanPropertyRowMapper<>(ZidOrnum.class)); - } - - String updateSql3 = "update sys_org_dept set ornum=? where id=?"; - List updateList3 = new ArrayList<>(); - for (ZidOrnum zidOrnum : list3) { - Object[] arr=new Object[2]; - arr[0]=zidOrnum.getOrnum()+1; - arr[1]=zidOrnum.getId(); - updateList3.add(arr); - } - jdbcDao.batch(updateSql3, updateList3); - dropDept.setOrnum(dropDept.getOrnum()+1); - String updateSql4 = "update sys_org_dept set ornum=? where id=?"; - jdbcDao.update(updateSql4, dropDept.getOrnum(), dropDept.getId()); - } - else if ("after".equals(po.getType())) - { - SysOrgDept dropDept= deptRepo.findById(po.getDroid()).get(); - if(dropDept.getParent()!=null){ - dropDept.setPid(dropDept.getParent().getId()); - } - Integer count = getCount(dropDept.getPid()); - if (dragDept.getPid()!=null&&dragDept.getPid().equals(dropDept.getPid())) - { - dragDept.setOrnum(count); - } - else - { - dragDept.setPid(dropDept.getPid()); - if (dragDept.getPid() == null) - { - dragDept.setParent(null); - } - else - { - dragDept.setParent(new SysOrg(dragDept.getPid())); - } - dragDept.setOrnum(count+1); - } - } - update(dragDept); - } - - @Autowired - private JdbcDao jdbcDao; - - - @Autowired - private SysOrgDeptRepo deptRepo; - - - @Autowired - private SysOrgRepo orgRepo; -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptVo.java b/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptVo.java deleted file mode 100644 index 875f1f1..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/dept/SysOrgDeptVo.java +++ /dev/null @@ -1,21 +0,0 @@ -package vben.core.module.sys.org.dept; - -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.pojo.Ztree; - -import java.util.Date; - -@Getter -@Setter -public class SysOrgDeptVo extends Ztree { - - private Date crtim; - - private Date uptim; - - private String notes; - - private Integer ornum; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroup.java b/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroup.java deleted file mode 100644 index 88587b9..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroup.java +++ /dev/null @@ -1,56 +0,0 @@ -package vben.core.module.sys.org.group; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import vben.core.module.sys.org.root.SysOrg; -import lombok.Data; - -import javax.persistence.*; -import java.util.Date; -import java.util.List; - -@Entity -@Data -@ApiModel("组织架构群组") -public class SysOrgGroup { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 100) - @ApiModelProperty("名称") - private String name; - - @ApiModelProperty("备注") - private String notes; - - @ApiModelProperty("分类ID") - @Column(length = 32) - private String catid; - - @ApiModelProperty("排序号") - private Integer ornum; - - @ApiModelProperty("可用标记") - private Boolean avtag; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim=new Date(); - - @ApiModelProperty("更新时间") - private Date uptim; - - @ManyToMany - @JoinTable(name = "sys_org_group_org", joinColumns = {@JoinColumn(name = "gid")}, - inverseJoinColumns = {@JoinColumn(name = "oid")}) - @ApiModelProperty("成员信息") - private List members; - - @Column(length = 32) - @ApiModelProperty("标签") - private String label;//主要用于区分组织架构分类,ABC为系统内置组织架构 - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupApi.java b/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupApi.java deleted file mode 100644 index e2c656c..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupApi.java +++ /dev/null @@ -1,52 +0,0 @@ -package vben.core.module.sys.org.group; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("sys/org/group") -@Api(tags = {"组织架构-群组管理"}) -public class SysOrgGroupApi { - - @GetMapping - @ApiOperation("查询群组分页") - public R get(String name) { - Sqler sqler = new Sqler("sys_org_group"); - sqler.addLike("t.name", name); - sqler.addSelect("t.ornum,t.notes,t.crtim,t.uptim"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询群组详情") - public R getOne(@PathVariable String id) { - SysOrgGroup main = service.findById(id); - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增群组") - public R post(@RequestBody SysOrgGroup main) { - return R.ok(service.insert(main)); - } - - @PutMapping - @ApiOperation("修改群组") - public R put(@RequestBody SysOrgGroup main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除群组") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private SysOrgGroupService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCate.java b/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCate.java deleted file mode 100644 index 1cef9eb..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCate.java +++ /dev/null @@ -1,30 +0,0 @@ -package vben.core.module.sys.org.group; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseCateEntity; - -import javax.persistence.*; - -@Entity -@Getter -@Setter -@ApiModel("群组分类") -public class SysOrgGroupCate extends BaseCateEntity { - - @ManyToOne(fetch= FetchType.EAGER) - @JoinColumn(name = "pid") - @ApiModelProperty("父类别") - private SysOrgGroupCate parent; - - - public SysOrgGroupCate() { - - } - - public SysOrgGroupCate(String id) { - this.id=id; - } -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCateApi.java b/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCateApi.java deleted file mode 100644 index be8877e..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCateApi.java +++ /dev/null @@ -1,97 +0,0 @@ -package vben.core.module.sys.org.group; - -import com.github.xiaoymin.knife4j.core.util.StrUtil; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.TreeMovePo; -import vben.core.common.mvc.pojo.Ztree; - -import java.util.List; - -@RestController -@RequestMapping("sys/org/group/cate") -public class SysOrgGroupCateApi { - - private String table = "sys_org_group_cate"; - - @GetMapping("treez") - @ApiOperation("查询分类除自身外的分类树") - public R getTreez(String name, String id) { - List list = service.tier2Choose(table, id, name); - return R.ok(list); - } - - @GetMapping("treea") - @ApiOperation("查询分类树") - public R getTreea(String name) { - List list = service.findTreeList(table, name); - return R.ok(list); - } - - @GetMapping("tree") - @ApiOperation("查询分类列表") - public R getTree(String name) { - Sqler sqler = new Sqler(table); - sqler.addLike("t.name", name); - sqler.addOrder("t.ornum"); - sqler.addWhere("t.avtag=1"); - sqler.addSelect("t.crtim,t.uptim,t.pid,t.notes"); - List list = service.findTree(sqler); - return R.ok(list); - } - - @GetMapping - @ApiOperation("查询分类分页") - public R get(String name) { - Sqler sqler = new Sqler(table); - sqler.addLike("t.name", name); - sqler.addSelect("t.notes,t.ornum"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询分类详情") - public R getOne(@PathVariable String id) { - SysOrgGroupCate cate = service.findOne(id); - return R.ok(cate); - } - - @PostMapping - @ApiOperation("新增分类") - public R post(@RequestBody SysOrgGroupCate cate) { - cate.setOrnum(service.getCount(cate.getPid())+1); - if(StrUtil.isNotBlank(cate.getPid())){ - cate.setParent(new SysOrgGroupCate(cate.getPid())); - } - return R.ok(service.insert(cate)); - } - - @PutMapping - @ApiOperation("更新分类") - public R put(@RequestBody SysOrgGroupCate cate) { - if(StrUtil.isNotBlank(cate.getPid())){ - cate.setParent(new SysOrgGroupCate(cate.getPid())); - } - return R.ok(service.update(cate,table,false)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除分类") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @PostMapping("move") - @ApiOperation("移动部门") - public R move(@RequestBody TreeMovePo po) throws Exception { - service.move(po); - return R.ok(); - } - - @Autowired - private SysOrgGroupCateService service; - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCateRepo.java b/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCateRepo.java deleted file mode 100644 index 3a8e36e..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCateRepo.java +++ /dev/null @@ -1,7 +0,0 @@ -package vben.core.module.sys.org.group; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysOrgGroupCateRepo extends JpaRepository { - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCateService.java b/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCateService.java deleted file mode 100644 index c14cf61..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupCateService.java +++ /dev/null @@ -1,166 +0,0 @@ -package vben.core.module.sys.org.group; - -import cn.hutool.core.util.StrUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.ZidOrnum; -import vben.core.common.mvc.pojo.TreeMovePo; -import vben.core.common.mvc.service.BaseCateService; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.List; - -@Service -public class SysOrgGroupCateService extends BaseCateService { - - //获取分类treeTable数据 - public List findTree(Sqler sqler) { - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), - new BeanPropertyRowMapper<>(SysOrgGroupCate.class)); - return buildByRecursive(list); - } - - public Integer getCount(String pid){ - if(StrUtil.isNotBlank(pid)){ - String countSql="select count(1) from sys_org_group_cate where pid=?"; - Integer count = jdbcDao.getTp().queryForObject(countSql, new Object[]{pid}, Integer.class); - if(count==null){ - count=0; - } - return count; - }else{ - String countSql="select count(1) from sys_org_group_cate where pid is null"; - Integer count = jdbcDao.getTp().queryForObject(countSql, Integer.class); - if(count==null){ - count=0; - } - return count; - } - } - - public void move(TreeMovePo po) throws Exception { - SysOrgGroupCate dragDept= repo.findById(po.getDraid()).get(); - if(dragDept.getParent()!=null){ - dragDept.setPid(dragDept.getParent().getId()); - } - List list2; - if(StrUtil.isNotBlank(dragDept.getPid())){ - String sql = "select id,ornum from sys_org_group_cate where ornum>? and pid=?"; - list2 = jdbcDao.getTp().query(sql,new Object[]{dragDept.getOrnum(),dragDept.getPid()}, - new BeanPropertyRowMapper<>(ZidOrnum.class)); - }else{ - String sql = "select id,ornum from sys_org_group_cate where ornum>? and pid is null"; - list2 = jdbcDao.getTp().query(sql,new Object[]{dragDept.getOrnum()}, - new BeanPropertyRowMapper<>(ZidOrnum.class)); - } - - String updateSql = "update sys_org_group_cate set ornum=? where id=?"; - List updateList = new ArrayList<>(); - for (ZidOrnum zidOrnum : list2) { - Object[] arr=new Object[2]; - arr[0]=zidOrnum.getOrnum()-1; - arr[1]=zidOrnum.getId(); - updateList.add(arr); - } - jdbcDao.batch(updateSql, updateList); - - boolean tierChange=true; - if ("inner".equals(po.getType())) - { - if(po.getDroid().equals(dragDept.getPid())){ - tierChange=false; - } - dragDept.setPid(po.getDroid()); - dragDept.setParent(new SysOrgGroupCate(dragDept.getPid())); - Integer count=getCount(po.getDroid()); - dragDept.setOrnum(count+1); - } - else if ("before".equals(po.getType())) - { - SysOrgGroupCate dropDept= repo.findById(po.getDroid()).get(); - if(dropDept.getParent()!=null){ - if(dropDept.getParent().getId().equals(dragDept.getPid())){ - tierChange=false; - } - dropDept.setPid(dropDept.getParent().getId()); - dragDept.setPid(dropDept.getPid());; - dragDept.setParent(dropDept.getParent()); - }else{ - if(dragDept.getPid()==null){ - tierChange=false; - } - dragDept.setPid(null); - dragDept.setParent(null); - } - dragDept.setOrnum(dropDept.getOrnum()); - - List list3; - if(StrUtil.isNotBlank(dropDept.getPid())){ - String sql3 = "select id,ornum from sys_org_group_cate where ornum>? and pid=?"; - list3 = jdbcDao.getTp().query(sql3,new Object[]{dropDept.getOrnum(),dropDept.getPid()}, - new BeanPropertyRowMapper<>(ZidOrnum.class)); - }else{ - String sql3 = "select id,ornum from sys_org_group_cate where ornum>? and pid is null"; - list3 = jdbcDao.getTp().query(sql3,new Object[]{dropDept.getOrnum()}, - new BeanPropertyRowMapper<>(ZidOrnum.class)); - } - String updateSql3 = "update sys_org_group_cate set ornum=? where id=?"; - List updateList3 = new ArrayList<>(); - for (ZidOrnum zidOrnum : list3) { - Object[] arr=new Object[2]; - arr[0]=zidOrnum.getOrnum()+1; - arr[1]=zidOrnum.getId(); - updateList3.add(arr); - } - jdbcDao.batch(updateSql3, updateList3); - dropDept.setOrnum(dropDept.getOrnum()+1); - String updateSql4 = "update sys_org_group_cate set ornum=? where id=?"; - jdbcDao.update(updateSql4, dropDept.getOrnum(), dropDept.getId()); - } - else if ("after".equals(po.getType())) - { - SysOrgGroupCate dropDept= repo.findById(po.getDroid()).get(); - if(dropDept.getParent()!=null){ - if(dropDept.getParent().getId().equals(dragDept.getPid())){ - tierChange=false; - } - dropDept.setPid(dropDept.getParent().getId()); - }else{ - if(dragDept.getPid()==null){ - tierChange=false; - } - } - Integer count = getCount(dropDept.getPid()); - if (dragDept.getPid()!=null&&dragDept.getPid().equals(dropDept.getPid())) - { - dragDept.setOrnum(count); - } - else - { - dragDept.setPid(dropDept.getPid()); - if (dragDept.getPid() == null) - { - dragDept.setParent(null); - } - else - { - dragDept.setParent(new SysOrgGroupCate(dragDept.getPid())); - } - dragDept.setOrnum(count+1); - } - } - update(dragDept,"sys_org_group_cate",tierChange); - } - - - @Autowired - private SysOrgGroupCateRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupRepo.java b/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupRepo.java deleted file mode 100644 index 132baaa..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupRepo.java +++ /dev/null @@ -1,13 +0,0 @@ -package vben.core.module.sys.org.group; - -import org.springframework.data.jpa.repository.JpaRepository; - -import java.util.List; - -public interface SysOrgGroupRepo extends JpaRepository { - - List findByNameLikeOrderByOrnum(String name); - - List findByOrderByOrnum(); - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupService.java b/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupService.java deleted file mode 100644 index 3f2b502..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/group/SysOrgGroupService.java +++ /dev/null @@ -1,77 +0,0 @@ -package vben.core.module.sys.org.group; - -import cn.hutool.core.util.StrUtil; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.module.sys.org.root.SysOrgRepo; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.api.PageData; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; - -import java.util.Date; -import java.util.List; - -@Service -@Transactional(rollbackFor = Exception.class) -public class SysOrgGroupService { - - @Transactional(readOnly = true) - public SysOrgGroup findById(String id) { - return groupRepo.findById(id).get(); - } - - public PageData findPageData(Sqler sqler) { - return jdbcDao.findPageData(sqler); - } - - public String insert(SysOrgGroup main) { - if (main.getId() == null || "".equals(main.getId())) { - main.setId(IdUtils.getUID()); - } - SysOrg sysOrg = new SysOrg(main.getId(), main.getName(),16); - orgRepo.save(sysOrg); - groupRepo.save(main); - return main.getId(); - } - - - public String update(SysOrgGroup main) { - main.setUptim(new Date()); - SysOrg sysOrg = new SysOrg(main.getId(), main.getName(),16); - orgRepo.save(sysOrg); - groupRepo.save(main); - return main.getId(); - } - - public int delete(String[] ids) { - for (String id : ids) { - groupRepo.deleteById(id); - orgRepo.deleteById(id); - } - return ids.length; - } - - - public List findAll(String name) { - List list; - if (StrUtil.isNotBlank(name)) { - list = groupRepo.findByNameLikeOrderByOrnum("%" + name + "%"); - } else { - list = groupRepo.findByOrderByOrnum(); - } - return list; - } - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private SysOrgGroupRepo groupRepo; - - @Autowired - private SysOrgRepo orgRepo; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPost.java b/vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPost.java deleted file mode 100644 index 0d3ee23..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPost.java +++ /dev/null @@ -1,70 +0,0 @@ -package vben.core.module.sys.org.post; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import vben.core.module.sys.org.root.SysOrg; -import lombok.Data; - -import javax.persistence.*; -import java.util.Date; -import java.util.List; - -@Entity -@Data -//@Table(indexes = {@Index(columnList = "tier",unique = true), @Index(columnList = "avtag")}) -@Table(indexes = {@Index(columnList = "avtag")}) -@ApiModel("组织架构岗位") -public class SysOrgPost{ - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("名称") - private String name; - - @Transient - @ApiModelProperty("部门ID") - private String depid; - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "depid") - @ApiModelProperty("部门") - private SysOrg dept; - - @Column(length = 1000) - @ApiModelProperty("层级") - private String tier; - - @ApiModelProperty("备注") - private String notes; - - @ApiModelProperty("排序号") - private Integer ornum; - - @ApiModelProperty("可用标记") - private Boolean avtag; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim = new Date(); - - @ApiModelProperty("更新时间") - private Date uptim; - - @Column(length = 1000) - @ApiModelProperty("ldap层级名称") - private String ldnam; - - @ManyToMany - @JoinTable(name = "sys_org_post_org", joinColumns = {@JoinColumn(name = "pid")}, - inverseJoinColumns = {@JoinColumn(name = "oid")}) - @ApiModelProperty("员工列表") - private List users; - - @Column(length = 32) - @ApiModelProperty("标签") - private String label;//主要用于区分组织架构分类,ABC为系统内置组织架构 - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPostApi.java b/vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPostApi.java deleted file mode 100644 index 3177640..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPostApi.java +++ /dev/null @@ -1,56 +0,0 @@ -package vben.core.module.sys.org.post; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.api.R; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("sys/org/post") -@Api(tags = {"组织架构-岗位管理"}) -public class SysOrgPostApi { - - private String table = "sys_org_post"; - - @GetMapping - @ApiOperation("查询岗位分页") - public R get(String depid, String name) { - Sqler sqler = new Sqler(table); - sqler.addEqual("t.depid", depid); - sqler.addLike("t.name", name); - sqler.addDescOrder("t.crtim"); - sqler.addSelect("t.crtim,t.uptim,t.depid,t.notes"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询岗位详情") - public R getOne(@PathVariable String id) { - SysOrgPost main = service.findById(id); - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增岗位") - public R post(@RequestBody SysOrgPost main) throws InterruptedException { - return R.ok(service.insert(main)); - } - - @PutMapping - @ApiOperation("修改岗位") - public R put(@RequestBody SysOrgPost main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除岗位") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private SysOrgPostService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPostRepo.java b/vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPostRepo.java deleted file mode 100644 index a230c5d..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPostRepo.java +++ /dev/null @@ -1,10 +0,0 @@ -package vben.core.module.sys.org.post; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysOrgPostRepo extends JpaRepository { - - - -} - diff --git a/vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPostService.java b/vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPostService.java deleted file mode 100644 index 087ace2..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/post/SysOrgPostService.java +++ /dev/null @@ -1,80 +0,0 @@ -package vben.core.module.sys.org.post; - -import cn.hutool.core.util.StrUtil; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.common.mvc.api.PageData; -import vben.core.module.sys.org.root.SysOrgRepo; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; - -import java.util.Date; - -@Service -@Transactional(rollbackFor = Exception.class) -public class SysOrgPostService { - - public PageData findPageData(Sqler sqler) { - return jdbcDao.findPageData(sqler); - } - - - public String insert(SysOrgPost main) { - if (main.getId() == null || "".equals(main.getId())) { - main.setId(IdUtils.getUID()); - } - if (main.getDept() == null || StrUtil.isBlank(main.getDept().getId())) { - main.setTier("x" + main.getId() + "x"); - } else { - String tier = jdbcDao.findOneString("select tier from sys_org_dept where id=?", main.getDept().getId()); - main.setTier(tier + main.getId() + "x"); - } - SysOrg sysOrg = new SysOrg(main.getId(), main.getName(),4); - orgRepo.save(sysOrg); - postRepo.save(main); - return main.getId(); - } - - public String update(SysOrgPost main) { - main.setUptim(new Date()); - SysOrg sysOrg = new SysOrg(main.getId(), main.getName(),4); - if (main.getDept() == null || StrUtil.isBlank(main.getDept().getId())) { - main.setTier("x" + main.getId() + "x"); - } else { - String tier = jdbcDao.findOneString("select tier from sys_org_dept where id=?", main.getDept().getId()); - main.setTier(tier + main.getId() + "x"); - } - SysOrgPost backPost = postRepo.save(main); - orgRepo.save(sysOrg); - return backPost.getId(); - } - - public int delete(String[] ids) { - for (String id : ids) { - postRepo.deleteById(id); - orgRepo.deleteById(id); - } - return ids.length; - } - - - @Transactional(readOnly = true) - public SysOrgPost findById(String id) { - return postRepo.findById(id).get(); - } - - @Autowired - private JdbcDao jdbcDao; - - - @Autowired - private SysOrgRepo orgRepo; - - @Autowired - private SysOrgPostRepo postRepo; - - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/rece/SysOrgRece.java b/vben-core/src/main/java/vben/core/module/sys/org/rece/SysOrgRece.java deleted file mode 100644 index 0c8391c..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/rece/SysOrgRece.java +++ /dev/null @@ -1,32 +0,0 @@ -package vben.core.module.sys.org.rece; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.*; -import java.util.Date; - -@Entity -@Data -@Table(indexes = {@Index(columnList = "useid"),@Index(columnList = "orgid")}) -@ApiModel("组织架构最近访问记录") -public class SysOrgRece { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("用户ID") - private String useid; - - @Column(length = 32) - @ApiModelProperty("最近使用的组织架构ID") - private String orgid; - - @Column - @ApiModelProperty("最近使用时间") - private Date uptim = new Date(); -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/rece/SysOrgReceRepo.java b/vben-core/src/main/java/vben/core/module/sys/org/rece/SysOrgReceRepo.java deleted file mode 100644 index b251d1a..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/rece/SysOrgReceRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.core.module.sys.org.rece; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysOrgReceRepo extends JpaRepository { - - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRole.java b/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRole.java deleted file mode 100644 index 2aee9ec..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRole.java +++ /dev/null @@ -1,45 +0,0 @@ -package vben.core.module.sys.org.role; - -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Transient; - -//层级角色 -@Data -@Entity -public class SysOrgRole { - @Id - @Column(length = 36) - private String id;//主键 - - @Column(length = 64) - private String name;//角色名称 - - private Integer ornum;//排序号 - - private String notes;//备注 - - @Transient - private String treid;//角色树ID - - public SysOrgRole() { - } - - public SysOrgRole(String id) { - this.id = id; - } - - public SysOrgRole(String id, String name) { - this.id = id; - this.name = name; - } - - public SysOrgRole(String id, String name, Integer ornum) { - this.id = id; - this.name = name; - this.ornum = ornum; - } -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNode.java b/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNode.java deleted file mode 100644 index 6d62167..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNode.java +++ /dev/null @@ -1,64 +0,0 @@ -package vben.core.module.sys.org.role; - -import lombok.Data; -import vben.core.module.sys.org.root.SysOrg; - -import javax.persistence.*; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -//层级节点 -@Entity -@Data -public class SysOrgRoleNode { - - @Id - @Column(length = 32) - private String id;//ID - - @Column(length = 100) - private String name;//名称 - - @Transient - private List children = new ArrayList<>(); //行项目 - - @Transient - private String pid;//父ID - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "pid") - private SysOrgRoleNode parent;//父元素 - -// private Integer tieid;//1为机构,2为部门,4为岗位,8为用户,16为常用群组,32为角色线 - - private String treid;//角色树id - - @Column(length = 1000) - private String tier;//层级 - - private String notes;//备注 - - private Integer ornum;//排序号 - - @Column(updatable = false) - private Date crtim = new Date();//创建时间 - - private Date uptim;//更新时间 - - private Boolean avtag;//可用标记 - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "memid") - private SysOrg member; - - @Transient - private String memid;//父ID - - public SysOrgRoleNode() { - } - - public SysOrgRoleNode(String id) { - this.id = id; - } -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNodeApi.java b/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNodeApi.java deleted file mode 100644 index 35af6a0..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNodeApi.java +++ /dev/null @@ -1,141 +0,0 @@ -package vben.core.module.sys.org.role; - -import cn.hutool.core.util.StrUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.PageData; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.TreeMovePo; -import vben.core.common.mvc.pojo.Ztree; -import vben.core.common.utils.lang.TreeUtils; - -import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.List; - -@RestController -@RequestMapping("sys/org/rnode") -public class SysOrgRoleNodeApi { - - private String table = "sys_org_role_node"; - - @GetMapping - public R get(String treid,String name, String pid, String notes) { - if(StrUtil.isBlank(treid)){ - return R.ok(new PageData(0, new ArrayList<>())); - } - Sqler sqler = new Sqler(table); - if (StrUtil.isNotBlank(name)) { - sqler.addLike("t.name" , name); - } else { - if ("".equals(pid)) { - sqler.addWhere("t.pid is null"); - } else if (StrUtil.isNotBlank(pid)) { - sqler.addEqual("t.pid" , pid); - } - } - sqler.addLike("t.notes" , notes); - sqler.addWhere("t.avtag=1"); - sqler.addOrder("t.ornum"); - sqler.addEqual("t.treid",treid); - sqler.addSelect("t.ornum,t.notes,t.pid,t.crtim,t.uptim"); - sqler.addLeftJoin("o.name memna","sys_org o","o.id=t.memid"); - return R.ok(jdbcDao.findPageData(sqler)); - } - - //查询层级树 - @GetMapping("treea") - public R getTreea(String treid) { - Sqler sqler = new Sqler("sys_org_role_node"); - sqler.addSelect("t.pid"); - sqler.addEqual("t.treid", treid); - sqler.addOrder("t.ornum"); - sqler.addWhere("t.avtag=1"); - sqler.addLeftJoin("o.name type","sys_org o","o.id=t.memid"); - -// List list = jdbcDao.findTreeList(sqler); - List ztreeList = jdbcDao.getTp().query(sqler.getSql(),new Object[]{treid},new BeanPropertyRowMapper<>(Ztree.class)); - for (Ztree ztree : ztreeList) { - if(StrUtil.isBlank(ztree.getName())){ - ztree.setName(ztree.getType()); - }else{ - if(StrUtil.isNotBlank(ztree.getType())){ - ztree.setName(ztree.getName()+"("+ztree.getType()+")"); - } - } - } - List list= TreeUtils.build(ztreeList); - return R.ok(list); - } - - //查询层级树 - @GetMapping("tree") - public R getTree(String name,String treid) { - Sqler sqler = new Sqler("sys_org_role_node"); - sqler.addSelect("t.pid"); - sqler.addLike("t.name", name); - sqler.addEqual("t.treid", treid); - sqler.addOrder("t.ornum"); - sqler.addWhere("t.avtag=1"); - List list = jdbcDao.findTreeList(sqler); - return R.ok(list); - } - - //排除了自己 -// @GetMapping("listn") -// public R listn(String name, String id) { -// Sqler sqler = new Sqler(table); -// sqler.addLike("t.name", name); -// sqler.addWhere("t.avtag=1"); -// sqler.addOrder("t.ornum"); -// sqler.addSelect("t.pid"); -// return R.ok(service.findWithoutItself(sqler, id)); -// } - - @GetMapping("one/{id}") - public R getOne(@PathVariable String id, HttpServletRequest request) { - SysOrgRoleNode main = service.findById(id); - return R.ok(main); - } - - @PostMapping - public R post(@RequestBody SysOrgRoleNode main) { - main.setOrnum(service.getCount(main.getPid(),main.getTreid())+1); - if(StrUtil.isNotBlank(main.getPid())){ - main.setParent(new SysOrgRoleNode(main.getPid())); - } - service.insert(main); - return R.ok(main.getId()); - } - - @PutMapping - public R put(@RequestBody SysOrgRoleNode main) throws Exception { - if(StrUtil.isNotBlank(main.getPid())){ - main.setParent(new SysOrgRoleNode(main.getPid())); - } - service.update(main); - return R.ok(main.getId()); - } - - @DeleteMapping("{ids}") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @PostMapping("move") - public R move(@RequestBody TreeMovePo po) throws Exception { - service.move(po); - return R.ok(); - } - - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private SysOrgRoleNodeService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNodeRepo.java b/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNodeRepo.java deleted file mode 100644 index d9da442..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNodeRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.core.module.sys.org.role; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysOrgRoleNodeRepo extends JpaRepository { - - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNodeService.java b/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNodeService.java deleted file mode 100644 index bc567e6..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleNodeService.java +++ /dev/null @@ -1,306 +0,0 @@ -package vben.core.module.sys.org.role; - -import cn.hutool.core.util.StrUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.mvc.api.PageData; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.ZidOrnum; -import vben.core.common.mvc.pojo.TreeMovePo; -import vben.core.common.mvc.pojo.ZidName; -import vben.core.common.utils.lang.IdUtils; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -@Service -@Transactional(rollbackFor = Exception.class) -public class SysOrgRoleNodeService { - - @Transactional(readOnly = true) - public SysOrgRoleNode findById(String id) { - return repo.findById(id).get(); - } - - public SysOrgRoleNode insert(SysOrgRoleNode main) { - if (main.getId() == null || "".equals(main.getId())) { - main.setId(IdUtils.getUID()); - } - if (main.getParent() == null || StrUtil.isBlank(main.getParent().getId())) { - main.setTier("x" + main.getId() + "x"); - } else { - String tier = jdbcDao.findOneString("select tier from sys_org_role_node where id=?", main.getParent().getId()); - main.setTier(tier + main.getId() + "x"); - } - return repo.save(main); - } - - - public SysOrgRoleNode update(SysOrgRoleNode main) throws Exception { - main.setUptim(new Date()); - if (main.getParent() == null || StrUtil.isBlank(main.getParent().getId())) { - main.setTier("x" + main.getId() + "x"); - } else { - String tier = jdbcDao.findOneString("select tier from sys_org_role_node where id=?", main.getParent().getId()); - main.setTier(tier + main.getId() + "x"); - String[] arr = tier.split("x"); - for (String str : arr) { - if (main.getId().equals(str)) { - throw new Exception("父层级不能为自己或者自己的子层级"); - } - } - } - SysOrgRoleNode backTier = repo.save(main); - String oldTier = jdbcDao.findOneString("select tier from sys_org_role_node where id=?", main.getId()); - if(!oldTier.equals(main.getTier())){ - dealTier(oldTier, main.getTier(), main.getId()); - } - return backTier; - } - - public int delete(String[] ids) { - for (String str : ids) { - repo.deleteById(str); - } - return ids.length; - } - - private void dealTier(String oldTier, String newTier, String id) { - String sql = "select id,tier as name from sys_org_role_node where tier like ? and id<>?"; - List list = jdbcDao.findIdNameList(sql, oldTier + "%", id); - String updateSql = "update sys_org_role_node set tier=? where id=?"; - List updateList = new ArrayList(); - batchReady(oldTier, newTier, list, updateList); - jdbcDao.batch(updateSql, updateList); - } - - - private void batchReady(String oldTier, String newTier, List list, List updateList) { - for (ZidName ztwo : list) { - Object[] arr = new Object[2]; - arr[1] = ztwo.getId(); - arr[0] = ztwo.getName().replace(oldTier, newTier); - updateList.add(arr); - } - } - - public List findAll(Sqler sqler) { - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), new BeanPropertyRowMapper<>(SysOrgRoleNode.class)); - return list; - } - - public PageData findPageData(Sqler sqler) { - return jdbcDao.findPageData(sqler); - } - - public List findTree(Sqler sqler) { - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), new BeanPropertyRowMapper<>(SysOrgRoleNode.class)); - return buildByRecursive(list); - } - - //使用递归方法建树 - private List buildByRecursive(List nodes) { - List list = new ArrayList<>(); - for (SysOrgRoleNode node : nodes) { - if (node.getPid() == null) { - list.add(findChildrenByTier(node, nodes)); - } else { - boolean flag = false; - for (SysOrgRoleNode node2 : nodes) { - if (node.getPid().equals(node2.getId())) { - flag = true; - break; - } - } - if (!flag) { - list.add(findChildrenByTier(node, nodes)); - } - } - } - return list; - } - - //递归查找子节点 - private SysOrgRoleNode findChildrenByTier(SysOrgRoleNode node, List nodes) { - for (SysOrgRoleNode item : nodes) { - if (node.getId().equals(item.getPid())) { - if (node.getChildren() == null) { - node.setChildren(new ArrayList<>()); - } - node.getChildren().add(findChildrenByTier(item, nodes)); - } - } - return node; - } - - -// public List findWithoutItself(Sqler sqler, String id) { -// List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), new BeanPropertyRowMapper<>(SysOrgRoleTree.class)); -// return buildByRecursiveWithoutItself(list, id); -// } - - //使用递归方法建树不包含自己 -// private List buildByRecursiveWithoutItself(List nodes, String id) { -// List list = new ArrayList<>(); -// for (SysOrgRoleTree node : nodes) { -// if (node.getPid() == null && !node.getId().equals(id)) { -// list.add(findChildrenByTierWithoutItself(node, nodes, id)); -// } else { -// boolean flag = false; -// for (SysOrgRoleTree node2 : nodes) { -// if (node.getPid() != null && node.getPid().equals(node2.getId())) { -// flag = true; -// break; -// } -// } -// if (!flag && !node.getId().equals(id)) { -// list.add(findChildrenByTierWithoutItself(node, nodes, id)); -// } -// } -// } -// return list; -// } - - //递归查找子节点不包含自己 -// private SysOrgRoleTree findChildrenByTierWithoutItself(SysOrgRoleTree node, List nodes, String id) { -// for (SysOrgRoleTree item : nodes) { -// if (node.getId().equals(item.getPid()) && (!item.getId().equals(id))) { -// if (node.getChildren() == null) { -// node.setChildren(new ArrayList<>()); -// } -// node.getChildren().add(findChildrenByTierWithoutItself(item, nodes, id)); -// } -// } -// return node; -// } - - public Integer getCount(String pid,String treid){ - if(StrUtil.isNotBlank(pid)){ - String countSql="select count(1) from sys_org_role_node where pid=?"; - Integer count = jdbcDao.getTp().queryForObject(countSql, new Object[]{pid}, Integer.class); - if(count==null){ - count=0; - } - return count; - }else{ - String countSql="select count(1) from sys_org_role_node where pid is null and treid=?"; - Integer count = jdbcDao.getTp().queryForObject(countSql,new Object[]{treid}, Integer.class); - if(count==null){ - count=0; - } - return count; - } - } - - - public void move(TreeMovePo po) throws Exception { - SysOrgRoleNode dragDept= repo.findById(po.getDraid()).get(); - if(dragDept.getParent()!=null){ - dragDept.setPid(dragDept.getParent().getId()); - } - - List list2; - - if(StrUtil.isNotBlank(dragDept.getPid())){ - String sql = "select id,ornum from sys_org_role_node where ornum>? and pid=?"; - list2 = jdbcDao.getTp().query(sql,new Object[]{dragDept.getOrnum(),dragDept.getPid()}, - new BeanPropertyRowMapper<>(ZidOrnum.class)); - }else{ - String sql = "select id,ornum from sys_org_role_node where ornum>? and treid=? and pid is null"; - list2 = jdbcDao.getTp().query(sql,new Object[]{dragDept.getOrnum(),dragDept.getTreid()}, - new BeanPropertyRowMapper<>(ZidOrnum.class)); - } - - String updateSql = "update sys_org_role_node set ornum=? where id=?"; - List updateList = new ArrayList<>(); - for (ZidOrnum zidOrnum : list2) { - Object[] arr=new Object[2]; - arr[0]=zidOrnum.getOrnum()-1; - arr[1]=zidOrnum.getId(); - updateList.add(arr); - } - jdbcDao.batch(updateSql, updateList); - if ("inner".equals(po.getType())) - { - dragDept.setPid(po.getDroid()); - dragDept.setParent(new SysOrgRoleNode(dragDept.getPid())); - Integer count=getCount(po.getDroid(),dragDept.getTreid()); - dragDept.setOrnum(count+1); - } - else if ("before".equals(po.getType())) - { - SysOrgRoleNode dropDept= repo.findById(po.getDroid()).get(); - if(dropDept.getParent()!=null){ - dropDept.setPid(dropDept.getParent().getId()); - dragDept.setPid(dropDept.getPid());; - dragDept.setParent(dropDept.getParent());; - }else{ - dragDept.setPid(null); - dragDept.setParent(null); - } - dragDept.setOrnum(dropDept.getOrnum()); - - List list3; - if(StrUtil.isNotBlank(dropDept.getPid())){ - String sql3 = "select id,ornum from sys_org_role_node where ornum>? and pid=?"; - list3 = jdbcDao.getTp().query(sql3,new Object[]{dropDept.getOrnum(),dropDept.getPid()}, - new BeanPropertyRowMapper<>(ZidOrnum.class)); - }else{ - String sql3 = "select id,ornum from sys_org_role_node where ornum>? and treid=? and pid is null"; - list3 = jdbcDao.getTp().query(sql3,new Object[]{dropDept.getOrnum(),dropDept.getTreid()}, - new BeanPropertyRowMapper<>(ZidOrnum.class)); - } - - String updateSql3 = "update sys_org_role_node set ornum=? where id=?"; - List updateList3 = new ArrayList<>(); - for (ZidOrnum zidOrnum : list3) { - Object[] arr=new Object[2]; - arr[0]=zidOrnum.getOrnum()+1; - arr[1]=zidOrnum.getId(); - updateList3.add(arr); - } - jdbcDao.batch(updateSql3, updateList3); - dropDept.setOrnum(dropDept.getOrnum()+1); - String updateSql4 = "update sys_org_role_node set ornum=? where id=?"; - jdbcDao.update(updateSql4, dropDept.getOrnum(), dropDept.getId()); - } - else if ("after".equals(po.getType())) - { - SysOrgRoleNode dropDept= repo.findById(po.getDroid()).get(); - if(dropDept.getParent()!=null){ - dropDept.setPid(dropDept.getParent().getId()); - } - Integer count = getCount(dropDept.getPid(),dropDept.getTreid()); - if (dragDept.getPid()!=null&&dragDept.getPid().equals(dropDept.getPid())) - { - dragDept.setOrnum(count); - } - else - { - dragDept.setPid(dropDept.getPid()); - if (dragDept.getPid() == null) - { - dragDept.setParent(null); - } - else - { - dragDept.setParent(new SysOrgRoleNode(dragDept.getPid())); - } - dragDept.setOrnum(count+1); - } - } - update(dragDept); - } - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private SysOrgRoleNodeRepo repo; - - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTree.java b/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTree.java deleted file mode 100644 index 0fa384f..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTree.java +++ /dev/null @@ -1,25 +0,0 @@ -package vben.core.module.sys.org.role; - -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; - -import javax.persistence.*; -import java.util.ArrayList; -import java.util.List; - -//层级树 -@Entity -@Getter -@Setter -public class SysOrgRoleTree extends BaseMainEntity { - - private Integer ornum;//排序号 - - @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) - @JoinColumn(name = "treid") - @OrderBy("ornum ASC") - private List roles = new ArrayList<>();//层级角色 - - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTreeApi.java b/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTreeApi.java deleted file mode 100644 index 74a7a92..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTreeApi.java +++ /dev/null @@ -1,65 +0,0 @@ -package vben.core.module.sys.org.role; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; - -@RestController -@RequestMapping("sys/org/rtree") -public class SysOrgRoleTreeApi { - - @GetMapping - public R get(String name) { - Sqler sqler = new Sqler("sys_org_role_tree"); - sqler.addLike("t.name", name); - sqler.addSelect("t.notes,t.ornum"); - sqler.addOrder("t.ornum"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - public R getOne(@PathVariable String id) { - SysOrgRoleTree main = service.findOne(id); - return R.ok(main); - } - - @PostMapping - public R post(@RequestBody SysOrgRoleTree main) { - return R.ok(service.insertx(main)); - } - - @PutMapping - public R put(@RequestBody SysOrgRoleTree main) { - return R.ok(service.updatex(main)); - } - - @DeleteMapping("{ids}") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @GetMapping("calc") - public R calc(String useid, String rolid) { - return R.ok(service.calc(useid, rolid)); - } - - @GetMapping("tlist") - public R getTlist() { - return R.ok(service.findAll()); - } - - @GetMapping("rlist") - public R getRlist(String treid) { - String sql = "select id,name from sys_org_role where treid=?"; - return R.ok(jdbcDao.findMapList(sql, treid)); - } - - @Autowired - private SysOrgRoleTreeService service; - - @Autowired - private JdbcDao jdbcDao; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTreeRepo.java b/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTreeRepo.java deleted file mode 100644 index 09efd11..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTreeRepo.java +++ /dev/null @@ -1,10 +0,0 @@ -package vben.core.module.sys.org.role; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysOrgRoleTreeRepo extends JpaRepository { - - -} - diff --git a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTreeService.java b/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTreeService.java deleted file mode 100644 index 2509c37..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/role/SysOrgRoleTreeService.java +++ /dev/null @@ -1,74 +0,0 @@ -package vben.core.module.sys.org.role; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.service.BaseMainService; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.module.sys.org.root.SysOrgRepo; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -@Service -public class SysOrgRoleTreeService extends BaseMainService { - - public String insertx(SysOrgRoleTree main) { - String id = insert(main); - List list = new ArrayList<>(); - for (SysOrgRole role : main.getRoles()) { - SysOrg sysOrg = new SysOrg(role.getId(), role.getName(), 32); - list.add(sysOrg); - } - orgRepo.saveAll(list); - return id; - } - - public String updatex(SysOrgRoleTree main) { - String id = update(main); - List list = new ArrayList<>(); - for (SysOrgRole role : main.getRoles()) { - SysOrg sysOrg = new SysOrg(role.getId(), role.getName(), 32); - list.add(sysOrg); - } - orgRepo.saveAll(list); - return id; - } - - public SysOrg calc(String useid, String rolid) { - String sql = "select t.tier \"tier\",m.ornum \"ornum\" from sys_org_role_node t " + - "inner join sys_org_role m on m.treid=t.treid where t.memid=? and m.id=?"; - Map map = jdbcDao.findMap(sql, useid, rolid); - if (map == null) { - sql = "select t.tier \"tier\",m.ornum \"ornum\" from sys_org_role_node t " + - "inner join sys_org_role m on m.treid=t.treid " + - "inner join sys_org_user u on u.depid=t.memid where u.id=? and m.id=?"; - map = jdbcDao.findMap(sql, useid, rolid); - if (map == null) { - return null; - } - } - String tier = (String) map.get("tier"); - Integer ornum =(Integer) map.get("ornum"); - String[] idArr = tier.split("x"); - String sql3 = "select o.id,o.name,o.type from sys_org_role_node t inner join sys_org o on o.id=t.memid where t.id=?"; - SysOrg org = jdbcDao.getTp().queryForObject(sql3, - new Object[]{idArr[ornum]}, new BeanPropertyRowMapper<>(SysOrg.class)); - return org; - } - - @Autowired - private SysOrgRepo orgRepo; - - @Autowired - private SysOrgRoleTreeRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} - diff --git a/vben-core/src/main/java/vben/core/module/sys/org/root/SysOrg.java b/vben-core/src/main/java/vben/core/module/sys/org/root/SysOrg.java deleted file mode 100644 index cce740d..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/root/SysOrg.java +++ /dev/null @@ -1,46 +0,0 @@ -package vben.core.module.sys.org.root; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -@Data -@ApiModel("组织架构影子") -public class SysOrg { - @Id - @Column(length = 32) - @ApiModelProperty("ID") - private String id; - - @Column(length = 100) - @ApiModelProperty("名称") - private String name; - - //1为机构,2为部门,4为岗位,8为用户,16为群组,32为角色 - @ApiModelProperty("类型") - private Integer type; - - public SysOrg(String id){ - this.id=id; - } - - public SysOrg(String id, String name) { - this.id = id; - this.name = name; - } - - public SysOrg(String id, String name,Integer type) { - this.id = id; - this.name = name; - this.type = type; - } - - public SysOrg() { - - } -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/root/SysOrgRepo.java b/vben-core/src/main/java/vben/core/module/sys/org/root/SysOrgRepo.java deleted file mode 100644 index f278ec4..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/root/SysOrgRepo.java +++ /dev/null @@ -1,7 +0,0 @@ -package vben.core.module.sys.org.root; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysOrgRepo extends JpaRepository { -} - diff --git a/vben-core/src/main/java/vben/core/module/sys/org/root/UserCacheService.java b/vben-core/src/main/java/vben/core/module/sys/org/root/UserCacheService.java deleted file mode 100644 index 5667f15..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/root/UserCacheService.java +++ /dev/null @@ -1,20 +0,0 @@ -package vben.core.module.sys.org.root; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.mvc.dao.JdbcDao; - -@Service -@Transactional(rollbackFor = Exception.class) -public class UserCacheService { - - public void reset(){ - jdbcDao.update("update sys_org_user set catag = 0"); - jdbcDao.update("update sys_coop_user set catag = 0"); - } - - @Autowired - private JdbcDao jdbcDao; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/user/PacodPo.java b/vben-core/src/main/java/vben/core/module/sys/org/user/PacodPo.java deleted file mode 100644 index 53d7ef5..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/user/PacodPo.java +++ /dev/null @@ -1,12 +0,0 @@ -package vben.core.module.sys.org.user; - -import lombok.Data; - -@Data -public class PacodPo { - - public String id; - - public String pacod; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUser.java b/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUser.java deleted file mode 100644 index ddfe247..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUser.java +++ /dev/null @@ -1,104 +0,0 @@ -package vben.core.module.sys.org.user; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.experimental.Accessors; -import vben.core.module.sys.org.root.SysOrg; - -import javax.persistence.*; -import java.util.Date; - -@Entity -@Data -@Table(indexes = {@Index(columnList = "usnam"),@Index(columnList = "avtag")}) -@ApiModel("组织架构用户") -@Accessors(chain = true) -public class SysOrgUser { - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("名称") - private String name; - - @Column(length = 32) - @ApiModelProperty("昵称") - private String ninam; - - @Transient - @ApiModelProperty("部门ID") - private String depid; - - @Column(length = 32) - @ApiModelProperty("账号类型") - private String type;//可用户区分账号用途 - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "depid") - @ApiModelProperty("部门") - private SysOrg dept; - - @Column(length = 1000) - @ApiModelProperty("层级") - private String tier; - - @Column(length = 200) - @ApiModelProperty("职务") - private String job; - - @Column(length = 32) - @ApiModelProperty("登录名") - private String usnam; - - @Column(length = 64,updatable = false) - @ApiModelProperty("密码") - private String pacod; - - @Column(length = 64) - @ApiModelProperty("邮箱") - private String email; - - @Column(length = 32) - @ApiModelProperty("手机号") - private String monum; - - @ApiModelProperty("排序号") - private Integer ornum; - - @ApiModelProperty("可用标记") - private Boolean avtag; - - @Column(length = 1000) - @ApiModelProperty("ldap层级名称") - private String ldnam; - - @ApiModelProperty("备注") - private String notes; - - @ApiModelProperty("通知阅读记录") - private String relog; - - @ApiModelProperty("缓存标记") - private Boolean catag = false; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim = new Date(); - - @ApiModelProperty("更新时间") - private Date uptim; - - @Column(length = 32) - @ApiModelProperty("标签") - private String label;//主要用于区分组织架构分类,ABC为系统内置组织架构 - - @ApiModelProperty("原始头像路径") - private String avsrc; - - @ApiModelProperty("裁剪头像数据") - private String avimg; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserApi.java b/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserApi.java deleted file mode 100644 index 1937712..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserApi.java +++ /dev/null @@ -1,72 +0,0 @@ -package vben.core.module.sys.org.user; - -import cn.hutool.core.util.StrUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import javax.servlet.http.HttpServletRequest; - -@RestController -@RequestMapping("sys/org/user") -@Api(tags = {"组织架构-用户管理"}) -public class SysOrgUserApi { - - private String table = "sys_org_user"; - - @GetMapping - @ApiOperation("查询用户分页") - public R get(String depid, String name, String usnam, String ninam, String monum) { - Sqler sqler = new Sqler(table); - if (StrUtil.isNotBlank(name)|| StrUtil.isNotBlank(usnam)|| StrUtil.isNotBlank(ninam)|| StrUtil.isNotBlank(monum)) { - sqler.addLike("t.name", name); - sqler.addLike("t.usnam", usnam); - sqler.addLike("t.ninam", ninam); - sqler.addLike("t.monum", monum); - } else if (StrUtil.isNotBlank(depid)){ - sqler.addEqual("t.depid", depid); - } - sqler.addSelect("t.crtim,t.uptim,t.depid,t.notes"); - sqler.addOrder("t.ornum"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询用户详情") - public R getOne(@PathVariable String id, HttpServletRequest request) { - SysOrgUser main = service.findById(id); - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增用户") - public R post(@RequestBody SysOrgUser main) { - return R.ok(service.insert(main)); - } - - @PutMapping - @ApiOperation("修改用户") - public R put(@RequestBody SysOrgUser main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除用户") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @PostMapping("pacod") - @ApiOperation("修改密码") - public R pacod(@RequestBody PacodPo po) { - service.pacod(po); - return R.ok(); - } - - @Autowired - private SysOrgUserService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserCache.java b/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserCache.java deleted file mode 100644 index 409a739..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserCache.java +++ /dev/null @@ -1,29 +0,0 @@ -package vben.core.module.sys.org.user; - -import lombok.Data; - -import javax.persistence.*; - -@Entity -@Data -public class SysOrgUserCache { - @Id - @Column(length = 32) - private String id; - - @Column(length = 2000) - private String conds;//组织架构集 - - @Column(length = 2000) - private String portals;//前台门户缓存 - - @Column(length = 2000) - private String perms;//后台所有权限集 - - @Lob - private String menus;//前台菜单缓存 - - @Lob - private String btns;//前台按钮缓存 - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserRepo.java b/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserRepo.java deleted file mode 100644 index a9f7b08..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserRepo.java +++ /dev/null @@ -1,12 +0,0 @@ -package vben.core.module.sys.org.user; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysOrgUserRepo extends JpaRepository { - - SysOrgUser findByUsnam(String usnam); - - SysOrgUser findByMonum(String monum); - -} - diff --git a/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserService.java b/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserService.java deleted file mode 100644 index c865bdf..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/org/user/SysOrgUserService.java +++ /dev/null @@ -1,155 +0,0 @@ -package vben.core.module.sys.org.user; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.RandomUtil; -import cn.hutool.core.util.StrUtil; -import vben.core.common.exception.base.BaseException; -import vben.core.common.utils.lang.SecureUtils; -import vben.core.framework.security.pojo.RegisterVo; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.module.sys.org.root.SysOrgRepo; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.api.PageData; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -@Service -@Transactional(rollbackFor = Exception.class) -public class SysOrgUserService { - - - @Transactional(readOnly = true) - public PageData findPageData(Sqler sqler) { - return jdbcDao.findPageData(sqler); - } - - public void register(RegisterVo authVo) { - String phone = authVo.getPhone(); - String password = authVo.getPassword(); - String nickName = authVo.getNickName(); - String msg = "此手机号码已注册过,请勿重复注册"; - // 验证手机号是否注册过 - if (userRepo.existsById(phone)) { - throw new BaseException(msg); - } - String salt = RandomUtil.randomString(4); - String chatNo = IdUtil.simpleUUID(); - SysOrgUser user = new SysOrgUser() - .setId(IdUtils.getUID()) - .setName(nickName) - .setUsnam(nickName) -// .setChnum(chatNo) -// .setGender(GenderEnum.MALE) -// .setPortrait(ApiConstant.DEFAULT_PORTRAIT) - .setMonum(phone) -// .setPacod(password) - .setPacod(SecureUtils.passwordEncrypt(password)) - .setAvtag(true) - .setCrtim(DateUtil.date()); - try { - userRepo.save(user); - SysOrg sysOrg=new SysOrg(user.getId(),user.getName()); - sysOrg.setType(8); - orgRepo.save(sysOrg); - } catch (org.springframework.dao.DuplicateKeyException e) { - throw new BaseException(msg); - } - } - - - - public void insertAll(List list) { - List orgList = new ArrayList<>(); - for (SysOrgUser main : list) { - if (main.getId() == null || "".equals(main.getId())) { - main.setId(IdUtils.getUID()); - } - if(StrUtil.isBlank(main.getTier())){ - if (main.getDept() == null || StrUtil.isBlank(main.getDept().getId())) { - main.setTier("x" + main.getId() + "x"); - } else { - String tier = jdbcDao.findOneString("select tier from sys_org_dept where id=?", main.getDept().getId()); - main.setTier(tier + main.getId() + "x"); - } - } - main.setPacod(SecureUtils.passwordEncrypt(main.getPacod())); - SysOrg sysOrg = new SysOrg(main.getId(), main.getName(),8); - orgList.add(sysOrg); - } - orgRepo.saveAll(orgList); - userRepo.saveAll(list); - } - - - public String insert(SysOrgUser main) { - if (main.getId() == null || "".equals(main.getId())) { - main.setId(IdUtils.getUID()); - } - if(StrUtil.isBlank(main.getTier())) { - if (main.getDept() == null || StrUtil.isBlank(main.getDept().getId())) { - main.setTier("x" + main.getId() + "x"); - } else { - String tier = jdbcDao.findOneString("select tier from sys_org_dept where id=?", main.getDept().getId()); - main.setTier(tier + main.getId() + "x"); - } - } - main.setPacod(SecureUtils.passwordEncrypt(main.getPacod())); - SysOrg sysOrg = new SysOrg(main.getId(), main.getName(),8); - orgRepo.save(sysOrg); - userRepo.save(main); - return main.getId(); - } - - - public String update(SysOrgUser main) { - main.setUptim(new Date()); - SysOrg sysOrg = new SysOrg(main.getId(), main.getName(),8); - if (main.getDept() == null || StrUtil.isBlank(main.getDept().getId())) { - main.setTier("x" + main.getId() + "x"); - } else { - String tier = jdbcDao.findOneString("select tier from sys_org_dept where id=?", main.getDept().getId()); - main.setTier(tier + main.getId() + "x"); - } - userRepo.save(main); - orgRepo.save(sysOrg); - return main.getId(); - } - - public int delete(String[] ids) { - for (String id : ids) { - userRepo.deleteById(id); - orgRepo.deleteById(id); - } - return ids.length; - } - - public void pacod(PacodPo po) { - po.setPacod(SecureUtils.passwordEncrypt(po.getPacod())); - String sql="update sys_org_user set pacod=? where id=?"; - jdbcDao.update(sql,po.getPacod(),po.getId()); - } - - @Transactional(readOnly = true) - public SysOrgUser findById(String id) { - return userRepo.findById(id).get(); - } - - - @Autowired - private SysOrgRepo orgRepo; - - @Autowired - private SysOrgUserRepo userRepo; - - @Autowired - private JdbcDao jdbcDao; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMain.java b/vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMain.java deleted file mode 100644 index 7ed29f0..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMain.java +++ /dev/null @@ -1,24 +0,0 @@ -package vben.core.module.sys.portal.main; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; - -import javax.persistence.*; - -@Entity -@Getter -@Setter -@ApiModel("门户信息") -public class SysPortalMain extends BaseMainEntity { - - @ApiModelProperty("排序号") - private Integer ornum; - -// @ManyToMany -// @JoinTable(name = "sys_portal_viewer", joinColumns = {@JoinColumn(name = "mid")}, -// inverseJoinColumns = {@JoinColumn(name = "oid")}) -// private List viewers; -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMainApi.java b/vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMainApi.java deleted file mode 100644 index 683eda5..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMainApi.java +++ /dev/null @@ -1,60 +0,0 @@ -package vben.core.module.sys.portal.main; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; - -@RestController -@RequestMapping("sys/portal/main") -@Api(tags = {"门户管理-门户信息"}) -public class SysPortalMainApi { - - @GetMapping - @ApiOperation("查询门户分页") - public R get(String name) { - Sqler sqler = new Sqler("sys_portal_main"); - sqler.addLike("t.name" , name); - sqler.addOrder("t.ornum"); - sqler.addSelect("t.notes"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("list") - @ApiOperation("查询门户列表") - public R getList() { - return R.ok(service.findAll()); - } - - - @GetMapping("one/{id}") - @ApiOperation("查询门户详情") - public R getOne(@PathVariable String id) { - SysPortalMain main = service.findOne(id); - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增门户") - public R post(@RequestBody SysPortalMain main) { - return R.ok(service.insert(main)); - } - - @PutMapping - @ApiOperation("修改门户") - public R put(@RequestBody SysPortalMain main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除门户") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private SysPortalMainService service; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMainRepo.java b/vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMainRepo.java deleted file mode 100644 index b614d87..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMainRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.core.module.sys.portal.main; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysPortalMainRepo extends JpaRepository { - - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMainService.java b/vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMainService.java deleted file mode 100644 index 4fd67ca..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/portal/main/SysPortalMainService.java +++ /dev/null @@ -1,22 +0,0 @@ -package vben.core.module.sys.portal.main; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.service.BaseMainService; - -import javax.annotation.PostConstruct; - -@Service -public class SysPortalMainService extends BaseMainService { - - - //----------bean注入------------ - @Autowired - private SysPortalMainRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenu.java b/vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenu.java deleted file mode 100644 index 6f7735b..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenu.java +++ /dev/null @@ -1,104 +0,0 @@ -package vben.core.module.sys.portal.menu; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Transient; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -@Entity -@Data -@ApiModel("门户菜单") -public class SysPortalMenu { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("父ID") - private String pid; - - @Transient - @ApiModelProperty("父菜单名称") - private String pname; - - @Column(length = 32) - @ApiModelProperty("门户id") - private String porid; - - @Transient - @ApiModelProperty("子菜单列表") - private List children = new ArrayList<>(); - - @Column(length = 32) - @ApiModelProperty("类型 C:目录,M:菜单,B:按钮") - private String type; - - @Column(length = 64) - @ApiModelProperty("名称") - private String name; - - @Column(length = 32) - @ApiModelProperty("代码") - private String code; - - @ApiModelProperty("排序号") - private Integer ornum; - - @Column(length = 64) - @ApiModelProperty("图标") - private String icon; - - @Column(length = 64) - @ApiModelProperty("路由地址") - private String path; - - @Column(length = 64) - @ApiModelProperty("组件路径") - private String comp; - - @Column(length = 64) - @ApiModelProperty("权限标识") - private String perm; - - @Column(length = 64) - @ApiModelProperty("跳转") - private String redirect; - - @ApiModelProperty("外链标记") - private Boolean extag; - - @ApiModelProperty("iframe标记") - private Boolean iftag; - - @ApiModelProperty("缓存标记") - private Boolean catag; - - @ApiModelProperty("是否显示") - private Boolean shtag; - - @ApiModelProperty("是否可用") - private Boolean avtag; - - @ApiModelProperty("是否固定") - private Boolean aftag=false; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim = new Date(); - - @ApiModelProperty("更新时间") - private Date uptim; - - @ApiModelProperty("API接口") - private String api; - -} \ No newline at end of file diff --git a/vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenuApi.java b/vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenuApi.java deleted file mode 100644 index 1e4f80a..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenuApi.java +++ /dev/null @@ -1,75 +0,0 @@ -package vben.core.module.sys.portal.menu; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; - -import javax.servlet.http.HttpServletRequest; -import java.util.List; - -@RestController -@RequestMapping("sys/portal/menu") -@Api(tags = {"门户管理-菜单信息"}) -public class SysPortalMenuApi { - - @GetMapping("tree") - @ApiOperation("查询菜单树") - public R getTree(String name, String porid) { - Sqler sqler = new Sqler("sys_portal_menu"); - sqler.addLike("t.name", name); - sqler.addOrder("t.ornum"); - sqler.addWhere("t.avtag=1"); - sqler.addSelect("t.type,t.crtim,t.uptim,t.pid,t.shtag,t.path,t.comp"); - sqler.addEqual("t.porid", porid); - List list = service.findTree(sqler); - return R.ok(list); - } - - @GetMapping("listn") - @ApiOperation("查询除自身外的菜单树") - public R getListn( String id) { - List list = service.findWithoutItself(id); - return R.ok(list); - } - - @GetMapping("one/{id}") - @ApiOperation("查询菜单详情") - public R id(@PathVariable String id, HttpServletRequest request) { - SysPortalMenu main = service.findById(id); - if(main.getPid()!=null){ - SysPortalMenu parent = service.findById(main.getPid()); - main.setPname(parent.getName()); - } - return R.ok(main); - } - - - @PostMapping - @ApiOperation("新增菜单") - public R post(@RequestBody SysPortalMenu main) { - System.out.println("插入"); - return R.ok(service.insert(main)); - } - - @PutMapping - @ApiOperation("修改菜单") - public R put(@RequestBody SysPortalMenu main) { - System.out.println("修改"); - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除菜单") - public R delete(@PathVariable String[] ids) { - System.out.println(ids); - return R.ok(service.delete(ids)); - } - - @Autowired - private SysPortalMenuService service; - - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenuRepo.java b/vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenuRepo.java deleted file mode 100644 index bd7fb59..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenuRepo.java +++ /dev/null @@ -1,16 +0,0 @@ -package vben.core.module.sys.portal.menu; - -import org.springframework.data.jpa.repository.JpaRepository; - -import java.util.List; - -public interface SysPortalMenuRepo extends JpaRepository { - - List findByNameLikeOrderByOrnum(String name); - - List findByOrderByOrnum(); - - List findByPid(String pid); - -} - diff --git a/vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenuService.java b/vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenuService.java deleted file mode 100644 index 8463975..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/portal/menu/SysPortalMenuService.java +++ /dev/null @@ -1,178 +0,0 @@ -package vben.core.module.sys.portal.menu; - -import cn.hutool.core.util.StrUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.module.sys.org.root.UserCacheService; -import vben.core.common.utils.lang.IdUtils; - -import java.util.*; -import java.util.stream.Collectors; - -@Service -@Transactional(rollbackFor = Exception.class) -public class SysPortalMenuService { - - @Transactional(readOnly = true) - public SysPortalMenu findById(String id) { - - return repo.findById(id).get(); - } - - public String insert(SysPortalMenu main) { - userCacheService.reset(); - if (main.getId() == null || "".equals(main.getId())) { - main.setId(IdUtils.getUID()); - } - repo.save(main); - return main.getId(); - } - - - public SysPortalMenu update(SysPortalMenu main) { - userCacheService.reset(); - return repo.save(main); - } - - public int delete(String[] ids) { - userCacheService.reset(); - Set menuSet = new HashSet<>(); - for (String id : ids) { - menuSet.add(id); - List menuList = repo.findByPid(id); - addChild(menuList, menuSet); - } - for (String str : menuSet) { - repo.deleteById(str); - } - return menuSet.size(); - } - - public void addChild(List menuList, Set menuSet) { - for (SysPortalMenu menu : menuList) { - menuSet.add(menu.getId()); - List menus = repo.findByPid(menu.getId()); - if (menus != null && menus.size() != 0) { - addChild(menus, menuSet); - } - } - } - - public List findTree(Sqler sqler) { - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), new BeanPropertyRowMapper<>(SysPortalMenu.class)); - return buildByRecursive(list); - } - - - public List findAll(String name) { - List list; - if (StrUtil.isNotBlank(name)) { - list = repo.findByNameLikeOrderByOrnum("%" + name + "%"); - } else { - list = repo.findByOrderByOrnum(); - } - return buildByRecursive(list); - } - - - public List findWithoutItself(String id) { - List list = repo.findByOrderByOrnum(); - List menus = buildByRecursiveWithoutItself(list, id); - - return menus; - } - - - //高性能转换,但是要求顶层有pid,这里假设为0 - public static List buildTree(List pidList) { - Map> pidListMap = pidList.stream().collect(Collectors.groupingBy(SysPortalMenu::getPid)); - pidList.stream().forEach(item -> item.setChildren(pidListMap.get(item.getId()))); - //返回结果也改为返回顶层节点的list - return pidListMap.get("0"); - } - - //使用递归方法建树 - private List buildByRecursive(List nodes) { - List list = new ArrayList<>(); - for (SysPortalMenu node : nodes) { - if (node.getPid() == null) { - list.add(findChildrenByTier(node, nodes)); - } else { - boolean flag = false; - for (SysPortalMenu node2 : nodes) { - if (node.getPid().equals(node2.getId())) { - flag = true; - break; - } - } - if (!flag) { - list.add(findChildrenByTier(node, nodes)); - } - } - } - return list; - } - - //递归查找子节点 - private SysPortalMenu findChildrenByTier(SysPortalMenu node, List nodes) { - for (SysPortalMenu item : nodes) { - if (node.getId().equals(item.getPid())) { - if (node.getChildren() == null) { - node.setChildren(new ArrayList<>()); - } - node.getChildren().add(findChildrenByTier(item, nodes)); - } - } - return node; - } - - - //使用递归方法建树不包含自己 - private List buildByRecursiveWithoutItself(List nodes, String id) { - List list = new ArrayList<>(); - for (SysPortalMenu node : nodes) { - if (node.getPid() == null && !node.getId().equals(id)) { - list.add(findChildrenByTierWithoutItself(node, nodes, id)); - } else { - boolean flag = false; - for (SysPortalMenu node2 : nodes) { - if (node.getPid() != null&&node.getPid().equals(node2.getId())) { - flag = true; - break; - } - } - if (!flag && !node.getId().equals(id)) { - list.add(findChildrenByTierWithoutItself(node, nodes, id)); - } - } - } - return list; - } - - //递归查找子节点不包含自己 - private SysPortalMenu findChildrenByTierWithoutItself(SysPortalMenu node, List nodes, String id) { - for (SysPortalMenu item : nodes) { - if (node.getId().equals(item.getPid()) && (!item.getId().equals(id))) { - if (node.getChildren() == null) { - node.setChildren(new ArrayList<>()); - } - node.getChildren().add(findChildrenByTierWithoutItself(item, nodes, id)); - } - } - return node; - } - - - @Autowired - private SysPortalMenuRepo repo; - - @Autowired - private UserCacheService userCacheService; - - @Autowired - private JdbcDao jdbcDao; -} diff --git a/vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRole.java b/vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRole.java deleted file mode 100644 index 7b83e0c..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRole.java +++ /dev/null @@ -1,48 +0,0 @@ -package vben.core.module.sys.portal.role; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.module.sys.portal.menu.SysPortalMenu; - -import javax.persistence.*; -import java.util.ArrayList; -import java.util.List; - -@Entity -@Getter -@Setter -@ApiModel("门户角色") -public class SysPortalRole extends BaseMainEntity -{ - - @Column(length = 32) - @ApiModelProperty("门户ID") - private String porid; - - @Column(length = 32) - @ApiModelProperty("类型") - private String type; - - @Column(length = 32) - @ApiModelProperty("标签") - private String label; - - @ManyToMany - @JoinTable(name = "sys_portal_role_menu", - joinColumns = {@JoinColumn(name = "rid")}, - inverseJoinColumns = {@JoinColumn(name = "mid")}) - @ApiModelProperty("拥有的菜单") - private List menus = new ArrayList<>(); - - @ManyToMany - @JoinTable(name = "sys_portal_role_org", - joinColumns = {@JoinColumn(name = "rid")}, - inverseJoinColumns = {@JoinColumn(name = "oid")}) - @ApiModelProperty("授权的用户") - private List orgs = new ArrayList<>(); - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRoleApi.java b/vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRoleApi.java deleted file mode 100644 index f305f68..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRoleApi.java +++ /dev/null @@ -1,88 +0,0 @@ -package vben.core.module.sys.portal.role; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.module.sys.org.root.UserCacheService; - -@RestController -@RequestMapping("sys/portal/role") -@Api(tags = {"门户管理-门户角色"}) -public class SysPortalRoleApi { - private String table = "sys_portal_role"; - - @GetMapping - @ApiOperation("查询门户角色分页") - public R get(String id, String name) { - Sqler sqler = new Sqler("t.id,t.name", table); - sqler.addLeftJoin("o.name as crman", "sys_org o", "o.id=t.crmid"); - sqler.addLeftJoin("o2.name as upman", "sys_org o2", "o2.id=t.upmid"); - sqler.addSelect("t.crtim,t.uptim,t.notes"); - sqler.addLike("t.name", name); - sqler.addLike("t.id", id); - sqler.addOrder("t.crtim desc"); - return R.ok(jdbcDao.findPageData(sqler)); - } - -// @GetMapping("perms") -// public R getPerms(String id, String type) { -// String allSql = "SELECT r.id as \"id\",r.pid as \"pid\",r.name as \"name\",case when rr.id is null then null else 'true' end as \"checked\" FROM sys_api_main r LEFT JOIN sys_api_role_api rr ON rr.pid=r.id AND rr.id=? where r.cotag = 0 "; -// if ("all".equals(type)) { -// return R.ok(jdbcDao.findMapList(allSql, id)); -// } else { -// allSql += " and r.pid like ?"; -// return R.ok(jdbcDao.findMapList(allSql, id, type + "%")); -// } -// } - - @GetMapping("one/{id}") - @ApiOperation("查询门户角色详情") - public R getOne(@PathVariable String id) { - SysPortalRole main = service.findOne(id); -// main.setPerms(null); - return R.ok(main); - } - - - @PostMapping - @ApiOperation("新增门户角色") - public R post(@RequestBody SysPortalRole main) { - service.insert(main); - userCacheService.reset(); - return R.ok(); - } - - @PutMapping - @ApiOperation("修改门户角色") - public R put(@RequestBody SysPortalRole main) { - service.update(main); - userCacheService.reset(); - return R.ok(); - } - - @PostMapping("flush") - @ApiOperation("刷新用户权限") - public R flush() { - userCacheService.reset(); - return R.ok(); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除门户角色") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private UserCacheService userCacheService; - - @Autowired - private SysPortalRoleService service; -} diff --git a/vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRoleRepo.java b/vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRoleRepo.java deleted file mode 100644 index 7e833c3..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRoleRepo.java +++ /dev/null @@ -1,6 +0,0 @@ -package vben.core.module.sys.portal.role; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysPortalRoleRepo extends JpaRepository { -} diff --git a/vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRoleService.java b/vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRoleService.java deleted file mode 100644 index 7d4a367..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/portal/role/SysPortalRoleService.java +++ /dev/null @@ -1,20 +0,0 @@ -package vben.core.module.sys.portal.role; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.service.BaseMainService; - -import javax.annotation.PostConstruct; - -@Service -public class SysPortalRoleService extends BaseMainService { - - //bean注入------------------------------ - @Autowired - private SysPortalRoleRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } -} diff --git a/vben-core/src/main/java/vben/core/module/sys/todo/done/SysTodoDone.java b/vben-core/src/main/java/vben/core/module/sys/todo/done/SysTodoDone.java deleted file mode 100644 index 3fa587a..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/todo/done/SysTodoDone.java +++ /dev/null @@ -1,35 +0,0 @@ -package vben.core.module.sys.todo.done; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import java.util.Date; - -@Entity -@Getter -@Setter -@ApiModel("待办完成信息") -public class SysTodoDone { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("待办id") - private String todid; - - @Column(length = 32) - @ApiModelProperty("用户id") - private String useid; - - @Column(updatable = false) - @ApiModelProperty("完成时间") - private Date entim = new Date(); -} diff --git a/vben-core/src/main/java/vben/core/module/sys/todo/done/SysTodoDoneRepo.java b/vben-core/src/main/java/vben/core/module/sys/todo/done/SysTodoDoneRepo.java deleted file mode 100644 index cabf950..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/todo/done/SysTodoDoneRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.core.module.sys.todo.done; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysTodoDoneRepo extends JpaRepository { - - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/todo/hist/SysTodoHist.java b/vben-core/src/main/java/vben/core/module/sys/todo/hist/SysTodoHist.java deleted file mode 100644 index f100c99..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/todo/hist/SysTodoHist.java +++ /dev/null @@ -1,65 +0,0 @@ -package vben.core.module.sys.todo.hist; - - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import java.util.Date; - -@Entity -@Getter -@Setter -@ApiModel("待办历史信息") -public class SysTodoHist { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 256) - @ApiModelProperty("主题") - private String name; - - @Column(length = 8) - @ApiModelProperty("类型") - private String type; - - @Column(length = 8) - @ApiModelProperty("紧急度") - private String grade; - - @Column(length = 128) - @ApiModelProperty("模型分类") - private String modca; - - @Column(length = 32) - @ApiModelProperty("模型ID") - private String modid; - - @Column(length = 512) - @ApiModelProperty("链接") - private String link; - - @ApiModelProperty("备注") - private String notes; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim = new Date(); - - @Column(updatable = false) - @ApiModelProperty("创建人") - private String crman; - -// @ManyToMany -// @JoinTable(name = "sys_todo_user", joinColumns = {@JoinColumn(name = "tid")}, -// inverseJoinColumns = {@JoinColumn(name = "uid")}) -// private List tamen; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMain.java b/vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMain.java deleted file mode 100644 index 74552fc..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMain.java +++ /dev/null @@ -1,63 +0,0 @@ -package vben.core.module.sys.todo.main; - - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.*; -import java.util.Date; - -@Entity -@Getter -@Setter -@ApiModel("待办信息") -public class SysTodoMain { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 256) - @ApiModelProperty("主题") - private String name; - - @Column(length = 8) - @ApiModelProperty("类型") - private String type; - - @Column(length = 8) - @ApiModelProperty("紧急度") - private String grade; - - @Column(length = 128) - @ApiModelProperty("模型分类") - private String modca; - - @Column(length = 32) - @ApiModelProperty("模型ID") - private String modid; - - @Column(length = 512) - @ApiModelProperty("链接") - private String link; - - @ApiModelProperty("备注") - private String notes; - - @Column(updatable = false) - @ApiModelProperty("创建时间") - private Date crtim = new Date(); - - @Column(updatable = false) - @ApiModelProperty("创建人") - private String crman; - -// @ManyToMany -// @JoinTable(name = "sys_todo_user", joinColumns = {@JoinColumn(name = "tid")}, -// inverseJoinColumns = {@JoinColumn(name = "uid")}) -// private List tamen; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMainApi.java b/vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMainApi.java deleted file mode 100644 index e8780cd..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMainApi.java +++ /dev/null @@ -1,62 +0,0 @@ -package vben.core.module.sys.todo.main; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import org.dom4j.DocumentException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("sys/todo/main") -@Api(tags = {"消息管理-待办信息"}) -public class SysTodoMainApi { - - @GetMapping - @ApiOperation("查询待办分页") - public R get(String name) { - Sqler sqler = new Sqler("sys_todo_main"); - sqler.addLike("t.name", name); - sqler.addOrder("t.crtim desc"); - sqler.addSelect("t.link,t.crtim"); - sqler.addInnerJoin("","sys_todo_user t2", "t2.todid=t.id"); - sqler.addInnerJoin("o.name as exman","sys_org o", "o.id=t2.useid"); - System.out.println(sqler.getSql()); - return R.ok(jdbcDao.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询待办详情") - public R getOne(@PathVariable String id) { - SysTodoMain main = service.findOne(id); - return R.ok(main); - } - - - @PostMapping - @ApiOperation("新增待办") - public R post(@RequestBody SysTodoMain main) throws DocumentException { - return R.ok(service.insert(main)); - } - - @PutMapping - @ApiOperation("修改待办") - public R put(@RequestBody SysTodoMain main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除待办") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private SysTodoMainService service; - - @Autowired - private JdbcDao jdbcDao; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMainRepo.java b/vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMainRepo.java deleted file mode 100644 index 27589e5..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMainRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.core.module.sys.todo.main; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysTodoMainRepo extends JpaRepository { - - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMainService.java b/vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMainService.java deleted file mode 100644 index 087c4e0..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/todo/main/SysTodoMainService.java +++ /dev/null @@ -1,196 +0,0 @@ -package vben.core.module.sys.todo.main; - -import vben.core.module.bpm.proc.main.Zbpm; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.module.bpm.task.main.BpmTaskMain; -import vben.core.module.sys.org.root.SysOrg; -import vben.core.module.sys.org.root.SysOrgRepo; -import vben.core.module.sys.todo.done.SysTodoDone; -import vben.core.module.sys.todo.done.SysTodoDoneRepo; -import vben.core.module.sys.todo.user.SysTodoUser; -import vben.core.module.sys.todo.user.SysTodoUserRepo; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; - -import java.util.Date; -import java.util.List; -import java.util.Map; - - -@Service -@Transactional(rollbackFor = Exception.class) -public class SysTodoMainService { - - public void sendTodos(Zbpm zbpm, List taskList) { - for (BpmTaskMain task : taskList) { - if (task.getActag()) { - SysTodoMain todo = new SysTodoMain(); -// todo.setId(IdUtils.getUID()); - todo.setId(task.getId()); - todo.setName(zbpm.getProna()); - todo.setLink("/#/page/ofmv?id=" + zbpm.getProid()); - todo.setModid(zbpm.getProid()); - repo.save(todo); - - SysOrg sysOrg = sysOrgRepo.findById(task.getExman()).get(); - if (sysOrg.getType() == 8) { - SysTodoUser todoTarget = new SysTodoUser(); - todoTarget.setId(IdUtils.getUID()); - todoTarget.setTodid(todo.getId()); - todoTarget.setUseid(task.getExman()); - targetRepo.save(todoTarget); - } else if (sysOrg.getType() == 4) { - String sql = "select oid id from sys_org_post_org where pid=?"; - List userIdList = jdbcDao.findStringList(sql, task.getExman()); - for (String uid : userIdList) { - SysTodoUser todoTarget = new SysTodoUser(); - todoTarget.setId(IdUtils.getUID()); - todoTarget.setTodid(todo.getId()); - todoTarget.setUseid(uid); - targetRepo.save(todoTarget); - } - } - } - } - } - -// public void sendTodo(Zbpm zbpm, Znode znode) { -// SysTodoMain todo = new SysTodoMain(); -// todo.setId(IdUtils.getUID()); -// todo.setName(zbpm.getProna()); -// todo.setLink("/#/page/ofmv?id=" + zbpm.getProid()); -// todo.setModid(zbpm.getProid()); -// -// -// SysTodoUser todoTarget = new SysTodoUser(); -// todoTarget.setId(IdUtils.getUID()); -// todoTarget.setTodid(todo.getId()); -// todoTarget.setUseid(znode.getExmen()); -// repo.save(todo); -// targetRepo.save(todoTarget); -// } - - public void sendTodo(Zbpm zbpm,String useid) { - SysTodoMain todo = new SysTodoMain(); - todo.setId(IdUtils.getUID()); - todo.setName(zbpm.getProna()); - todo.setLink("/#/page/ofmv?id=" + zbpm.getProid()); - todo.setModid(zbpm.getProid()); - - - SysTodoUser todoTarget = new SysTodoUser(); - todoTarget.setId(IdUtils.getUID()); - todoTarget.setTodid(todo.getId()); - todoTarget.setUseid(useid); - repo.save(todo); - targetRepo.save(todoTarget); - } - -// public void doneTodo(Zbpm zbpm) { -// String sql = "select m.id,t.id as tid from sys_todo_main m inner join sys_todo_user t on t.todid=m.id " + -// "where t.useid=? and m.modid=?"; -// Map map = jdbcDao.findMap(sql, zbpm.getHaman(), zbpm.getProid()); -// String delsql = "delete from sys_todo_user where id=?"; -// jdbcDao.update(delsql, map.get("tid")); -// -// SysTodoDone done = new SysTodoDone(); -// done.setId(IdUtils.getUID()); -// done.setTodid((String)map.get("id")); -// done.setUseid(zbpm.getHaman()); -// doneRepo.save(done); -// } - - public void doneTodo(Zbpm zbpm) { - String sql = "select t.useid \"useid\",m.id \"todid\",t.id \"tarid\" from sys_todo_main m inner join sys_todo_user t on t.todid=m.id " + - "where m.modid=?"; - List> mapList = jdbcDao.findMapList(sql, zbpm.getProid()); - for (Map map : mapList) { - if (zbpm.getHaman().equals(map.get("useid"))) { - - String delsql = "delete from sys_todo_user where todid=?"; - jdbcDao.update(delsql, map.get("todid")); - - SysTodoDone done = new SysTodoDone(); - done.setId(IdUtils.getUID()); - done.setTodid((String)map.get("todid")); - done.setUseid(zbpm.getHaman()); - doneRepo.save(done); - } - - } - } - - public void doneTodos(Zbpm zbpm) { - String sql = "select t.useid \"useid\",m.id \"todid\",t.id \"tarid\" from sys_todo_main m inner join sys_todo_user t on t.todid=m.id " + - "where m.modid=?"; - List> mapList = jdbcDao.findMapList(sql, zbpm.getProid()); - for (Map map : mapList) { - String delsql = "delete from sys_todo_user where id=?"; - jdbcDao.update(delsql, map.get("tarid")); - if (zbpm.getHaman().equals(map.get("useid"))) { - SysTodoDone done = new SysTodoDone(); - done.setId(IdUtils.getUID()); - done.setTodid((String)map.get("todid")); - done.setUseid(zbpm.getHaman()); - doneRepo.save(done); - } - } - } - - public void doneTodosByTaskIds(String[] taskIds) { - for (String taskId : taskIds) { - String delsql = "delete from sys_todo_main where id=?"; - jdbcDao.update(delsql, taskId); - - String delsql2 = "delete from sys_todo_user where todid=?"; - jdbcDao.update(delsql2, taskId); - } - } - - public String insert(SysTodoMain main) { - if (main.getId() == null || "".equals(main.getId())) { - main.setId(IdUtils.getUID()); - } - main.setCrtim(new Date()); - repo.save(main); - return main.getId(); - } - - - public String update(SysTodoMain main) { - repo.save(main); - return main.getId(); - } - - public int delete(String[] ids) { - for (String id : ids) { - repo.deleteById(id); - } - return ids.length; - } - - @Transactional(readOnly = true) - public SysTodoMain findOne(String id) { - return repo.findById(id).get(); - } - - - //----------bean注入------------ - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private SysOrgRepo sysOrgRepo; - - @Autowired - private SysTodoMainRepo repo; - - @Autowired - private SysTodoUserRepo targetRepo; - - @Autowired - private SysTodoDoneRepo doneRepo; - -} diff --git a/vben-core/src/main/java/vben/core/module/sys/todo/user/SysTodoUser.java b/vben-core/src/main/java/vben/core/module/sys/todo/user/SysTodoUser.java deleted file mode 100644 index 9169b7a..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/todo/user/SysTodoUser.java +++ /dev/null @@ -1,30 +0,0 @@ -package vben.core.module.sys.todo.user; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -@Getter -@Setter -@ApiModel("用户待办记录") -public class SysTodoUser { - - @Id - @Column(length = 32) - @ApiModelProperty("主键ID") - private String id; - - @Column(length = 32) - @ApiModelProperty("待办ID") - private String todid; - - @Column(length = 32) - @ApiModelProperty("用户ID") - private String useid; -} diff --git a/vben-core/src/main/java/vben/core/module/sys/todo/user/SysTodoUserRepo.java b/vben-core/src/main/java/vben/core/module/sys/todo/user/SysTodoUserRepo.java deleted file mode 100644 index ad028e0..0000000 --- a/vben-core/src/main/java/vben/core/module/sys/todo/user/SysTodoUserRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.core.module.sys.todo.user; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SysTodoUserRepo extends JpaRepository { - - -} diff --git a/vben-core/src/main/resources/generator.yml b/vben-core/src/main/resources/generator.yml deleted file mode 100644 index 75f2826..0000000 --- a/vben-core/src/main/resources/generator.yml +++ /dev/null @@ -1,10 +0,0 @@ -# 代码生成 -gen: - # 作者 - author: zsvg - # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool - packageName: com.zsvg.system - # 自动去除表前缀,默认是false - autoRemovePre: false - # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) - tablePrefix: sys_ \ No newline at end of file diff --git a/vben-extend/pom.xml b/vben-extend/pom.xml deleted file mode 100644 index 929253e..0000000 --- a/vben-extend/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - vben - com.zsvg - 0.1 - - 4.0.0 - - vben-extend - - - - com.zsvg - vben-core - ${vben.version} - - - - - - \ No newline at end of file diff --git a/vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCate.java b/vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCate.java deleted file mode 100644 index 31153d5..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCate.java +++ /dev/null @@ -1,21 +0,0 @@ -package vben.extend.oa.doc.cate; - -import vben.core.common.mvc.entity.BaseCateEntity; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.*; - -@Entity -@Getter -@Setter -public class OaDocCate extends BaseCateEntity { - - @ManyToOne(fetch= FetchType.EAGER) - @JoinColumn(name = "pid") - private OaDocCate parent;//父类别 - -// @Transient -// private List children = new ArrayList<>(); //行项目 - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCateApi.java b/vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCateApi.java deleted file mode 100644 index 5e757d5..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCateApi.java +++ /dev/null @@ -1,65 +0,0 @@ -package vben.extend.oa.doc.cate; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.Ztree; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -@RequestMapping("oa/doc/cate") -@Api(tags = {"OA办公-文档分类"}) -public class OaDocCateApi { - - private String table = "oa_doc_cate"; - - @GetMapping - @ApiOperation("查询文档分类分页") - public R get(String name) { - Sqler sqler = new Sqler(table); - sqler.addSelect("t.pid,t.crtim,t.uptim"); - sqler.addLike("t.name", name); - sqler.addOrder("t.ornum"); - return R.ok(service.findTree(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询文档分类详情") - public R getOne(@PathVariable String id) { - OaDocCate cate = service.findOne(id); - return R.ok(cate); - } - - @GetMapping("tree") - @ApiOperation("查询文档分类树") - public R getTree(String name) { - List list = service.findTreeList(table,name); - return R.ok(list); - } - - @PostMapping - @ApiOperation("新增文档分类") - public R post(@RequestBody OaDocCate cate) { - return R.ok(service.insert(cate)); - } - - @PutMapping - @ApiOperation("修改文档分类") - public R put(@RequestBody OaDocCate cate) { - return R.ok(service.update(cate)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除文档分类") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private OaDocCateService service; - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCateRepo.java b/vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCateRepo.java deleted file mode 100644 index b80c675..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCateRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.extend.oa.doc.cate; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface OaDocCateRepo extends JpaRepository { - - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCateService.java b/vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCateService.java deleted file mode 100644 index ded45b9..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/doc/cate/OaDocCateService.java +++ /dev/null @@ -1,67 +0,0 @@ -package vben.extend.oa.doc.cate; - -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.service.BaseCateService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import java.util.List; - -@Service -public class OaDocCateService extends BaseCateService { - - - public List findTree(Sqler sqler) { - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), new BeanPropertyRowMapper<>(OaDocCate.class)); - return buildByRecursive(list); - } - - //使用递归方法建树 -// private List buildByRecursive(List nodes) { -// List list = new ArrayList<>(); -// for (OaDocCate node : nodes) { -// if (node.getPid() == null) { -// list.add(findChildrenByTier(node, nodes)); -// } else { -// boolean flag = false; -// for (OaDocCate node2 : nodes) { -// if (node.getPid().equals(node2.getId())) { -// flag = true; -// break; -// } -// } -// if (!flag) { -// list.add(findChildrenByTier(node, nodes)); -// } -// } -// } -// return list; -// } -// -// -// //递归查找子节点 -// private OaDocCate findChildrenByTier(OaDocCate node, List nodes) { -// for (OaDocCate item : nodes) { -// if (node.getId().equals(item.getPid())) { -// if (node.getChildren() == null) { -// node.setChildren(new ArrayList<>()); -// } -// node.getChildren().add(findChildrenByTier(item, nodes)); -// } -// } -// return node; -// } - - //----------bean注入------------ - @Autowired - private OaDocCateRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMain.java b/vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMain.java deleted file mode 100644 index 25c2cfc..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMain.java +++ /dev/null @@ -1,16 +0,0 @@ -package vben.extend.oa.doc.main; - -import vben.core.common.mvc.entity.BaseMainEntity; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Entity; - -@Entity -@Getter -@Setter -public class OaDocMain extends BaseMainEntity { - - - -} \ No newline at end of file diff --git a/vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMainApi.java b/vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMainApi.java deleted file mode 100644 index 1977fb7..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMainApi.java +++ /dev/null @@ -1,52 +0,0 @@ -package vben.extend.oa.doc.main; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import org.dom4j.DocumentException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("oa/doc/main") -@Api(tags = {"OA办公-文档信息"}) -public class OaDocMainApi { - - @GetMapping - @ApiOperation("查询文档信息分页") - public R get(String name) { - Sqler sqler = new Sqler("oa_doc_main"); - sqler.addLike("t.name", name); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询文档信息详情") - public R getOne(@PathVariable String id) { - OaDocMain main = service.findOne(id); - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增文档信息") - public R post(@RequestBody OaDocMain main) throws DocumentException { - return R.ok(service.insert(main)); - } - - @PutMapping - @ApiOperation("修改文档信息") - public R put(@RequestBody OaDocMain main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除文档信息") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private OaDocMainService service; - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMainRepo.java b/vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMainRepo.java deleted file mode 100644 index d1c9682..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMainRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.extend.oa.doc.main; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface OaDocMainRepo extends JpaRepository { - - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMainService.java b/vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMainService.java deleted file mode 100644 index f6439ba..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/doc/main/OaDocMainService.java +++ /dev/null @@ -1,31 +0,0 @@ -package vben.extend.oa.doc.main; - -import vben.core.common.mvc.service.BaseMainService; -import vben.core.module.bpm.proc.main.BpmProcMainService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; - -@Service -public class OaDocMainService extends BaseMainService { - - public String insert(OaDocMain OaDocMain) { -// BpmProcMain wfFlowMain = new BpmProcMain(dbMain); -// flowService.start(wfFlowMain); - return super.insert(OaDocMain); - } - - //----------bean注入------------ - @Autowired - private BpmProcMainService flowService; - - @Autowired - private OaDocMainRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCate.java b/vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCate.java deleted file mode 100644 index 08113e1..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCate.java +++ /dev/null @@ -1,21 +0,0 @@ -package vben.extend.oa.flow.cate; - -import vben.core.common.mvc.entity.BaseCateEntity; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.*; - -@Entity -@Getter -@Setter -public class OaFlowCate extends BaseCateEntity { - - @ManyToOne(fetch= FetchType.EAGER) - @JoinColumn(name = "pid") - private OaFlowCate parent;//父类别 - -// @Transient -// private List children = new ArrayList<>(); //父流程分类 - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCateApi.java b/vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCateApi.java deleted file mode 100644 index 9d2ae19..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCateApi.java +++ /dev/null @@ -1,66 +0,0 @@ -package vben.extend.oa.flow.cate; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.pojo.Ztree; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -@RequestMapping("oa/flow/cate") -@Api(tags = {"OA办公-流程分类"}) -public class OaFlowCateApi { - - private String table = "oa_flow_cate"; - - @GetMapping - @ApiOperation("查询流程分类分页") - public R get(String name) { - Sqler sqler = new Sqler(table); - sqler.addLike("t.name", name); - sqler.addSelect("t.notes"); - sqler.addLeftJoin("c.name panam","oa_flow_cate c","c.id=t.pid"); - sqler.addOrder("t.ornum"); - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询流程分类详情") - public R getOne(@PathVariable String id) { - OaFlowCate cate = service.findOne(id); - return R.ok(cate); - } - - @GetMapping("tree") - @ApiOperation("查询流程分类树") - public R getTree(String name) { - List list = service.findTreeList(table,name); - return R.ok(list); - } - - @PostMapping - @ApiOperation("新增流程分类") - public R post(@RequestBody OaFlowCate cate) { - return R.ok(service.insert(cate)); - } - - @PutMapping - @ApiOperation("修改流程分类") - public R put(@RequestBody OaFlowCate cate) { - return R.ok(service.update(cate)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除流程分类") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private OaFlowCateService service; - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCateRepo.java b/vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCateRepo.java deleted file mode 100644 index 44358a7..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCateRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.extend.oa.flow.cate; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface OaFlowCateRepo extends JpaRepository { - - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCateService.java b/vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCateService.java deleted file mode 100644 index eb3b443..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/cate/OaFlowCateService.java +++ /dev/null @@ -1,67 +0,0 @@ -package vben.extend.oa.flow.cate; - -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.mvc.service.BaseCateService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import java.util.List; - -@Service -public class OaFlowCateService extends BaseCateService { - - - public List findTree(Sqler sqler) { - List list = jdbcDao.getTp().query(sqler.getSql(), sqler.getParams(), new BeanPropertyRowMapper<>(OaFlowCate.class)); - return buildByRecursive(list); - } - -// //使用递归方法建树 -// private List buildByRecursive(List nodes) { -// List list = new ArrayList<>(); -// for (OaFlowCate node : nodes) { -// if (node.getPid() == null) { -// list.add(findChildrenByTier(node, nodes)); -// } else { -// boolean flag = false; -// for (OaFlowCate node2 : nodes) { -// if (node.getPid().equals(node2.getId())) { -// flag = true; -// break; -// } -// } -// if (!flag) { -// list.add(findChildrenByTier(node, nodes)); -// } -// } -// } -// return list; -// } -// -// -// //递归查找子节点 -// private OaFlowCate findChildrenByTier(OaFlowCate node, List nodes) { -// for (OaFlowCate item : nodes) { -// if (node.getId().equals(item.getPid())) { -// if (node.getChildren() == null) { -// node.setChildren(new ArrayList<>()); -// } -// node.getChildren().add(findChildrenByTier(item, nodes)); -// } -// } -// return node; -// } - - //----------bean注入------------ - @Autowired - private OaFlowCateRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMain.java b/vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMain.java deleted file mode 100644 index d212ace..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMain.java +++ /dev/null @@ -1,34 +0,0 @@ -package vben.extend.oa.flow.main; - -import vben.core.common.mvc.entity.BaseMainEntity; -import vben.core.module.bpm.proc.main.Zbpm; -import lombok.Getter; -import lombok.Setter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Lob; -import javax.persistence.Transient; - -@Entity -@Getter -@Setter -public class OaFlowMain extends BaseMainEntity { - - @Column(length = 32) - private String temid;//OA流程模板ID - - @Column(length = 32) - private String protd;//全局流程模板ID - - @Transient - private Zbpm zbpm; - - @Lob - private String zform; - - @Column(length = 8) - private String state; - - -} \ No newline at end of file diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMainApi.java b/vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMainApi.java deleted file mode 100644 index 4bbb7ac..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMainApi.java +++ /dev/null @@ -1,65 +0,0 @@ -package vben.extend.oa.flow.main; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.PageData; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.module.bpm.task.main.BpmTaskMainService; - -@RestController -@RequestMapping("oa/flow/main") -@Api(tags = {"OA办公-流程实例"}) -public class OaFlowMainApi { - - @GetMapping - @ApiOperation("查询流程实例分页") - public R get(String name) { - Sqler sqler = new Sqler("oa_flow_main"); - sqler.addInnerJoin("p.name temna","oa_flow_temp p", "p.id=t.temid"); - sqler.addLike("t.name", name); - sqler.addSelect("t.state"); - PageData pageData = service.findPageData(sqler); - taskMainService.findCurrentExmen(pageData.getItems()); - return R.ok(pageData); - } - - - @GetMapping("one/{id}") - @ApiOperation("查询流程实例详情") - public R getOne(@PathVariable String id) { - OaFlowMain main = service.findOne(id); - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增流程实例") - public R post(@RequestBody OaFlowMain main) throws Exception { -// service.insert1(main); -// service.insert2(main); - service.insertx(main); - return R.ok(); - } - - @PutMapping - @ApiOperation("修改流程实例") - public R put(@RequestBody OaFlowMain main) throws Exception { - service.updatex(main); - return R.ok(); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除流程实例") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private BpmTaskMainService taskMainService; - - @Autowired - private OaFlowMainService service; - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMainRepo.java b/vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMainRepo.java deleted file mode 100644 index 4bd7bc4..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMainRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.extend.oa.flow.main; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface OaFlowMainRepo extends JpaRepository { - - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMainService.java b/vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMainService.java deleted file mode 100644 index 8bfb21c..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/main/OaFlowMainService.java +++ /dev/null @@ -1,114 +0,0 @@ -package vben.extend.oa.flow.main; - -import vben.core.common.mvc.service.BaseMainService; -import vben.core.module.bpm.proc.main.BpmProcMainService; -import vben.core.module.bpm.proc.main.Zbpm; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import vben.core.module.bpm.proc.main.Znode; -import vben.core.common.utils.web.XuserUtil; -import vben.core.common.utils.lang.IdUtils; - -import javax.annotation.PostConstruct; -import java.util.Date; - -@Service -public class OaFlowMainService extends BaseMainService { - - public void insert1(OaFlowMain oaFlowMain) { - oaFlowMain.setState("20"); - oaFlowMain.setId(IdUtils.getUID()); - oaFlowMain.setUptim(new Date()); - if (oaFlowMain.getCrman() == null) { - oaFlowMain.setCrman(XuserUtil.getUser()); - } - repo.saveAndFlush(oaFlowMain); -// OaFlowMain dbMain = repo.saveAndFlush(oaFlowMain); - - } - - public void insert2(OaFlowMain main) throws Exception { - Zbpm zbpm = main.getZbpm(); - zbpm.setProid(main.getId()); - zbpm.setProna(main.getName()); - zbpm.setHaman(main.getCrman().getId()); - zbpm.setTemid(main.getProtd()); - Znode znode = procService.start(zbpm); - if ("NE".equals(znode.getFacno())) { - main.setState("30"); - super.update(main); - } - } - -// @Transactional(propagation = Propagation.NOT_SUPPORTED) - public void insertx(OaFlowMain oaFlowMain) throws Exception { - oaFlowMain.setState("20"); - oaFlowMain.setId(IdUtils.getUID()); - oaFlowMain.setUptim(new Date()); - if (oaFlowMain.getCrman() == null) { - oaFlowMain.setCrman(XuserUtil.getUser()); - } -// OaFlowMain dbMain = repo.save(oaFlowMain); - OaFlowMain dbMain = repo.saveAndFlush(oaFlowMain); - - Zbpm zbpm = oaFlowMain.getZbpm(); - zbpm.setModty("oaFlow"); - zbpm.setProid(dbMain.getId()); - zbpm.setProna(dbMain.getName()); - zbpm.setHaman(dbMain.getCrman().getId()); - zbpm.setTemid(dbMain.getProtd()); - Znode znode = procService.start(zbpm); - if ("NE".equals(znode.getFacno())) { - dbMain.setState("30"); - super.update(dbMain); - } - } - - public void updatex(OaFlowMain oaFlowMain) throws Exception { - oaFlowMain.setState("20"); - super.update(oaFlowMain); - repo.flush(); - oaFlowMain.getZbpm().setModty("oaFlow"); - if ("pass".equals(oaFlowMain.getZbpm().getOpkey())) { - Znode znode = procService.handlerPass(oaFlowMain.getZbpm()); - if ("NE".equals(znode.getFacno())) { - oaFlowMain.setState("30"); - super.update(oaFlowMain); - }else{ - oaFlowMain.setState("20"); - super.update(oaFlowMain); - } - } else if ("refuse".equals(oaFlowMain.getZbpm().getOpkey())) { - if ("N1".equals(oaFlowMain.getZbpm().getTarno())) { - oaFlowMain.setState("11"); - super.update(oaFlowMain); - } - Znode znode = procService.handlerRefuse(oaFlowMain.getZbpm()); - } else if ("turn".equals(oaFlowMain.getZbpm().getOpkey())) { - procService.handlerTurn(oaFlowMain.getZbpm()); - } else if ("communicate".equals(oaFlowMain.getZbpm().getOpkey())) { - procService.handlerCommunicate(oaFlowMain.getZbpm()); - } else if ("abandon".equals(oaFlowMain.getZbpm().getOpkey())) { - procService.handlerAbandon(oaFlowMain.getZbpm()); - oaFlowMain.setState("00"); - super.update(oaFlowMain); - }else if ("bacommunicate".equals(oaFlowMain.getZbpm().getOpkey())) { - procService.handlerBacommunicate(oaFlowMain.getZbpm()); - }else if ("cacommunicate".equals(oaFlowMain.getZbpm().getOpkey())) { - procService.handlerCacommunicate(oaFlowMain.getZbpm()); - } - } - - //----------bean注入------------ - @Autowired - private BpmProcMainService procService; - - @Autowired - private OaFlowMainRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowRece.java b/vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowRece.java deleted file mode 100644 index 12618d2..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowRece.java +++ /dev/null @@ -1,25 +0,0 @@ -package vben.extend.oa.flow.rece; - -import lombok.Data; - -import javax.persistence.*; -import java.util.Date; - -@Entity -@Data -@Table(indexes = {@Index(columnList = "useid"),@Index(columnList = "floid")}) -public class OaFlowRece { - - @Id - @Column(length = 32) - private String id;//ID - - @Column(length = 32) - private String useid;//用户ID - - @Column(length = 32) - private String floid;//最近使用的流程ID - - @Column - private Date uptim = new Date();//最近使用时间 -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowReceApi.java b/vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowReceApi.java deleted file mode 100644 index 27918db..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowReceApi.java +++ /dev/null @@ -1,53 +0,0 @@ -package vben.extend.oa.flow.rece; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.utils.web.XuserUtil; - -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -@RestController -@RequestMapping("oa/flow/rece") -@Api(tags = {"OA办公-流程使用记录"}) -public class OaFlowReceApi { - - @GetMapping("list") - @ApiOperation("查询流程使用记录列表") - public R getList(Integer type) { - List> mapList = new ArrayList<>(); - String userId = XuserUtil.getUserId(); - Sqler sqler = new Sqler("t.floid as id", "oa_flow_rece"); - sqler.addInnerJoin("u.name", "oa_flow_temp u", "u.id=t.floid"); - sqler.addInnerJoin("c.name as canam", "oa_flow_cate c", "c.id=u.catid"); - sqler.addEqual("t.useid", userId); - sqler.addOrder("t.uptim desc"); - mapList.addAll(jdbcDao.findMapList(sqler)); - return R.ok(mapList); - } - - @PostMapping - @ApiOperation("更新流程使用记录") - public R post(@RequestBody List reces) throws SQLException { - if (reces != null && reces.size() > 0) { - service.update(reces); - } - return R.ok(); - } - - - @Autowired - private OaFlowReceService service; - - @Autowired - private JdbcDao jdbcDao; - - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowReceRepo.java b/vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowReceRepo.java deleted file mode 100644 index 3b4bc26..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowReceRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.extend.oa.flow.rece; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface OaFlowReceRepo extends JpaRepository { - - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowReceService.java b/vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowReceService.java deleted file mode 100644 index acec5a9..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/rece/OaFlowReceService.java +++ /dev/null @@ -1,69 +0,0 @@ -package vben.extend.oa.flow.rece; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.mvc.dao.Dsqler; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import vben.core.common.utils.web.XuserUtil; -import vben.core.common.utils.lang.IdUtils; - -import java.sql.SQLException; -import java.util.List; -import java.util.Map; - -@Service -@Transactional(rollbackFor = Exception.class) -public class OaFlowReceService { - - public int update(List reces) throws SQLException { - String userId = XuserUtil.getUserId(); - String flowids = "("; - for (OaFlowRece rece : reces) { - rece.setFloid(rece.getId()); - rece.setId(IdUtils.getUID()); - rece.setUseid(userId); - flowids += "'" + rece.getFloid() + "',"; - } - flowids = flowids.substring(0, flowids.length() - 1) + ")"; - - //数据库删除本次已传的记录 - Dsqler dsqler = new Dsqler("oa_flow_rece"); - dsqler.addWhere("useid=?", userId); - dsqler.addWhere("floid in " + flowids); - System.out.println(dsqler.getSql()); - jdbcDao.update(dsqler); - - //删除当前数据库最近10次前的数据 - Sqler sqler = new Sqler("t.id", "oa_flow_rece"); - sqler.setPanum(2); - sqler.setPasiz(10); - sqler.addWhere("t.useid=?", userId); - sqler.addDescOrder("t.uptim"); - List> pageMapList = jdbcDao.findPageMapList(sqler); - String ids = "("; - if (pageMapList != null && pageMapList.size() > 0) { - for (Map map : pageMapList) { - ids += "'" + map.get("id") + "',"; - } - Dsqler dsqler2 = new Dsqler("oa_flow_rece"); - dsqler2.addWhere("id in " + ids); - jdbcDao.update(dsqler2); - } - - //插入本次使用的记录 - repo.saveAll(reces); - return reces.size(); - } - - - @Autowired - private JdbcDao jdbcDao; - - - @Autowired - private OaFlowReceRepo repo; - - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTemp.java b/vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTemp.java deleted file mode 100644 index 3fff3a1..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTemp.java +++ /dev/null @@ -1,29 +0,0 @@ -package vben.extend.oa.flow.temp; - -import vben.core.common.mvc.entity.BaseMainEntity; -import lombok.Getter; -import lombok.Setter; -import vben.extend.oa.flow.cate.OaFlowCate; - -import javax.persistence.*; - -@Entity -@Getter -@Setter -public class OaFlowTemp extends BaseMainEntity { - - private Integer ornum; - - private String protd;//全局流程模板ID - - @Lob - private String vform; - - @Transient - private String prxml; - - @ManyToOne - @JoinColumn(name = "catid") - private OaFlowCate cate;//流程分类 - -} \ No newline at end of file diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTempApi.java b/vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTempApi.java deleted file mode 100644 index 4b52b62..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTempApi.java +++ /dev/null @@ -1,87 +0,0 @@ -package vben.extend.oa.flow.temp; - -import cn.hutool.core.util.StrUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; -import org.dom4j.DocumentException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.pojo.Ztree; - -import java.util.List; -import java.util.Map; - -@RestController -@RequestMapping("oa/flow/temp") -@Api(tags = {"OA办公-流程模板"}) -public class OaFlowTempApi { - - @GetMapping - @ApiOperation("查询流程模板分页") - public R get(String name,String catid) { - Sqler sqler = new Sqler("oa_flow_temp"); - sqler.addInnerJoin("c.name catna", "oa_flow_cate c", "c.id=t.catid"); - if(StrUtil.isNotBlank(name)){ - sqler.addLike("t.name", name); - }else if(StrUtil.isNotBlank(catid)){ - sqler.addEqual("t.catid", catid); - } - return R.ok(service.findPageData(sqler)); - } - - @GetMapping("tree") - @ApiOperation("查询流程模板树") - public R getTree() { - List list = service.findTreeList(); - return R.ok(list); - } - - @GetMapping("list") - @ApiOperation("查询流程模板列表") - public R getList(String catid, String name) { - Sqler sqler = new Sqler("oa_flow_temp"); - sqler.addInnerJoin("c.name catna", "oa_flow_cate c", "c.id=t.catid"); - sqler.addLike("t.name", name); - sqler.addEqual("t.catid", catid); - sqler.addOrder("t.ornum"); - return R.ok(jdbcDao.findMapList(sqler)); - } - - @GetMapping("one/{id}") - @ApiOperation("查询流程模板详情") - public R getOne(@PathVariable String id) { - OaFlowTemp main = service.findOne(id); - String sql = "select orxml from bpm_proc_temp where id=?"; - Map map = jdbcDao.findMap(sql, main.getProtd()); - main.setPrxml((String)map.get("orxml")); - return R.ok(main); - } - - @PostMapping - @ApiOperation("新增流程模板") - public R post(@RequestBody OaFlowTemp main) throws DocumentException { - return R.ok(service.insertx(main)); - } - - @PutMapping - @ApiOperation("修改流程模板") - public R put(@RequestBody OaFlowTemp main) { - return R.ok(service.updatex(main)); - } - - @DeleteMapping("{ids}") - @ApiOperation("删除流程模板") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - @Autowired - private JdbcDao jdbcDao; - - @Autowired - private OaFlowTempService service; - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTempRepo.java b/vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTempRepo.java deleted file mode 100644 index db56acd..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTempRepo.java +++ /dev/null @@ -1,8 +0,0 @@ -package vben.extend.oa.flow.temp; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface OaFlowTempRepo extends JpaRepository { - - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTempService.java b/vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTempService.java deleted file mode 100644 index 9b1c118..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/flow/temp/OaFlowTempService.java +++ /dev/null @@ -1,84 +0,0 @@ -package vben.extend.oa.flow.temp; - -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import vben.core.common.mvc.service.BaseMainService; -import vben.core.common.utils.lang.IdUtils; -import vben.core.module.bpm.proc.temp.BpmProcTemp; -import vben.core.module.bpm.proc.temp.BpmProcTempService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import vben.core.common.utils.lang.TreeUtils; -import vben.core.common.mvc.pojo.Ztree; - -import javax.annotation.PostConstruct; -import java.util.List; - -@Service -public class OaFlowTempService extends BaseMainService { - - public String insertx(OaFlowTemp oaFlowTemp) { - BpmProcTemp bpmProcTemp = new BpmProcTemp(oaFlowTemp); - bpmProcTemp.setOrxml(oaFlowTemp.getPrxml()); - String chxml = "" - + "\n"; - bpmProcTemp.setChxml(chxml); - String temid = bpmProcTempService.insert(bpmProcTemp); - oaFlowTemp.setProtd(temid); - return super.insert(oaFlowTemp); - } - -// public String updatex(OaFlowTempl oaFlowTemp) { -// BpmProcTemp bpmProcTemp = bpmProcTempService.findOne(oaFlowTemp.getProtd()); -// bpmProcTemp.setOrxml(oaFlowTemp.getPrxml()); -// String chxml = "" -// + "\n"; -// bpmProcTemp.setChxml(chxml); -// bpmProcTempService.update(bpmProcTemp); -// return super.update(oaFlowTemp); -// } - - public String updatex(OaFlowTemp oaFlowTemp) { - BpmProcTemp bpmProcTemp = bpmProcTempService.findOne(oaFlowTemp.getProtd()); - if(!bpmProcTemp.getOrxml().equals(oaFlowTemp.getPrxml())){ - String newid= IdUtils.getUID(); - oaFlowTemp.setProtd(newid); - BpmProcTemp newBpmProcTemp=new BpmProcTemp(); - newBpmProcTemp.setId(newid); - newBpmProcTemp.setOrxml(oaFlowTemp.getPrxml()); - String chxml = "" - + "\n"; - newBpmProcTemp.setChxml(chxml); - bpmProcTempService.insert(newBpmProcTemp); - } - return super.update(oaFlowTemp); - } - - public List findTreeList() { - String sql1 = "select id,name,pid from oa_flow_cate"; - List list1 = jdbcDao.getTp().query(sql1,new BeanPropertyRowMapper<>(Ztree.class)); - String sql2 = "select id,name,catid pid from oa_flow_temp"; - List list2 = jdbcDao.getTp().query(sql2,new BeanPropertyRowMapper<>(Ztree.class)); - list1.addAll(list2); - return TreeUtils.build(list1); - } - - //----------bean注入------------ - @Autowired - private BpmProcTempService bpmProcTempService; - - @Autowired - private OaFlowTempRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOne.java b/vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOne.java deleted file mode 100644 index 77e8d29..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOne.java +++ /dev/null @@ -1,14 +0,0 @@ -package vben.extend.oa.test.one; - -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; - -import javax.persistence.*; - -@Entity -@Getter -@Setter -public class OaTestOne extends BaseMainEntity { - -} \ No newline at end of file diff --git a/vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOneApi.java b/vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOneApi.java deleted file mode 100644 index 0c47efa..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOneApi.java +++ /dev/null @@ -1,116 +0,0 @@ -package vben.extend.oa.test.one; - -import cn.hutool.script.ScriptRuntimeException; -import cn.hutool.script.ScriptUtil; -import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.write.builder.ExcelWriterBuilder; -import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder; -import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.Sqler; -import vben.core.module.mon.log.oper.Oplog; -import vben.core.common.utils.file.ExcelUtil; -import vben.core.common.utils.file.FileUtils; -import vben.core.common.utils.file.excel.ExcelResult; - -import javax.script.CompiledScript; -import javax.script.ScriptException; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletResponse; -import java.util.*; - -@RestController -@RequestMapping("oa/test/one") -public class OaTestOneApi { - - @Oplog("查询DEMO") - @GetMapping - public R get(String name, String catid) throws Exception { - //随机6位数 - int radom = new Random().nextInt(999999); - if (radom < 100000) { - radom += 100000; - } - CompiledScript script = ScriptUtil.compile("var map={};var a=1;var b=2;map.xx=" - + radom +"+a+b;map"); - try { - Map map= (Map) script.eval(); - System.out.println(map.get("xx")); - } catch (ScriptException e) { - throw new ScriptRuntimeException(e); - } -// int i=1/0; -// if(true){ -// throw new Exception("错误了"); -// } - Sqler sqler = new Sqler("oa_test_one"); - sqler.addLike("t.name", name); - sqler.addSelect("t.addre,t.senum"); - return R.ok(service.findPageData(sqler)); - } - - @PostMapping("imp") - public R postImp(@RequestPart("file") MultipartFile file) throws Exception { - ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), Student.class, new StudentImportListener()); - System.out.println(result); - return R.ok(result); -// return R.error(result); - } - - - @GetMapping("exp") - public void getExp(HttpServletResponse response) throws Exception { - response.setContentType("application/vnd.ms-excel"); - response.setCharacterEncoding("utf-8"); - String fileName = "测试1ss.xlsx"; - FileUtils.setAttachmentResponseHeader(response, fileName); - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"); - ServletOutputStream outputStream = response.getOutputStream(); - ExcelWriterBuilder writeWorkBook = EasyExcel.write(outputStream, Student.class) - .registerWriteHandler((new LongestMatchColumnWidthStyleStrategy())); - ExcelWriterSheetBuilder sheet = writeWorkBook.sheet(); - sheet.doWrite(initData()); - } - - private static List initData(){ - List students=new ArrayList<>(); - for (int i = 0; i < 10; i++) { - Student data=new Student(); - data.setName("测试"+i+2); - data.setGender("男"); - data.setBirthday(new Date()); - students.add(data); - } - System.out.println(students); - return students; - } - - @GetMapping("one/{id}") - public R getOne(@PathVariable String id) { - OaTestOne main = service.findOne(id); - return R.ok(main); - } - - @PostMapping - public R post(@RequestBody OaTestOne main) { - return R.ok(service.insert(main)); - } - - @PutMapping - public R put(@RequestBody OaTestOne main) { - return R.ok(service.update(main)); - } - - @DeleteMapping("{ids}") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - - @Autowired - private OaTestOneService service; - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOneRepo.java b/vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOneRepo.java deleted file mode 100644 index f247b13..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOneRepo.java +++ /dev/null @@ -1,9 +0,0 @@ -package vben.extend.oa.test.one; - - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface OaTestOneRepo extends JpaRepository { - - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOneService.java b/vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOneService.java deleted file mode 100644 index 3cfc90d..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/test/one/OaTestOneService.java +++ /dev/null @@ -1,22 +0,0 @@ -package vben.extend.oa.test.one; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import vben.core.common.mvc.service.BaseMainService; - -import javax.annotation.PostConstruct; - -@Service -public class OaTestOneService extends BaseMainService { - - - - @Autowired - private OaTestOneRepo repo; - - @PostConstruct - public void initDao() { - super.setRepo(repo); - } - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/test/one/Student.java b/vben-extend/src/main/java/vben/extend/oa/test/one/Student.java deleted file mode 100644 index d25de9e..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/test/one/Student.java +++ /dev/null @@ -1,27 +0,0 @@ -package vben.extend.oa.test.one; - -import com.alibaba.excel.annotation.ExcelIgnore; -import lombok.Data; - -import java.util.Date; - -@Data -//@HeadRowHeight(20)//表头高度 -//@ContentRowHeight(20)//内容的行高 -public class Student { - //和excel表中数据一一对应 - @ExcelIgnore//该字段不参与读写 - private String id; - - // @ExcelProperty("姓名")//列名 -// @ColumnWidth(20)//列宽 - private String name; - // @ExcelProperty("性别") -// @ColumnWidth(20) - private String gender; - // @ExcelProperty("出生日期") -// @ColumnWidth(20) -// @DateTimeFormat("yyyy-MM-dd")//指定日期格式 - private Date birthday; - -} \ No newline at end of file diff --git a/vben-extend/src/main/java/vben/extend/oa/test/one/StudentImportListener.java b/vben-extend/src/main/java/vben/extend/oa/test/one/StudentImportListener.java deleted file mode 100644 index 90dfc1c..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/test/one/StudentImportListener.java +++ /dev/null @@ -1,22 +0,0 @@ -package vben.extend.oa.test.one; - -import com.alibaba.excel.context.AnalysisContext; -import vben.core.common.utils.file.excel.ExcelListener; -import vben.core.common.utils.file.excel.ExcelResult; - -public class StudentImportListener implements ExcelListener { - @Override - public ExcelResult getExcelResult() { - return null; - } - - @Override - public void invoke(Student student, AnalysisContext analysisContext) { - System.out.println(student); - } - - @Override - public void doAfterAllAnalysed(AnalysisContext analysisContext) { - - } -} diff --git a/vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwo.java b/vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwo.java deleted file mode 100644 index f9c0edf..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwo.java +++ /dev/null @@ -1,15 +0,0 @@ -package vben.extend.oa.test.two; - -import lombok.Getter; -import lombok.Setter; -import vben.core.common.mvc.entity.BaseMainEntity; - -import javax.persistence.Entity; - -@Entity -@Getter -@Setter -public class OaTestTwo extends BaseMainEntity { - - -} \ No newline at end of file diff --git a/vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwoApi.java b/vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwoApi.java deleted file mode 100644 index b367f1a..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwoApi.java +++ /dev/null @@ -1,66 +0,0 @@ -package vben.extend.oa.test.two; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import vben.core.common.mvc.api.R; -import vben.core.common.mvc.dao.JdbcDao; -import vben.core.common.mvc.dao.Sqler; - -@RestController -@RequestMapping("oa/test/two") -public class OaTestTwoApi { - - @GetMapping("list") - public R getList() { - return R.ok(service.findAll()); - } - - //分页查询项目清单 - @GetMapping - public R get(String name) { - Sqler sqler = new Sqler("oa_test_two"); - sqler.addLike("t.name", name); - sqler.addSelect("t.notes"); - return R.ok(jdbcDao.findPageData(sqler)); - } - - //查询单个项目 - @GetMapping("one/{id}") - public R getOne(@PathVariable String id) { - OaTestTwo main = service.findOne(id); - return R.ok(main); - } - - //新增项目 - @PostMapping - public R post(@RequestBody OaTestTwo main) { - return R.ok(service.insert(main)); - } - - //修改项目 - @PutMapping - public R put(@RequestBody OaTestTwo main) { - return R.ok(service.update(main)); - } - - //删除项目 - @DeleteMapping("{ids}") - public R delete(@PathVariable String[] ids) { - return R.ok(service.delete(ids)); - } - - - //同时使用JPA与mybatis-plus的事务测试 - @PostMapping("test") - public R postTest() { - service.test(); - return R.ok(); - } - - @Autowired - private OaTestTwoService service; - - @Autowired - private JdbcDao jdbcDao; - -} diff --git a/vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwoMapper.java b/vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwoMapper.java deleted file mode 100644 index 4bcbfd5..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwoMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package vben.extend.oa.test.two; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface OaTestTwoMapper extends BaseMapper -{ - -} \ No newline at end of file diff --git a/vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwoService.java b/vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwoService.java deleted file mode 100644 index 710b589..0000000 --- a/vben-extend/src/main/java/vben/extend/oa/test/two/OaTestTwoService.java +++ /dev/null @@ -1,65 +0,0 @@ -package vben.extend.oa.test.two; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import vben.core.common.utils.lang.IdUtils; -import vben.extend.oa.test.one.OaTestOne; -import vben.extend.oa.test.one.OaTestOneRepo; - -import javax.annotation.Resource; -import java.util.List; - - -@Service -@Transactional(rollbackFor = Exception.class) -public class OaTestTwoService { - - public OaTestTwo findOne(String id) { - return demoTwoMapper.selectById(id); - } - - public List findAll() { - return demoTwoMapper.selectList(null); - } - - public String insert(OaTestTwo cust) { - cust.setId(IdUtils.getUID()); - demoTwoMapper.insert(cust); - return cust.getId(); - } - - public String update(OaTestTwo cust) { - demoTwoMapper.updateById(cust); - return cust.getId(); - } - - public int delete(String[] ids) { - for (String id : ids) { - demoTwoMapper.deleteById(id); - } - return ids.length; - } - - public void test() { - //先通过JPA新增 - OaTestOne demoMain=new OaTestOne(); - demoMain.setId(IdUtils.getUID()); - demoMain.setName("有事务的项目"); - demoOneRepo.save(demoMain); - - //再通过mybatis-plus新增一个项目,并让它报错 - OaTestTwo demoMain2=new OaTestTwo(); - demoMain2.setId(IdUtils.getUID()+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");//超出长度保存出错 - demoMain2.setNotes("有事务的客户"); - demoTwoMapper.insert(demoMain2); - } - - @Resource - private OaTestOneRepo demoOneRepo; - - @Resource - private OaTestTwoMapper demoTwoMapper; - - -} -