├── al-wechat
├── pages
│ ├── index
│ │ ├── index.json
│ │ └── index.wxss
│ ├── .DS_Store
│ └── logs
│ │ ├── logs.json
│ │ ├── logs.wxss
│ │ ├── logs.wxml
│ │ └── logs.js
├── .DS_Store
├── style
│ ├── .DS_Store
│ ├── base
│ │ ├── fn.wxss
│ │ ├── mixin
│ │ │ ├── mobile.wxss
│ │ │ ├── text.wxss
│ │ │ ├── setArrow.wxss
│ │ │ └── setOnepx.wxss
│ │ ├── variable
│ │ │ ├── color.wxss
│ │ │ ├── global.wxss
│ │ │ ├── weui-msg.wxss
│ │ │ ├── weui-tab.wxss
│ │ │ ├── weui-button.wxss
│ │ │ ├── weui-cell.wxss
│ │ │ ├── weui-dialog.wxss
│ │ │ ├── weui-grid.wxss
│ │ │ └── weui-progress.wxss
│ │ └── reset.wxss
│ └── widget
│ │ ├── weui-cell
│ │ ├── weui-switch.wxss
│ │ ├── weui-check.wxss
│ │ ├── weui-form
│ │ │ └── weui-vcode.wxss
│ │ └── weui-access.wxss
│ │ ├── weui-button
│ │ ├── weui-btn_disabled.wxss
│ │ ├── weui-btn_primary.wxss
│ │ ├── weui-btn_warn.wxss
│ │ ├── weui-btn_default.wxss
│ │ ├── weui-btn_loading.wxss
│ │ ├── weui-btn_global.wxss
│ │ ├── weui-button.wxss
│ │ ├── weui-btn_plain.wxss
│ │ └── weui-btn_cell.wxss
│ │ ├── weui-icon
│ │ └── weui-icon.wxss
│ │ ├── weui-flex
│ │ └── weui-flex.wxss
│ │ ├── weui-tips
│ │ ├── weui-mask.wxss
│ │ ├── weui-badge.wxss
│ │ ├── weui-loadmore.wxss
│ │ └── weui-toptips.wxss
│ │ ├── weui-progress
│ │ └── weui-progress.wxss
│ │ ├── weui-agree
│ │ └── weui-agree.wxss
│ │ ├── weui-grid
│ │ └── weui-grid.wxss
│ │ ├── weui-panel
│ │ └── weui-panel.wxss
│ │ ├── weui-page
│ │ └── weui-article.wxss
│ │ └── weui-footer
│ │ └── weui-footer.wxss
├── sitemap.json
├── project.private.config.json
├── app.json
├── utils
│ └── util.js
└── app.wxss
├── al-api
├── .DS_Store
├── al-sys-api
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── sys
│ │ └── api
│ │ ├── req
│ │ └── ReqDbConnect.java
│ │ ├── fallback
│ │ ├── RemoteLogFallback.java
│ │ └── RemoteDictFallback.java
│ │ └── entity
│ │ └── TableInfo.java
├── al-oauth-api
│ ├── .DS_Store
│ ├── src
│ │ └── main
│ │ │ ├── resources
│ │ │ └── META-INF
│ │ │ │ └── spring
│ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── com
│ │ │ └── axel
│ │ │ └── common
│ │ │ └── oauth
│ │ │ └── api
│ │ │ ├── entity
│ │ │ └── UserRole.java
│ │ │ └── vo
│ │ │ └── TenantVo.java
│ └── pom.xml
├── al-storage-api
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ └── resources
│ │ └── META-INF
│ │ └── spring
│ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
├── al-scheduler-api
│ ├── .DS_Store
│ ├── src
│ │ └── main
│ │ │ ├── resources
│ │ │ └── META-INF
│ │ │ │ └── spring
│ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── com
│ │ │ └── axel
│ │ │ └── common
│ │ │ └── scheduler
│ │ │ └── api
│ │ │ └── fallback
│ │ │ └── RemoteSchedulerFallBack.java
│ └── pom.xml
└── pom.xml
├── al-oauth
├── .DS_Store
└── src
│ └── main
│ ├── resources
│ ├── static
│ │ ├── img
│ │ │ ├── logo.png
│ │ │ ├── favicon.ico
│ │ │ ├── login-bg.png
│ │ │ ├── success.png
│ │ │ ├── qrcode_ok.png
│ │ │ └── qrcode_invalid.png
│ │ └── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ └── glyphicons-halflings-regular.woff2
│ └── templates
│ │ └── 404.html
│ └── java
│ └── cn
│ └── com
│ └── axel
│ └── oauth
│ ├── mapper
│ ├── xml
│ │ ├── ClientMapper.xml
│ │ └── SsoClientDetailsMapper.xml
│ ├── SsoClientDetailsMapper.java
│ └── ClientMapper.java
│ ├── entity
│ ├── RedisQrCode.java
│ ├── UserOrg.java
│ ├── QRCodeImg.java
│ └── QRCode.java
│ ├── service
│ ├── QRCodeService.java
│ ├── ClientService.java
│ ├── SsoClientDetailsService.java
│ ├── impl
│ │ └── ClientServiceImpl.java
│ └── OAuth2Service.java
│ ├── config
│ ├── properties
│ │ ├── ShiroProperties.java
│ │ ├── ShiroWhitesProperties.java
│ │ └── WeChatProperties.java
│ └── OauthMvcConfig.java
│ ├── req
│ ├── ReqChangePwd.java
│ ├── ReqSsoClientDetails.java
│ ├── ReqSsoTenant.java
│ └── ReqSsoRole.java
│ ├── validator
│ ├── GetCodeValidator.java
│ └── ClientIdExistValidator.java
│ ├── credentials
│ ├── QRCodeCredentialsMatcher.java
│ └── WxCredentialsMatcher.java
│ ├── cache
│ ├── redis
│ │ └── RedisCacheManager.java
│ └── temp
│ │ ├── OpenIdTempCache.java
│ │ ├── ClientTempCache.java
│ │ ├── UserTempCache.java
│ │ └── UserTenantTempCache.java
│ └── realm
│ └── UserPasswordRealm.java
├── al-start
├── .DS_Store
├── al-start-sys
│ ├── .DS_Store
│ ├── Dockerfile
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── bootstrap.yml
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── sys
│ │ └── AlSysApplication.java
├── al-start-boot
│ ├── .DS_Store
│ ├── src
│ │ └── main
│ │ │ ├── resources
│ │ │ ├── excel
│ │ │ │ └── 销售订单.xlsx
│ │ │ ├── application-gateway.yml
│ │ │ ├── application-shiro.yml
│ │ │ ├── application-oauth.yml
│ │ │ ├── bootstrap.yml
│ │ │ └── application-swagger.yml
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── com
│ │ │ └── axel
│ │ │ ├── boot
│ │ │ └── config
│ │ │ │ └── GatewayProperties.java
│ │ │ └── AlNoCodeStart.java
│ └── Dockerfile
├── al-start-demo
│ ├── .DS_Store
│ ├── Dockerfile
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── excel
│ │ │ └── 销售订单.xlsx
│ │ └── bootstrap.yml
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── demo
│ │ └── AlDemoApplication.java
├── al-start-oauth
│ ├── .DS_Store
│ ├── Dockerfile
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── bootstrap.yml
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── oauth
│ │ └── AlOauthApplication.java
├── al-start-gateway
│ ├── .DS_Store
│ └── Dockerfile
├── al-start-lowcode
│ ├── .DS_Store
│ ├── Dockerfile
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── excel
│ │ │ └── 销售订单.xlsx
│ │ └── bootstrap.yml
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── lowcode
│ │ └── AlLowcodeApplication.java
├── al-start-storage
│ ├── .DS_Store
│ ├── Dockerfile
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── bootstrap.yml
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── storage
│ │ └── AlStorageApplication.java
└── al-start-scheduler
│ ├── .DS_Store
│ ├── Dockerfile
│ └── src
│ └── main
│ ├── resources
│ └── bootstrap.yml
│ └── java
│ └── cn
│ └── com
│ └── axel
│ └── scheduler
│ └── AlSchedulerApplication.java
├── al-test
├── .DS_Store
└── src
│ ├── .DS_Store
│ └── main
│ ├── resources
│ └── bootstrap.yml
│ └── java
│ └── cn
│ └── com
│ └── axel
│ └── test
│ ├── entity
│ └── TestParam.java
│ └── AlTestApplication.java
├── al-business
├── .DS_Store
├── al-sys
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── sys
│ │ ├── mapper
│ │ ├── xml
│ │ │ ├── CodeBuildMapper.xml
│ │ │ ├── DbConnectMapper.xml
│ │ │ ├── DictItemMapper.xml
│ │ │ ├── SysConfigMapper.xml
│ │ │ └── DictMapper.xml
│ │ ├── DbConnectMapper.java
│ │ ├── CodeBuildMapper.java
│ │ ├── SysConfigMapper.java
│ │ ├── DictItemMapper.java
│ │ └── DictMapper.java
│ │ ├── req
│ │ ├── ReqMenuCreate.java
│ │ ├── ReqSysConfig.java
│ │ ├── ReqDictCategory.java
│ │ ├── ReqDict.java
│ │ └── ReqCodeBuild.java
│ │ ├── service
│ │ ├── SysConfigService.java
│ │ └── DictService.java
│ │ └── entity
│ │ └── DBTreeNode.java
├── al-demo
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── demo
│ │ ├── mapper
│ │ ├── xml
│ │ │ ├── DemoOrderMapper.xml
│ │ │ ├── DemoDataScopeMapper.xml
│ │ │ ├── DemoOrderDetailMapper.xml
│ │ │ └── DemoImportExportMapper.xml
│ │ ├── DemoOrderMapper.java
│ │ ├── DemoDataScopeMapper.java
│ │ ├── DemoOrderDetailMapper.java
│ │ └── DemoImportExportMapper.java
│ │ ├── entity
│ │ ├── Question.java
│ │ ├── CompletionResult.java
│ │ └── Completion.java
│ │ ├── service
│ │ ├── DemoDataScopeService.java
│ │ ├── DemoOrderDetailService.java
│ │ ├── DemoImportExportService.java
│ │ ├── DemoOrderService.java
│ │ └── impl
│ │ │ ├── DemoDataScopeServiceImpl.java
│ │ │ ├── DemoOrderDetailServiceImpl.java
│ │ │ └── DemoImportExportServiceImpl.java
│ │ ├── req
│ │ ├── ReqDemoDataScope.java
│ │ ├── ReqDemoOrderDetail.java
│ │ ├── ReqDemoOrder.java
│ │ └── ReqDemoImportExport.java
│ │ └── config
│ │ └── OpenAiConfig.java
├── al-consume
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── bootstrap.yml
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── consume
│ │ ├── AlConsumeApplication.java
│ │ └── job
│ │ └── ConsumerJob.java
├── al-lowcode
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── lowcode
│ │ ├── mapper
│ │ ├── LowCodePageMapper.java
│ │ └── LowCodePageCategoryMapper.java
│ │ ├── req
│ │ ├── ReqLowCodePage.java
│ │ └── ReqLowCodePageCategory.java
│ │ └── service
│ │ ├── LowCodePageService.java
│ │ └── LowCodePageCategoryService.java
└── pom.xml
├── al-common
├── .DS_Store
├── al-common-api
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── api
│ │ ├── BootLogService.java
│ │ └── BootDictService.java
├── al-common-app
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── app
│ │ └── annotation
│ │ └── AutoApp.java
├── al-common-ds
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── ds
│ │ ├── mapper
│ │ └── BatchBaseMapper.java
│ │ └── annotation
│ │ ├── Master.java
│ │ └── Slave.java
├── al-common-log
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── log
│ │ ├── mapper
│ │ ├── xml
│ │ │ └── SysLogMapper.xml
│ │ └── SysLogMapper.java
│ │ ├── service
│ │ ├── SysLogService.java
│ │ └── impl
│ │ │ └── SysLogServiceImpl.java
│ │ └── annotation
│ │ └── Log.java
├── al-common-sys
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── sys
│ │ ├── req
│ │ └── ReqDictItem.java
│ │ └── service
│ │ └── DictItemService.java
├── al-common-web
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── web
│ │ └── annotation
│ │ └── AutoWeb.java
├── al-common-cloud
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── cloud
│ │ ├── annotation
│ │ ├── AutoCloud.java
│ │ └── AutoFeignClients.java
│ │ └── config
│ │ └── FeignConfig.java
├── al-common-code
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── META-INF
│ │ │ └── spring
│ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── template
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── ${packageName}
│ │ │ ├── mapper
│ │ │ ├── xml
│ │ │ │ └── ${entityName}Mapper.xml.ftl
│ │ │ └── ${entityName}Mapper.java.ftl
│ │ │ └── service
│ │ │ ├── ${entityName}Service.java.ftl
│ │ │ └── impl
│ │ │ └── ${entityName}ServiceImpl.java.ftl
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── code
│ │ ├── vo
│ │ └── CodeVo.java
│ │ ├── entity
│ │ ├── FieldExpand.java
│ │ ├── TableExpand.java
│ │ ├── SearchInfo.java
│ │ └── CodeInfo.java
│ │ ├── req
│ │ └── ReqSearch.java
│ │ └── config
│ │ └── properties
│ │ └── FreemarkerProperties.java
├── al-common-core
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── core
│ │ ├── web
│ │ └── PageConstant.java
│ │ ├── exception
│ │ ├── OAuthValidateException.java
│ │ └── MyRuntimeException.java
│ │ ├── enums
│ │ ├── ReqSource.java
│ │ ├── DeviceType.java
│ │ ├── HttpType.java
│ │ └── OperateType.java
│ │ ├── config
│ │ ├── ServiceProperties.java
│ │ └── XssProperties.java
│ │ ├── annotation
│ │ ├── InnerUser.java
│ │ └── GlobalException.java
│ │ ├── utils
│ │ └── excel
│ │ │ └── UploadDAO.java
│ │ ├── constants
│ │ ├── ServiceConstants.java
│ │ └── RPCConstants.java
│ │ └── entity
│ │ ├── BaseTreeEntity.java
│ │ └── DefaultField.java
├── al-common-dblink
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── dblink
│ │ ├── .DS_Store
│ │ ├── entity
│ │ └── QueryParam.java
│ │ ├── dbpool
│ │ └── PoolWrapper.java
│ │ ├── db
│ │ └── DBDialect.java
│ │ └── service
│ │ └── DbConnectService.java
├── al-common-file
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── file
│ │ ├── service
│ │ └── StorageService.java
│ │ └── enums
│ │ └── StorageType.java
├── al-common-oauth
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── cn
│ │ │ └── com
│ │ │ └── axel
│ │ │ └── common
│ │ │ └── oauth
│ │ │ ├── common
│ │ │ ├── Logical.java
│ │ │ ├── DataScopeValue.java
│ │ │ └── LoginMutexEntity.java
│ │ │ ├── scope
│ │ │ ├── DataScopeHandle.java
│ │ │ └── TenantDataScopeHandle.java
│ │ │ ├── validator
│ │ │ └── IBaseValidator.java
│ │ │ ├── annotation
│ │ │ ├── RequiresRoles.java
│ │ │ ├── RequiresPermissions.java
│ │ │ └── DataScopes.java
│ │ │ ├── req
│ │ │ ├── ReqOrgUser.java
│ │ │ ├── ReqSsoOrg.java
│ │ │ ├── ReqSsoMenu.java
│ │ │ └── ReqSsoUser.java
│ │ │ ├── entity
│ │ │ ├── SimpleUserInfo.java
│ │ │ ├── SsoUser.java
│ │ │ └── AccessToken.java
│ │ │ └── service
│ │ │ └── SsoMenuService.java
│ │ └── resources
│ │ └── META-INF
│ │ └── spring
│ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
├── al-common-redis
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── redis
│ │ └── config
│ │ └── CacheProperties.java
├── al-common-captcha
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── captcha
│ │ ├── common
│ │ └── CaptchaConstant.java
│ │ └── service
│ │ └── CheckCodeService.java
├── al-common-dataset
│ ├── .DS_Store
│ ├── src
│ │ └── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── com
│ │ │ └── axel
│ │ │ └── common
│ │ │ └── dataset
│ │ │ ├── enums
│ │ │ └── TargetType.java
│ │ │ ├── common
│ │ │ └── Constant.java
│ │ │ └── datatable
│ │ │ └── MetaHeaderDataTable.java
│ └── pom.xml
├── al-common-swagger
│ ├── .DS_Store
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── common
│ │ └── swagger
│ │ ├── annotation
│ │ └── AutoSwagger.java
│ │ └── config
│ │ └── MyContact.java
└── al-common-scheduler
│ ├── .DS_Store
│ └── src
│ └── main
│ ├── resources
│ └── META-INF
│ │ └── spring
│ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ └── java
│ └── cn
│ └── com
│ └── axel
│ └── common
│ └── scheduler
│ └── config
│ ├── enums
│ └── JobStatus.java
│ └── properties
│ └── ProductProperties.java
├── al-gateway
├── .DS_Store
└── src
│ └── main
│ └── java
│ └── cn
│ └── com
│ └── axel
│ └── gateway
│ ├── config
│ └── properties
│ │ └── IgnoreWhiteProperties.java
│ └── common
│ └── GatewayUtils.java
├── al-monitor
├── .DS_Store
└── src
│ └── main
│ ├── resources
│ ├── al-monitor-dev.yml
│ └── bootstrap.yml
│ └── java
│ └── cn
│ └── com
│ └── axel
│ └── monitor
│ └── AlMonitorApplication.java
├── al-storage
├── .DS_Store
└── src
│ └── main
│ └── java
│ └── cn
│ └── com
│ └── axel
│ └── storage
│ ├── mapper
│ ├── xml
│ │ └── StorageMapper.xml
│ └── StorageMapper.java
│ └── req
│ └── ReqSysFile.java
├── al-scheduler
├── .DS_Store
└── src
│ ├── .DS_Store
│ ├── main
│ └── java
│ │ └── cn
│ │ └── com
│ │ └── axel
│ │ └── scheduler
│ │ ├── mapper
│ │ ├── xml
│ │ │ ├── JobMapper.xml
│ │ │ └── JobLogMapper.xml
│ │ ├── JobMapper.java
│ │ ├── JobLogMapper.java
│ │ └── JobSubscribeMapper.java
│ │ ├── invoke
│ │ └── BaseInvoke.java
│ │ ├── service
│ │ ├── JobLogService.java
│ │ ├── impl
│ │ │ └── JobLogServiceImpl.java
│ │ └── JobService.java
│ │ ├── req
│ │ ├── ReqJobSubscribe.java
│ │ ├── ReqJobLog.java
│ │ └── ReqJob.java
│ │ ├── listener
│ │ └── ListenerEvent.java
│ │ ├── execute
│ │ ├── GeneralJobExecute.java
│ │ └── DisallowConcurrentJobExecute.java
│ │ ├── common
│ │ └── AlConnectionProvider.java
│ │ └── entity
│ │ └── JobMeta.java
│ └── test
│ └── java
│ └── cn
│ └── com
│ └── axel
│ └── scheduler
│ └── test
│ └── BuildParamTest.java
└── docker-compose.yml
/al-wechat/pages/index/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {}
3 | }
--------------------------------------------------------------------------------
/al-api/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-api/.DS_Store
--------------------------------------------------------------------------------
/al-oauth/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-oauth/.DS_Store
--------------------------------------------------------------------------------
/al-start/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-start/.DS_Store
--------------------------------------------------------------------------------
/al-test/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-test/.DS_Store
--------------------------------------------------------------------------------
/al-business/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-business/.DS_Store
--------------------------------------------------------------------------------
/al-common/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/.DS_Store
--------------------------------------------------------------------------------
/al-gateway/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-gateway/.DS_Store
--------------------------------------------------------------------------------
/al-monitor/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-monitor/.DS_Store
--------------------------------------------------------------------------------
/al-storage/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-storage/.DS_Store
--------------------------------------------------------------------------------
/al-test/src/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-test/src/.DS_Store
--------------------------------------------------------------------------------
/al-wechat/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-wechat/.DS_Store
--------------------------------------------------------------------------------
/al-scheduler/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-scheduler/.DS_Store
--------------------------------------------------------------------------------
/al-scheduler/src/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-scheduler/src/.DS_Store
--------------------------------------------------------------------------------
/al-wechat/pages/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-wechat/pages/.DS_Store
--------------------------------------------------------------------------------
/al-wechat/style/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-wechat/style/.DS_Store
--------------------------------------------------------------------------------
/al-api/al-sys-api/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-api/al-sys-api/.DS_Store
--------------------------------------------------------------------------------
/al-business/al-sys/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-business/al-sys/.DS_Store
--------------------------------------------------------------------------------
/al-wechat/pages/logs/logs.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "查看启动日志",
3 | "usingComponents": {}
4 | }
--------------------------------------------------------------------------------
/al-api/al-oauth-api/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-api/al-oauth-api/.DS_Store
--------------------------------------------------------------------------------
/al-api/al-storage-api/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-api/al-storage-api/.DS_Store
--------------------------------------------------------------------------------
/al-business/al-demo/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-business/al-demo/.DS_Store
--------------------------------------------------------------------------------
/al-start/al-start-sys/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-start/al-start-sys/.DS_Store
--------------------------------------------------------------------------------
/al-api/al-scheduler-api/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-api/al-scheduler-api/.DS_Store
--------------------------------------------------------------------------------
/al-business/al-consume/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-business/al-consume/.DS_Store
--------------------------------------------------------------------------------
/al-business/al-lowcode/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-business/al-lowcode/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-api/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-api/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-app/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-app/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-ds/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-ds/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-log/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-log/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-sys/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-sys/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-web/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-web/.DS_Store
--------------------------------------------------------------------------------
/al-start/al-start-boot/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-start/al-start-boot/.DS_Store
--------------------------------------------------------------------------------
/al-start/al-start-demo/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-start/al-start-demo/.DS_Store
--------------------------------------------------------------------------------
/al-start/al-start-oauth/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-start/al-start-oauth/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-cloud/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-cloud/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-code/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-code/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-core/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-core/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-dblink/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-dblink/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-file/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-file/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-oauth/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-oauth/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-redis/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-redis/.DS_Store
--------------------------------------------------------------------------------
/al-start/al-start-gateway/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-start/al-start-gateway/.DS_Store
--------------------------------------------------------------------------------
/al-start/al-start-lowcode/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-start/al-start-lowcode/.DS_Store
--------------------------------------------------------------------------------
/al-start/al-start-storage/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-start/al-start-storage/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-captcha/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-captcha/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-dataset/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-dataset/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-swagger/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-swagger/.DS_Store
--------------------------------------------------------------------------------
/al-start/al-start-scheduler/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-start/al-start-scheduler/.DS_Store
--------------------------------------------------------------------------------
/al-common/al-common-scheduler/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-scheduler/.DS_Store
--------------------------------------------------------------------------------
/al-oauth/src/main/resources/static/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-oauth/src/main/resources/static/img/logo.png
--------------------------------------------------------------------------------
/al-oauth/src/main/resources/static/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-oauth/src/main/resources/static/img/favicon.ico
--------------------------------------------------------------------------------
/al-oauth/src/main/resources/static/img/login-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-oauth/src/main/resources/static/img/login-bg.png
--------------------------------------------------------------------------------
/al-oauth/src/main/resources/static/img/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-oauth/src/main/resources/static/img/success.png
--------------------------------------------------------------------------------
/al-oauth/src/main/resources/static/img/qrcode_ok.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-oauth/src/main/resources/static/img/qrcode_ok.png
--------------------------------------------------------------------------------
/al-start/al-start-demo/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM openjdk:21
2 |
3 | WORKDIR /app
4 |
5 | COPY target/al-*.jar /app/
6 |
7 | ENTRYPOINT ["java", "-jar", "al-demo.jar"]
--------------------------------------------------------------------------------
/al-start/al-start-sys/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM openjdk:21
2 |
3 | WORKDIR /app
4 |
5 | COPY target/al-*.jar /app/
6 |
7 | ENTRYPOINT ["java", "-jar", "al-sys.jar"]
--------------------------------------------------------------------------------
/al-start/al-start-oauth/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM openjdk:21
2 |
3 | WORKDIR /app
4 |
5 | COPY target/al-*.jar /app/
6 |
7 | ENTRYPOINT ["java", "-jar", "al-oauth.jar"]
--------------------------------------------------------------------------------
/al-common/al-common-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.web.aspect.InnerUserAspect
--------------------------------------------------------------------------------
/al-oauth/src/main/resources/static/img/qrcode_invalid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-oauth/src/main/resources/static/img/qrcode_invalid.png
--------------------------------------------------------------------------------
/al-start/al-start-boot/src/main/resources/excel/销售订单.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-start/al-start-boot/src/main/resources/excel/销售订单.xlsx
--------------------------------------------------------------------------------
/al-start/al-start-demo/src/main/resources/excel/销售订单.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-start/al-start-demo/src/main/resources/excel/销售订单.xlsx
--------------------------------------------------------------------------------
/al-start/al-start-gateway/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM openjdk:21
2 |
3 | WORKDIR /app
4 |
5 | COPY target/al-*.jar /app/
6 |
7 | ENTRYPOINT ["java", "-jar", "al-gateway.jar"]
--------------------------------------------------------------------------------
/al-start/al-start-lowcode/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM openjdk:21
2 |
3 | WORKDIR /app
4 |
5 | COPY target/al-*.jar /app/
6 |
7 | ENTRYPOINT ["java", "-jar", "al-lowcode.jar"]
--------------------------------------------------------------------------------
/al-start/al-start-scheduler/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM openjdk:21
2 |
3 | WORKDIR /app
4 |
5 | COPY target/al-*.jar /app/
6 |
7 | ENTRYPOINT ["java", "-jar", "al-scheduler.jar"]
--------------------------------------------------------------------------------
/al-start/al-start-storage/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM openjdk:21
2 |
3 | WORKDIR /app
4 |
5 | COPY target/al-*.jar /app/
6 |
7 | ENTRYPOINT ["java", "-jar", "al-storage.jar"]
--------------------------------------------------------------------------------
/al-wechat/pages/logs/logs.wxss:
--------------------------------------------------------------------------------
1 | .log-list {
2 | display: flex;
3 | flex-direction: column;
4 | padding: 40rpx;
5 | }
6 | .log-item {
7 | margin: 10rpx;
8 | }
9 |
--------------------------------------------------------------------------------
/al-start/al-start-lowcode/src/main/resources/excel/销售订单.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-start/al-start-lowcode/src/main/resources/excel/销售订单.xlsx
--------------------------------------------------------------------------------
/al-wechat/style/base/fn.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-common/al-common-swagger/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.swagger.config.SwaggerConfig
--------------------------------------------------------------------------------
/al-api/al-storage-api/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.storage.api.fallback.RemoteStorageFallBack
--------------------------------------------------------------------------------
/al-wechat/style/base/mixin/mobile.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-wechat/style/base/mixin/text.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-api/al-scheduler-api/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.scheduler.api.fallback.RemoteSchedulerFallBack
--------------------------------------------------------------------------------
/al-wechat/style/base/mixin/setArrow.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-wechat/style/base/mixin/setOnepx.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-wechat/style/base/variable/color.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-wechat/style/base/variable/global.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-wechat/style/base/variable/weui-msg.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-wechat/style/base/variable/weui-tab.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-common/al-common-scheduler/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.scheduler.config.properties.ProductProperties
--------------------------------------------------------------------------------
/al-wechat/style/base/variable/weui-button.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-wechat/style/base/variable/weui-cell.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-wechat/style/base/variable/weui-dialog.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-wechat/style/base/variable/weui-grid.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-wechat/style/base/variable/weui-progress.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 |
--------------------------------------------------------------------------------
/al-oauth/src/main/resources/static/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-oauth/src/main/resources/static/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/al-oauth/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-oauth/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/al-common/al-common-dblink/src/main/java/cn/com/axel/common/dblink/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-common/al-common-dblink/src/main/java/cn/com/axel/common/dblink/.DS_Store
--------------------------------------------------------------------------------
/al-oauth/src/main/resources/static/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-oauth/src/main/resources/static/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/al-oauth/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-dim/server/HEAD/al-oauth/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/al-wechat/sitemap.json:
--------------------------------------------------------------------------------
1 | {
2 | "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
3 | "rules": [{
4 | "action": "allow",
5 | "page": "*"
6 | }]
7 | }
--------------------------------------------------------------------------------
/al-start/al-start-boot/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM openjdk:21
2 |
3 | WORKDIR /app
4 |
5 | COPY target/al-*.jar /app/
6 | COPY src/main/resources/prod/* /app/
7 |
8 | ENTRYPOINT ["java", "-jar", "al-start-boot.jar"]
9 |
--------------------------------------------------------------------------------
/al-common/al-common-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.redis.config.RedisConfig
2 | cn.com.axel.common.redis.config.CacheProperties
--------------------------------------------------------------------------------
/al-wechat/pages/logs/logs.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{index + 1}}. {{log}}
5 |
6 |
7 |
--------------------------------------------------------------------------------
/al-common/al-common-cloud/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.cloud.config.FeignConfig
2 | cn.com.axel.common.cloud.interceptor.BearerTokenInterceptor
--------------------------------------------------------------------------------
/al-oauth/src/main/resources/templates/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 统一认证 错误
6 |
7 |
8 | 错误 404
9 |
10 |
--------------------------------------------------------------------------------
/al-monitor/src/main/resources/al-monitor-dev.yml:
--------------------------------------------------------------------------------
1 | swagger:
2 | title: 'Axel监控中心'
3 | spring:
4 | security:
5 | user:
6 | name: admin
7 | password: 123456
8 | boot:
9 | admin:
10 | ui:
11 | title: Axel监控中心
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-cell/weui-switch.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-cell_switch{padding-top:12px;padding-bottom:12px}
--------------------------------------------------------------------------------
/al-common/al-common-log/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.log.aspect.LogAspect
2 | cn.com.axel.common.log.service.AsyncSaveLog
3 | cn.com.axel.common.log.service.impl.SysLogServiceImpl
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-button/weui-btn_disabled.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-btn_disabled{color:rgba(0,0,0,.18);background-color:#fafafa}
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-icon/weui-icon.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | icon[type=success]:after,icon[type=success]:before{color:#07c160!important}
--------------------------------------------------------------------------------
/al-api/al-sys-api/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.sys.api.fallback.RemoteLogFallback
2 | cn.com.axel.sys.api.fallback.RemoteDbConnectFallback
3 | cn.com.axel.sys.api.fallback.RemoteDictFallback
--------------------------------------------------------------------------------
/al-common/al-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.core.utils.SpringBeanFactory
2 | cn.com.axel.common.core.config.ServiceProperties
3 | cn.com.axel.common.core.config.XssProperties
--------------------------------------------------------------------------------
/al-wechat/project.private.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
3 | "setting": {
4 | "urlCheck": false
5 | }
6 | }
--------------------------------------------------------------------------------
/al-common/al-common-file/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.file.handler.StorageHandler
2 | cn.com.axel.common.file.config.properties.StorageProperties
3 | cn.com.axel.common.file.config.StorageConfig
--------------------------------------------------------------------------------
/al-wechat/style/base/reset.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | page{line-height:1.6;font-family:-apple-system-font,Helvetica Neue,sans-serif}icon{vertical-align:middle}
--------------------------------------------------------------------------------
/al-common/al-common-code/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.code.common.FreemarkerUtils
2 | cn.com.axel.common.code.config.properties.FreemarkerProperties
3 | cn.com.axel.common.code.config.FreemarkerConfig
--------------------------------------------------------------------------------
/al-common/al-common-ds/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.ds.config.MybatisInterceptor
2 | cn.com.axel.common.ds.config.BatchSqlInjector
3 | com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure
--------------------------------------------------------------------------------
/al-common/al-common-oauth/src/main/java/cn/com/axel/common/oauth/common/Logical.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.oauth.common;
2 |
3 | /**
4 | * @author: axel
5 | * @description: 权限校验连接枚举
6 | * @date: 2022/12/5 17:50
7 | */
8 | public enum Logical {
9 | AND,
10 | OR;
11 | }
12 |
--------------------------------------------------------------------------------
/al-common/al-common-captcha/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.captcha.config.properties.CaptchaProperties
2 | cn.com.axel.common.captcha.config.CaptchaConfig
3 | cn.com.axel.common.captcha.service.impl.CheckCodeServiceImpl
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/mapper/xml/ClientMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/mapper/xml/JobMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-storage/src/main/java/cn/com/axel/storage/mapper/xml/StorageMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/mapper/xml/CodeBuildMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/mapper/xml/DbConnectMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/mapper/xml/DictItemMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/mapper/xml/SysConfigMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/mapper/xml/JobLogMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-flex/weui-flex.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-flex{display:-webkit-box;display:-webkit-flex;display:flex}.weui-flex__item{-webkit-box-flex:1;-webkit-flex:1;flex:1}
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/mapper/xml/DemoOrderMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-tips/weui-mask.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-mask{background:rgba(0,0,0,.6)}.weui-mask,.weui-mask_transparent{position:fixed;z-index:1000;top:0;right:0;left:0;bottom:0}
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/mapper/xml/DemoDataScopeMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-common/al-common-dataset/src/main/java/cn/com/axel/common/dataset/enums/TargetType.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.dataset.enums;
2 |
3 | /**
4 | * @description: 指标类型
5 | * @author: axel
6 | * @date: 2023/3/20
7 | */
8 | public enum TargetType {
9 | ORIGINAL, //原始指标
10 | OPERATION //运算指标
11 | }
12 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/mapper/xml/SsoClientDetailsMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/mapper/xml/DemoOrderDetailMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-common/al-common-log/src/main/java/cn/com/axel/common/log/mapper/xml/SysLogMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/mapper/xml/DemoImportExportMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/entity/Question.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.entity;
2 |
3 | import lombok.Data;
4 |
5 | /**
6 | * @description: 问题
7 | * @author: axel
8 | * @date: 2023/2/8 11:49
9 | */
10 | @Data
11 | public class Question {
12 | private String id;
13 | private String data;
14 | }
15 |
--------------------------------------------------------------------------------
/al-common/al-common-oauth/src/main/java/cn/com/axel/common/oauth/scope/DataScopeHandle.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.oauth.scope;
2 |
3 | /**
4 | * @description: 数据范围处理
5 | * @author: axel
6 | * @date: 2024/4/26
7 | */
8 | public interface DataScopeHandle {
9 | String buildCondition(String fieldName, String[] values);
10 | }
11 |
--------------------------------------------------------------------------------
/al-api/al-oauth-api/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.oauth.api.fallback.RemoteUserFallback
2 | cn.com.axel.common.oauth.api.fallback.RemoteOrgFallback
3 | cn.com.axel.common.oauth.api.fallback.RemoteRoleFallback
4 | cn.com.axel.common.oauth.api.fallback.RemoteMenuFallback
--------------------------------------------------------------------------------
/al-common/al-common-code/src/main/resources/template/src/main/java/${packageName}/mapper/xml/${entityName}Mapper.xml.ftl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/al-wechat/pages/logs/logs.js:
--------------------------------------------------------------------------------
1 | //logs.js
2 | const util = require('../../utils/util.js')
3 |
4 | Page({
5 | data: {
6 | logs: []
7 | },
8 | onLoad: function () {
9 | this.setData({
10 | logs: (wx.getStorageSync('logs') || []).map(log => {
11 | return util.formatTime(new Date(log))
12 | })
13 | })
14 | }
15 | })
16 |
--------------------------------------------------------------------------------
/al-common/al-common-core/src/main/java/cn/com/axel/common/core/web/PageConstant.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.core.web;
2 |
3 | /**
4 | * @description: 翻页常量
5 | * @author: axel
6 | * @date: 2023/9/13
7 | */
8 | public class PageConstant {
9 | public static final String PAGE_NUM = "pageNum";
10 | public static final String PAGE_SIZE = "pageSize";
11 | }
12 |
--------------------------------------------------------------------------------
/al-common/al-common-core/src/main/java/cn/com/axel/common/core/exception/OAuthValidateException.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.core.exception;
2 |
3 | /**
4 | * @author: axel
5 | * @date: 2020/2/17 16:32
6 | */
7 | public class OAuthValidateException extends RuntimeException {
8 | public OAuthValidateException(String msg) {
9 | super(msg);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/entity/RedisQrCode.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.entity;
2 |
3 | import lombok.Data;
4 | import lombok.EqualsAndHashCode;
5 |
6 | /**
7 | * @author: axel
8 | * @date: 2020/3/5 17:11
9 | */
10 | @Data
11 | @EqualsAndHashCode(callSuper = true)
12 | public class RedisQrCode extends QRCode {
13 | private String accessToken;
14 | }
15 |
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-button/weui-btn_primary.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-btn_primary{background-color:#07c160}.weui-btn_primary:not(.weui-btn_disabled):visited{color:#fff}.weui-btn_primary:not(.weui-btn_disabled):active{color:#fff;background-color:#06ad56}
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-button/weui-btn_warn.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-btn_warn{color:#fa5151;background-color:#f2f2f2}.weui-btn_warn:not(.weui-btn_disabled):visited{color:#fa5151}.weui-btn_warn:not(.weui-btn_disabled):active{color:#fa5151;background-color:#d9d9d9}
--------------------------------------------------------------------------------
/al-wechat/pages/index/index.wxss:
--------------------------------------------------------------------------------
1 | /**index.wxss**/
2 | .userinfo {
3 | display: flex;
4 | flex-direction: column;
5 | align-items: center;
6 | }
7 |
8 | .userinfo-avatar {
9 | width: 128rpx;
10 | height: 128rpx;
11 | margin: 20rpx;
12 | border-radius: 50%;
13 | }
14 |
15 | .userinfo-nickname {
16 | color: #aaa;
17 | }
18 |
19 | .usermotto {
20 | margin-top: 200px;
21 | }
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-button/weui-btn_default.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-btn_default{color:#06ae56;background-color:#f2f2f2}.weui-btn_default:not(.weui-btn_disabled):visited{color:#06ae56}.weui-btn_default:not(.weui-btn_disabled):active{color:#06ae56;background-color:#d9d9d9}
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/invoke/BaseInvoke.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.scheduler.invoke;
2 |
3 | import cn.com.axel.common.scheduler.api.entity.JobLog;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * @description: 基础任务
9 | * @author: axel
10 | * @date: 2023/2/13 17:41
11 | */
12 | public interface BaseInvoke {
13 | Object run(JobLog jobLog, List params);
14 | }
15 |
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/mapper/JobMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.scheduler.mapper;
2 |
3 | import cn.com.axel.scheduler.entity.Job;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: 定时调度任务
8 | * @author: axel
9 | * @date: 2023-02-03
10 | * @version: V0.0.1
11 | */
12 | public interface JobMapper extends BaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-wechat/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "pages": [
3 | "pages/index/index",
4 | "pages/logs/logs"
5 | ],
6 | "window": {
7 | "backgroundTextStyle": "light",
8 | "navigationBarBackgroundColor": "#fff",
9 | "navigationBarTitleText": "Axel低代码—微信小程序",
10 | "navigationBarTextStyle": "black"
11 | },
12 | "style": "v2",
13 |
14 | "usingComponents": {},
15 | "sitemapLocation": "sitemap.json"
16 | }
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-tips/weui-badge.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-badge{display:inline-block;padding:.15em .4em;min-width:8px;border-radius:18px;background-color:#fa5151;color:#fff;line-height:1.2;text-align:center;font-size:12px;vertical-align:middle}.weui-badge_dot{padding:.4em;min-width:0}
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/mapper/DbConnectMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.sys.mapper;
2 |
3 | import cn.com.axel.sys.api.entity.DbConnect;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: 数据库连接
8 | * @author: axel
9 | * @date: 2023-03-13
10 | * @version: V0.0.1
11 | */
12 | public interface DbConnectMapper extends BaseMapper {
13 | }
14 |
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-cell/weui-check.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-cells_checkbox .weui-check__label:before{left:55px}.weui-check__label:active{background-color:#ececec}.weui-check{position:absolute;left:-9999px}.weui-check__hd_in-checkbox{padding-right:16px}.weui-cell__ft_in-radio{padding-left:16px}
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/mapper/DemoOrderMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.mapper;
2 |
3 | import cn.com.axel.demo.entity.DemoOrder;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: 销售订单
8 | * @author: axel
9 | * @date: 2024-09-13
10 | * @version: V0.0.1
11 | */
12 | public interface DemoOrderMapper extends BaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/mapper/CodeBuildMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.sys.mapper;
2 |
3 | import cn.com.axel.sys.entity.CodeBuild;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: 代码构建
8 | * @author: axel
9 | * @date: 2023-04-11
10 | * @version: V0.0.1
11 | */
12 | public interface CodeBuildMapper extends BaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/mapper/SysConfigMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.sys.mapper;
2 |
3 | import cn.com.axel.sys.entity.SysConfig;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: 界面配置
8 | * @author: axel
9 | * @date: 2023-03-07
10 | * @version: V0.0.1
11 | */
12 | public interface SysConfigMapper extends BaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/service/QRCodeService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.service;
2 |
3 | import cn.com.axel.oauth.entity.RedisQrCode;
4 |
5 | /**
6 | * @author: axel
7 | * @date: 2020/3/5 14:57
8 | */
9 | public interface QRCodeService {
10 | void saveQRCode(RedisQrCode qrCode);
11 |
12 | RedisQrCode checkQRCode(String code);
13 |
14 | void updateQRCode(RedisQrCode qrCode);
15 | }
16 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/entity/CompletionResult.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.entity;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * @description: 回答结果
8 | * @author: axel
9 | * @date: 2023/2/8 22:42
10 | */
11 | @Data
12 | @Accessors(chain = true)
13 | public class CompletionResult {
14 | private String id;
15 | private String result;
16 | }
17 |
--------------------------------------------------------------------------------
/al-common/al-common-log/src/main/java/cn/com/axel/common/log/mapper/SysLogMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.log.mapper;
2 |
3 | import cn.com.axel.sys.api.entity.SysLog;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: 系统日志
8 | * @author: axel
9 | * @date: 2023-01-08
10 | * @version: V0.0.1
11 | */
12 | public interface SysLogMapper extends BaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/mapper/JobLogMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.scheduler.mapper;
2 |
3 | import cn.com.axel.common.scheduler.api.entity.JobLog;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: 任务日志
8 | * @author: axel
9 | * @date: 2023-02-14
10 | * @version: V0.0.1
11 | */
12 | public interface JobLogMapper extends BaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/config/properties/ShiroProperties.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.config.properties;
2 |
3 | /**
4 | * @description: shiro配置属性
5 | * @author: axel
6 | * @date: 2023/1/15 15:41
7 | */
8 | public class ShiroProperties {
9 | public static final String algorithmName = "md5";
10 | public static final int hashIterations = 2;
11 | public static final Boolean hexEncoded = true;
12 | }
13 |
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/service/JobLogService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.scheduler.service;
2 |
3 | import cn.com.axel.common.scheduler.api.entity.JobLog;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 |
6 | /**
7 | * @description: 任务日志
8 | * @author: axel
9 | * @date: 2023-02-14
10 | * @version: V0.0.1
11 | */
12 | public interface JobLogService extends IService {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-storage/src/main/java/cn/com/axel/storage/mapper/StorageMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.storage.mapper;
2 |
3 | import cn.com.axel.common.storage.api.entity.StorageInfo;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: 文件缓存
8 | * @author: axel
9 | * @date: 2023-01-05
10 | * @version: V0.0.1
11 | */
12 | public interface StorageMapper extends BaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-progress/weui-progress.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-progress{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-progress__bar{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-progress__opr{margin-left:15px;font-size:0}
--------------------------------------------------------------------------------
/al-common/al-common-oauth/src/main/java/cn/com/axel/common/oauth/validator/IBaseValidator.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.oauth.validator;
2 |
3 | import cn.com.axel.common.core.web.Result;
4 | import jakarta.servlet.http.HttpServletRequest;
5 |
6 |
7 | /**
8 | * @author: axel
9 | * @date: 2020/2/13 13:43
10 | */
11 | public interface IBaseValidator {
12 | Result validate(HttpServletRequest request, Result result);
13 | }
14 |
--------------------------------------------------------------------------------
/al-business/al-lowcode/src/main/java/cn/com/axel/lowcode/mapper/LowCodePageMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.lowcode.mapper;
2 |
3 | import cn.com.axel.lowcode.entity.LowCodePage;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: 低代码页面
8 | * @author: axel
9 | * @date: 2024-09-13
10 | * @version: V0.0.1
11 | */
12 | public interface LowCodePageMapper extends BaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/mapper/SsoClientDetailsMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.mapper;
2 |
3 | import cn.com.axel.oauth.entity.SsoClientDetails;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: 客户端信息
8 | * @author: axel
9 | * @date: 2023-05-12
10 | * @version: V0.0.1
11 | */
12 | public interface SsoClientDetailsMapper extends BaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/mapper/DemoDataScopeMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.mapper;
2 |
3 | import cn.com.axel.demo.entity.DemoDataScope;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: demo_data_scope
8 | * @author: axel
9 | * @date: 2024-09-04
10 | * @version: V0.0.1
11 | */
12 | public interface DemoDataScopeMapper extends BaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/mapper/DemoOrderDetailMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.mapper;
2 |
3 | import cn.com.axel.common.ds.mapper.BatchBaseMapper;
4 | import cn.com.axel.demo.entity.DemoOrderDetail;
5 |
6 | /**
7 | * @description: 销售订单明细
8 | * @author: axel
9 | * @date: 2024-09-02
10 | * @version: V0.0.1
11 | */
12 | public interface DemoOrderDetailMapper extends BatchBaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/mapper/DictItemMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.sys.mapper;
2 |
3 | import cn.com.axel.sys.api.entity.DictItem;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @Description: 字典项
8 | * @Author: axel
9 | * @date: 2023-01-03
10 | * @Version: V0.0.1
11 | */
12 | @SuppressWarnings("rawtypes")
13 | public interface DictItemMapper extends BaseMapper {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/service/ClientService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.service;
2 |
3 | import cn.com.axel.oauth.entity.OAuthClient;
4 |
5 | /**
6 | * @author: axel
7 | * @date: 2020/2/16 16:10
8 | */
9 | public interface ClientService {
10 | /**
11 | * 根据客户端ID获取客户端信息
12 | *
13 | * @param clientId 客户端id
14 | * @return 返回客户端信息
15 | */
16 | OAuthClient getClientById(String clientId);
17 | }
18 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/mapper/DemoImportExportMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.mapper;
2 |
3 | import cn.com.axel.common.ds.mapper.BatchBaseMapper;
4 | import cn.com.axel.demo.entity.DemoImportExport;
5 |
6 | /**
7 | * @description: 导入导出Demo
8 | * @author: axel
9 | * @date: 2024-09-02
10 | * @version: V0.0.1
11 | */
12 | public interface DemoImportExportMapper extends BatchBaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/service/DemoDataScopeService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.service;
2 |
3 | import cn.com.axel.demo.entity.DemoDataScope;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 |
6 | /**
7 | * @description: demo_data_scope
8 | * @author: axel
9 | * @date: 2024-09-04
10 | * @version: V0.0.1
11 | */
12 | public interface DemoDataScopeService extends IService {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/service/DemoOrderDetailService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.service;
2 |
3 | import cn.com.axel.demo.entity.DemoOrderDetail;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 |
6 | /**
7 | * @description: 销售订单明细
8 | * @author: axel
9 | * @date: 2024-09-02
10 | * @version: V0.0.1
11 | */
12 | public interface DemoOrderDetailService extends IService {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-button/weui-btn_loading.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-btn_loading .weui-loading{margin:-.2em .34em 0 0}.weui-btn_loading.weui-btn_primary{color:#fff}.weui-btn_loading.weui-btn_default{background-color:#d9d9d9}.weui-btn_loading.weui-btn_primary{background-color:#06ad56}.weui-btn_loading.weui-btn_warn{background-color:#d9d9d9}
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/req/ReqMenuCreate.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.sys.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 | import lombok.Data;
5 |
6 | /**
7 | * @description: 菜单创建请求
8 | * @author: axel
9 | * @date: 2024/4/22
10 | */
11 | @Data
12 | public class ReqMenuCreate {
13 | @Schema(description = "代码生成id")
14 | private Long id;
15 | @Schema(description = "目录ID")
16 | private String parentId;
17 | }
18 |
--------------------------------------------------------------------------------
/al-common/al-common-captcha/src/main/java/cn/com/axel/common/captcha/common/CaptchaConstant.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.captcha.common;
2 |
3 | /**
4 | * @description: 验证码常量
5 | * @author: axel
6 | * @date: 2024/5/2
7 | */
8 | public class CaptchaConstant {
9 | public static final String CAPTCHA_VALUE = "captchaValue";
10 | public static final String CAPTCHA_KEY = "captchaKey";
11 | public static final String CHECK_ON_OFF = "captchaOnOff";
12 | }
13 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/mapper/ClientMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.mapper;
2 |
3 | import cn.com.axel.oauth.entity.OAuthClient;
4 | import org.apache.ibatis.annotations.Select;
5 |
6 | /**
7 | * @author: axel
8 | * @date: 2020/2/16 16:05
9 | */
10 | public interface ClientMapper {
11 | @Select("select * from sso_client_details where client_id = #{clientId} and del_flag = 0")
12 | OAuthClient getClientById(String clientId);
13 | }
14 |
--------------------------------------------------------------------------------
/al-business/al-lowcode/src/main/java/cn/com/axel/lowcode/mapper/LowCodePageCategoryMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.lowcode.mapper;
2 |
3 | import cn.com.axel.lowcode.entity.LowCodePageCategory;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: 低代码页面分类
8 | * @author: axel
9 | * @date: 2024-09-13
10 | * @version: V0.0.1
11 | */
12 | public interface LowCodePageCategoryMapper extends BaseMapper {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-start/al-start-boot/src/main/resources/application-gateway.yml:
--------------------------------------------------------------------------------
1 | gateway:
2 | routes:
3 | - path: /oauth2
4 | packageName: cn.com.axel.oauth
5 | - path: /scheduler
6 | packageName: cn.com.axel.scheduler
7 | - path: /storage
8 | packageName: cn.com.axel.storage
9 | - path: /sys
10 | packageName: cn.com.axel.sys
11 | - path: /demo
12 | packageName: cn.com.axel.demo
13 | - path: /nocode
14 | packageName: cn.com.axel.nocode
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | services:
2 | axel-nocode-service:
3 | build: al-start/al-start-boot
4 | container_name: axel-nocode-service
5 | restart: always
6 | environment:
7 | - TZ=Asia/Shanghai
8 | ports:
9 | - 11116:8888
10 | volumes:
11 | - /home/srv/docker_volumes/axel-nocode-service/logs:/app/logs
12 | - /home/srv/docker_volumes/axel-nocode-service/code:/app/code
13 | - /home/srv/docker_volumes/axel-nocode-service/storage:/app/storage
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/req/ReqDemoDataScope.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | /**
8 | * @description: demo_data_scope
9 | * @author: axel
10 | * @date: 2024-09-04
11 | * @version: V0.0.1
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | @Schema(description = "demo_data_scope请求参数")
16 | public class ReqDemoDataScope {
17 | }
18 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/entity/UserOrg.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.entity;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 |
7 | /**
8 | * @description: 用户组织
9 | * @author: axel
10 | * @date: 2023/7/4
11 | */
12 | @Data
13 | @Schema(description = "用户组织")
14 | public class UserOrg {
15 | @Schema(description = "组织ID")
16 | private String orgId;
17 | @Schema(description = "用户ID")
18 | private String userId;
19 | }
20 |
--------------------------------------------------------------------------------
/al-common/al-common-ds/src/main/java/cn/com/axel/common/ds/mapper/BatchBaseMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.ds.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import org.apache.ibatis.annotations.Mapper;
5 |
6 | import java.util.List;
7 |
8 | /**
9 | * @description: 批量新增mapper
10 | * @author: axel
11 | * @date: 2024/3/26
12 | */
13 | @Mapper
14 | public interface BatchBaseMapper extends BaseMapper {
15 | int insertBatchSomeColumn(List list);
16 | }
17 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/entity/QRCodeImg.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.entity;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.EqualsAndHashCode;
7 |
8 | /**
9 | * @author: axel
10 | * @date: 2020/3/5 18:23
11 | */
12 | @Data
13 | @Schema(description = "二维码返回结果带图片")
14 | @EqualsAndHashCode(callSuper = true)
15 | public class QRCodeImg extends QRCode {
16 | @Schema(description = "二维码")
17 | private String img;
18 | }
19 |
--------------------------------------------------------------------------------
/al-common/al-common-code/src/main/resources/template/src/main/java/${packageName}/mapper/${entityName}Mapper.java.ftl:
--------------------------------------------------------------------------------
1 | package ${packageName}.mapper;
2 |
3 | import ${packageName}.entity.${entityName};
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @description: ${tableInfo.tableComment}
8 | * @author: axel
9 | * @date: ${.now?string["yyyy-MM-dd"]}
10 | * @version: V0.0.1
11 | */
12 | public interface ${entityName}Mapper extends BaseMapper<${entityName}> {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-common/al-common-code/src/main/resources/template/src/main/java/${packageName}/service/${entityName}Service.java.ftl:
--------------------------------------------------------------------------------
1 | package ${packageName}.service;
2 |
3 | import ${packageName}.entity.${entityName};
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 |
6 | /**
7 | * @description: ${tableInfo.tableComment}
8 | * @author: axel
9 | * @date: ${.now?string["yyyy-MM-dd"]}
10 | * @version: V0.0.1
11 | */
12 | public interface ${entityName}Service extends IService<${entityName}> {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/al-common/al-common-log/src/main/java/cn/com/axel/common/log/service/SysLogService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.log.service;
2 |
3 | import cn.com.axel.common.core.web.Result;
4 | import cn.com.axel.sys.api.entity.SysLog;
5 | import com.baomidou.mybatisplus.extension.service.IService;
6 |
7 | /**
8 | * @description: 系统日志
9 | * @author: axel
10 | * @date: 2023-01-08
11 | * @version: V0.0.1
12 | */
13 | public interface SysLogService extends IService {
14 | Result insertLog(SysLog sysLog);
15 | }
16 |
--------------------------------------------------------------------------------
/al-common/al-common-core/src/main/java/cn/com/axel/common/core/enums/ReqSource.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.core.enums;
2 |
3 | import lombok.Getter;
4 |
5 | /**
6 | * @author: axel
7 | * @description: 请求来源
8 | * @date: 2022/9/6 17:33
9 | */
10 | @Getter
11 | public enum ReqSource {
12 | //其他
13 | OTHER(0),
14 | //管理端
15 | MANAGER(1),
16 | //手机端
17 | PHONE(2);
18 | private final Integer value;
19 |
20 | ReqSource(Integer value) {
21 | this.value = value;
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/mapper/DictMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.sys.mapper;
2 |
3 | import cn.com.axel.sys.entity.Dict;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 | import org.apache.ibatis.annotations.Param;
6 |
7 | /**
8 | * @Description: 字典
9 | * @Author: axel
10 | * @date: 2023-01-03
11 | * @Version: V0.0.1
12 | */
13 | public interface DictMapper extends BaseMapper {
14 | Integer isDictCodeExist(@Param("id") String id, @Param("dictCode") String dictCode);
15 | }
16 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/req/ReqSysConfig.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.sys.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @description: 界面配置
10 | * @author: axel
11 | * @date: 2023-03-07
12 | * @version: V0.0.1
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | @Schema(description = "界面配置请求参数")
17 | public class ReqSysConfig {
18 | @Schema(description = "用户ID")
19 | private String userId;
20 | }
21 |
--------------------------------------------------------------------------------
/al-common/al-common-dataset/src/main/java/cn/com/axel/common/dataset/common/Constant.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.dataset.common;
2 |
3 | /**
4 | * @description: 常量
5 | * @author: axel
6 | * @date: 2023/5/9 20:37
7 | */
8 | public class Constant {
9 | public static final String NotFoundException = "错误:未找到对应的列";
10 | public static final String IndexOverException = "错误:超出索引界限";
11 | public static final String ErrorRowException = "错误:行不匹配";
12 | public static final String EmptyColNameException = "错误:列名不允许为空";
13 | }
14 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/service/DemoImportExportService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.service;
2 |
3 | import cn.com.axel.demo.entity.DemoImportExport;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 |
6 | import java.util.List;
7 |
8 | /**
9 | * @description: 导入导出Demo
10 | * @author: axel
11 | * @date: 2024-09-02
12 | * @version: V0.0.1
13 | */
14 | public interface DemoImportExportService extends IService {
15 | int insertBatchSomeColumn(List list);
16 | }
17 |
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/req/ReqJobSubscribe.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.scheduler.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @description: 任务订阅表
10 | * @author: axel
11 | * @date: 2023-02-20
12 | * @version: V0.0.1
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | @Schema(description = "任务订阅表请求参数")
17 | public class ReqJobSubscribe {
18 | @Schema(description = "任务ID")
19 | private String jobId;
20 | }
21 |
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-button/weui-btn_global.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-btn{position:relative;display:block;width:184px;margin-left:auto;margin-right:auto;padding:8px 24px;box-sizing:border-box;font-weight:700;font-size:17px;text-align:center;text-decoration:none;color:#fff;line-height:1.41176471;border-radius:4px;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow:hidden}.weui-btn_block{width:auto}.weui-btn_inline{display:inline-block}
--------------------------------------------------------------------------------
/al-common/al-common-oauth/src/main/java/cn/com/axel/common/oauth/annotation/RequiresRoles.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.oauth.annotation;
2 |
3 | import cn.com.axel.common.oauth.common.Logical;
4 |
5 | import java.lang.annotation.*;
6 |
7 | /**
8 | * @author: axel
9 | * @description: 角色校验注解
10 | * @date: 2022/12/5 17:51
11 | */
12 | @Target({ElementType.TYPE, ElementType.METHOD})
13 | @Retention(RetentionPolicy.RUNTIME)
14 | @Documented
15 | public @interface RequiresRoles {
16 | String[] value();
17 |
18 | Logical logical() default Logical.OR;
19 | }
--------------------------------------------------------------------------------
/al-common/al-common-oauth/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | cn.com.axel.common.oauth.service.impl.WebTokenServiceImpl
2 | cn.com.axel.common.oauth.service.impl.WeChatTokenServiceImpl
3 | cn.com.axel.common.oauth.aspect.AuthorizationAspect
4 | cn.com.axel.common.oauth.validator.WebTokenValidator
5 | cn.com.axel.common.oauth.validator.WeChatTokenValidator
6 | cn.com.axel.common.oauth.validator.TokenValidator
7 | cn.com.axel.common.oauth.scope.SelectInterceptor
8 | cn.com.axel.common.oauth.aspect.DataScopeAspect
--------------------------------------------------------------------------------
/al-common/al-common-core/src/main/java/cn/com/axel/common/core/enums/DeviceType.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.core.enums;
2 |
3 | /**
4 | * @author: axel
5 | * @description: 设备类型
6 | * @date: 2022/12/2 18:19
7 | */
8 | public enum DeviceType {
9 | //浏览器
10 | Web("0"),
11 | //手机端
12 | APP("1"),
13 | //微信
14 | WX("2");
15 | private final String value;
16 |
17 | DeviceType(String value) {
18 | this.value = value;
19 | }
20 |
21 | @Override
22 | public String toString() {
23 | return value;
24 | }
25 | }
--------------------------------------------------------------------------------
/al-common/al-common-scheduler/src/main/java/cn/com/axel/common/scheduler/config/enums/JobStatus.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.scheduler.config.enums;
2 |
3 | /**
4 | * @description: 任务状态
5 | * @author: axel
6 | * @date: 2023/2/15 15:06
7 | */
8 | public enum JobStatus {
9 | 开始(0),
10 | 调度成功(1),
11 | 调度失败(2),
12 | 执行成功(3),
13 | 执行失败(4);
14 | private final Integer status;
15 |
16 | JobStatus(int status) {
17 | this.status = status;
18 | }
19 |
20 | public int getValue() {
21 | return status;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/al-common/al-common-core/src/main/java/cn/com/axel/common/core/exception/MyRuntimeException.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.core.exception;
2 |
3 | /**
4 | * @author: axel
5 | * @date: 2020/2/10 17:17
6 | */
7 | public class MyRuntimeException extends RuntimeException {
8 | public MyRuntimeException(String msg) {
9 | super(msg);
10 | }
11 |
12 | public MyRuntimeException(Throwable cause) {
13 | super(cause);
14 | }
15 |
16 | public MyRuntimeException(String msg, Throwable cause) {
17 | super(msg, cause);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/al-wechat/utils/util.js:
--------------------------------------------------------------------------------
1 | const formatTime = date => {
2 | const year = date.getFullYear()
3 | const month = date.getMonth() + 1
4 | const day = date.getDate()
5 | const hour = date.getHours()
6 | const minute = date.getMinutes()
7 | const second = date.getSeconds()
8 |
9 | return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
10 | }
11 |
12 | const formatNumber = n => {
13 | n = n.toString()
14 | return n[1] ? n : '0' + n
15 | }
16 |
17 | module.exports = {
18 | formatTime: formatTime
19 | }
20 |
--------------------------------------------------------------------------------
/al-common/al-common-oauth/src/main/java/cn/com/axel/common/oauth/annotation/RequiresPermissions.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.oauth.annotation;
2 |
3 | import cn.com.axel.common.oauth.common.Logical;
4 |
5 | import java.lang.annotation.*;
6 |
7 | /**
8 | * @author: axel
9 | * @description: 权限校验注解
10 | * @date: 2022/12/5 17:48
11 | */
12 | @Target({ElementType.TYPE, ElementType.METHOD})
13 | @Retention(RetentionPolicy.RUNTIME)
14 | @Documented
15 | public @interface RequiresPermissions {
16 | String[] value();
17 |
18 | Logical logical() default Logical.OR;
19 | }
--------------------------------------------------------------------------------
/al-common/al-common-swagger/src/main/java/cn/com/axel/common/swagger/annotation/AutoSwagger.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.swagger.annotation;
2 |
3 | import cn.com.axel.common.swagger.config.SwaggerConfig;
4 | import org.springframework.context.annotation.Import;
5 |
6 | import java.lang.annotation.*;
7 |
8 | /**
9 | * @author: axel
10 | * @description: swagger自动配置注解
11 | * @date: 2021/11/15 13:12
12 | */
13 | @Target(ElementType.TYPE)
14 | @Retention(RetentionPolicy.RUNTIME)
15 | @Documented
16 | @Import(SwaggerConfig.class)
17 | public @interface AutoSwagger {
18 | }
19 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/req/ReqChangePwd.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 |
7 | /**
8 | * @author: axel
9 | * @description: 修改密码入参
10 | * @date: 2022/12/21 22:17
11 | */
12 | @Schema(description = "修改密码入参")
13 | @Data
14 | public class ReqChangePwd {
15 | @Schema(description = "用户ID")
16 | private String userId;
17 | @Schema(description = "旧密码")
18 | private String oldPwd;
19 | @Schema(description = "新密码")
20 | private String newPwd;
21 | }
22 |
--------------------------------------------------------------------------------
/al-common/al-common-oauth/src/main/java/cn/com/axel/common/oauth/annotation/DataScopes.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.oauth.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * @description: 数据范围组(多个组之间是and条件,即多个条件同时满足)
10 | * @author: axel
11 | * @date: 2024/4/28
12 | */
13 | @Target({ElementType.METHOD})
14 | @Retention(RetentionPolicy.RUNTIME)
15 | public @interface DataScopes {
16 | DataScope[] value();
17 | }
18 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/validator/GetCodeValidator.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.validator;
2 |
3 | import org.springframework.stereotype.Component;
4 |
5 | /**
6 | * @author: axel
7 | * @date: 2020/2/16 19:10
8 | */
9 | @Component
10 | public class GetCodeValidator extends MultipleValidator {
11 | public GetCodeValidator() {
12 | this.validateClientList.add(ClientIdExistValidator.class);
13 | this.validateClientList.add(AllowCodeValidator.class);
14 | this.validateClientList.add(RedirectUriExistValidator.class);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/listener/ListenerEvent.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.scheduler.listener;
2 |
3 | import lombok.extern.slf4j.Slf4j;
4 |
5 | /**
6 | * @description: 监听事件接口
7 | * @author: axel
8 | * @date: 2023/2/7 12:07
9 | */
10 | @Slf4j
11 | public class ListenerEvent {
12 |
13 | public void save(T t) {
14 | log.info("----- ListenerEvent.save -----> {}", t.toString());
15 | }
16 |
17 | public void delete(String fireInstanceId) {
18 | log.info("----- ListenerEvent.delete -----> {}", fireInstanceId);
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-button/weui-button.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-btn+.weui-btn{margin-top:16px}.weui-btn.weui-btn_inline+.weui-btn.weui-btn_inline{margin-top:auto;margin-left:16px}.weui-btn-area{margin:48px 16px 8px}.weui-btn-area_inline{display:-webkit-box;display:-webkit-flex;display:flex}.weui-btn-area_inline .weui-btn{margin-top:auto;margin-right:16px;width:100%;-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-btn-area_inline .weui-btn:last-child{margin-right:0}
--------------------------------------------------------------------------------
/al-common/al-common-core/src/main/java/cn/com/axel/common/core/config/ServiceProperties.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.core.config;
2 |
3 | import lombok.Data;
4 | import org.springframework.boot.context.properties.ConfigurationProperties;
5 | import org.springframework.context.annotation.Configuration;
6 |
7 | /**
8 | * @description: 服务属性
9 | * @author: axel
10 | * @date: 2024/1/31
11 | */
12 | @Data
13 | @Configuration
14 | @ConfigurationProperties(prefix = "axel")
15 | public class ServiceProperties {
16 | private String version;
17 | private String type = "cloud";
18 | }
19 |
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/execute/GeneralJobExecute.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.scheduler.execute;
2 |
3 | import cn.com.axel.common.scheduler.api.entity.JobLog;
4 | import cn.com.axel.scheduler.invoke.BaseInvoke;
5 |
6 | import java.util.List;
7 |
8 | /**
9 | * @description: 通用job执行
10 | * @author: axel
11 | * @date: 2023/2/7 11:01
12 | */
13 | public class GeneralJobExecute extends AbstractJobExecute {
14 | @Override
15 | protected void execute(BaseInvoke baseJob, JobLog jobLog, List params) {
16 | baseJob.run(jobLog, params);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-agree/weui-agree.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-agree{display:block;padding:.5em 15px;font-size:13px}.weui-agree__text{color:rgba(0,0,0,.5)}.weui-agree__link{display:inline;color:#576b95}.weui-agree__checkbox{position:absolute;left:-9999px}.weui-agree__checkbox-icon{position:relative;top:2px;display:inline-block;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:11px;height:11px}.weui-agree__checkbox-icon-check{position:absolute;top:1px;left:1px}
--------------------------------------------------------------------------------
/al-common/al-common-core/src/main/java/cn/com/axel/common/core/annotation/InnerUser.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.core.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * @author: axel
10 | * @description: 标记为内部接口
11 | * @date: 2021/12/3 20:16
12 | */
13 | @Target(ElementType.METHOD)
14 | @Retention(RetentionPolicy.RUNTIME)
15 | public @interface InnerUser {
16 | //内部请求是否校验用户 默认:false不校验
17 | boolean validateUser() default false;
18 | }
19 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/entity/Completion.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.entity;
2 |
3 | import lombok.Data;
4 |
5 | /**
6 | * @description: openAi属性
7 | * @author: axel
8 | * @date: 2023/2/8 11:31
9 | */
10 | @Data
11 | public class Completion {
12 | private String model;
13 | private String prompt;
14 | private double temperature = 1;
15 | private int max_tokens = 16;
16 | private double top_p = 1;
17 | private int n = 1;
18 | private boolean stream = false;
19 | private double frequency_penalty = 0;
20 | private double presence_penalty = 0;
21 | }
22 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/req/ReqDemoOrderDetail.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | /**
8 | * @description: 销售订单明细
9 | * @author: axel
10 | * @date: 2024-09-02
11 | * @version: V0.0.1
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | @Schema(description = "销售订单明细请求参数")
16 | public class ReqDemoOrderDetail {
17 | @Schema(description = "明细主键")
18 | private String id;
19 | @Schema(description = "订单号")
20 | private String orderId;
21 | }
22 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/mapper/xml/DictMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
--------------------------------------------------------------------------------
/al-common/al-common-file/src/main/java/cn/com/axel/common/file/service/StorageService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.file.service;
2 |
3 | import cn.com.axel.common.core.web.Result;
4 | import cn.com.axel.common.storage.api.entity.StorageInfo;
5 | import com.baomidou.mybatisplus.extension.service.IService;
6 |
7 | /**
8 | * @description: 文件缓存
9 | * @author: axel
10 | * @date: 2023-01-05
11 | * @version: V0.0.1
12 | */
13 | public interface StorageService extends IService {
14 |
15 | Result queryByKey(String fileKey);
16 |
17 | Result logicDelete(String id);
18 | }
19 |
--------------------------------------------------------------------------------
/al-common/al-common-core/src/main/java/cn/com/axel/common/core/utils/excel/UploadDAO.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.core.utils.excel;
2 |
3 | import org.springframework.stereotype.Repository;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * 上传存储操作
9 | *
10 | * @param
11 | */
12 | @Repository
13 | public interface UploadDAO {
14 |
15 | /**
16 | * 保存操作
17 | * 如果是mybatis,尽量别直接调用多次insert,自己写一个mapper里面新增一个方法batchInsert,所有数据一次性插入
18 | *
19 | * @param list 数据列表
20 | * @param extraProp 额外属性
21 | */
22 | void save(List list, UploadDataListener.ExtraProp extraProp);
23 | }
24 |
--------------------------------------------------------------------------------
/al-common/al-common-ds/src/main/java/cn/com/axel/common/ds/annotation/Master.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.ds.annotation;
2 |
3 | import com.baomidou.dynamic.datasource.annotation.DS;
4 |
5 | import java.lang.annotation.ElementType;
6 | import java.lang.annotation.Retention;
7 | import java.lang.annotation.RetentionPolicy;
8 | import java.lang.annotation.Target;
9 |
10 | /**
11 | * @author: axel
12 | * @description: 主库数据源配置注解
13 | * @date: 2021/11/30 11:42
14 | */
15 | @Target({ElementType.TYPE, ElementType.METHOD})
16 | @Retention(RetentionPolicy.RUNTIME)
17 | @DS("master")
18 | public @interface Master {
19 | }
20 |
--------------------------------------------------------------------------------
/al-common/al-common-ds/src/main/java/cn/com/axel/common/ds/annotation/Slave.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.ds.annotation;
2 |
3 | import com.baomidou.dynamic.datasource.annotation.DS;
4 |
5 | import java.lang.annotation.ElementType;
6 | import java.lang.annotation.Retention;
7 | import java.lang.annotation.RetentionPolicy;
8 | import java.lang.annotation.Target;
9 |
10 | /**
11 | * @author: axel
12 | * @description: 从库数据源配置注解
13 | * @date: 2021/11/30 11:54
14 | */
15 | @Target({ElementType.TYPE, ElementType.METHOD})
16 | @Retention(RetentionPolicy.RUNTIME)
17 | @DS("slave")
18 | public @interface Slave {
19 | }
20 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/req/ReqDictCategory.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.sys.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @description: 树形分类
10 | * @author: axel
11 | * @date: 2024-03-12
12 | * @version: V0.0.1
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | @Schema(description = "树形分类请求参数")
17 | public class ReqDictCategory {
18 | @Schema(description = "分类名称")
19 | private String categoryName;
20 | @Schema(description = "分类编码")
21 | private String categoryCode;
22 | }
23 |
--------------------------------------------------------------------------------
/al-common/al-common-cloud/src/main/java/cn/com/axel/common/cloud/annotation/AutoCloud.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.cloud.annotation;
2 |
3 | import cn.com.axel.common.web.annotation.AutoWeb;
4 |
5 | import java.lang.annotation.ElementType;
6 | import java.lang.annotation.Retention;
7 | import java.lang.annotation.RetentionPolicy;
8 | import java.lang.annotation.Target;
9 |
10 | /**
11 | * @description: web应用微服务自动注解
12 | * @author: axel
13 | * @date: 2024/8/27
14 | */
15 | @Target(ElementType.TYPE)
16 | @Retention(RetentionPolicy.RUNTIME)
17 | @AutoFeignClients
18 | @AutoWeb
19 | public @interface AutoCloud {
20 | }
21 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/req/ReqSsoClientDetails.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @description: 客户端信息
10 | * @author: axel
11 | * @date: 2023-05-12
12 | * @version: V0.0.1
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | @Schema(description = "客户端信息请求参数")
17 | public class ReqSsoClientDetails {
18 | @Schema(description = "客户端名称")
19 | private String clientName;
20 | @Schema(description = "客户端ID")
21 | private String clientId;
22 | }
23 |
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-cell/weui-form/weui-vcode.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-cell_vcode{padding-top:0;padding-right:0;padding-bottom:0}.weui-vcode-btn,.weui-vcode-img{margin-left:5px;height:3.29411765em;vertical-align:middle}.weui-vcode-btn{display:inline-block;padding:0 .6em 0 .7em;border-left:1rpx solid rgba(0,0,0,.1);line-height:3.29411765em;font-size:17px;color:#576b95;white-space:nowrap}button.weui-vcode-btn{min-height:0;background-color:transparent;border:0;outline:0}.weui-vcode-btn:active{color:#767676}
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/service/SsoClientDetailsService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.service;
2 |
3 | import cn.com.axel.common.core.web.Result;
4 | import cn.com.axel.oauth.entity.SsoClientDetails;
5 | import com.baomidou.mybatisplus.extension.service.IService;
6 |
7 | /**
8 | * @description: 客户端信息
9 | * @author: axel
10 | * @date: 2023-05-12
11 | * @version: V0.0.1
12 | */
13 | public interface SsoClientDetailsService extends IService {
14 |
15 | Result updateClient(SsoClientDetails ssoClientDetails);
16 |
17 | void removeClientCache(String clientId);
18 | }
19 |
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/req/ReqJobLog.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.scheduler.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.EqualsAndHashCode;
7 | import lombok.experimental.Accessors;
8 |
9 | /**
10 | * @description: 任务日志
11 | * @author: axel
12 | * @date: 2023-02-14
13 | * @version: V0.0.1
14 | */
15 | @EqualsAndHashCode(callSuper = true)
16 | @Data
17 | @Accessors(chain = true)
18 | @Schema(description = "任务日志请求参数")
19 | public class ReqJobLog extends ReqJob {
20 | @Schema(description = "cron表达式")
21 | private String cron;
22 | }
23 |
--------------------------------------------------------------------------------
/al-common/al-common-oauth/src/main/java/cn/com/axel/common/oauth/req/ReqOrgUser.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.oauth.req;
2 |
3 |
4 | import io.swagger.v3.oas.annotations.media.Schema;
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @description: 组织用户请求
10 | * @author: axel
11 | * @date: 2024/4/2
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | public class ReqOrgUser {
16 | @Schema(description = "账号")
17 | private String account;
18 | @Schema(description = "手机号")
19 | private String phone;
20 | @Schema(description = "昵称--用于显示")
21 | private String nickname;
22 | }
23 |
--------------------------------------------------------------------------------
/al-start/al-start-boot/src/main/resources/application-shiro.yml:
--------------------------------------------------------------------------------
1 | # 可匿名访问的路径(不校验白名单)
2 | security:
3 | ignore:
4 | whites:
5 | - "/oauth2/user/revoke"
6 | - "/oauth2/authorize"
7 | - "/oauth2/accessToken"
8 | - "/oauth2/sendMsg"
9 | - "/oauth2/qrCodeLogin/**"
10 | - "/oauth2/wx/bind/**"
11 | - "/oauth2/static/**"
12 | - "/captcha"
13 | - "/storage/file/*.*"
14 | - "/css/**"
15 | - "/img/**"
16 | - "/js/**"
17 | - "/fonts/**"
18 | - "/wx/**"
19 | - "/swagger-ui/**"
20 | - "/swagger-resources/**"
21 | - "/v3/api-docs/**"
22 | - "/404"
23 |
--------------------------------------------------------------------------------
/al-common/al-common-redis/src/main/java/cn/com/axel/common/redis/config/CacheProperties.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.redis.config;
2 |
3 | import lombok.Data;
4 | import org.springframework.boot.context.properties.ConfigurationProperties;
5 | import org.springframework.cloud.context.config.annotation.RefreshScope;
6 | import org.springframework.context.annotation.Configuration;
7 |
8 | /**
9 | * @description: 缓存配置
10 | * @author: axel
11 | * @date: 2023/1/15 14:37
12 | */
13 | @Configuration
14 | @ConfigurationProperties(prefix = "cache.temp")
15 | @RefreshScope
16 | @Data
17 | public class CacheProperties {
18 | private long time = 7;
19 | }
20 |
--------------------------------------------------------------------------------
/al-common/al-common-code/src/main/java/cn/com/axel/common/code/vo/CodeVo.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.code.vo;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @author: axel
10 | * @description: 代码相关信息
11 | * @date: 2022/9/1 15:46
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | @Schema(description = "代码相关信息")
16 | public class CodeVo {
17 | @Schema(description = "代码存储路径")
18 | private String path;
19 | @Schema(description = "文件名称")
20 | private String name;
21 | @Schema(description = "生成代码")
22 | private String code;
23 | }
24 |
--------------------------------------------------------------------------------
/al-common/al-common-code/src/main/java/cn/com/axel/common/code/entity/FieldExpand.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.code.entity;
2 |
3 | import cn.com.axel.sys.api.entity.FieldInfo;
4 | import io.swagger.v3.oas.annotations.media.Schema;
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | import java.util.List;
9 |
10 | /**
11 | * @description: 字段拓展
12 | * @author: axel
13 | * @date: 2024/4/19
14 | */
15 | @Data
16 | @Accessors(chain = true)
17 | public class FieldExpand {
18 | @Schema(description = "字段信息")
19 | private FieldInfo fieldInfo;
20 | @Schema(description = "字典组件")
21 | private List dictComponent;
22 | }
23 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/req/ReqDict.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.sys.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @Description: 字典
10 | * @Author: axel
11 | * @date: 2023-01-03
12 | * @Version: V0.0.1
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | @Schema(description = "字典请求参数")
17 | public class ReqDict {
18 | @Schema(description = "字典名称")
19 | private String dictName;
20 | @Schema(description = "字典编码")
21 | private String dictCode;
22 | @Schema(description = "状态(0正常 1停用)")
23 | private Integer status;
24 | }
25 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/entity/QRCode.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.entity;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 |
7 | import java.io.Serializable;
8 |
9 | /**
10 | * @author: axel
11 | * @date: 2020/3/5 14:38
12 | */
13 | @Schema(description = "二维码属性")
14 | @Data
15 | public class QRCode implements Serializable {
16 | @Schema(description = "二维码值")
17 | private String code;
18 | @Schema(description = "扫码状态")
19 | private String status;
20 | @Schema(description = "账号")
21 | private String account;
22 | @Schema(description = "确认密钥")
23 | private String secret;
24 | }
25 |
--------------------------------------------------------------------------------
/al-common/al-common-swagger/src/main/java/cn/com/axel/common/swagger/config/MyContact.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.swagger.config;
2 |
3 | import io.swagger.v3.oas.models.info.Contact;
4 | import lombok.Data;
5 |
6 | /**
7 | * @author: axel
8 | * @description: 联系方式
9 | * @date: 2022/8/18 23:22
10 | */
11 | @Data
12 | public class MyContact {
13 | private String name;
14 | private String url;
15 | private String email;
16 |
17 | public Contact getContact() {
18 | Contact contact = new Contact();
19 | contact.setName(name);
20 | contact.setUrl(url);
21 | contact.setEmail(email);
22 | return contact;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/service/impl/JobLogServiceImpl.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.scheduler.service.impl;
2 |
3 | import cn.com.axel.common.scheduler.api.entity.JobLog;
4 | import cn.com.axel.scheduler.mapper.JobLogMapper;
5 | import cn.com.axel.scheduler.service.JobLogService;
6 | import org.springframework.stereotype.Service;
7 |
8 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
9 |
10 | /**
11 | * @description: 任务日志
12 | * @author: axel
13 | * @date: 2023-02-14
14 | * @version: V0.0.1
15 | */
16 | @Service
17 | public class JobLogServiceImpl extends ServiceImpl implements JobLogService {
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/service/DemoOrderService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.service;
2 |
3 | import cn.com.axel.common.core.web.Result;
4 | import cn.com.axel.demo.entity.DemoOrder;
5 | import com.baomidou.mybatisplus.extension.service.IService;
6 |
7 | /**
8 | * @description: 销售订单
9 | * @author: axel
10 | * @date: 2024-09-13
11 | * @version: V0.0.1
12 | */
13 | public interface DemoOrderService extends IService {
14 | Result addOrder(DemoOrder demoOrder);
15 | Result editOrder(DemoOrder demoOrder);
16 | Result deleteOrder(String id);
17 | Result deleteBatchOrder(String ids);
18 | }
19 |
--------------------------------------------------------------------------------
/al-common/al-common-code/src/main/java/cn/com/axel/common/code/entity/TableExpand.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.code.entity;
2 |
3 | import cn.com.axel.sys.api.entity.TableInfo;
4 | import io.swagger.v3.oas.annotations.media.Schema;
5 | import lombok.Data;
6 | import lombok.EqualsAndHashCode;
7 | import lombok.experimental.Accessors;
8 |
9 | import java.util.List;
10 |
11 | /**
12 | * @description: 表拓展
13 | * @author: axel
14 | * @date: 2024/4/19
15 | */
16 | @EqualsAndHashCode(callSuper = true)
17 | @Data
18 | @Accessors(chain = true)
19 | public class TableExpand extends TableInfo {
20 | @Schema(description = "列信息")
21 | private List fieldExpands;
22 | }
23 |
--------------------------------------------------------------------------------
/al-common/al-common-oauth/src/main/java/cn/com/axel/common/oauth/entity/SimpleUserInfo.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.oauth.entity;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 |
7 | /**
8 | * @description: 简单用户信息
9 | * @author: axel
10 | * @date: 2024/4/9
11 | */
12 | @Data
13 | @Schema(description = "简单用户信息")
14 | public class SimpleUserInfo {
15 | @Schema(description = "唯一id")
16 | private String id;
17 | @Schema(description = "账号")
18 | private String account;
19 | @Schema(description = "昵称--用于显示")
20 | private String nickname;
21 | @Schema(description = "头像")
22 | private String headImgUrl;
23 | }
24 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/req/ReqSsoTenant.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @description: 租户信息表
10 | * @author: axel
11 | * @date: 2023-05-31
12 | * @version: V0.0.1
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | @Schema(description = "租户信息表请求参数")
17 | public class ReqSsoTenant {
18 | @Schema(description = "租户类型 0 个人 1 企业")
19 | private Integer tenantType;
20 | @Schema(description = "域名")
21 | private String domain;
22 | @Schema(description = "租户名称")
23 | private String name;
24 | }
25 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/validator/ClientIdExistValidator.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.validator;
2 |
3 | import cn.com.axel.common.core.web.Result;
4 | import cn.com.axel.oauth.entity.OAuthClient;
5 | import org.springframework.stereotype.Component;
6 |
7 | import jakarta.servlet.http.HttpServletRequest;
8 |
9 | /**
10 | * @author: axel
11 | * @date: 2020/2/13 13:58
12 | */
13 | @Component
14 | public class ClientIdExistValidator extends AbstractClientValidator {
15 |
16 | @Override
17 | public Result validate(HttpServletRequest request, Result result) {
18 | return getOAuthClient(request, result);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/al-storage/src/main/java/cn/com/axel/storage/req/ReqSysFile.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.storage.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @description: 文件存储
10 | * @author: axel
11 | * @date: 2023-03-02
12 | * @version: V0.0.1
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | @Schema(description = "文件存储请求参数")
17 | public class ReqSysFile {
18 | @Schema(description = "文件名")
19 | private String fileName;
20 | @Schema(description = "文件类型")
21 | private String fileType;
22 | @Schema(description = "删除标签 1删除 0未删除")
23 | private String delFlag;
24 | }
25 |
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/service/SysConfigService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.sys.service;
2 |
3 | import cn.com.axel.common.core.web.Result;
4 | import cn.com.axel.sys.entity.SysConfig;
5 | import com.baomidou.mybatisplus.extension.service.IService;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @description: 界面配置
11 | * @author: axel
12 | * @date: 2023-03-07
13 | * @version: V0.0.1
14 | */
15 | public interface SysConfigService extends IService {
16 | List querySysConfig(String userId);
17 |
18 | SysConfig querySysConfig(String userId, Integer type);
19 |
20 | Result saveSysConfig(SysConfig sysConfig);
21 | }
22 |
--------------------------------------------------------------------------------
/al-common/al-common-cloud/src/main/java/cn/com/axel/common/cloud/config/FeignConfig.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.cloud.config;
2 |
3 | import feign.Contract;
4 | import org.springframework.cloud.openfeign.support.SpringMvcContract;
5 | import org.springframework.context.annotation.Bean;
6 | import org.springframework.context.annotation.Configuration;
7 |
8 | /**
9 | * @description: 定义FeignContract为springMvc方式
10 | * @author: axel
11 | * @date: 2024/4/18
12 | */
13 | @Configuration
14 | public class FeignConfig {
15 | @Bean
16 | public Contract feignContract() {
17 | // return new feign.Contract.Default();
18 | return new SpringMvcContract();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/al-business/al-lowcode/src/main/java/cn/com/axel/lowcode/req/ReqLowCodePage.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.lowcode.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | /**
8 | * @description: 低代码页面
9 | * @author: axel
10 | * @date: 2024-09-13
11 | * @version: V0.0.1
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | @Schema(description = "低代码页面请求参数")
16 | public class ReqLowCodePage {
17 | @Schema(description = "页面名称")
18 | private String pageName;
19 | @Schema(description = "页面状态")
20 | private Short pageStatus;
21 | @Schema(description = "页面标识")
22 | private Short pageSlug;
23 | }
24 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/config/properties/ShiroWhitesProperties.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.config.properties;
2 |
3 | import lombok.Data;
4 | import org.springframework.boot.context.properties.ConfigurationProperties;
5 | import org.springframework.context.annotation.Configuration;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @description: shiro白名单地址配置,用于配置不需要拦截的 url
11 | * @author: zibo
12 | * @date: 2024/3/22 14:52
13 | */
14 | @Data
15 | @Configuration
16 | @ConfigurationProperties(prefix = "security.ignore")
17 | public class ShiroWhitesProperties {
18 |
19 | /**
20 | * 不需要拦截的 url 列表
21 | */
22 | private List whites;
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/al-common/al-common-oauth/src/main/java/cn/com/axel/common/oauth/common/DataScopeValue.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.oauth.common;
2 |
3 | import cn.com.axel.common.oauth.scope.DataScopeHandle;
4 | import io.swagger.v3.oas.annotations.media.Schema;
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @description: 数据范围值
10 | * @author: axel
11 | * @date: 2024/4/29
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | public class DataScopeValue {
16 | @Schema(name = "数据处理方式")
17 | private DataScopeHandle dataScopeHandle;
18 | @Schema(name = "字段名称")
19 | private String fieldName;
20 | @Schema(name = "字段值")
21 | private String[] values;
22 | }
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/credentials/QRCodeCredentialsMatcher.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.credentials;
2 |
3 | import org.apache.shiro.authc.AuthenticationInfo;
4 | import org.apache.shiro.authc.AuthenticationToken;
5 | import org.apache.shiro.authc.credential.SimpleCredentialsMatcher;
6 |
7 | /**
8 | * @author: axel
9 | * @date: 2020/2/25 16:49
10 | */
11 | public class QRCodeCredentialsMatcher extends SimpleCredentialsMatcher {
12 | @Override
13 | public boolean doCredentialsMatch(AuthenticationToken authenticationToken, AuthenticationInfo authenticationInfo) {
14 | return super.doCredentialsMatch(authenticationToken, authenticationInfo);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/al-business/al-lowcode/src/main/java/cn/com/axel/lowcode/req/ReqLowCodePageCategory.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.lowcode.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | /**
8 | * @description: 低代码页面分类
9 | * @author: axel
10 | * @date: 2024-09-13
11 | * @version: V0.0.1
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | @Schema(description = "低代码页面分类请求参数")
16 | public class ReqLowCodePageCategory {
17 | @Schema(description = "分类名称")
18 | private String name;
19 | @Schema(description = "分类状态")
20 | private Short status;
21 | @Schema(description = "分类标识")
22 | private Short slug;
23 | }
24 |
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/execute/DisallowConcurrentJobExecute.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.scheduler.execute;
2 |
3 | import cn.com.axel.common.scheduler.api.entity.JobLog;
4 | import cn.com.axel.scheduler.invoke.BaseInvoke;
5 | import org.quartz.DisallowConcurrentExecution;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @description: 禁止并发job执行
11 | * @author: axel
12 | * @date: 2023/2/7 10:45
13 | */
14 | @DisallowConcurrentExecution
15 | public class DisallowConcurrentJobExecute extends AbstractJobExecute {
16 | @Override
17 | protected void execute(BaseInvoke baseJob, JobLog jobLog, List params) {
18 | baseJob.run(jobLog, params);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/config/OpenAiConfig.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.config;
2 |
3 | import lombok.Data;
4 | import org.springframework.boot.context.properties.ConfigurationProperties;
5 | import org.springframework.cloud.context.config.annotation.RefreshScope;
6 | import org.springframework.context.annotation.Configuration;
7 |
8 | /**
9 | * @description: openai配置
10 | * @author: axel
11 | * @date: 2023/2/9 14:46
12 | */
13 | @Configuration
14 | @RefreshScope
15 | @ConfigurationProperties(prefix = "openai.chat")
16 | @Data
17 | public class OpenAiConfig {
18 | private String token = "***";
19 | private String url = "https://api.openai.com/v1/completions";
20 | }
21 |
--------------------------------------------------------------------------------
/al-scheduler/src/main/java/cn/com/axel/scheduler/mapper/JobSubscribeMapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.scheduler.mapper;
2 |
3 | import cn.com.axel.scheduler.entity.JobSubscribe;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 | import org.apache.ibatis.annotations.Param;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @description: 任务订阅表
11 | * @author: axel
12 | * @date: 2023-02-20
13 | * @version: V0.0.1
14 | */
15 | public interface JobSubscribeMapper extends BaseMapper {
16 | int insertJobSubscribes(@Param("jobSubscribeList") List jobSubscribeList);
17 |
18 | List getSubscribesByJobIds(@Param("jobIds") List jobIds);
19 | }
20 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/service/impl/DemoDataScopeServiceImpl.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.service.impl;
2 |
3 | import cn.com.axel.demo.entity.DemoDataScope;
4 | import cn.com.axel.demo.mapper.DemoDataScopeMapper;
5 | import cn.com.axel.demo.service.DemoDataScopeService;
6 | import org.springframework.stereotype.Service;
7 |
8 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
9 |
10 | /**
11 | * @description: demo_data_scope
12 | * @author: axel
13 | * @date: 2024-09-04
14 | * @version: V0.0.1
15 | */
16 | @Service
17 | public class DemoDataScopeServiceImpl extends ServiceImpl implements DemoDataScopeService {
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/al-business/al-lowcode/src/main/java/cn/com/axel/lowcode/service/LowCodePageService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.lowcode.service;
2 |
3 | import cn.com.axel.common.core.web.Result;
4 | import cn.com.axel.lowcode.entity.LowCodePage;
5 | import com.baomidou.mybatisplus.extension.service.IService;
6 |
7 | /**
8 | * @description: 低代码页面
9 | * @author: axel
10 | * @date: 2024-09-13
11 | * @version: V0.0.1
12 | */
13 | public interface LowCodePageService extends IService {
14 | Result addPage(LowCodePage lowCodePage);
15 | Result editPage(LowCodePage lowCodePage);
16 | Result deletePage(String id);
17 | Result deleteBatchPage(String ids);
18 | }
19 |
--------------------------------------------------------------------------------
/al-common/al-common-code/src/main/java/cn/com/axel/common/code/req/ReqSearch.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.code.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @description: 搜索请求
11 | * @author: axel
12 | * @date: 2023/5/9 19:31
13 | */
14 | @Schema(description = "查询条件")
15 | @Data
16 | @Accessors(chain = true)
17 | public class ReqSearch {
18 | @Schema(description = "字段")
19 | private String field;
20 | @Schema(description = "查询条件")
21 | private String condition;
22 | @Schema(description = "组件 索引0组件名称1字典编码")
23 | private List component;
24 | }
25 |
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-grid/weui-grid.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-grids{border-top:1rpx solid rgba(0,0,0,.1);border-left:1rpx solid rgba(0,0,0,.1);overflow:hidden}.weui-grid{position:relative;float:left;padding:20px 10px;width:33.33333333%;box-sizing:border-box;border-right:1rpx solid rgba(0,0,0,.1);border-bottom:1rpx solid rgba(0,0,0,.1)}.weui-grid_active{background-color:#ececec}.weui-grid__icon{display:block;width:28px;height:28px;margin:0 auto}.weui-grid__label{margin-top:5px;display:block;text-align:center;color:rgba(0,0,0,.9);font-size:14px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/service/impl/DemoOrderDetailServiceImpl.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.service.impl;
2 |
3 | import cn.com.axel.demo.entity.DemoOrderDetail;
4 | import cn.com.axel.demo.mapper.DemoOrderDetailMapper;
5 | import cn.com.axel.demo.service.DemoOrderDetailService;
6 | import org.springframework.stereotype.Service;
7 |
8 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
9 |
10 | /**
11 | * @description: 销售订单明细
12 | * @author: axel
13 | * @date: 2024-09-02
14 | * @version: V0.0.1
15 | */
16 | @Service
17 | public class DemoOrderDetailServiceImpl extends ServiceImpl implements DemoOrderDetailService {
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-button/weui-btn_plain.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-btn_plain-primary{color:#07c160;border:1px solid #1aad19}.weui-btn_plain-primary:not(.weui-btn_plain-disabled):active{color:#06ae56;border-color:#179c16;background-color:rgba(0,0,0,.1)}.weui-btn_plain-primary:after{border-width:0}.weui-btn_plain-default{color:#353535;border:1px solid #353535}.weui-btn_plain-default:not(.weui-btn_plain-disabled):active{color:#323232;border-color:#323232;background-color:rgba(0,0,0,.1)}.weui-btn_plain-default:after{border-width:0}.weui-btn_plain-disabled{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}
--------------------------------------------------------------------------------
/al-business/al-sys/src/main/java/cn/com/axel/sys/req/ReqCodeBuild.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.sys.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @description: 代码构建
10 | * @author: axel
11 | * @date: 2023-04-11
12 | * @version: V0.0.1
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | @Schema(description = "代码构建请求参数")
17 | public class ReqCodeBuild {
18 | private String tableName;
19 | @Schema(description = "接口路径前缀 例如:/oauth2/user接口前缀为oauth2(不传会使用packageName,最底层包名 例如:cn.com.axel.sys包会使用sys)")
20 | private String apiPrefix;
21 | @Schema(description = "实体类名(不传会使用表名驼峰化)")
22 | private String entityName;
23 | }
24 |
--------------------------------------------------------------------------------
/al-common/al-common-dblink/src/main/java/cn/com/axel/common/dblink/entity/QueryParam.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.dblink.entity;
2 |
3 | import cn.com.axel.common.core.enums.DataType;
4 | import io.swagger.v3.oas.annotations.media.Schema;
5 |
6 | import lombok.Data;
7 | import lombok.experimental.Accessors;
8 |
9 | import java.io.Serializable;
10 |
11 | /**
12 | * @description: 查询参数
13 | * @author: axel
14 | * @date: 2023/12/26
15 | */
16 | @Data
17 | @Schema(description = "查询参数")
18 | @Accessors(chain = true)
19 | public class QueryParam implements Serializable {
20 | @Schema(description = "参数值")
21 | private Object value;
22 | @Schema(description = "参数类型")
23 | private DataType type = DataType.STRING;
24 | }
25 |
--------------------------------------------------------------------------------
/al-common/al-common-code/src/main/java/cn/com/axel/common/code/entity/SearchInfo.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.code.entity;
2 |
3 | import cn.com.axel.common.code.req.ReqSearch;
4 | import cn.com.axel.sys.api.entity.FieldInfo;
5 | import io.swagger.v3.oas.annotations.media.Schema;
6 |
7 | import lombok.Data;
8 | import lombok.EqualsAndHashCode;
9 | import lombok.experimental.Accessors;
10 |
11 | /**
12 | * @description: 搜索条件
13 | * @author: axel
14 | * @date: 2023/5/9 22:14
15 | */
16 | @EqualsAndHashCode(callSuper = true)
17 | @Data
18 | @Accessors(chain = true)
19 | @Schema(description = "搜索条件增加字段信息")
20 | public class SearchInfo extends ReqSearch {
21 | @Schema(description = "字段信息")
22 | private FieldInfo fieldInfo;
23 | }
24 |
--------------------------------------------------------------------------------
/al-start/al-start-boot/src/main/resources/application-oauth.yml:
--------------------------------------------------------------------------------
1 | # 验证码配置
2 | security:
3 | # 验证码
4 | captcha:
5 | enabled: true
6 | type: math
7 | # 防止XSS攻击
8 | xss:
9 | enabled: true
10 | excludeUrls:
11 | spring:
12 | thymeleaf:
13 | cache: false
14 | redisCache:
15 | expire: 50400
16 | keyPrefix: sso_cache
17 | redisSession:
18 | expire: 50400
19 | keyPrefix: sso_session
20 | oauth2:
21 | expire:
22 | code: 180
23 | token: 21600
24 | refreshToken: 604800
25 | login:
26 | mutex: false
27 | user:
28 | autoCreate: false
29 | token:
30 | sm4key: 143be1ae6ee10b048f7e441cec2a9803
31 | wechat:
32 | miniapp:
33 | appId: wx*************4a3
34 | secret: a6***************efa227
--------------------------------------------------------------------------------
/al-api/al-oauth-api/src/main/java/cn/com/axel/common/oauth/api/entity/UserRole.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.oauth.api.entity;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @author: axel
10 | * @description: 用户角色
11 | * @date: 2022/12/1 20:55
12 | */
13 | @Data
14 | @Schema(description = "用户角色属性")
15 | @Accessors(chain = true)
16 | public class UserRole {
17 | @Schema(description = "角色ID")
18 | private String id;
19 | @Schema(description = "角色名称")
20 | private String roleName;
21 | @Schema(description = "角色编码")
22 | private String roleCode;
23 | @Schema(description = "角色来源 0用户 1组织")
24 | private int source;
25 | }
26 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/req/ReqDemoOrder.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | /**
8 | * @description: 销售订单
9 | * @author: axel
10 | * @date: 2024-09-13
11 | * @version: V0.0.1
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | @Schema(description = "销售订单请求参数")
16 | public class ReqDemoOrder {
17 | @Schema(description = "姓名")
18 | private String userName;
19 | @Schema(description = "订单状态")
20 | private Short orderStatus;
21 | @Schema(description = "支付类型")
22 | private Short payType;
23 | @Schema(description = "配送方式")
24 | private Short deliveryType;
25 | }
26 |
--------------------------------------------------------------------------------
/al-common/al-common-core/src/main/java/cn/com/axel/common/core/annotation/GlobalException.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.core.annotation;
2 |
3 | import cn.com.axel.common.core.advice.ExceptionHandlerAdvice;
4 | import org.springframework.context.annotation.Import;
5 |
6 | import java.lang.annotation.ElementType;
7 | import java.lang.annotation.Retention;
8 | import java.lang.annotation.RetentionPolicy;
9 | import java.lang.annotation.Target;
10 |
11 | /**
12 | * @author: axel
13 | * @description: 全局异常处理注解
14 | * @date: 2021/12/13 18:32
15 | */
16 | @Target({ElementType.TYPE})
17 | @Retention(RetentionPolicy.RUNTIME)
18 | @Import({ExceptionHandlerAdvice.class})
19 | public @interface GlobalException {
20 | String value() default "";
21 | }
22 |
--------------------------------------------------------------------------------
/al-common/al-common-dataset/src/main/java/cn/com/axel/common/dataset/datatable/MetaHeaderDataTable.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.dataset.datatable;
2 |
3 | import cn.com.axel.common.core.web.PageResult;
4 | import lombok.Data;
5 |
6 | /**
7 | * @description: 带头信息元数据表
8 | * @author: axel
9 | * @date: 2023/4/5 0:01
10 | */
11 | @Data
12 | public class MetaHeaderDataTable {
13 | /**
14 | * 表格
15 | */
16 | private PageResult table;
17 | /**
18 | * 头信息
19 | */
20 | private MetaDataHeaders headers;
21 |
22 | public MetaHeaderDataTable(MetaDataTable metaDataTable) {
23 | this.table = new PageResult<>(metaDataTable);
24 | this.headers = metaDataTable.getColHeaders();
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/al-common/al-common-dblink/src/main/java/cn/com/axel/common/dblink/dbpool/PoolWrapper.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.dblink.dbpool;
2 |
3 | import cn.com.axel.common.dblink.entity.DataSourceOptions;
4 |
5 | import javax.sql.DataSource;
6 | import java.sql.Connection;
7 | import java.sql.SQLException;
8 |
9 | /**
10 | * @description: 连接池包装类
11 | * @author: axel
12 | * @date: 2023/3/16
13 | */
14 | public interface PoolWrapper {
15 | PoolWrapper wrap(DataSourceOptions linkOption);
16 |
17 | void close();
18 |
19 | DataSource getDataSource();
20 |
21 | Connection getConnection() throws SQLException;
22 |
23 | Connection getConnection(long maxWaitMillis) throws SQLException;
24 |
25 | boolean isClosed();
26 | }
27 |
--------------------------------------------------------------------------------
/al-common/al-common-oauth/src/main/java/cn/com/axel/common/oauth/common/LoginMutexEntity.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.oauth.common;
2 |
3 | import cn.com.axel.common.core.enums.DeviceType;
4 | import io.swagger.v3.oas.annotations.media.Schema;
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @description: 登录互斥属性
10 | * @author: axel
11 | * @date: 2023/5/7 1:14
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | public class LoginMutexEntity {
16 | @Schema(description = "设备类型")
17 | private DeviceType deviceType;
18 | @Schema(description = "设备ID web端为sessionid app端为认证app的mac地址 微信为openid")
19 | private String deviceId;
20 | @Schema(description = "用户id")
21 | private String userId;
22 | }
23 |
--------------------------------------------------------------------------------
/al-oauth/src/main/java/cn/com/axel/oauth/cache/redis/RedisCacheManager.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.oauth.cache.redis;
2 |
3 | import org.apache.shiro.cache.Cache;
4 | import org.apache.shiro.cache.CacheException;
5 | import org.apache.shiro.cache.CacheManager;
6 | import org.springframework.stereotype.Component;
7 |
8 | import jakarta.annotation.Resource;
9 |
10 | /**
11 | * @author: axel
12 | * @date: 2020/2/11 17:53
13 | */
14 | @Component
15 | public class RedisCacheManager implements CacheManager {
16 |
17 | @Resource
18 | private RedisCache cache;
19 |
20 | @Override
21 | @SuppressWarnings("unchecked")
22 | public Cache getCache(String name) throws CacheException {
23 | return cache;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/al-common/al-common-core/src/main/java/cn/com/axel/common/core/enums/HttpType.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.core.enums;
2 |
3 | import lombok.Getter;
4 |
5 | /**
6 | * @description: http类型
7 | * @author: axel
8 | * @date: 2023/2/8 16:15
9 | */
10 | @Getter
11 | public enum HttpType {
12 | HTTP(0),
13 | HTTPS(1);
14 | private final int value;
15 |
16 | HttpType(int value) {
17 | this.value = value;
18 | }
19 |
20 | @Override
21 | public String toString() {
22 | return String.valueOf(value);
23 | }
24 |
25 | public static HttpType getHttpType(String url) {
26 | if (url.startsWith("https:")) {
27 | return HttpType.HTTPS;
28 | }
29 | return HttpType.HTTP;
30 | }
31 | }
--------------------------------------------------------------------------------
/al-test/src/main/resources/bootstrap.yml:
--------------------------------------------------------------------------------
1 | axel:
2 | version: 1.3.1
3 | # Tomcat
4 | server:
5 | port: 9219
6 |
7 | # Spring
8 | spring:
9 | application:
10 | # 应用名称
11 | name: al-test
12 | profiles:
13 | # 环境配置
14 | active: dev
15 | cloud:
16 | nacos:
17 | username: @nacos.username@
18 | password: @nacos.password@
19 | discovery:
20 | # 服务注册地址
21 | server-addr: @nacos.server-addr@
22 | config:
23 | # 配置中心地址
24 | server-addr: @nacos.server-addr@
25 | # 配置文件格式
26 | file-extension: yml
27 | # 共享配置
28 | shared-configs[0]:
29 | data-id: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
30 | refresh: true
--------------------------------------------------------------------------------
/al-wechat/style/widget/weui-cell/weui-access.wxss:
--------------------------------------------------------------------------------
1 | /*!
2 | * WeUI v2.0.1 (https://github.com/weui/weui-wxss)
3 | * Copyright 2019 Tencent, Inc.
4 | * Licensed under the MIT license
5 | */
6 | .weui-cell_access{color:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-cell__ft_in-access{padding-right:16px;position:relative}.weui-cell__ft_in-access:after{content:" ";display:inline-block;height:8px;width:8px;border-width:2px 2px 0 0;border-color:#b2b2b2;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;margin-top:-5px;right:0}.weui-cell_link{color:#576b95;font-size:17px}.weui-cell_link:active{background-color:#ececec}.weui-cell_link:first-child:before{display:block}
--------------------------------------------------------------------------------
/al-common/al-common-app/src/main/java/cn/com/axel/common/app/annotation/AutoApp.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.app.annotation;
2 |
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
5 |
6 | import java.lang.annotation.ElementType;
7 | import java.lang.annotation.Retention;
8 | import java.lang.annotation.RetentionPolicy;
9 | import java.lang.annotation.Target;
10 |
11 | /**
12 | * @description: 轻量级应用自动注解(不访问数据库应用)
13 | * @author: axel
14 | * @date: 2023/3/1 17:21
15 | */
16 | @Target(ElementType.TYPE)
17 | @Retention(RetentionPolicy.RUNTIME)
18 | @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
19 | public @interface AutoApp {
20 | }
21 |
--------------------------------------------------------------------------------
/al-common/al-common-code/src/main/resources/template/src/main/java/${packageName}/service/impl/${entityName}ServiceImpl.java.ftl:
--------------------------------------------------------------------------------
1 | package ${packageName}.service.impl;
2 |
3 | import ${packageName}.entity.${entityName};
4 | import ${packageName}.mapper.${entityName}Mapper;
5 | import ${packageName}.service.${entityName}Service;
6 | import org.springframework.stereotype.Service;
7 |
8 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
9 |
10 | /**
11 | * @description: ${tableInfo.tableComment}
12 | * @author: axel
13 | * @date: ${.now?string["yyyy-MM-dd"]}
14 | * @version: V0.0.1
15 | */
16 | @Service
17 | public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, ${entityName}> implements ${entityName}Service {
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/al-gateway/src/main/java/cn/com/axel/gateway/config/properties/IgnoreWhiteProperties.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.gateway.config.properties;
2 |
3 | import lombok.Data;
4 | import org.springframework.boot.context.properties.ConfigurationProperties;
5 | import org.springframework.cloud.context.config.annotation.RefreshScope;
6 | import org.springframework.context.annotation.Configuration;
7 |
8 | import java.util.ArrayList;
9 | import java.util.List;
10 |
11 | /**
12 | * @author: axel
13 | * @description: 忽略地址白名单配置
14 | * @date: 2021/11/18 18:00
15 | */
16 | @Configuration
17 | @RefreshScope
18 | @ConfigurationProperties(prefix = "security.ignore")
19 | @Data
20 | public class IgnoreWhiteProperties {
21 | private List whites = new ArrayList<>();
22 | }
23 |
--------------------------------------------------------------------------------
/al-business/al-demo/src/main/java/cn/com/axel/demo/req/ReqDemoImportExport.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.demo.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | /**
8 | * @description: 导入导出Demo
9 | * @author: axel
10 | * @date: 2024-09-02
11 | * @version: V0.0.1
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | @Schema(description = "导入导出Demo请求参数")
16 | public class ReqDemoImportExport {
17 | @Schema(description = "姓名")
18 | private String userName;
19 | @Schema(description = "订单状态")
20 | private Short orderStatus;
21 | @Schema(description = "支付类型")
22 | private Short payType;
23 | @Schema(description = "配送方式")
24 | private Short deliveryType;
25 | }
26 |
--------------------------------------------------------------------------------
/al-monitor/src/main/resources/bootstrap.yml:
--------------------------------------------------------------------------------
1 | axel:
2 | version: 1.3.1
3 | # Tomcat
4 | server:
5 | port: 9223
6 |
7 | # Spring
8 | spring:
9 | application:
10 | # 应用名称
11 | name: al-monitor
12 | profiles:
13 | # 环境配置
14 | active: dev
15 | cloud:
16 | nacos:
17 | username: @nacos.username@
18 | password: @nacos.password@
19 | discovery:
20 | # 服务注册地址
21 | server-addr: @nacos.server-addr@
22 | config:
23 | # 配置中心地址
24 | server-addr: @nacos.server-addr@
25 | # 配置文件格式
26 | file-extension: yml
27 | # 共享配置
28 | shared-configs[0]:
29 | data-id: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
30 | refresh: true
31 |
--------------------------------------------------------------------------------
/al-api/al-sys-api/src/main/java/cn/com/axel/sys/api/req/ReqDbConnect.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.sys.api.req;
2 |
3 | import io.swagger.v3.oas.annotations.media.Schema;
4 |
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @description: 数据库连接
10 | * @author: axel
11 | * @date: 2023-03-13
12 | * @version: V0.0.1
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | @Schema(description = "数据库连接请求参数")
17 | public class ReqDbConnect {
18 | @Schema(description = "连接名")
19 | private String dbTitle;
20 | @Schema(description = "数据库类型(0 mysql 1 oracle 2 pgsql)")
21 | private Integer dbType;
22 | @Schema(description = "主机")
23 | private String host;
24 | @Schema(description = "数据库名")
25 | private String dbName;
26 | }
27 |
--------------------------------------------------------------------------------
/al-common/al-common-captcha/src/main/java/cn/com/axel/common/captcha/service/CheckCodeService.java:
--------------------------------------------------------------------------------
1 | package cn.com.axel.common.captcha.service;
2 |
3 | import cn.com.axel.common.core.exception.CaptchaException;
4 | import cn.com.axel.common.core.web.Result;
5 |
6 | import java.util.Map;
7 |
8 | /**
9 | * @author: axel
10 | * @date: 2021/8/12 11:06
11 | */
12 | public interface CheckCodeService {
13 |
14 | /**
15 | * 创建验证码
16 | *
17 | * @return Map
18 | */
19 | Result